Serial Communication
Pada projek kali ini, kita akan melakukan percobaan terkait komunikasi data, yaitu komunikasi serial dengan standar I2C. Percobaan kali ini akan memanfaatkan dua buah device I2C.
Alat dan bahan yang dibutuhkan untuk percobaan ini adalah:
1. ESP32
2. Breadboard
3. Kabel jumper
4. Sensor BMP280
5. Kabel USB
Karena library yang dibutuhkan sudah diinstall pada projek sebelumnya, maka kita dapat langsung melakukan percobaan ini.
Pertama, letakkan ESP32 di atas breadboard dengan rangkaian sebagai berikut.
Kedua, sambungkan ESP32 ke laptop dengan menggunakan kabel USB.
Program yang digunakan untuk percobaan ini adalah:
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/esp32-i2c-communication-arduino-ide/
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
*/#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>#define SDA_1 21
#define SCL_1 22#define SDA_2 19
#define SCL_2 18TwoWire I2Cone = TwoWire(0);
TwoWire I2Ctwo = TwoWire(1);Adafruit_BMP280 bmp1;
Adafruit_BMP280 bmp2;void setup() {
Serial.begin(9600);
Serial.println(F("BMP280 test"));I2Cone.begin(SDA_1, SCL_1, 100000);
I2Ctwo.begin(SDA_2, SCL_2, 100000);
if (!bmp1.begin(0x76)) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}if (!bmp2.begin(0x76)) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
Serial.println();
}void loop() {
// Read from bmp1
Serial.print("Temperature from BMP1= ");
Serial.print(bmp1.readTemperature());
Serial.println(" *C");Serial.print("Approx altitude from BMP1 = ");
Serial.print(bmp1.readAltitude(1013.25));
Serial.println(" m");Serial.print("Pressure from BMP1 = ");
Serial.print(bmp1.readPressure() / 100.0F);
Serial.println(" hPa");Serial.println("--------------------");// Read from bmp2
Serial.print("Temperature from BMP2 = ");
Serial.print(bmp2.readTemperature());
Serial.println(" *C");Serial.print("Approx altitude from BMP2 = ");
Serial.print(bmp2.readAltitude(1013.25));
Serial.println(" m");Serial.print("Pressure from BMP2 = ");
Serial.print(bmp2.readPressure() / 100.0F);
Serial.println(" hPa");Serial.println("--------------------");
delay(5000);
}
Ketiga, tekan icon verify untuk mengcompile program. Saat proses compiling selesai, selanjutnya tekan icon upload untuk menguploadnya ke board ESP32.
Setelah program berhasil diupload ke board ESP32, kita dapat langsung membuka serial monitor dengan cara menuju Tools > Serial Monitor, lalu ubah menjadi 9600 baud, dengan begitu tampilan pada serial monitor akan menunjukkan hasil sebagai berikut:
Setelah tampilan pada serial monitor seperti di atas, maka percobaan kita telah berhasil.
Pada percobaan kali ini, tidak ada hal yang menghambat saya sehingga projek ini dapat diselesaikan dengan baik.