Project 6 Protokol Komunikasi

Cahayanaza
5 min readMar 4, 2021

--

Assalamualaikum wr. wb.. Halo Teman-teman! Saya Naja!

Pada percobaan kali ini kita akan menghubungkan OLED dengan Sensor Internal. Sensor internal yang saya pakai yaitu Sensor Efek Hall. Sensor Efek Hall dapat mendeteksi variasi medan magnet di sekitarnya. Semakin besar medan magnet, semakin besar tegangan keluaran sensor. Pada percobaan kali ini seharusnya saya menggunakan sensor eksternal. Sensor yang saya beli yaitu BMP180 dan BMP280 tetapi kedua sensor tersebut rusak sehingga tidak bisa digunakan. Penyebab dari kerusakan sensor itu sendiri karena saya melakukan kesalahan ketika penyolderan. Maka dari itu, saya tidak bisa membelinya lagi dikarenakan tempat tinggal saya yang cukup jauh. Akibatnya, saya berinisiatif untuk memakai sensor internal yang ada pada ESP32 itu sendiri. Disisi lain, ada sahabat saya yang mengalami hal serupa. Maka dari itu, saya membantunya agar percobaan kali ini berhasil. Berikut saya akan memberikan penjelasan singkat mengenai project kali ini. KUYY!

➸ Protokol Komunikasi

Komunikasi data dibagi menjadi dua jenis yaitu Komunikasi Serial dan Komunikasi Paralel . Komunikasi serial adalah pendekatan yang paling banyak digunakan untuk mentransfer informasi antara perangkat pemrosesan data. Sedangkan komunikasi paralel adalah komunikasi yang mengirimkan data secara bersamaan.

Ada beberapa istilah Komunikasi Serial:

  • Mode Transmisi
  • Sinkronisasi Jam
  • Tingkat Baud
  • Pembingkaian
  • Sinkronisasi Bit
  • Kontrol Kesalahan

Ada 3 jenis protokol komunikasi serial yaitu :

  1. UART (Universal Asynchronous Receiver-Transmitter Asynchronous), transmisi data serial antar perangkat;
  2. I2C (Inter-Integrated Circuit), Half duplex, transmisi data serial yang digunakan untuk jarak pendek antara papan, modul, dan periferal; dan
  3. SPI (Serial Peripheral Interface bus Full-duplex), transmisi data serial yang digunakan untuk jarak pendek antar perangkat.

Untuk percobaan ini saya menggunakan protokol komunikasi serial jenis I2C. Inter-Integrated Circuit (I2C) adalah komunikasi serial dua arah menggunakan dua saluran yang didesain khusus untuk mengirim maupun menerima data.

Baiklah, dengan adanya penjelasan singkat tentang protokol komunikasi tadi saya harap teman-teman jadi kebayang nihh tentang percobaan kali ini. Jadi, tunggu apalagi langsung aja kita masuk ke percobaannya. Check This Out!

➸ Daftar Komponen

Agar percobaan kali ini berjalan dengan lancar, pastikan teman-teman harus punya daftar komponen yang dibutuhkan yaitu :

  1. ESP32 DEVKIT V1
  2. Breadboard
  3. Laptop ( Pastikan sudah menginstal Arduino )
  4. Kabel micro USB
  5. 4 buah kabel jumper male to male
  6. 1 buah OLED Display 128x64P
  7. 1 buah magnet

➸ Diagram Skema

Agar teman-teman lebih mudah merakitnya saya akan menampilkan diagram skema rangkaian di bawah ini.

Diagram Skema Rangkaian
Hasil Rangkaian

Karena OLED Display menggunakan protokol komunikasi I2C, pemasangan kabel menjadi sangat sederhana. Pin yang paling cocok untuk komunikasi I2C di ESP32 adalah GPIO 22 (SCL) dan GPIO 21 (SDA). Jika, menggunakan OLED Display dengan protokol komunikasi SPI, gunakan GPIO berikut.

  • GPIO 18: CLK
  • GPIO 19: MISO
  • GPIO 23: MOSI
  • GPIO 5: CS

