Sistem Embedded: Project 6

Project 6: ESP32 with Multiple I2C Devices


Nah, oke lanjut ke project ke-6 Sistem Embedded. Kali ini saya akan mencoba serial communication pada ESP32. Serial communication sendiri adalah salah satu protokol pada ESP32 untuk menyambungkan beberapa device agar dapat berkomunikasi satu sama lain. Protokol yang umum digunakan pada yaitu I2C, SPI dan UART. Tetapi pada project ini kali saya akan menggunakan Multiple I2C devices dengan device yang memiliki address berbeda (bmp280 pada 0x76 dan oled pada 0x3c), tetapi dipasang di bus yang sama. Sebenarnya bisa dibilang project ini merupakan gabungan dari project ke-4 dan project ke-5.

Oke untuk alat-alat yang saya gunakan yaitu : 
  1. ESP32
  2. Breadboard (Half)
  3. OLED
  4. BMP280
  5. Kabel Jumper
  6. Kabel MicroUSB
Dan untuk design alat yang saya gunakan yaitu : 

Sedangkan untuk kodingan yang saya gunakan : 

Dan hasil yang saya peroleh : 


-- Eksplorasi: Using 2 Display (OLED and LCD) with BMP280

Udah ini EZ aja soalnya pin dari LCD 16x2 I2C tinggal dihubungin dengan pin yang sama dengan OLED, dimana LCD dan OLED akan menampilkan hal yang sama nantinya. Hal tersebut bisa dilakukan karena tiap komponen yang saya gunakan baik BMP280, OLED, maupun LCD memiliki address yang berbeda-beda, sehingga tidak perlu lagi mengatur I2C address-nya, untuk lebih jelasnya lihatlah video berikut :

Untuk kodingan yang saya gunakan sebenarnya tidak susah tinggal keluarin output ke LCD juga


-- Eksplorasi 2 : Using 2 BMP280 with 2 Display (LCD, OLED)

Nahh lanjut ke eksplorasi ke dua saya yang menurut saya sangat menantang, hal ini disebabkan karena pada ekplorasi dengan menggunakan 2 BMP280 ini sumbernya nggk saya temui, sehingga saya perlu mencoba-coba program-program pada eksplorasi ini. Pada randomnerd tutorial hanya disajikan kodingan untuk library BME280, dimana ternyata untuk mengatur I2C communication itu berbeda, sehingga saya mendapatkan error sebagai berikut, dimana parameter begin tidak bisa dimasukkan dengan class TwoWire seperti berikut :  

Kodingan tersebut menghasilkan error seperti berikut : 

sehingga saya perlu menggantinya program tersebut menjadi:

Sehingga program full nya akan seperti berikut ini, pada program ini saya mengganti pin pada BMP kedua dengan pin SCL pada GPIO32 dan pin SDA pada GPIO33 : 

Dan pada akhirnya, hasil yang saya peroleh dapat dilihat pada video berikut ini, ALHAMDULILLAH:



Sekian ... Salam Embedded


Komentar