Integrating BME280 Sensor with Database

Zachrandika Alif Syahreza
7 min readApr 10, 2021

--

Hai para pencari ilmu, balik lagi dengan ku Zachrandika Alif Syahreza mahasiswa Institut Teknologi Bandung jurusan Sistem dan Teknologi Informasi. Pada artikel sebelumnya aku sudah menjelaskan bagaimana kita dapat menggunakan sensor BME280 untuk mengukur suhu, tekanan, dan kelembaban dan menampilkannya pada web server. Setelah berhasil melakukannya pada artikel kali ini aku akan menjeleskan bagaimana cara kita menyimpan hasil pengukuran sensor BME280 pada basis data. So tanpa banyak berbicara mari kita mulai penjelasannya.

Project to Insert Sensor Readings Data Into a MySQL Database

Pada project kali ini aku akan memasukkan hasil pengukuran menggunakan sensor eksternal BME280 ke dalam basis data MySQL. Selain itu aku juga akan membuat web yang dapat di akses dari mana saja untuk menampilkan hasil pembacaan sensor, waktu, dan informasi lain dari database.

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

Pada project ini aku merekomendasikan kalian untuk menggunakan Hostinger untuk melakukan hosting karena platform tersebut menyediakan layanan hosting yang gratis dan mudah untuk digunakan sehingga dapat mendukung project yang akan kita buat kali ini.

Untuk bisa menggunakan platform hosting ini pertama kita masuk ke 000webhost.com dan melakukan sign up. Setelah sign up lakukan verifikasi email yang telah di daftarkan. Maka akan muncul tampilan seperti ini

Create Website

Masukkan nama website yang diinginkan dan password yang diinginkan. Setelah itu tekan Submit. Maka akan muncul tampilan seperti ini

Upload Site

Jika sudah muncul tampilan seperti ini tekan Select pada bagian Upload your site. Setelah itu akan muncul tampilan seperti ini

Website running

Setelah muncul nama website dan terdapat status running, maka kamu sudah berhasil membuat domain website pribadi yang dapat digunakan untuk menampilkan hasil pengukuran sensor BME280 yang tersimpan pada basis data

Preparing MySQL Database

Langkah selanjutnya setelah membuat domain website adalah membuat basis data pada MySQL

Pertama, tekan Manage Website pada tampilan seperti berikut

Press Manage Website

Setelah itu pilih Tools yang terdapat pada menu bagian kiri

Press Tools

Setelah menekan Tools langkah selanjutnya adalah menekan Database Manager yang terdapat menu bagian kiri

Press Database Manager

Setelah menekan Database Manager maka akan muncul tulisan Make New Database. Tekan tulisan tersebut dan masukkan nama, username, dan password sesuai yang diinginkan. Setelah itu tekan Create untuk menyelesaikan proses pembuatan

Make Database

Setelah basis data berhasil dibuat maka daftar basis data akan bertambah. Simpan nama basis data, username basis data, dan password.

Langkah selanjutnya adalah membuka phpmyadmin dengan menekan Manage kemudian tekan PhpMyAdmin

Open PhpMyAdmin

Maka akan 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. Tunggu hingga muncul tampilan seperti ini

Query Succesfull

Apabila muncul tampilan seperti diatas dan didalam basis data yang kita buat muncul sebuah tabel baru maka proses pembuatan tabel sensorData berhasil dibuat

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-esp-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 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-data.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

Wiring BME280 I2C

Namun jika kamu menggunakan protokol komunikasi SPI maka lakukan seperti berikut

Wiring BME280 SPI

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 Insert to MySQL Database

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 “post-esp-data.php". Maka akan muncul hasil pengukuran suhu yang sudah tersimpan dalam basis data.

Result

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