Kontrol LED melalui Bluetooth dengan Arduino – Panduan DIY Sederhana
Komponen dan perlengkapan
Arduino UNO × 1
HC-05 Bluetooth Module × 1
Resistor 1k ohm × 1
Male/Male Jumper Wires × 8
5 mm LED: Merah × 1
Aplikasi dan layanan online
Arduino IDE
MIT App Inventor
Tentang proyek ini
Membuat Koneksi Arduino Bluetooth!
Baru-baru ini saya membeli kit untuk membuat robot, dan dilengkapi dengan HC-05. Saat saya membuat robot pengikut garis, saya belum membutuhkannya. Namun, saya masih cukup penasaran dan ingin menggunakannya-saya tidak ingin komponen sekadar menempel di meja saya. Jadi, saya memutuskan untuk menggunakannya untuk mengontrol LED, menggunakan aplikasi seluler yang dikembangkan dengan MIT App Inventor.
Anda dapat mengakses MIT App Inventor dari tautan ini:
https://appinventor.mit.edu/
Sedangkan cukup menyenangkan untuk dapat menghidupkan dan mematikan LED menggunakan aplikasi seluler.
Untuk melakukan ini, Anda sebenarnya tidak perlu banyak pengetahuan awal, dan sangat mudah dilakukan.
MIT App Inventor dibuat oleh MIT untuk memungkinkan pembuatan aplikasi yang mudah. Anda hampir tidak memerlukan pengetahuan pemrograman untuk melakukan ini-hanya ada blok yang harus Anda geser.
Cara utama ini akan bekerja adalah ketika Anda menekan tombol pada aplikasi di ponsel Anda. Kemudian, ada sinyal yang dikirim ke arduino uno melalui komunikasi bluetooth, dan arduino menerima sinyal. Kemudian, kita dapat memprogram arduino untuk bertindak berdasarkan sinyal ini. Kita dapat menggunakan MIT App Inventor untuk memilih sinyal mana yang akan dikirim. Dalam hal ini, saya memilih untuk mengirim teks '0' atau '1'. Namun, Anda dapat mengubahnya untuk mengirim apa pun yang Anda inginkan.
Modul bluetooth dapat terhubung melalui bluetooth, dan dapat berkomunikasi melalui komunikasi serial. Jadi, pin RX dan TX penting. Jika Anda tidak ingin menggunakan pin ini, Anda harus menggunakan pustaka Software Serial. Tutorial ini tidak membahas itu.
Jadi, cara utama untuk melakukan ini adalah dengan menggunakan modul bluetooth dan MIT app inventor juga. Anda harus membuat aplikasi untuk mengontrol LED menggunakan bluetooth. Saya akan menunjukkan proses pembuatan aplikasi.
Skema
Pertama, koneksi penting. Ada 6 pin pada modul bluetooth. Untuk proyek ini, kita hanya perlu menggunakan 4 pin tengah.
Gambar adalah representasi yang akurat dari koneksi. Label diberikan di bagian belakang modul bluetooth HC-05. Pin RX harus terhubung ke TX pada arduino, sementara pin TX harus terhubung ke RX pada arduino. Sisanya seperti komponen biasa: GND ke GND pada arduino dan VCC ke sumber daya 5 volt.
HC-05-->Arduino
RX-->TX
TX-->RX
GND-->GND
VCC-->5v
Untuk berjaga-jaga, penting untuk pertama kali menghubungkan RX ke resistor, dan kemudian ke TX pada Arduino. Kemudian, hubungkan RX ke resistor lain, lalu ke GND.
GND dari HC-05 akan terhubung ke resistor ini, dan kemudian akan pergi ke GND pada Arduino. Jadi, baik RX maupun GND dari HC-05 pergi ke GND Arduino. Ini akan memastikan tidak ada kegagalan komponen.
Namun, karena kita menggunakan breakout board(yang memiliki regulator tegangan built-in), tidak akan ada masalah sama sekali, bahkan jika Anda tidak mengikuti skema yang dijelaskan.
Ini disebut rangkaian pembagi tegangan, yang membagi tegangan, bertindak seperti resistor. Gambar berikut adalah skemanya. Ditampilkan menggunakan Arduino mega, meskipun berlaku untuk Arduino Uno juga.
HC-05-->Arduino
RX-->TX
RX-->GND
TX-->RX
GND-->GND
VCC-->5v
Hubungkan kaki panjang LED ke pin 5 pada Arduino sambil menghubungkan kaki pendek LED ke GND. Disarankan untuk menggunakan resistor saat menghubungkan dari pin 5 untuk menghindari membakar LED. LED secara umum hanya membutuhkan 1,7 volt, bukan 5! Hubungkan pin 5 ke breadboard, dan gunakan resistor untuk menghubungkan ke kaki panjang LED. Saya memilih pin 5-meskipun Anda dapat memilih pin mana pun, tetapi juga perlu mengubah kode dengan sesuai.
LED-->Arduino Uno
Kaki positif(Panjang)-->Pin mana pun yang Anda sukai
Kaki negatif(Pendek)-->GND
Catatan:Saat mengunggah kode, Anda harus memastikan tidak ada kabel yang terhubung ke pin TX dan RX arduino. Setelah kode diunggah, Anda dapat menghubungkan kabel tersebut. Arduino menggunakan TX dan RX untuk mengunggah kode, jadi kabel lain di sini dapat mengganggu, dan akan mengakibatkan kesalahan.
Jika Anda ingin menggunakan pin selain pin TX dan RX, maka Anda harus menggunakan pustaka Software Serial.
Aplikasi
Ini adalah blok yang Anda butuhkan pada MIT App Inventor. Cukup sederhana. Anda membutuhkan list picker, dua tombol dan klien Bluetooth, yang dapat dipilih dengan mudah dari bagian 'Design'.
Anda dapat memberi nama komponen sesuai keinginan. Saya hanya tetap pada nama sederhana seperti Button1 dan Button2, seperti yang terlihat. Anda dapat mengganti nama komponen pada panel yang paling kanan. Anda dapat memilih komponen dan desain pada panel paling kiri.
Dua panel di tengah adalah untuk desain dan daftar komponen. Saya memilih desain yang sangat sederhana, seperti yang terlihat. List picker sangat penting. Inilah yang saya sebut 'Bluetooth'.
Kami akan mengkode sehingga ketika tombol ini ditekan, itu menampilkan semua perangkat Bluetooth di dekat. Klien Bluetooth dapat dilihat di salah satu panel tengah, terdaftar. Ini tidak ada di layar, karena pengguna tidak akan dapat melihatnya, tetapi ini adalah yang akan melacak perangkat Bluetooth lain. 'ON' dan 'OFF' yang saya gunakan adalah tombol.
Setelah merancang, Anda harus beralih ke bagian blok, yang dapat dilakukan di pojok kanan atas halaman. Kemudian Anda hanya perlu seret blok seperti berikut! Di ponsel kami, sebelum memilih apa pun di list picker, kami ingin daftar semua perangkat Bluetooth di ponsel kami.
Jadi, kami mengatur elemen listpicker1 ke alamat dan nama yang dapat ditemukan oleh klien Bluetooth, sebelum kami memilih apa pun padanya. Kami hanya meminta aplikasi untuk menampilkan daftar semua perangkat Bluetooth.
Kemudian, setelah kami memilih pilihan kami, kami ingin terhubung padanya. Kemudian, tergantung pada tombol mana yang Anda klik, Anda ingin mengirim '1' atau '0'. Itu bisa karakter apa pun yang Anda inginkan. Kemudian, berdasarkan karakter yang diterima, kami memprogram Arduino untuk menghidupkan atau mematikan LED. Saya meminta Button1 untuk mengirim teks '1'. Ini adalah tombol 'ON' saya. Jadi, saya akan memprogram Arduino dengan sesuai.
Kemudian, sisanya sangat sederhana! Semua yang harus Anda lakukan adalah mengunduh aplikasi pendamping MIT app inventor ke ponsel Anda, dan kemudian memindai kode dari situs web, dan Anda dapat memiliki aplikasi di ponsel Anda.
Anda hanya perlu membuka aplikasi yang Anda buat di situs web, klik connect, dan kemudian pilih AI companion. Kemudian Anda hanya memindai kode QR dari aplikasi MIT app di ponsel Anda, dan kemudian Anda akan memiliki aplikasi di ponsel Anda, tetapi hanya sementara. Anda harus memindai setiap kali ingin menggunakannya. Ini akan tetap terbuka untuk sementara, tetapi akan terputus koneksi jika Anda menutupnya, atau membiarkannya tidak aktif untuk waktu yang lama.
Selanjutnya, cukup klik list picker, dan pilih perangkat Bluetooth. Kata sandi untuk HC-05 biasanya 1234 atau 0000. Terhubung ke HC-05, dan kemudian klik tombol 'ON' dan 'OFF' (atau bagaimanapun Anda menamainya) dan itu akan bekerja, jika Anda telah menghubungkan rangkaian dengan benar!
Jangan lupa untuk memprogram Arduino! Itu adalah hal terpenting. Kode ada di akhir halaman.
Setelah Anda mempelajarinya, Anda dapat menggunakan prinsip yang sama untuk membuat proyek luar biasa lain menggunakan Bluetooth! Ingat hanya untuk mengirim teks dari modul ke Arduino melalui aplikasi, dan kemudian memprogram Arduino untuk membuat sesuatu terjadi! Ini mudah seperti memprogram tombol-tapi Anda hanya perlu berhati-hati untuk menggunakan 'char' dengan teks dan bukan 'int' saat memprogram. Saya melakukan kesalahan itu! Saya berencana untuk membuat robot yang dikontrol Bluetooth selanjutnya, yang dapat Anda kontrol dari ponsel Anda.
Kode
Kode untuk interfacing HC-05 dan Arduino
Kode untuk interfacing HC-05 dan ArduinoC/C++
Ini adalah kode yang harus Anda ketik ke Arduino IDE. Komentar tidak diperlukan, tetapi saya memberikan komentar banyak untuk pemahaman yang lebih baik, terutama untuk pemula Arduino.
/*Kode untuk mengontrol LED melalui bluetooth melalui aplikasi ponsel. Proyek oleh MukeshArvindh. Kode oleh MukeshArvindh.*/ /*Jika Anda akan menyalin dan menempel kode, maka jangan lupa untuk menghapus fungsi void setup() dan void loop() dari sketsa yang Anda gunakan sebelum melakukannya, karena fungsi sudah ada dalam sketsa ini. Menyalin dan menempel komentar tidak akan menyebabkan perubahan pada hasil atau kode.*/ /*Catatan:Kode ini telah dikompilasi dan diperiksa berkali-kali, dan terbukti akurat. Produk juga berfungsi sebagaimana dimaksud.*/ //Bluetooth menggunakan komunikasi serial. Jadi, kita menggunakan banyak fungsi serial //dalam sketsa ini. const int LED = 5; /*Mendeklarasikan bahwa ada LED pada pin 5 papan arduino. Kita menggunakan const karena kita tidak akan mengubah ini. Anda tidak perlu menamainya LED. Anda bahkan dapat menempatkan nama Anda alih-alih.*/ char switchstate; /*mendeklarasikan bahwa ada variabel yang disebut switchstate, yang akan menahan nilai karakter. Ini karena pemrograman aplikasi, yang akan mengirim nilai teks ke arduino. Jika kita menggunakan 'int' alih-alih 'char' kode tidak akan berfungsi dengan benar.*/ void setup() {//Di sini kode hanya berjalan sekali. Serial.begin(9600); /*Untuk memulai komunikasi serial dengan kecepatan 9600 bit per detik. Ini adalah kecepatan default.*/ pinMode(LED, OUTPUT); //Mendeklarasikan bahwa LED adalah output. } void loop() {//Kode ini berulang. Ini adalah kode utama kami. while(Serial.available()>0){ //kode untuk dieksekusi hanya ketika Serial.available()>0 /*Serial.available>0 adalah untuk memeriksa apakah ada pembacaan dari modul bluetooth HC-05.*/ switchstate = Serial.read(); /*Karakter yang telah kami deklarasikan sebelumnya sekarang diberikan nilai- nilai dari Serial.read().*/ //Serial.read() adalah untuk membaca nilai yang datang dari aplikasi. Serial.print(switchstate); //Ini akan mencetak nilai ke Serial monitor. Serial.print("\n"); //Ini pindah ke baris baru setelah setiap baris baru dicetak. delay(15); /*Memberi jeda 15 milidetik. Jeda untuk mata manusia, dan untuk kecepatan beberapa komputer, karena beberapa akan crash pada kecepatan tinggi.*/ if(switchstate == '1'){//Memeriksa apakah nilai dari aplikasi adalah '1' digitalWrite(5, HIGH); //Jika demikian, tulis komponen pada pin 5(LED) tinggi. } else if(switchstate == '0'){//Lainnya, jika nilai dari aplikasi adalah '0', digitalWrite(5, LOW);//Tulis komponen pada pin 5(LED) rendah. } } }
Skema
Ini adalah cara rangkaian seharusnya dibentuk antara HC-05 dan arduino.