➸ Daftar Program

Pada percobaan ini saya akan menampilkan dan mendeteksi variasi medan magnet pada layar OLED. Nantinya, magnet tersebut akan saya tempelkan pada chip ESP32. Berikut ini adalah program yang saya gunakan.

// Simple sketch to access the internal hall effect detector on the esp32.
// values can be quite low.
// Brian Degger / @sctv
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int val = 0;

void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
}// put your main code here, to run repeatedly
void loop() {
// read hall effect sensor value
val = hallRead();
// print the results to the serial monitor
display.println(val);
display.display();
delay(1000);
}

Disini saya akan menjelaskan secara singkat bagaimana program ini bekerja. Pada fungsi setup( ) dimulai dengan menginisialisasi serial monitor untuk menampilkan pembacaan sensor. Setelah menginisialisasi, tambahkan jeda dua detik, sehingga OLED memiliki cukup waktu untuk menginisialisasi sebelum menulis teks. Sebelum menulis teks, kita perlu mengatur ukuran teks, warna dan tempat teks akan ditampilkan di OLED. Sedangkan pada fungsi loop( ) adalah tempat untuk membaca sensor. Didalam fungsi loop terdapat hallRead yang berfungsi untuk membaca nilai variasi medan magnet dari pin yang ditentukan yaitu (115200). Pada fungsi loop terdapat juga display.println(val) dan display.display( ) yang akan menampilkan angka variasi medan magnet pada layar OLED ketika magnet tersebut ditempelkan pada chip ESP32.

Pada bagian program ini, saya mendapatkan banyak kendala. Kendala utamanya yaitu hasil dari sensor hall tersebut berjalan, tetapi tampilan dari dari layar OLED tidak menyala. Hasil dari sensor hall tersebut ditampilkan di bagian serial monitor yang ada pada Arduino. Maka dari itu, saya bingung bagaimana caranya untuk menghubungkan sensor hall dengan OLED. Jadi, saya berinisiatif lagi untuk mengotak-atik programnya dengan cara porting. Porting adalah memindahkan atau mengcopy keluaran yang ada di serial.print ke OLED. Akhirnya, setelah berjam-jam mengotak-atik program tersebut tidak sia-sia, rasanya seperti ingin mengeluarkan air mata :’)

Agar teman-teman lebih kebayang gimana sihh hasilnya. Yukk kita simak!

➸ Hasil Eksperimen

Yeayyy! percobaan kali ini berhasil. Agar teman-teman lebih paham lagi gimana prosesnya ketika program yang ditampilkan berjalan dengan menampilkan angka variasi medan magnet pada layar OLED ketika magnet tersebut ditempelkan pada chip ESP32, saya akan memberikan video di akhir percobaan ini ya. Berikut hasil percobaan yang telah saya lakukan.

Magnet yang ditempelkan pada chip ESP32
Hasil variasi medan magnet yang ditampilkan di layar OLED

Pada percobaan ini, saya dapat mempelajari bahwa :

  • ESP32 mampu untuk menjalankan OLED Display dengan baik sesuai dengan perintah program yang dijalankan.
  • OLED Display yang ditampilkan sudah sesuai dengan program yang dijalankan.
  • ESP32 dilengkapi dengan sensor efek hall built-in
  • Sensor efek hall dapat mendeteksi perubahan medan magnet di sekitarnya
  • Pengukuran dari sensor dapat meningkat atau menjadi negatif tergantung pada kutub magnet yang menghadap sensor.

Baiklah, sekian dari saya dan sampai jumpa di project-project selanjutnya! Stay toon!

Selamat Mencoba Teman-teman :)

#Project 6 Protokol Komunikasi

--

--

Cahayanaza
Cahayanaza

No responses yet