Langsung ke konten utama

LAPORAN PROJECT #6 “COMMUNICATION PROTOCOL PADA ESP32”

"LAPORAN PROJECT #6 SISTEM EMBEDDED II2260"

COMMUNICATION PROTOCOL PADA ESP32

Muhammad Ichsandro Daniswara Noor – 18219094

ABSTRAK

Sensor BME-280 adalah papan sensor yang dapat digunakan untuk mengukur suhu, tekanan atmosfer, ketinggian, dan kelembaban secara akurat dan cepat. Sensor MPU-6050 adalah sebuah modul berinti MPU-6050 yang berisi sebuah MEMS Accelerometer dan sebuah MEMS Gyro yang saling terintegrasi. Percobaan kali ini adalah menggunakan sensor BME-280 dan MPU6050 untuk mengukur suhu, kelembaban, ketinggian, tekanan atmsofer, percepatan gravitasi dan kecepatan gerak serta menampilkan nilainya pada layar oled.

Kata kunci: ESP32, Arduino IDE, BME-280, MPU-6050, Oled Display.

I. PENDAHULUAN

I2C

Inter-Integrated Circuit adalah komunikasi dua jalur antara IC atau modul yang berbeda di mana dua jalur tersebut adalah SDA Serial Data Line) dan SCL (Serial Clock Line). Kedua saluran harus dihubungkan ke suplai positif menggunakan resistor pull-up.  I2C dapat memberikan kecepatan hingga 400Kbps dan menggunakan sistem pengalamatan 10 bit atau 7 bit untuk menargetkan perangkat tertentu pada bus i2c sehingga dapat menghubungkan hingga 1024 perangkat. I2C memiliki panjang komunikasi yang terbatas dan ideal untuk komunikasi onboard. Jaringan I2C mudah diatur karena hanya menggunakan dua kabel dan perangkat baru dapat dengan mudah dihubungkan ke dua jalur bus I2C yang umum. Sama seperti SPI, mikrokontroler umumnya memiliki pin I2C untuk menghubungkan perangkat I2C.

UART

Universal Asynchronous Receiver-Transmitter  adalah implementasi perangkat keras yang mendukung komunikasi serial dua arah, asinkron. UART membutuhkan dua jalur data, satu untuk mengirim dan satu untuk menerima. Jalur transmisi dari satu perangkat (Tx) terhubung ke jalur penerima dari perangkat kedua (Rx) dan sebaliknya untuk transmisi di kedua arah. UART hanya dapat menghubungkan antara dua perangkat. 

UART dapat beroperasi antar perangkat dalam: 

1. Transmisi data Simplex dalam satu arah saja

2. Transmisi data Half Duplex di kedua arah, tetapi tidak secara bersamaan 

3. Transmisi data Full Duplex di kedua arah secara bersamaan 

Kecepatan transmisi data UART disebut sebagai Tingkat BAUD dan secara default disetel ke 115.200 (Tingkat BAUD didasarkan pada kecepatan transmisi simbol tetapi serupa dengan kecepatan bit). Seperti halnya antarmuka ke GPIO, voltase harus dipertimbangkan. Beberapa pin mikrokontroler beroperasi pada 3.3v sementara perangkat lain dapat beroperasi pada 5v atau bahkan lebih tinggi. Konverter level tegangan diperlukan untuk menghubungkan mikrokontroler ke perangkat semacam itu. Pada output UART, bit biasanya diwakili oleh voltase level logic. Bit ini dapat menjadi RS-232, RS-422, RS-485

SPI

Serial Peripheral Interface adalah serial komunikasi dua arah dan sinkron. Seperti I2C, SPI dapat digunakan untuk jarak yang relatif pendek. Tidak seperti I2C, SPI beroperasi pada dupleks penuh, yang berarti data dapat dikirim dan diterima secara bersamaan. Selain itu, dapat beroperasi pada kecepatan transmisi data yang lebih cepat, dengan kecepatan hingga 10 Mbps atau lebih. Ini sangat ideal untuk komunikasi data berkecepatan tinggi.  SPI dapat berkomunikasi dengan banyak perangkat melalui dua cara yaitu pertama adalah dengan memilih setiap perangkat dengan jalur Chip Select. Jalur Chip Select yang terpisah diperlukan untuk setiap perangkat. Kedua adalah melalui daisy chain di mana setiap perangkat terhubung satu sama lain melalui data keluar ke data masuk yang sejalan dengan perangkat berikutnya.

Tidak ada batasan yang ditentukan untuk jumlah perangkat SPI yang dapat dihubungkan. Namun, ada batasan praktis karena batasan jumlah baris pemilihan perangkat keras yang tersedia pada master dalam metode pertama, atau kompleksitas penyampaian data melalui perangkat dalam metode rantai daisy kedua. 

Pin GPIO default yang digunakan untuk SPI:

