Visualization BME280 Sensor Readings Data from Database

Zachrandika Alif Syahreza
6 min readApr 18, 2021

--

Halo para pencari ilmu, balik lagi dengan ku Zachrandika Alif Syahreza mahasiswa Institut Teknologi Bandung jurusan Sistem dan Teknologi Informasi. Setelah pada artikel sebelumnya aku menjelaskan bagaimana kita menyimpan hasil pengukuran sensor BME280 pada basis data, Sekarang kita akan memvisualisasikan data yang terdapat pada basis data tersebut dalam bentuk diagram chart. So tanpa banyak berbicara mari kita mulai penjelasannya.

Project to Visualization Sensor Readings Data to Personal Website

Pada project kali ini aku akan memvisualisasikan hasil pengukuran menggunakan sensor eksternal BME280 yang sudah tersimpan dalam dalam basis data MySQL. Selain itu aku juga akan membuat web yang dapat di akses dari mana saja untuk menampilkan hasil visualisasi tersebut.

Komponen yang dibutuhkan untuk project ini adalah

  • ESP32 Lolin32 Lite
  • Kabel jumper
  • Sensor BME280
  • breadboard
  • Local Area Network
  • Hosting Server
  • MySQL Database

Hosting PHP Application and MySQL Database

Tujuan dari project ini adalah untuk melakukan hosting sebuah web yang menampilkan hasil pembajaan sensor BME280 dengan domain dan akun hosting milik kita pribadi, sehingga kita dapat mengakses dan memvisualisasikan datanya dari manapun dan kapanpun. Berikut ini adalah gambaran alur dari project yang akan kita kerjakan

Project overview

Untuk membuat web hosting personal aku sudah pernah menjelaskan pada artikel sebelumnya. Pada project ini kita hanya tinggal menggunakan web hosting personal tersebut sehingga kita tidak perlu membuatnya kembali. Kalian dapat mengakses artikelnya disini

Preparing MySQL Database

Langkah selanjutnya setelah membuat domain website adalah membuat basis data pada MySQL. Pada project sebelumnya kita sudah pernah membuat Database. Pada project ini kita tinggal menggunakan database tersebut

Selanjutnya adalah membuka phpmyadmin dengan menekan Manage kemudian tekan PhpMyAdmin

Open PhpMyAdmin

Maka secara otomatis akan terbuka halaman PhpMyAdmin pada web browser seperti berikut

Homepage PhpMyAdmin

Pastikan bahwa basis data yang kita buat sebelumnya sudah terlihat pada PhpMyAdmin. Setelah dipastikan ada, langkah selanjutnya adalah menekan basis data tersebut dan tekan menu SQL yang terdapat dibagian atas. Setelah itu masukkan kode program berikut ini

Add SQL program code

Setelah menyalin kode program kedalam kolom SQL, langkah selanjutnya adalah tekan Go. Maka akan muncul tabel baru bernama sensor dan proses pembuatan tabel sensor telah selesai

Prepearing PHP File

Langkah selanjutnya adalah menyiapkan file php yang digunakan untuk memasukkan hasil pengukuran sensor BME 280 ke dalam basis data. Yaitu dengan menekan File Manager pada menu Tools yang ada di website hosting. Maka akan muncul tampilan seperti ini

File Manager

Masuk ke dalam folder public_html dan tekan tombol new file yang ada di bagian atas. Beri nama file dengan nama “post-data.php”, kemudian salin kode program berikut

Sebelum melakukan penyimpanan file tersebut pastikan kita sudah memasukkan informasi pada variabel $dbname, $username, dan $password sesuai dengan informasi basis data yang kita buat diawal tadi

Setelah menyiapkan file php untuk memasukkan data pembacaan sensor kedalam basis data, selanjutnya buat file php yang terletak pada folder public_hmtl untuk menampilkan visualisasi data yang tersimpan dalam basis data ke website yang sudah kita buat tadi. Langkah untuk membuat filenya sama seperti sebelumnya. Namun, berikan nama file dengan nama “esp-chart.php” kemudian salin kode program berikut ini

Sebelum melakukan penyimpanan file tersebut pastikan kita sudah memasukkan informasi pada variabel $dbname, $username, dan $password sesuai dengan informasi basis data yang kita buat diawal tadi

Preparing ESP32 Lolin32 Lite

Setelah menyiapkan website dan basis data, selanjutnya kita akan menyiapkan ESP32 yang akan dihubungkan dengan sensor BME 280 yang kemudian kita hubungkan board ESP32 dengan wifi untuk mengirimkan data hasil pembacaan sensor kedalam basis data

Wiring for BME280 Sensor to the ESP32 Lolin32 Lite

