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

Halaman web Node.js dikendalikan Robotic Car (Nirkabel)

Komponen dan persediaan

Arduino UNO
× 1
SparkFun Dual H-Bridge driver motor L298
× 1
Modul Bluetooth HC-05
× 1
Kabel jumper (generik)
× 1
Baterai, 9 V
× 2
Motor DC, 12 V
× 2

Tentang proyek ini

Ide Proyek

Node.js adalah salah satu opsi terbaik untuk Aplikasi Real-Time. Saya sebelumnya telah mengerjakan 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 milik saya ini berkomunikasi dengan server Node.js saya menggunakan Bluetooth dan di front-end, saya mengirim perintah ke server menggunakan Sockets.

Tujuan Proyek

Untuk mempelajari dan mengimplementasikan komunikasi nirkabel antara server Node dan perangkat keras (yang dalam hal ini Rover kami), dan untuk mengontrol Rover dari jarak jauh dengan halaman web seluler yang dilayani oleh server Node menggunakan Soket.

Prasyarat

Anda harus memiliki pengetahuan dasar tentang Node, pemrograman soket, dan cara kerja Driver Motor L298.

Persyaratan

  • 1 Arduino Uno
  • 1 Pengemudi Motor L298
  • Modul Bluetooth HC-05
  • Kabel Jumper
  • 2 Baterai - masing-masing 9 volt
  • Motor roda gigi 2 (6-9 volt)
  • 2 roda yang kompatibel
  • Sasis
  • Komputer dengan Node.js terinstal untuk server kami.

Langkah 1- Membangun Rover

Membangun Rover tidak terlalu rumit, Anda dapat membeli "kit sasis 2 roda" yang mudah tersedia secara online dan dilengkapi dengan semua unit perakitan.

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

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

Diagram Sirkuit

Seperti yang ditunjukkan di atas diagram rangkaian, driver motor L298 ditenagai oleh Baterai 9V, dua output kontrol motor terhubung ke Motor A dan Motor B dan karena motor tidak memiliki polaritas, Anda dapat menghubungkan terminal apa pun ke sana, tetapi pastikan bahwa kedua motor berputar dalam arah yang sama. Jangan lepaskan jumper regulator 5V.

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

Arduino Uno juga ditenagai oleh baterai 9V dengan terminal positifnya terhubung ke pin Vin Arduino dan terminal negatif ke ground bersama. Arduino secara bergantian akan memberi daya pada modul Bluetooth, jadi sambungkan pin Vcc HC-05 ke 5V Arduino dan GND ke ground.

Untuk komunikasi serial antara HC-05 dan Arduino, sambungkan 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 Arduino apa pun. Kemudian hubungkan pin Input L298 -1, 2, 3, 4 dengan pin digital Arduino.

Transmisi Data

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

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

2. Ketika pengguna mengklik tombol di halaman web, itu akan memicu server untuk melakukan fungsi yang diperlukan. Komunikasi ini terjadi karena Soket.

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

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

5. Arduino UNO pada gilirannya akan mengontrol modul L298.

Langkah 2- Menyiapkan server

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

  • gip-simpul
  • ekspres
  • simpul-bluetooth
  • socket.io
  • ejs

Catatan - Pemasangan "node-gyp" mungkin rumit karena tidak mendukung beberapa versi terbaru dari Node, jadi lebih baik instal versi 11.15 dari Node.

Sekarang, kita perlu mendengarkan event dari halaman web, segera setelah event dipicu saat berinteraksi dengan halaman web, halaman tersebut akan memancarkan fungsi yang diperlukan yang perlu dijalankan ke server Node kita. Server pada gilirannya akan mendengarkan pesan itu dan akan menjalankan fungsi yang diinginkan (dalam kasus kami, mengirim data ke Bluetooth).

Jadi, buat server dan halaman web menggunakan paket seperti "express" dan "EJS". Rancang halaman web dengan kontrol yang Anda inginkan dan atur koneksi soket untuknya dengan membuat server soket, Anda dapat merujuk ke dokumentasi ini.

Untuk pengaturan Bluetooth, lihat dokumentasi ini. Setiap kali tombol kontrol diklik, pesan dikirim ke modul HC-05.

Ini adalah halaman web sederhana saya --

Langkah 3- Kode Arduino

