Tutorial ESP32 : Communication Protocol and Bus Interface

Gilbert Christian
3 min readMar 5, 2021

--

Halooooo readers!! Kali ini aku mau share tutorial ESP32 terakhir sebelum aku UTS. Nah kali ini kita bakal belajar mengenai Communication Protocol and Bus Interface. Kalau kalian sadar, 2 tutorial terakhir kita menggunakan address. Mungkin kalian sudah sedikit sedikit hafal kalau address OLED itu 3xC terus address BMP280 itu 0x76. Nah itulah yang disebut communication protocol. Kalian bisa lihat address address komponen yang biasa kita gunakan…

addresses

Disini ada 2 jenis percobaan yang bisa kita coba yaitu :

  • same bus, different address
  • same bus, same address

Bus disini bisa kalian anggap sebagai komponen kalian, maksudnya apakah kalian menggunakan komponen identik atau tidak. Nahhhhh kali ini kita akan mencoba jenis same bus, different address karena kalian pastinya tidak punya 2 OLED yang sama atau 2 sensor yang sama HAHAYYYY….

Ya ngapain lagi kalo ga nyiapin bahan bahan…

Bahan bahan yang perlu disiapkan adalah :

  • Breadboard
  • ESP32
  • Jumper cable male to male (8 buah)
  • 128X64 OLED LCD Display Module 0.96 inch
  • BMP280

Nah disini kalian perlu nyiapin 3 library yaitu :

  • Adafruit BMP280 Library
  • Adafruit SSD1306
  • Adafruit Unified Sensor

Gausa diajarin lagi kali ya cara install library nya…. hehehe
gadeng becanda,,, yaa kalian bisa buka tools -> manage library -> terus cari deh ketiga library diatas

Fritzing nya boi gimana!?

Buat readers setia aku, apasih yang engga ❤

skema rangkaian

Seperti biasa kalian tancapkan ESP32 pada breadboard kalian. Kemudian siapkan sensor dan tancapkan di sebelah ESP32 seperti skema diatas. Lalu ambil 4 jumper wire yang sudah disiapkan dan hubungkan:

pin 3v3 pada ESP32 ke VCC pada sensor,
pin GND pada ESP32 ke GND pada sensor,
pin GPIO21 pada ESP32 ke SDA pada sensor, dan
pin GPIO22 pada ESP32 ke SCL pada sensor

setelah itu hubungkan pin pin yang bersesuaian, diteruskan ke OLED

Nah kalian harus teliti saat memasangkan pin dari ESP32 ke sensor dan OLED karena seringkali terjadi error karena tidak teliti merangkainya.

Dah lah cape…

Yaudah deh nih kode nyeee….

/*
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_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);Adafruit_BMP280 bmp;void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}

bool status = bmp.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}

delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
display.clearDisplay();
// display temperature
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature: ");
display.setTextSize(1);
display.setCursor(0,10);
display.print(String(bmp.readTemperature()));
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(1);
display.print("C");

// display pressure
display.setTextSize(1);
display.setCursor(0, 20);
display.print("Pressure: ");
display.setTextSize(1);
display.setCursor(0, 30);
display.print(String(bmp.readPressure()));
display.print(" Pa");
// display altitude
display.setTextSize(1);
display.setCursor(0, 40);
display.print("Pressure: ");
display.setTextSize(1);
display.setCursor(0, 50);
display.print(String(bmp.readAltitude(1013.25)));
display.print(" m");

display.display();
delay(1000);
}

Nah temen temen, gabisa asal copy paste randomnerdstutorial kalau kalian pake sensor BMP, karena disana itu kode untuk BME dimana fungsi dari kedua sensor tersebut berbeda. Nah jadi apa? follow medium aku buat info yang lebih banyak lagi 😁😁 Jangan lupa kita udah pake OLED, kalau ngecek serial monitor udah gaada isinya….

weeee jadi weeee

Gini nih hasil buatan aku. Jernih kan fotonya? pake webcam NYK Nemesis A90 donggg….

hasil rangkaian
hasil rangkaian

Nah dengan ini aku akhiri tutorial ini…
Sampai jumpa di tutorial berikutnya 2–3 minggu kedepan, adios!

--

--

Gilbert Christian
Gilbert Christian

No responses yet