Sensor BMP280 dapat berkomunikasi dengan ESP32 menggunakan protokol komunikasi I2C dan SPI tergantung jenis komponen sensor yang digunakan. Apabila kita menggunakan sensor BME280 4 pin maka protokol komunikasi yang digunakan adalah I2C. Sedangkan apabila kita menggunakan sensor BME280 6 pin kita dapat menggunakan protokol komunikasi I2C maupun SPI. Oleh sebab itu umumnya kita perlu menggunakan pin SDA dan pin SCL pada ESP32 kita. Seperti penjelasan pada bagian wiring BMP180, pin SDA dan pin SCL pada ESP32 yang umum terletalak pada GPIO 21 dan GPIO 22, namun dikarenakan aku menggunakan board ESP32 Lolin32 Lite maka pin SDA dan pin SCL berada pada GPIO 23 dan GPIO 19

Berikut adalah tabel bagaimana cara menghubungkan sensor BME280 dengan ESP32 Lolin32 Lite

Apabila kamu menggunakan protokol komunikasi I2C maka lakukan seperti berikut

Namun jika kamu menggunakan protokol komunikasi SPI maka lakukan seperti berikut

Build the Circuit

Susun semua komponen pada breadboard sesuai skema berikut

Schematic BME 280
  1. Sensor BME280 ditancapkan pada breadboard
  2. GPIO GND dihubungkan dengan ground pada breadboard (kabel hitam)
  3. GPIO 3.3V dihubungkan dengan Vin pada breadboard (kabel merah)
  4. GPIO 23 dihubungkan dengan SDA pada sensor BME280 (kabel biru)
  5. GPIO 19 dihubungkan dengan SCL pada sensor BME280 (kabel ungu)

NB : Pastikan semua komponen dan kabel jumper sudah terpasang dengan baik dan benar. Pastikan juga urutan wiring pada sensor BME280 sudah benar. Untuk melihat urutan dapat dilihat dibagian belakang sensor

Preapering the BME280 Library

Setelah menyusun semua komponen sesuai rangkaian kita harus menyiapkan library untuk menggunakan sensor BME280. Pada artikel sebelumnya aku sudah menjelaskan bagaimana cara mempersiapkan library BME280 agar kita dapat mengunakan sensor BME280 tersebut. Untuk lebih jelasnya dapat dicek disini

Program to Measuring Temperature, Pressure, Altitude, and Humidity with BME280 and Visualize to Personal Website

Setelah menyiapkan semua aspek untuk dapat menggunakan sensor BME280, saatnya kita melakukan pemrograman untuk dapat menyimpan hasil pengukuran sensor tersebut pada basis data. Kalian tinggal salin kode program dibawah ini

Setelah menyalin kode program ke halaman Arduino IDE masukkan SSID dan password yang kalian gunakan diantara tanda petik pada kode const char* ssid = “ ” dan const char* password = “ ”. Selain itu masukkan website yang sudah kalian buat tadi pada kode const char* serverName = “ ”. Setelah itu masukkan address I2C komponen pada kode !bmp.begin( ). Pada kasus ini aku memasukkan address 0x76.

Secara umum kita tidak perlu lagi memanggil fungsi Wire.begin ( ) apabila kita menggunakan GPIO 21 sebagai SDA dan GPIO 22 sebagai SCL. karena secara default kode program menggunakan GPIO 21 dan GPIO 22. Namun karena pada kasus ini aku menggunakan board yang cukup unik, maka aku harus memanggil fungsi Wire.begin (23,19) agar program dapat medeteksi SDA dan SCL yang aku gunakan

Cek COM port yang kalian gunakan dan kemudian unggah kode program tersebut kedalam ESP32. Setelah selesai di unggah buka domain website yang sudah kalian buat dan tambahkan “esp-chart.php”. Maka akan muncul hasil visualisasi pengukuran sensor BME280 yang berbentuk diagram chart

Hasil Percobaan

Conclussion

Dari eksperimen yang aku lakukan dalam membuat Mini Weather Station aku dapat menyimpulkan beberapa hal

  1. Untuk setiap komponen yang menggunakan protokol komunikasi I2C pasti memiliki address masing-masing. Oleh karena itu sebaiknya apabila ingin menggunakan komponen tersebut dianjurkan untuk melakukan scanning address I2C terlebih dahulu agar tidak terjadi error karena ESP32 tidak dapat mendeteksi komponen yang kita gunakan
  2. Alangkah lebih baik untuk setiap project yang menggunakan protokol komunikasi I2C menjalankan fungsi Wire.begin( ) pada programnya. Karena beberapa kali aku mendapatkan error ketika tidak menjalankan fungsi Wire.begin( ) karena SDA dan SCL yang aku gunakan sedikit berbeda
  3. Harus dipastikan bahwa wiring komponen yang kita gunakan sudah terpasang dengan baik agar tidak terjadi error yang sangat menyakitkan hati

--

--

No responses yet