Emebedded System Project : Bluetooth Communication (Part 7)

Galuh Dipa Bharata
3 min readMar 22, 2021

--

Oke, kemarin kita udah ngerjain project pakai ESP32, dan udah kita coba juga tampilan dari hasil baca eksternal sensor tersebut agar tertampilkan pada OLED 0.96".

Nah sekarang kita mau coba nih, cara komunikasi melalui bluetooth, dari device android yang kita punya kita perintahkan LED supaya menyala.

Jadi begini, berasaskan tutorial yang ada berada di randomnerdtutorials : https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/

Sudah tertulis disana cara untuk melakukan komunikasi dengan menggunakan bluetooth, tapi tutorial tersebut memberikan cara juga bagaimana kita membuat sensor yang sudah di pasangkan pada ESP32 dan dibaca pada device android kita melalui bluetooth.

Karna saya tidak memiliki sensor yang dimaksud pada project yang dimaksud, jadi saya tetap menggunakan kode yang ada, lalu hanya meng-attach-kan led nya saja. Kurang lebih skema yang ada seperti ini.

Jadi, alat yang dibutuhkan adalah:

  1. ESP32
  2. LED
  3. Android device
  4. Breadborad, jumper male-to-male, dan micro usb

Setelah dipasangkan sesuai dengan skema yang ada diatas, kurang lebih akan terlihat seperti ini :

Nah lalu kita berhadapan dengan kodenya, jadi dari kode yang ada pada tutorial tersebut terdapat kode yang berhubungan juga dengan sensor, karna saya tidak menggunakan sensor, maka saya comment kan bagian sensornya, jadi kurang lebih kode yang ada seperti ini.

/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/

// Load libraries
#include "BluetoothSerial.h"
#include <OneWire.h>
#include <DallasTemperature.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;

// GPIO where the DS18B20 is connected to
const int oneWireBus = 32;
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);

// Handle received and sent messages
String message = "";
char incomingChar;
String temperatureString = "";

// 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);
// Bluetooth device name
SerialBT.begin("ESP32");
Serial.println("The device started, now you can pair it with bluetooth!");
}

void loop() {
unsigned long currentMillis = millis();
// Send temperature readings
// if (currentMillis - previousMillis >= interval){
// previousMillis = currentMillis;
// sensors.requestTemperatures();
// temperatureString = String(sensors.getTempCByIndex(0)) + "C " //+ String(sensors.getTempFByIndex(0)) + "F";
// SerialBT.println(temperatureString);
// }
// 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 =="led_on"){
digitalWrite(ledPin, HIGH);
}
else if (message =="led_off"){
digitalWrite(ledPin, LOW);
}
delay(20);
}

Setelah itu, kita run, lalu di upload ke ESP32 di jalur COM6, dan beginilah hasilnya, (dijelaskan dalam video)

Pelajaran yang saya dapat dari percobaan ini adalah mengenai kodenya, saya lebih memahami kode menyalakan led pada project ini.

Terimakasih atas perhatiannya!
Galuh Dipa Bharata
18219100

NB : untuk beberapa hal ada yang saya tidak jelaskan, seperti setup arduino dan lainnya. Bisa dilihat di tulisan saya sebelum-sebelumnya ya terimakasi..

--

--