1. MOSI: Master Out Slave In

2. MISO: Master In Slave Out

3. SCLK: Serial Clock

4. CS: Chip Select

II. METODOLOGI

Metodologi yang digunakan untuk penyelesaian tugas Project #6 diilustrasikan dalam diagram berikut:


Gambar 2.1 Diagram Metodologi

1. Menyiapkan Alat dan Bahan

Pada tahap ini dilakukan persiapan alat dan bahan yang dibutuhkan dalam bentuk software maupun hardware.

2. Perakitan Alat

Pada tahap ini dilakukan perakitan dari berbagai komponen yang telah disiapkan.

3. Membuat Program

Pada tahap ini dilakukan pemograman pada ESP32 yang telah disusun yang dilakukan menggunakan aplikasi Arduino IDE. Pemograman dilakukan agar ESP32 dapat membaca sensor BME-280 dan MPU-6050 menggunakan komunikasi I2C serta menampilkan nilainya pada layar oled.

4. Uji Coba

Pada tahap ini dilakukan uji coba dengan mengirimkan program yang telah dibuat dan kemudian menjalankan perintah pada ESP32.

5. Evaluasi

Pada tahap ini dilakukan evaluasi dari awal hingga akhir uji coba apakah perintah berhasil dilakukan oleh ESP32 sesuai yang diinginkan.

III. HASIL DAN ANALISIS

3.1. Persiapan Alat dan Bahan

a. ESP32 Board DevKit V1 (30 pins)


b. BME-280


c. MPU-6050


d. OLED Display


e. Jumper Wires


f. Breadboard


3.2 Schematic Diagram

Berikut ini merupakan diagram schematic yang digunakan untuk perakitan alat dalam project kali ini yang didesain dengan fritzing:




Berdasarkan diagram tersebut terdapat sensor BME-280, sensor MPU-6050, dan layar oled. Port VCC pada setiap komponen dikoneksikan ke port 3v3 pada ESP32. Port GND pada setiap komponen dikoneksikan ke port GND pada ESP32. Port SCL pada setiap komponen dikoneksikan ke GPIO22 pada ESP32. Port SDA pada setiap komponen dikoneksikan ke GPIO21 pada ESP32.

3.3 Hasil Perakitan Alat

Berikut ini merupakan hasil perakitan alat sesuai diagram schematic yang telah dibuat:



3.4 Kode Program



3.5 Menginstall Library BME-280 dan MPU-6050


3.6 Menjalankan Program

Berdasarkan kode program yang telah dibuat. Pada bagian setup dilakukan verifikasi untuk mengecek apakah sensor sudah terpasang atau belum. Pada bagian loop dilakukan pembacaan sensor lalu secara bergantian nilai yang didapat ditampilkan pada layar oled.

Setelah melakukan verifikasi dan mengupload program, ESP32 dapat melakukan perintah dengan baik dan program berjalan dengan sesuai. Sensor BME-280 dapat mengukur suhu, kelembaban, tekanan atmsofer, dan ketinggian. Sensor MPU-6050 dapat mengukur percepatan gravitasi dan kecepatan gerak. Layar oled dapat menampilkan hasil pengukuran setiap sensor.



Berikut ini adalah video hasil uji coba:


3.7 Evaluasi

Setelah melakukan beberapa percobaan mulai dari perakitan hingga tahap uji coba, ada beberapa kendala yang dialami. Kendala pertama adalah sensor bme-280 tidak dapat terdeteksi oleh esp32. Hal ini terjadi dikarenakan sensor bme-280 belum dilakukan penyolderan dan kabel menancap pada GPIO yang salah. Solusinya adalah dengan menyolder setiap pin pada bme-280 dan membetulkan posisi kabel ke GPIO yang sesuai. Kedua Layar Oled tidak bisa menampilkan seluruh nilai hasil pembacaan sensor. Hal ini dapat diselesaikan dengan cara mengubah kode program dan menampilkan hasil pembacaan sensor secara bergantian.

IV. KESIMPULAN

Dari percobaan yang telah dilakukan ada beberapa hal yang dapat disimpulkan:

4.1 Alat dan Bahan yang digunakan dalam percobaan ini meliputi komponen hardware yaitu ESP32, Sensor BME-280,  Sensor MPU-6050, Layar Oled, Breadboard, Jumper wires, microUSB, laptop/komputer, dan komponen software yaitu Arduino IDE.

4.2 Proses perakitan alat disesuaikan dengan diagram schematic dan semua komponen dapat berfungsi dengan baik.

4.3 Proses verifikasi dan pengiriman kode program ke ESP32 berjalan dengan baik tanpa kendala.

