Cara Program Bluetooth Esp8266 Nodemcu V3
Tutorial Lengkap: Program Bluetooth pada ESP8266 NodeMCU V3
ESP8266 adalah mikrokontroler yang sangat populer untuk proyek IoT, tetapi tidak memiliki dukungan Bluetooth bawaan. Oleh karena itu, kita akan menggunakan modul Bluetooth eksternal seperti HC-05 atau HC-06 untuk memungkinkan komunikasi Bluetooth dengan perangkat lain seperti smartphone atau komputer.
1. Peralatan yang Dibutuhkan
Sebelum kita mulai, pastikan Anda memiliki:
- ESP8266 NodeMCU V3
- Modul Bluetooth HC-05 atau HC-06
- Kabel Jumper
- Breadboard
- Arduino IDE (Untuk memprogram ESP8266)
Detail Penjelasan
ESP8266 NodeMCU V3 sebenarnya tidak memiliki modul Bluetooth bawaan, berbeda dengan ESP32 yang mendukung Bluetooth Classic dan Bluetooth Low Energy (BLE). Namun, jika ingin menambahkan fitur Bluetooth ke ESP8266, kita bisa menggunakan modul HC-05 atau HC-06, yang merupakan modul Bluetooth Classic yang dapat dihubungkan ke ESP8266 melalui komunikasi Serial UART.
2. Cara Kerja Bluetooth HC-05/HC-06
Modul Bluetooth HC-05 dan HC-06 mendukung komunikasi Serial UART dengan ESP8266.
Perbedaannya adalah:
- HC-05 dapat beroperasi dalam Mode Master dan Slave.
- HC-06 hanya dapat beroperasi dalam Mode Slave.
Modul ini memungkinkan komunikasi tanpa kabel antara ESP8266 dan perangkat lain melalui Bluetooth Classic, yang bisa digunakan untuk:
- Mengontrol ESP8266 dari smartphone
- Mengirim dan menerima data sensor melalui Bluetooth
- Menghubungkan ESP8266 dengan komputer secara nirkabel
3. Skema Koneksi ESP8266 dan HC-05
Modul HC-05 atau HC-06 menggunakan Serial UART untuk berkomunikasi dengan ESP8266.
Berikut adalah skema koneksi antara ESP8266 dan HC-05:
Tabel Koneksi HC-05 ke ESP8266
HC-05 Pin | Koneksi ke ESP8266 |
---|---|
VCC | 3.3V (Gunakan Level Shifter jika perlu) |
GND | GND |
TXD | D7 (GPIO13 - RX ESP8266) (Gunakan pembagi tegangan 1KΩ dan 2KΩ jika perlu) |
RXD | D8 (GPIO15 - TX ESP8266) (Gunakan Level Shifter jika perlu) |
KEY (Opsional) | Tidak dihubungkan (Kecuali untuk konfigurasi AT Mode) |
Catatan:
- HC-05 dirancang untuk 5V, tetapi ESP8266 bekerja pada 3.3V, jadi pastikan TX HC-05 mendapat tegangan 3.3V menggunakan pembagi tegangan.
- RX ESP8266 dapat menerima langsung dari TX HC-05 tanpa konversi tegangan.
4. Menginstal Arduino IDE untuk ESP8266
Sebelum menulis kode, pastikan Anda sudah menginstal Board ESP8266 di Arduino IDE:
- Buka Arduino IDE, lalu masuk ke File > Preferences.
- Di kolom Additional Board Manager URLs, tambahkan:
- Klik OK, lalu masuk ke Tools > Board > Board Manager.
- Cari ESP8266 dan klik Install.
- Pilih NodeMCU 1.0 (ESP-12E Module) di Tools > Board.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
5. Program Bluetooth Serial Sederhana untuk ESP8266
Berikut adalah program sederhana yang memungkinkan komunikasi Bluetooth Serial antara ESP8266 dan smartphone menggunakan HC-05.
Kode Program ESP8266 + HC-05
#include <SoftwareSerial.h>
#define RX_PIN 13 // D7 (GPIO13) sebagai RX
#define TX_PIN 15 // D8 (GPIO15) sebagai TX
SoftwareSerial BTSerial(RX_PIN, TX_PIN); // Buat software serial untuk Bluetooth
void setup() {
Serial.begin(115200); // Serial untuk debugging di Serial Monitor
BTSerial.begin(9600); // Serial Bluetooth HC-05
Serial.println("Bluetooth siap! Hubungkan perangkat Anda.");
}
void loop() {
// Jika ada data masuk dari Bluetooth (HC-05)
if (BTSerial.available()) {
char receivedChar = BTSerial.read();
Serial.print("Diterima via Bluetooth: ");
Serial.println(receivedChar);
}
// Jika ada data masuk dari Serial Monitor (Komputer)
if (Serial.available()) {
char sendChar = Serial.read();
BTSerial.write(sendChar); // Kirim data ke perangkat Bluetooth
}
}
6. Penjelasan Kode
SoftwareSerial BTSerial(RX_PIN, TX_PIN);
- Membuat komunikasi Software Serial di pin D7 (RX) dan D8 (TX) untuk berkomunikasi dengan HC-05.
BTSerial.begin(9600);
- Mengatur baud rate Bluetooth HC-05 ke 9600 (default untuk komunikasi Bluetooth).
if (BTSerial.available())
- Mengecek apakah ada data masuk dari Bluetooth dan menampilkannya di Serial Monitor.
if (Serial.available())
- Mengecek apakah ada data masuk dari Serial Monitor (komputer), lalu mengirimkannya ke perangkat Bluetooth.
7. Cara Menghubungkan ESP8266 dengan Perangkat Bluetooth
Setelah kode diunggah ke ESP8266, ikuti langkah-langkah berikut:
Menghubungkan dari Smartphone (Android)
- Aktifkan Bluetooth di smartphone.
- Pasangkan perangkat HC-05 (Kode default:
1234
atau0000
). - Gunakan aplikasi Bluetooth Terminal seperti:
- Serial Bluetooth Terminal (Android)
- Buka koneksi ke HC-05, lalu mulai mengirim dan menerima pesan.
Menghubungkan dari PC/Laptop
- Aktifkan Bluetooth di laptop.
- Cari perangkat Bluetooth bernama
HC-05
dan hubungkan. - Gunakan software terminal serial, seperti:
- Putty
- CoolTerm
- Arduino Serial Monitor
- Pilih port COM yang sesuai, lalu coba kirim dan terima pesan.
Contoh Aplikasi: Mengontrol LED dengan Bluetooth
Sekarang kita buat aplikasi yang lebih berguna, yaitu menyalakan dan mematikan LED menggunakan perintah dari Bluetooth.
Kode ESP8266 + HC-05 untuk Mengontrol LED
#include <SoftwareSerial.h>
#define RX_PIN 13 // D7 (GPIO13) RX
#define TX_PIN 15 // D8 (GPIO15) TX
#define LED_PIN 2 // LED di GPIO2
SoftwareSerial BTSerial(RX_PIN, TX_PIN);
void setup() {
Serial.begin(115200);
BTSerial.begin(9600);
pinMode(LED_PIN, OUTPUT);
Serial.println("Bluetooth LED Control Siap!");
}
void loop() {
if (BTSerial.available()) {
char command = BTSerial.read();
Serial.print("Perintah diterima: ");
Serial.println(command);
if (command == '1') {
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
} else if (command == '0') {
digitalWrite(LED_PIN, LOW);
Serial.println("LED OFF");
}
}
}
Cara Menggunakan:
- Kirim "1" untuk menyalakan LED.
- Kirim "0" untuk mematikan LED.
Kesimpulan
Meskipun ESP8266 tidak memiliki Bluetooth bawaan, kita masih bisa menggunakan HC-05/HC-06 untuk komunikasi Bluetooth Serial. Tutorial ini menjelaskan cara menghubungkan HC-05 ke ESP8266, mengirim dan menerima data, serta mengontrol LED melalui Bluetooth. Dengan teknik ini, Anda bisa mengembangkan proyek lain seperti home automation atau pengendalian robot via Bluetooth! 🚀