Karena Bluetooth akan berkomunikasi dengan Arduino-Uno menggunakan Komunikasi Serial, kami akan mengirimkan beberapa "string" sebagai perintah dan surat tambahan yang akan memberitahu kami untuk menghentikan dan menangkap string tersebut.

Misalnya-:untuk bergerak maju, Bluetooth akan mengirimkan "majuT", dan di ujung Arduino segera setelah kita menemukan huruf "T" kita akan mengetahui komunikasi serial selesai.

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

Temukan Kode Arduino terlampir.

Langkah 4- Hasil Akhir

Penyempurnaan dan Cakupan Masa Depan

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

Versi Berikutnya

Lihat proyek saya berikutnya "Voice Controlled Rover using Mobile"

Kode

  • Kode Arduino Node Rover
Kode Arduino Node RoverArduino
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 ="";batalkan setup () { Serial.begin(9600); pinMode(en1, OUTPUT); pinMode(en2, OUTPUT); pinMode(inp1, OUTPUT); pinMode(inp2, OUTPUT); pinMode(inp3, OUTPUT); pinMode(inp4, OUTPUT);}void loop() { // letakkan kode utama Anda di sini, untuk dijalankan berulang kali:if (Serial.available()) { charRead =Serial.read(); if (charRead !='T') { inputString +=charRead; } else { if (inputString =="maju") { // Untuk maju digitalWrite(inp1, HIGH); digitalWrite(inp2, RENDAH); digitalWrite(inp3, TINGGI); digitalWrite(inp4, RENDAH); } else if (inputString =="mundur") { // Untuk mundur digitalWrite(inp1, LOW); digitalWrite(inp2, TINGGI); digitalWrite(inp3, RENDAH); digitalWrite(inp4, TINGGI); } else if (inputString =="fleft") { // Untuk pindah ke kiri digitalWrite(inp1, HIGH); digitalWrite(inp2, RENDAH); digitalWrite(inp3, RENDAH); digitalWrite(inp4, RENDAH); } else if (inputString =="fright") { // Untuk menggeser ke kanan digitalWrite(inp1, LOW); digitalWrite(inp2, RENDAH); digitalWrite(inp3, TINGGI); digitalWrite(inp4, RENDAH); } else if (inputString =="bleft") { // Untuk mundur ke kiri digitalWrite(inp1, LOW); digitalWrite(inp2, RENDAH); digitalWrite(inp3, RENDAH); digitalWrite(inp4, TINGGI); } else if (inputString =="bright") { // Untuk mundur ke kanan digitalWrite(inp1, LOW); digitalWrite(inp2, TINGGI); digitalWrite(inp3, RENDAH); digitalWrite(inp4, RENDAH); } else if (inputString =="break") { // Untuk Menghentikan analogWrite(en1, 50); analogWrite(en2, 50); penundaan (550); digitalWrite(inp1, RENDAH); digitalWrite(inp2, RENDAH); digitalWrite(inp3, RENDAH); digitalWrite(inp4, RENDAH); analogWrite(en1, 150); analogWrite(en2, 150); } else if (inputString =="maxspeed") { // Kecepatan maksimum analogWrite(en1, 250); analogWrite(en2, 250); } else if (inputString =="medspeed") { // Kecepatan Sedang analogWrite(en1, 180); analogWrite(en2, 180); } else if (inputString =="lowspeed") { // Kecepatan rendah analogWrite(en1, 90); analogWrite(en2, 90); } else { // Hentikan digitalWrite(inp1, LOW); digitalWrite(inp2, RENDAH); digitalWrite(inp3, RENDAH); digitalWrite(inp4, RENDAH); } inputString =""; } }}

Skema


Proses manufaktur

  1. Membuat Kendaraan Robot Nirkabel Menggunakan Sensor IR
  2. Teknologi server web yang efisien untuk mikrokontroler dengan sumber daya terbatas
  3. Cara memasang server Web tertanam yang aman pada perangkat WiFi $3
  4. Dapatkan Kelembaban/Suhu dari Web
  5. Kipas dengan pengatur suhu
  6. Solar Driveway Light ke MSP430 Wireless Sensor Node
  7. Raspberry Pi 4 Sebagai Server Web [Buat Website Sendiri]
  8. Ubah Mobil RC Anda menjadi mobil RC Bluetooth
  9. Mobil RC Terkendali Joystick
  10. Mobil RC Wi-Fi - Qi Diaktifkan