Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Mobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-Time

Komponen dan Perlengkapan

Arduino UNO1
Driver motor Dual H-Bridge SparkFun L2981
Modul Bluetooth HC-051
Kabel jumper (generik)1
Baterai, 9 V2
Motor DC, 12 V2

Tentang Proyek Ini

Ide Proyek

Node.js adalah salah satu opsi terbaik untuk Aplikasi Real-Time. Saya sebelumnya telah bekerja pada beberapa aplikasi real-time menggunakan Sockets, jadi dengan konsep yang sama, saya memutuskan untuk membuat beberapa proyek IoT dengan server Node.js untuk pembelajaran mandiri.

Rover saya ini berkomunikasi dengan server Node.js saya menggunakan Bluetooth dan di sisi depan, saya mengirim perintah ke server menggunakan Sockets.

Tujuan Proyek

Untuk mempelajari dan mengimplementasikan komunikasi nirkabel antara server Node dan hardware (yang dalam hal ini adalah Rover kita), dan untuk mengontrol Rover secara jarak jauh dengan halaman web seluler yang disajikan oleh server Node menggunakan Sockets.

Prasyarat

Anda perlu memiliki pengetahuan dasar tentang Node, pemrograman socket, dan cara kerja Driver Motor L298.

Kebutuhan

Langkah 1- Membangun Rover

Mobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-Time

Membangun Rover tidak terlalu rumit, Anda dapat membeli "kit chassis 2 roda" yang mudah didapatkan secara online dan dilengkapi dengan semua unit pemasangan.

Arduino Uno dan Driver Motor L298 kami tertanam di atas Rover kami, keduanya diberdayakan oleh dua baterai 9 volt secara terpisah.

Arduino Uno kemudian akan memberi daya pada modul Bluetooth HC-05 yang akan berkomunikasi dengan server kami.

Diagram Rangkaian

Mobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-Time

Seperti yang ditunjukkan pada diagram rangkaian di atas, driver motor L298 diberdayakan oleh baterai 9V, dua output kontrol motor terhubung ke Motor A dan Motor B dan karena motor tidak memiliki polaritas Anda dapat menghubungkan terminal mana pun ke dalamnya, tetapi pastikan kedua motor berputar dalam arah yang sama. Jangan cabut jumper regulator 5V.

Catatan: jika Anda memberi daya pada L298 dengan lebih dari 12 volt regulator tegangan 5V papan akan rusak.

Arduino Uno juga diberdayakan oleh baterai 9V dengan terminal positifnya terhubung ke pin Vin Arduino dan terminal negatifnya ke ground bersama. Arduino kemudian akan memberi daya pada modul Bluetooth, jadi hubungkan pin Vcc HC-05 ke 5V Arduino dan GND ke ground.

Untuk komunikasi serial antara HC-05 dan Arduino, hubungkan pin TXD HC-05 ke pin RX Arduino dan pin RXD HC-05 ke pin TX Arduino.

Sekarang untuk mengontrol modul L298 Anda dapat menghubungkan pin EN1 dan EN2 dengan pin PWM mana pun pada Arduino. Dan kemudian hubungkan pin Input L298 -1, 2, 3, 4 dengan pin digital mana pun pada Arduino.

Transmisi Data

Mobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-Time

Seperti yang ditunjukkan di atas, adalah diagram yang menunjukkan transmisi sinyal.

1. Pengguna akan mengakses halaman web yang disajikan oleh server node. URL-nya adalah alamat IP dengan nomor port yang digunakan, misalnya- "192.XXX.XXX.129:8080".

2. Saat pengguna mengklik tombol pada halaman web, itu akan memicu server untuk melakukan fungsi yang diperlukan. Komunikasi ini terjadi karena Sockets.

3. Server Node yang terhubung ke modul HC-05 melalui Bluetooth, akan mengirim data yang diperlukan ke modul HC-05.

4. HC-05 akan mentransmisikan data ke Arduino UNO menggunakan komunikasi serial.

5. Arduino UNO kemudian akan mengontrol modul L298.

Langkah 2- Menyiapkan Server

Untuk server kami, kita perlu menginstal Node.js. Instal versi stabil node apa pun, milik saya adalah versi 11.15. Kita perlu menginstal paket berikut-

Catatan - Instalasi "node-gyp" mungkin sedikit sulit karena tidak mendukung beberapa versi Node terbaru, jadi lebih baik instal versi 11.15 Node.

Sekarang, kita perlu mendengarkan event dari halaman web, segera event terpicu saat berinteraksi dengan halaman web, halaman akan memancarkan fungsi yang diperlukan yang perlu dieksekusi ke server Node kami. Server kemudian akan mendengarkan pesan itu dan akan mengeksekusi fungsi yang diinginkan (yang dalam kasus kami, mengirim data ke Bluetooth).

Jadi, buat server dan halaman web menggunakan paket seperti "express" dan "EJS". Desain halaman web dengan kontrol yang Anda inginkan dan siapkan koneksi socket untuk itu dengan membuat server socket, Anda dapat merujuk ke dokumentasi ini.