4.4 Secara umum, ESP32 berhasil melakukan perintah dengan baik yang ditandai dengan Sensor bme-280, mpu-6050, dan Oled Display dapat berkomunikasi dengan Protocol I2C. Selain itu sensor bme-280 dapat mengukur suhu, kelembaban, tekanan atmsofer, dan ketinggian serta sensor mpu-6050 dapat mengukur percepatan gravitasi dan kecepatan gerak. Layar Oled juga dapat menampilkan seluruh nilai hasil pengukuran dengan baik.

V. DAFTAR PUSTAKA

Leslie, Aasestrand, P., Tannenbaum, J., Paulo, Gary, Albin, T., . . . Stockton, A. (2020, July 30). ESP32 with BME280 using Arduino Ide (PRESSURE, Temperature, humidity). Retrieved February 21, 2021, from https://randomnerdtutorials.com/esp32-bme280-arduino-ide-pressure-temperature-humidity/

Domenico, Hennig, K., Sacha, Alex, Sygghy, Santos, S., . . . Chuck. (2021, February 09). ESP32 MPU-6050 accelerometer and Gyroscope (Arduino). Retrieved February 21, 2021, from https://randomnerdtutorials.com/esp32-mpu-6050-accelerometer-gyroscope-arduino/

Software. (n.d.). Arduino. https://www.arduino.cc/en/software/


Komentar

Postingan populer dari blog ini

LAPORAN PROJECT #2 “DIGITAL IO PADA ESP32”

" LAPORAN PROJECT #2 SISTEM EMBEDDED II2260" “ DIGITAL IO PADA ESP32 ” Muhammad Ichsandro Daniswara Noor – 18219094 ABSTRAK GPIO merupakan pin sinyal digital uncommitted pada  papan sirkuit elektronik yang dapat digunakan sebagai input atau output, atau keduanya, dan dapat dikontrol oleh pengguna di  runtime .   Digital IO  adalah singkatan dari Digital Input and Output. Input Digital memungkinkan mikrokontroler untuk mendeteksi  logic states , dan Output Digital memungkinkan mikrokontroler untuk mengeluarkan  logic states .  Percobaan kali ini adalah membaca input digital dari Push Button untuk mengontrol output digital (LED) pada ESP32 yang diprogram menggunakan Arduino IDE. Kata kunci: ESP32, Arduino IDE, GPIO, Digital IO. I. PENDAHULUAN GPIO General Purpose  Input / Output  (  GPIO  ) merupakan pin sinyal digital uncommitted pada  sirkuit terpad u  atau papan sirkuit elektronik yang dapat digunakan sebagai input a...

LAPORAN PROJECT #8 "WIFI PADA ESP32"

" LAPORAN PROJECT #8 SISTEM EMBEDDED II2260" “WIFI  PADA ESP32 ”      Muhammad Ichsandro Daniswara Noor – 18219094 ABSTRAK WiFi adalah keluarga dari jaringan nirkabel protokol, berdasarkan IEEE 802.11 keluarga standar, yang biasanya digunakan untuk jaringan area lokal perangkat dan Internet akses, yang memungkinkan perangkat terdekat digital untuk bertukar data dengan gelombang radio .  Percobaan kali ini adalah menggunakan Wifi pada ESP32 agar dapat berkomunikasi dan saling mengirim data dengan Web Server. Kata kunci: ESP32, Arduino IDE, Wifi, Web Server. I. PENDAHULUAN WIFI WiFi  adalah keluarga dari jaringan nirkabel protokol, berdasarkan IEEE 802.11 keluarga standar, yang biasanya digunakan untuk jaringan area lokal perangkat dan Internet akses, yang memungkinkan perangkat terdekat digital untuk bertukar data dengan gelombang radio. Ini adalah jaringan komputer yang paling banyak digunakan di dunia, digunakan secara global di jaringan rumah da...

LAPORAN PROJECT #9 "WEB SERVER PADA ESP32"

" LAPORAN PROJECT #9 SISTEM EMBEDDED II2260" “WEB SERVER  PADA ESP32 ” Muhammad Ichsandro Daniswara Noor – 18219094 ABSTRAK Web Server adalah perangkat lunak server, atau perangkat keras yang didedikasikan untuk menjalankan perangkat lunak ini, yang dapat memenuhi permintaan klien di World Wide Web. Percobaan kali ini adalah menggunakan wifi pada ESP32 untuk menginisiasi Web Server agar dapat menampilkan hasil pembacaan sensor bme-280 pada web server. Kata kunci: ESP32, Arduino IDE, Web Server, BME-280. I. PENDAHULUAN Web Server Web Server adalah perangkat lunak server, atau perangkat keras yang didedikasikan untuk menjalankan perangkat lunak ini, yang dapat memenuhi permintaan klien di World Wide Web. Server web dapat, secara umum, berisi satu atau lebih situs web. Server web memproses permintaan jaringan yang masuk melalui HTTP dan beberapa protokol terkait lainnya. Fungsi utama server web adalah untuk menyimpan, memproses, dan mengirimkan halaman web ke klien. Komunika...