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

Menghubungkan barang melalui Bluetooth / Android / Arduino

Komponen dan persediaan

Arduino UNO
× 1
LED (generik)
× 1

Aplikasi dan layanan online

Arduino IDE
MIT App Inventor 2

Tentang proyek ini

Jaringan area lokal nirkabel (dan pribadi) yang sangat bagus tidak diragukan lagi adalah Bluetooth (BT). Hari ini di hari-hari kita adalah umum untuk menemukan kita menggunakan ponsel, stereo, kamera, dll, saling berhubungan dengan bantuan "cahaya kecil biru" yang terkenal.

Dalam dunia IoT dan otomatisasi pada umumnya, sangat umum ditemukan remote control melalui telepon genggam yang menggunakan teknologi BT. Ini disebabkan oleh dua komponen dasar, tetapi sangat penting:

  • Platform Pengembangan Sederhana untuk aplikasi ANDROID (seperti MIT AppInventor2) dan
  • Modul BT yang terjangkau (seperti HC-06)

Dalam tutorial ini, saya akan mengembangkan beberapa ide tentang mengontrol output Arduino melalui perangkat seluler untuk menggerakkan Robot, menyalakan lampu di rumah, dll.

Langkah 1:Modul Bluetooth dan Arduino

Di pasaran sangat umum untuk menemukan modul "Master-Slave" BT 3.0 sebagai HC-05 dan "Slave" sebagai HC-06. Baru-baru ini, muncul HC-08 dan HC-10 yang bekerja dengan teknologi BT 4.0 atau BLE ("Bluetooth Low Energy"). Modul BLE adalah satu-satunya yang dapat dihubungkan ke iPhone, karena sayangnya Apple tidak memberikan dukungan untuk BT 3.0.

Untuk proyek yang dibahas di sini, saya akan menggunakan HC-06 yang sangat populer dan murah (Bye, bye, iPhone! Android adalah raja di sini!). Modul BT ditenagai dengan 5V yang membuatnya mudah terhubung ke Arduino UNO misalnya. Pin pengirim (Tx) dan penerima (Rx) dapat dihubungkan langsung ke UNO, tanpa perlu pembagi tegangan seperti yang kita lihat dalam kasus ESP8266. Biasanya HC-06 harus terhubung langsung ke pin 0 dan 1 Arduino (“Serial 0”):

  • HC06-Tx ke Arduino pin 0 (Rx)
  • HC06-Rx ke Arduino pin 1 (Tx)

Saat menggunakan input "Serial 0" (satu-satunya port Serial HW di UNO), sangat penting untuk diingat bahwa HC-06 mungkin tidak terhubung secara fisik ke pin 0 dan 1 selama pemuatan program, karena port USB juga menggunakan seri yang sama. Cara sederhana untuk mengatasi masalah kecil ini (jika proyek Anda tidak menggunakan banyak GPIO UNO) adalah dengan menggunakan "port serial SW" melalui perpustakaan SoftwareSerial. Dalam kasus kami di sini, kami akan menggunakan pin 10 dan 11 dari UNO (Tx, Rx masing-masing).

Langkah 2:Menguji dan mengonfigurasi HC-06

Langkah selanjutnya adalah menulis kode sederhana untuk menguji, memprogram, dan menginisialisasi HC-O6:Untuk memulai, sertakan Library Software Serial, atur variabel "BT" ke port serial baru.

#include SoftwareSerial BT (10, 11); // RX, TXString perintah =""; // Menyimpan respons penyiapan perangkat bluetooth (){ Serial.begin (9600); Serial.println("Ketik perintah AT"); BT.mulai (9600); // HC-06 Biasanya baud-rate default} 

Kemudian muncul bagian utama kode yang hanya menunggu data yang datang dari BT. Ketika tiba, data ditulis di Serial Monitor. Demikian juga, perintah AT dapat dikirim dari monitor serial ke modul HC-06.

