Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Draadloze Node.js-gestuurde robotauto – Real-time IoT-project

Onderdelen en benodigdheden

Arduino UNO 1
SparkFun Dual H-Bridge motordriver L298 1
HC-05 Bluetooth-module 1
Draadjes (standaard) 1
9V-batterij 2
DC-motor 12V 2

Over dit project

Projectidee

Node.js is uitstekend voor real-time applicaties. Ik heb eerder gewerkt met sockets, en wilde dit toepassen op IoT: een rover die via Bluetooth communiceert met een Node.js-server, en die op de frontend via sockets wordt bestuurd.

Projectdoel

Draadloze communicatie tussen Node-server en hardware (rover) bestuderen en implementeren, en de rover op afstand besturen via een mobiele webpagina die door de Node-server wordt geserveerd met sockets.

Vereisten

  • Basiskennis van Node, socketprogrammering en L298-motordriver.
  • 1x Arduino Uno
  • 1x L298-motordriver
  • 1x HC-05 Bluetooth-module
  • Draadjes
  • 2x 9V-batterij
  • 2x tandwielmotoren (6-9V)
  • 2x passende wielen
  • Chassis
  • Computer met Node.js geïnstalleerd voor de server.

Stap 1: De rover bouwen

Koop een "2-wiel chassis kit" online. Arduino Uno en L298 worden op de rover gemonteerd, beide gevoed door een aparte 9V-batterij. De Arduino voedt de HC-05-module.

Draadloze Node.js-gestuurde robotauto – Real-time IoT-project

Schakelschema

Draadloze Node.js-gestuurde robotauto – Real-time IoT-project

L298 wordt gevoed door 9V-batterij. Motoruitgangen naar Motor A en B (polariteit niet belangrijk, maar beide motoren moeten dezelfde richting draaien). Belangrijk: verwijder de 5V-regulator-jumper NIET. Als je de L298 met meer dan 12V voedt, gaat de onboard 5V-regulator kapot.

Arduino wordt gevoed door de andere 9V-batterij (Vin en GND). HC-05: VCC naar 5V Arduino, GND naar massa. Seriële communicatie: TXD van HC-05 naar RX van Arduino, RXD van HC-05 naar TX van Arduino.

Besturing L298: EN1 en EN2 naar PWM-pinnen van Arduino. Input-pinnen 1-4 naar digitale pinnen van Arduino.

Dataoverdracht

Draadloze Node.js-gestuurde robotauto – Real-time IoT-project
  1. Gebruiker opent webpagina (bijv. 192.XXX.XXX.129:8080).
  2. Klik op knop → socket stuurt commando naar Node-server.
  3. Node-server (via Bluetooth verbonden met HC-05) stuurt data naar HC-05.
  4. HC-05 stuurt via seriële communicatie naar Arduino UNO.
  5. Arduino stuurt L298 aan.

Stap 2: Server opzetten

Installeer Node.js (versie 11.15 aanbevolen voor node-gyp). Benodigde pakketten:

  • node-gyp
  • express
  • node-bluetooth
  • socket.io
  • ejs

Maak een server en webpagina met Express en EJS. Ontwerp besturingselementen en stel socket-verbindingen in. Voor Bluetooth: zie documentatie van node-bluetooth. Bij elke knopklik wordt een bericht naar HC-05 gestuurd.

Draadloze Node.js-gestuurde robotauto – Real-time IoT-project

Stap 3: Arduino-code

Bluetooth communiceert via seriële poort. We sturen strings als commando, afgesloten met 'T' (bijv. "forwardT"). Arduino leest tot 'T' en voert actie uit.

Stap 4: Eindresultaat

De rover reageert op commando's van de webinterface.

Uitbreidingen en toekomstige plannen

  • Stemcommando's
  • Obstakelvermijding
  • Database met statistieken (afstand, snelheid)
  • Extra sensoren (temperatuur, licht, vochtigheid) met logging in database

Volgende versie: "Voice Controlled Rover using Mobile"

Arduino-code

const int en1 = 9; const int en2 = 3;
const int inp1 = 2; const int inp2 = 4;
const int inp3 = 7; const int inp4 = 8;
char charRead; String inputString = "";

void setup() {
  Serial.begin(9600);
  pinMode(en1, OUTPUT); pinMode(en2, OUTPUT);
  pinMode(inp1, OUTPUT); pinMode(inp2, OUTPUT);
  pinMode(inp3, OUTPUT); pinMode(inp4, OUTPUT);
}

void loop() {
  if (Serial.available()) {
    charRead = Serial.read();
    if (charRead != 'T') {
      inputString += charRead;
    } else {
      if (inputString == "forward") { /* vooruit */ }
      else if (inputString == "backward") { /* achteruit */ }
      else if (inputString == "fleft") { /* vooruit-links */ }
      else if (inputString == "fright") { /* vooruit-rechts */ }
      else if (inputString == "bleft") { /* achteruit-links */ }
      else if (inputString == "bright") { /* achteruit-rechts */ }
      else if (inputString == "break") { /* stop */ }
      else if (inputString == "maxspeed") { /* max snelheid */ }
      else if (inputString == "medspeed") { /* medium snelheid */ }
      else if (inputString == "lowspeed") { /* lage snelheid */ }
      else { /* stop */ }
      inputString = "";
    }
  }
}

Productieproces

  1. Real-Time Temperatuur & Vochtigheid Monitoring Via Web Op Raspberry Pi 4
  2. Temperatuur-gecontroleerde Ventilator: DIY Relais Systeem Voor Media Kast Koeling
  3. Van $4 Zonnestandaard tot Slimme Draadloze Sensor-knooppunt: MSP430 + nRF24L01+ voor Tuinmonitoring
  4. Zet Je Raspberry Pi 4 Om in een Webserver en Bouw Je Eigen Site
  5. Uw RC-auto ombouwen tot een Bluetooth-gecontroleerd voertuig
  6. Een oude RC-auto ombouwen tot joystick-gestuurd voertuig met Arduino
  7. Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto
  8. Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
  9. Bouw een Draadloos IR-Sensor-Gestuurd Robotvoertuig
  10. Efficiënte Web Server Oplossingen voor Resource-Beperkte Microcontrollers
  11. Een TLS-ingeschakelde Web Server Deployen op een $3 ESP8266 in Onder 30 Minuten