ESP32 Journey: Weather Station

Kevin Cahyadi Giri
5 min readMar 29, 2020

--

Hai semuanya…

Pada blog kali ini, aku akan menceritakan pengalamanku dalam merancang Weather Station, apa itu ?

Weather Station merupakan istilah yang kita pakai untuk menggambarkan kemampuan ESP32 dalam membaca suhu, ketinggian, dan tekanan, yang dibantu dengan sensor seperti BMP180 yang aku gunakan saat ini. Sebenarnya Weather Station juga dapat mengukur kelembapan udara di lingkungan sekitarnya, namun sensor BMP180 kita tidak memiliki kemampuan tersebut sehingga kita tidak akan mengukurnya sekarang. Seluruh informasi ini kemudian akan ditampilkan pada suatu web yang akan kita buka melalui laptop kita. Lalu bagaimana cara kita membuatnya? Simak tulisan dibawah ini :)

Membuat Weather Station

Seperti biasa, kita tidak bisa lanjut tanpa mempersiapkan alat-alatnya terlebih dahulu, jadi mari kita perhatikan alat apa saja yang kita butuhkan

  1. ESP32 yang sudah tertanam pada Project Board
  2. Komputer yang sudah terinstall Arduino IDE
  3. BMP180
  4. Kabel Male-Male
  5. Koneksi internet

Setelah seluruh barang siap, mari kita langsung saja membuat Weather Station dengan mengacu pada referensi berikut ini.

First Step: Hubungkan ESP32 dengan BMP180

Pertama-tama, kita perlu menghubungkan ESP32 kita dengan BMP180 yang kita miliki. Pertama, tanam dulu BMP180 pada Project Board. Kemudian, kita akan menghubungkan keempat pin pada BMP180 dengan pin pada ESP32. Perhatikan gambar dibawah ini untuk mengetahui pasangan antara pin di ESP32 dengan pin di BMP180 dan letak pin-pin pada ESP32.

Pasangan pin ESP32 — BMP180
Pin pada ESP32

Keempat pasangan pin ini dihubungkan menggunakan kabel Male-Male yang telah dipersiapkan sebelumnya. Dalam memasang, tidak perlu terburu-buru, cukup hati-hati saja karena banyak kejadian dimana kami sering mengalami salah pasang pin, sehingga program tidak berjalan semestinya.

Setelah selesai memasang, maka mari kita lanjutkan ke langkah berikutnya.

Second Step: Mengganti Kode

Mengganti kode? Pada referensi dari RandomNerdTutorials yang sudah dicantumkan diatas, telah disediakan kode untuk membuat Weather Station. Lalu mengapa kita harus menggantinya? Itu karena kode yang disediakan khusus untuk BME280, bukan untuk BMP180, sehingga kita perlu menyesuaikan sedikit kode yang telah tersedia agar dapat dijalankan oleh sistem yang kita rancang.

Apa saja yang diganti? Beberapa hal yang memang ditujukan untuk BME280 akan kita ganti agar ditujukan untuk alat BMP180. Berikut beberapa contoh potongan kode yang diganti.

  1. Mengganti import #include <Adafruit_BME280.h> menjadi #include <Adafruit_BMP085.h>
  2. Mengganti variabel bme menjadi bmp: Adafruit_BME280 bme; menjadi Adafruit_BMP085 bmp; kemudian mengganti seluruh variabel yang awalnya dinamakan bme menjadi bmp. Seperti melakukan Find and Replace
  3. Menghapus bagian kode untuk membaca hummidity lingkungan. Hal ini kami lakukan karena BMP180 kami tidak dapat membaca hummidity lingkungannya, sehingga kami memutuskan menghapus kode program untuk melakukan pembacaan hummidity dan kode program HTML untuk membuat field hummidity.

Kode yang telah diganti kurang lebih akan menjadi seperti ini.

Jangan lupa untuk mengganti ssid dengan SSID WiFi yang kamu gunakan dan password dengan password WiFi milikmu.

Third Step: Upload Kodenya

Sekarang, mari kita upload kode yang telah disesuaikan diatas. Tunggu upload sampai berhasil. Jika ternyata upload kode gagal namun langkah-langkah diatas sudah sesuai, coba ulangi kembali upload kodenya. Hal ini dapat terjadi di beberapa komputer jadi tidak perlu panik.

Fourth Step: Find the IP Address

Karena kita akan membuka informasi mengenai suhu, tekanan, dan ketinggian di lingkungan kita pada web, maka tentu kita perlu mengetahui alamat web tersebut.

Kita akan mengakses web tersebut menggunakan IP Addressnya. Untuk mengetahui IP Address yang dimaksud, bukalah Serial Monitor pada Arduino IDE. Serial Monitor kurang lebih akan terlihat seperti dibawah.

Di Serial Monitor terlihat IP Address untuk mengarahkan kita kepada website yang kita ingin tuju.

Final Step: Pergi ke Alamat yang Kita Tuju

Langkah terakhir yaitu pergi ke alamat yang kita tuju. Alamat yang dimaksud adalah IP Address yang kita dapatkan dari Serial Monitor tadi. Berikut adalah contoh screenshot dari smartphone tim kami yang telah mengakses halaman web tersebut.

Dari screenshot diatas dapat terlihat informasi yang kita inginkan telah dituliskan dalam web yang kita rancang pada kode yang kita upload.

Sekarang mari kita fokus ke suhu yang ditampilkan. Suhu menunjukkan angka 29.40 *C. Kita ingin tahu apakah informasi suhu di website akan langsung berubah begitu kita memanaskan BMP180 yang kita miliki. Kami rasa seharusnya suhu di sekitar BMP180 sudah berubah menjadi lebih panas, namun kenyataannya informasi suhu yang ditampilkan di web tidak berubah. Ternyata, untuk dapat mengetahui suhu terkini dari lingkungan di sekitar BMP180, kita perlu me-refresh halaman web tersebut, dan lihatlah akhirnya pada gambar dibawah.

Ta-da! Informasi tentang suhu sudah berubah menjadi 31.00 *C.

Not a Step: Apakah kita mengerjakan ini dengan lancar ?

Dapat dibilang kita dapat mengerjakan proyek ini tanpa hambatan yang berarti. Memang pada situasi pandemi yang sedang mewabah ini, aku dan partnerku, Carissa Aurelia Caca, tidak dapat bertemu secara langsung untuk mengerjakan proyek Weather Station ini. Oleh karena itu kami mengakalinya dengan membagi tugas dan terus terhubung via LINE Call (kalian dapat melihat foto profil LINEku pada screenshot HP Caca diatas, yang berarti kita sedang melakukan voice call saat itu). Mekanisme pembagian tugasnya adalah aku bertugas untuk merancang kode yang akan diupload dan Caca yang merakit sistem ESP32nya dan mengupload kode yang telah kurancang sebelumnya. Mungkin hambatan yang cukup terasa hanyalah waktu connecting Arduino IDE dengan WiFi yang terasa cukup lama sehingga kita menunggu cukup lama untuk mendapatkan IP Address yang kita inginkan. Selain itu, kerjasama ini berjalan sangat lancar, benar kan Caca?

Terima kasih telah membaca dan semoga bermanfaat ^^

--

--

Kevin Cahyadi Giri

Writing is not my hobby but I try to help people who get stuck in developing program in problem that I have been through before