Attack of The Bluetooth

Ichsan Sholeh
ESP32 DEVKIT — AR Tech
6 min readMar 1, 2020

1 Maret 2020.

Halo! Selamat datang kembali ke medium gue, dan selamat datang di tulisan gue yang entah udah tulisan ke berapa gue soal ESP32.

Setelah udah berhasil dalam mengerjakan project sensor cuaca dengan DHT11 dan berhasil mencetakkan outputnya ke serial monitor, selanjutnya pada tulisan gue kali ini, gue akan mencoba membuat hasil bacaan dari sensor DHT11 dapat dicetak di HP kita dengan menggunakan bluetooth. Iya. bluetooth. Selain itu, nantinya kita dapat mengontrol nyala atau matinya sebuah lampu LED berdasarkan pesan yang kita kirimkan melalui smartphone. Keren, kan?!!

Sebelum kita memasuki ke tahap pengerjaan project kali ini, berikut adalah peralatan yang perlu kita siapkan:
1. Laptop
2. ESP32
3. HP Android
4. Arduino IDE
5. Sensor cuaca DHT11
6. 5mm LED
7. Kabel jumper
8. Kabel micro USB
9. Breadboard
Berikut penampakannya:

Loh, katanya ngegunain bluetooth, tapi kok gaada alat buat ngaktifin bluetooth-nya di peralatan? click bait nih ya?!

Eits, tenang dulu bosqu. Jadi alasan kenapa kita gakperlu alat khusus untuk menggunakan bluetooth ini adalah karena udah ada bluetooth built-in pada ESP32 ini. Jadi, kita gapelu nambah-nambah peralatan lagi deh huehue.

Tenang aja, project kali ini gak ribet sama sekali. Karena jujur aja, first try gua langsung kelar wkwk.

Nah, sekarang kita langsung aja mulai ke bagian tutorialnya. Let’s check this out!

Bluetooth Terminal Application

Untuk mengerjakan project kali ini kita akan membutuhkan aplikasi Bluetooth Terminal yang terinstall pada smartphone.

Salah satu aplikasi yang dapat kita gunakan adalah “Serial Bluetooth Terminal” yang bisa kita unduh pada play store.

Sumber: https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/

Pin Wiring

Selanjutnya, kita perlu menyusun rangkaian sebelum mulai mempersiapkan kode untuk di-upload.

Sebenarnya dalam menghubungkan antara pin komponen ke pin ESP32, kita dapat memilih untuk menggunakan pin yang mana saja di ESP32 selama pin tersebut berfungsi sesuai komponennya.

Untuk saat ini, gue akan memilih untuk menghubungkan pin LED ke GPIO25, dan pin DHT11 ke GPIO32.

Sumber: https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/

Menginstall Library

Untuk membaca sensor DHT11 ini, kita akan membutuhkan program/library tambahan. Dalam kasus ini, kita nantinya akan menggunakan library DHT library from Adafruit dan Adafruit Unified Sensor library.

Untuk melakukan proses install, kita dapat membuka Sketch > Include Library > Manage Libraries. Nantinya akan terbuka Box “Library Manager”.

Selanjutya, kita hanya perlu melakukan pencarian terhadap library yang akan kita gunakan dan menginstallnya saja.

Kode program

Pada tahap ini kita akan membuat potongan program yang akan berfungsi untuk membuat hasil yanng dibaca oleh sensor DHT11 akan dicetak pada serial bluetooth pada smartphone.

Jika pada tugas-tugas sebelumnya gue bisa dengan mudah menggunakan program yang udah jadi, sayangnya kenikmatan tersebut berhenti disini. Pada project kali ini gue akan membuat potongan kode program tersebut sendiri dengan memanfaatkan potongan-potongan program yang sudah ada.

Eits, tapi tenang aja. Kalian jangan takut pusing. Karena, potongan kode program ini akan gue berikan secara percuma. Iya. PERCUMA. Jadi, langsung aja. Berikut potongan kode programnya:

/*********
Ichsan Sholeh Abdurrahim
Complete project details at https://medium.com/@isansars
*********/
// Load libraries
#include "BluetoothSerial.h"
#include <DHT.h>
// Check if Bluetooth configs are enabled
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
// Bluetooth Serial object
BluetoothSerial SerialBT;
// GPIO where LED is connected to
const int ledPin = 25;
#define DHTPIN 32 // Digital pin connected to the DHT sensor// Uncomment the type of sensor in use:
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);// Handle received and sent messages
String message = "";
char incomingChar;
String temperatureString = "";
String humidityString = "";
// Timer: auxiliar variables
unsigned long previousMillis = 0; // Stores last time temperature was published
const long interval = 10000; // interval at which to publish sensor readings
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
dht.begin();
// Bluetooth device name
SerialBT.begin("ESP32");
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
delay(2000);
//read temperature and humidity
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
}
else {
temperatureString = "Temperature: " + String(t) + "C";
humidityString = "Humidity: " + String(h) + "%";
SerialBT.println(temperatureString);
SerialBT.println(humidityString);
}
// Read received messages (LED control command)
if (SerialBT.available()){
char incomingChar = SerialBT.read();
if (incomingChar != '\n'){
message += String(incomingChar);
}
else{
message = "";
}
Serial.write(incomingChar);
}
// Check received message and control output accordingly
if (message =="on"){
digitalWrite(ledPin, HIGH);
}
else if (message =="off"){
digitalWrite(ledPin, LOW);
}
delay(20);
}

Selanjutnya, kita bisa mengkonfigurasi potongan kode tersebut sesuai dengan kreativitas kita masing-masing.

Melakukan Testing

Sekarang, jika kita sudah memastikan bahwa rangkaian yang kita buat sudah benar dan kode program yang kita buat sudah benar, kita dapat langsung meng-upload kode program ke ESP32.

Sekarang buka smartphone kita dan buka aplikasi “Serial Bluetooth Terminal”. Pastikan kita sudah mengaktifkan bluetooth tersebut.

Untuk menghubungkan bluetooth ke ESP32 pertama kali, kita perlu melakukan pairing terlebih dahulu.

Buka Devices. pilih ikon Settings dan pilih Pair new device. Selanjutnya kita akan mendapatkan list dari perangkat bluetooth yang akif, termasuk ESP32. Selanjutnya, lakukan pairing dengan ESP32.

Sekarag kembali ke Serial Bluetooth Terminal. Klik icon pada bagian atas untuk menghubungkan dengan ESP32. Nantinya kita akan mendapatkan pesan “Connected”.

Sumber: https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/

Tunggu beberapa saat…..

dan…

Voila!

Selanjutnya aplikasi serial bluetooth pada smartphone kita akan mencetak informasi yang didaptkan dari sensor DHT11.

Selain itu, kita juga dapat mengetikkan pesan “on” dan “off” yang dapat mengontrol nyala atau tidaknya sebuah lampu LED.

Nah, gimana? gampang kan? Hehe

Jadi sebenarnya pada intinya, fungsi project ini adalah mengintegrasikan antara lampu LED, sensor cuaca DHT11, dan juga fitur bluetooth pada ESP32.

Sekian dulu tulisan gue kali ini, semoga bisa bermanfaat.

Enjoy!

--

--

Ichsan Sholeh
ESP32 DEVKIT — AR Tech

Information System and Technology Student at Bandung Institute of Technology