void loop(){ if (BT.available()) // menerima data jika tersedia. { while (BT.available ()) // "terus menerima". { penundaan (10); // Penundaan ditambahkan untuk membuat sesuatu stabil char c =BT.read(); // Lakukan perintah baca serial + =c; // Bangun stringnya. } Serial.println (perintah); perintah =""; // Tidak ada pengulangan } if (Serial.available ()) { delay (10); BT.tulis (Serial.baca ()); }} 

Setelah program dimuat, dengan menggunakan monitor Serial lakukan beberapa tes dasar, misalnya:

  • Kirim "AT", modul akan merespons "OK".
  • Tanyakan versi firmware:" T + VERSION", modul harus merespons, misalnya:"linvorV1.8".
  • Dengan HC-06 Anda dapat menentukan nama untuk modul misalnya:"The T + NAMEMJRoBot_BT_HC06". Namun berbeda dengan modul lainnya, Anda tidak dapat mengetahui apa nama yang diset untuk modul tersebut. Saat mengirim perintah sebelumnya, HC-06 cukup menjawab:"OKsetname" .

Secara umum, HC-O6 dilengkapi standar dengan kata sandi (atau PIN):1234. Anda dapat mengatur yang baru dengan perintah AT:

  • AT + PIN xxxx dengan 'xxxx' akan menjadi 4 angka.

Di bawah kode Arduino untuk tes HC-06:

F08H931IL8LGG7U.ino

Langkah 3:Perangkat Android

OKE! Modul terhubung ke UNO dan berjalan. Saatnya memperkenalkan perangkat Android.

Ada banyak aplikasi di Google store yang bisa digunakan. Saya akan menggunakan aplikasi yang saya kembangkan menggunakan alat MIT Application2 dan tersedia gratis di toko Google:MJRoBot BT Digital Analog Voice Control

Aplikasi mengirimkan perintah digital (melalui tombol atau suara) dan perintah analog untuk mengontrol perangkat PWM seperti servos (mengirim data dengan rentang 0 hingga 255).

  • Unduh Aplikasinya
  • Buka pengaturan perangkat Android dan cari modul BT dan buat koneksi (masukkan PIN 1234 atau lainnya yang Anda tentukan). Ini harus dilakukan sekali, karena perangkat akan menyimpan data koneksi.
  • Setelah perangkat dan HC-06 berbicara, luncurkan Aplikasi. Untuk kedua kalinya, saat meluncurkan aplikasi, modul BT harus terhubung secara otomatis.
  • Pilih nama modul (dalam kasus saya adalah nama dengan HC-06 di akhir).

Aplikasi kemudian akan menampilkan "CONNECTED", menginformasikan bahwa itu "dikupas" dengan HC-06. Pada titik ini, uji tombol Aplikasi dan tonton di Monitor Serial PC Anda, data apa yang dikirim oleh Aplikasi. Misalnya, menekan tombol "ON" dan "OFF" secara berurutan untuk 4 Perangkat, hasilnya adalah:

dev1ondev1offdev2ondev2offdev3ondev3offdev4ondev4off 

Sekarang kita memiliki Aplikasi untuk Android yang berbicara dengan modul BT, mari buat sesuatu yang berguna!.

Langkah 4:Mengontrol output Arduino.

Mari kita membangun sirkuit seperti yang ditunjukkan di atas. Idenya adalah menggunakan Aplikasi untuk MENGAKTIFKAN dan MENONAKTIFKAN LED dan juga mengontrol intensitasnya.

Koneksi:

  • Perangkat 1:"dev1on / dev1off" ==> LED Merah ==> Pin 3 UNO
  • Perangkat 2:"dev2on / dev2off" ==> LED Kuning ==> Pin 5 UNO
  • Perangkat 3:"dev3on / dev3off" ==> LED Hijau ==> Pin 6 UNO
  • Perangkat 4:"dev4on / dev4off" ==> LED Biru ==> Pin 9 UNO

Artinya, untuk memicu tombol "ON" yang terkait dengan tombol "Device 1", pesan teks "dev1on" akan dikirim ke Arduino. Setelah menerima pesan ini, LED merah akan menyala dan seterusnya.

Perhatikan bahwa 4 pin adalah pin yang mampu menghasilkan PWM (tidak semua pin digital UNO dapat melakukannya. Cari pasar yang dengan “~ ”. Ini penting untuk penggunaan "slider" di App, untuk mengirim data numerik untuk mengontrol intensitas LED melalui PWM:

  • Dev A0:"r / 0-255" ==> LED Merah ==> Pin 3 UNO
  • Dev A1:"y / 0-255" ==> LED Kuning ==> Pin 5 UNO
  • Dev A2:"g / 0-255" ==> LED Hijau ==> Pin 6 UNO
  • Dev A3:"b / 0-255" ==> LED Biru ==> Pin 9 UNO

Dalam kasus slider, sebelum nilai data PWM (0 hingga 255), sebuah karakter dikirim ke Arduino untuk menginformasikan bahwa perintah ”slider” akan datang.

Dalam video di bawah ini, demonstrasi bagian program di atas (Tombol &Slider):

Di bawah Kode Arduino lengkap:

FA44NBUIL8LGGAY.ino

Langkah 5:Kontrol perangkat IoT dengan perintah suara

Untuk kontrol perangkat IoT, suara menjadi tren saat ini. Mendapatkan jenis kontrol ini menggunakan Arduino / HC-06 / Android sangat sederhana. Perangkat Android sudah memiliki fitur ini oleh "pabrik". Dalam Aplikasi yang saya kembangkan, sebuah tombol ditambahkan yang membuat Android "mendengarkan" perintah dan mengirimkannya dalam format teks ke Arduinonya. Kode bertanggung jawab untuk "membaca" string yang datang.

Saya menambahkan beberapa contoh dalam kode saya. Ketika Arduino menerima perintah "Hubungkan TV", misalnya, LED hijau (sesuai dengan perangkat 3) menyala (bukan LED, Anda dapat memiliki relai yang akan menghubungkan TV).

Anda harus mengubah string yang ada di bagian Loop kode, dengan perintah dalam bahasa Anda. Saya menggunakan bahasa Portugis yang merupakan bahasa ibu saya dan lebih mudah dikelola di Google karena aksen yang berbeda dengan bahasa Inggris saya. Anda harus menggunakan kalimat pendek atau hanya kata-kata di sana. Yang penting adalah kecocokan sempurna antara apa yang Anda tulis dan apa yang ditampilkan oleh aplikasi pengenalan suara Google.

Di sini Anda dapat menemukan tautan ke file .aia yang dapat dijalankan langsung di MIT AppInventor2. Dalam video di bawah ini, demonstrasi kecil dari kontrol suara:

Langkah 6:Kesimpulan

Yah, saya percaya bahwa dengan tutorial ini, adalah mungkin bagi Anda untuk menyadari potensi besar mengendalikan "sesuatu" menggunakan BT / Android / Arduino. Seperti biasa, saya berharap proyek ini dapat membantu orang lain menemukan jalan mereka di dunia elektronik yang menarik. , robotika, dan IoT! Untuk proyek lainnya, silakan kunjungi blog saya:MJRoBot.org

Saludos dari selatan dunia!

Sampai jumpa di tutorial saya berikutnya!

Terima kasih

Marcelo

Kode

  • Cuplikan kode #1
  • Cuplikan kode #2
  • Cuplikan kode #3
Cuplikan kode #1Teks biasa
#include SoftwareSerial BT (10, 11); // RX, TXString perintah =""; // Menyimpan respons penyiapan perangkat bluetooth (){ Serial.begin (9600); Serial.println("Ketik perintah AT"); BT.mulai (9600); // HC-06 Biasanya baud-rate default}
Cuplikan kode #2Teks biasa
void loop(){ if (BT.available()) // menerima data jika tersedia. { while (BT.available ()) // "terus menerima". { penundaan (10); // Penundaan ditambahkan untuk membuat sesuatu stabil char c =BT.read(); // Lakukan perintah baca serial + =c; // Bangun stringnya. } Serial.println (perintah); perintah =""; // Tidak ada pengulangan } if (Serial.available ()) { delay (10); BT.tulis (Serial.baca ()); }}
Cuplikan kode #3Teks biasa
dev1ondev1offdev2ondev2offdev3ondev3offdev4ondev4off

Proses manufaktur

  1. Robot Raspberry Pi dikendalikan melalui Bluetooth
  2. Memrogram Seri Atmel AT89 Melalui Arduino
  3. Kontrol Jarak Jauh Universal menggunakan Arduino, 1Sheeld, dan Android
  4. Mainan yang Dikendalikan Android Menggunakan Raspberry Motor Shield
  5. Arduino dengan Bluetooth untuk Mengontrol LED!
  6. Peralatan yang Dikendalikan Suara Bluetooth dengan OK Google
  7. Arduino - Kirim Suhu ke Web melalui Serial
  8. Kontrol Sirkuit Peka Gerakan melalui Intel Curie
  9. LED berkedip pada Arduino dari iOS dan Android
  10. Arduino Uno + Perangkat Listrik (Bulb) + Ponsel Android