Untuk pengaturan Bluetooth merujuk ke dokumentasi ini. Kapan pun kontrol-tombol diklik pesan akan dikirim ke modul HC-05.

Ini adalah halaman web sederhana saya --

Mobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-Time

Langkah 3- Kode Arduino

Karena Bluetooth akan berkomunikasi dengan Arduino-Uno menggunakan Komunikasi Serial kita akan mengirim beberapa "string" sebagai perintah dan huruf tambahan yang akan memberi tahu kami untuk mengakhiri dan menangkap string.

Misalnya-: untuk bergerak maju, Bluetooth akan transmit "forwardT", dan di akhir Arduino segera kita menemukan huruf "T" kita akan tahu komunikasi serial selesai.

Dan dengan string perintah yang masuk ini, kita akan mengonfigurasi driver L298 untuk bergerak maju, mundur, kiri, kanan, mengubah kecepatan, dll.

Temukan Kode Arduino yang dilampirkan.

Langkah 4- Hasil Akhir

Peningkatan dan Lingkup Masa Depan

Di tahap selanjutnya, saya berencana untuk mengontrol rover menggunakan perintah suara, dan fitur penghindaran rintangan. Saya juga dapat memelihara database tempat saya akan menyimpan catatan statistik seperti jarak tempuh, kecepatan maks, kecepatan rata-rata, dll. Saya juga akan menambahkan beberapa sensor seperti suhu, cahaya, dan kelembaban dan akan melacaknya secara teratur yang akan disimpan di database kami.

Versi Selanjutnya

Lihat proyek selanjutnya saya "Rover Dikontrol Suara menggunakan Seluler"

Kode

Kode Arduino Rover NodeArduino
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() { // put your main code here, to run repeatedly: if (Serial.available()) { charRead = Serial.read(); if (charRead != 'T') { inputString += charRead; } else { if (inputString == "forward") { // To move Forward digitalWrite(inp1, HIGH); digitalWrite(inp2, LOW); digitalWrite(inp3, HIGH); digitalWrite(inp4, LOW); } else if (inputString == "backward") { // To move backward digitalWrite(inp1, LOW); digitalWrite(inp2, HIGH); digitalWrite(inp3, LOW); digitalWrite(inp4, HIGH); } else if (inputString == "fleft") { // To move left digitalWrite(inp1, HIGH); digitalWrite(inp2, LOW); digitalWrite(inp3, LOW); digitalWrite(inp4, LOW); } else if (inputString == "fright") { // To move right digitalWrite(inp1, LOW); digitalWrite(inp2, LOW); digitalWrite(inp3, HIGH); digitalWrite(inp4, LOW); } else if (inputString == "bleft") { // To move back left digitalWrite(inp1, LOW); digitalWrite(inp2, LOW); digitalWrite(inp3, LOW); digitalWrite(inp4, HIGH); } else if (inputString == "bright") { // To move back right digitalWrite(inp1, LOW); digitalWrite(inp2, HIGH); digitalWrite(inp3, LOW); digitalWrite(inp4, LOW); } else if (inputString == "break") { // To Stop analogWrite(en1, 50); analogWrite(en2, 50); delay(550); digitalWrite(inp1, LOW); digitalWrite(inp2, LOW); digitalWrite(inp3, LOW); digitalWrite(inp4, LOW); analogWrite(en1, 150); analogWrite(en2, 150); } else if (inputString == "maxspeed") { // Max speed analogWrite(en1, 250); analogWrite(en2, 250); } else if (inputString == "medspeed") { // Medium Speed analogWrite(en1, 180); analogWrite(en2, 180); } else if (inputString == "lowspeed") { // Low speed analogWrite(en1, 90); analogWrite(en2, 90); } else { // Stop digitalWrite(inp1, LOW); digitalWrite(inp2, LOW); digitalWrite(inp3, LOW); digitalWrite(inp4, LOW); } inputString = ""; } } } 

Skematik

Mobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-TimeMobil Robotik Dikenal Node.js Secara Nirkabel – Proyek IoT Real-Time

Proses manufaktur

  1. Membuat Kendaraan Robotik Nirkabel Berbasis Sensor IR
  2. Solusi Web Server Efisien untuk Mikrokontroler dengan Sumber Daya Terbatas
  3. Deploy Web Server dengan TLS pada ESP8266 seharga $3 dalam Kurang dari 30 Menit
  4. Pemantauan Suhu dan Kelembaban Real-Time melalui Web pada Raspberry Pi 4
  5. Kipas Pendingin Mengontrol Suhu: Sistem Relay DIY untuk Pendingin Meja Media
  6. Dari Lampu Surya $4 menjadi Node Sensor Nirkabel Cerdas: MSP430 + nRF24L01+ untuk Pemantauan Taman
  7. Ubah Raspberry Pi 4 Menjadi Web Server dan Buat Situs Anda Sendiri
  8. Ubah Mobil RC Anda Menjadi Kendaraan Kendali Bluetooth
  9. Ubah Mobil RC Lama menjadi Kendaraan Terkontrol Joystick dengan Arduino
  10. Mobil RC Wi‑Fi dengan Pengisian Nirkabel Qi: Bangun Kit Mobil Remote Control Nirkabel