Panel Surya untuk Stasiun Cuaca dengan NodeMCU

Tertunda, namun tidak terlupakan. Begitulah kurang lebih kondisi Stasiun cuaca dengan NodeMCU, setelah update terakhir bulan Januari 2019 yang lalu. Hal ini disebabkan karena setelah percobaan dengan panel surya, ditemukan bahwa panel surya sebesar 2 watt tidak cukup untuk mengisi batere 18650 dalam kondisi normal sehari-hari.

Pencarian panjang pun dimulai untuk menemukan panel surya yang cukup kuat untuk mengisi batere 18650, sekaligus digunakan untuk sumber tenaga NodeMCU. Sempat terpikir untuk merangkai panel surya 1 watt secara paralel sebanyak 5 buah untuk mendapatkan daya maksimum 5 watt. Tapi, sebelum ide terlaksana, saya menemukan panel surya yang kira-kira cocok dengan kebutuhan: memiliki keluaran tegangan maksimum sekitar 6 volt dengan daya maksimum 5 watt. Ukuran panel surya ini kurang lebih selebar telapak tangan saya.

Panel Surya untuk NodeMCU dengan batere 18650

Merangkai Stasiun Cuaca

Setelah mendapatkan panel surya sebagai komponen terakhir, kini tiba saatnya untuk merakit stasiun cuaca. Sebagai kotak untuk melindungi stasiun cuaca, saya menggunakan kotak hitam berukuran 12.5 x 8.5 x 5 cm.

Keseluruhan rangkaian disusun di dalam box seperti pada foto di bawah ini.

Layout rangkaian stasiun cuaca dalam kotak

Agar sensor BME 280 bisa mengukur suhu, kelembaban dan tekanan dengan tepat, maka perlu dibuat lubang kecil. Lubang kecil juga perlu dibuat di atas TP4056 untuk jalur kabel menuju panel surya.

Tiap-tiap komponen sudah dijelaskan di bagian-bagian tersendiri sebagai berikut:

  • NodeMCU untuk stasiun cuaca, dibahas dalam artikel dalam tautan ini
  • TP4056 untuk mengisi batere Li-Ion, dibahas dalam artikel dalam tautan ini
  • 3.3V Low Drop Out (LDO) Voltage Regulator, untuk menyesuaikan tegangan batere Li-Ion menjadi 3.3V sesuai kebutuhan NodeMCU, dibahas dalam artikel dalam tautan ini.

Memasang Sensor Cuaca dan Panel Surya

Setelah semua komponen dirakit didalam kotak, stasiun cuaca siap dipasang dan dihubungkan dengan panel surya.

Pemasangan stasiun cuaca dan panel surya memiliki tantangan tersendiri. Agar pembacaan sensor suhu lebih akurat, stasiun cuaca harus diletakkan di tempat terbuka yang terhindar dari sinar matahari langsung, bisa dilewati angin, dan tidak boleh terlalu dekat dengan tanah. Hal ini bertentangan dengan panel surya yang justru membutuhkan sinar matahari langsung sebanyak mungkin.

Untuk itu, sebagai lokasi stasiun cuaca, saya memilih menempelkan box dibawah plafon di teras depan lantai 2. Plafon ini berjarak cukup jauh, sekitar 2 meter dari lantai, dan terlindung dari sinar matahari langsung.

Stasiun cuaca YD0SPU-13, dipasang di bawah plafon dengan menggunakan double tape

Panel surya yang membutuhkan sinar matahari langsung dipasang di atas atap rumah. Untuk menghubungkan panel surya dan stasiun cuaca, saya menggunakan kabel tembaga bekas kabel telepon sepanjang 2 meter.

Panel surya dipasang di atas atap. Di latar belakang terlihat panel surya 50 watt yang sudah lebih dulu terpasang untuk keperluan lain

Performance

Untuk menutup artikel ini, saya akan membagikan performa stasiun cuaca selama 2 hari terpasang.

  • Hasil pengukuran stasiun cuaca dengan diletakkan di bawah plafon cukup akurat. Dengan terlindung dari sinar matahari langsung, maka suhu yang ditunjukkan stasiun cuaca juga tidak terlalu tinggi dan lebih akurat. Hasil pengukuran bisa dilihat di tautan ini
  • Dalam kondisi setengah mendung, batere Li-Ion sudah terisi penuh sekitar jam 12 siang
  • Pengukuran tegangan acak di siang hari menunjukkan tegangan panel surya antara 6-7 volt.

Selamat mencoba. Semoga semakin banyak stasiun cuaca amatir di Indonesia untuk membantu perkiraan cuaca.

Isi Ulang Batere LiIon 18650 Dengan Panel Surya

Salah satu catu daya yang ideal untuk IoT adalah menggunakan panel surya dan batere yang bisa diisi ulang. Panel surya digunakan sebagai catu daya untuk perangkat IoT dan mengisi batere di siang hari. Ketika matahari sudah terbenam di malam hari, batere akan menjadi catu daya untuk perangkat IoT.

Untuk perangkat IoT yang kecil, seperti stasiun cuaca berbasis NodeMCU, batere isi ulang 18650 cocok untuk digunakan sebagai catu daya. Hal ini sudah saya ulas di tulisan sebelumnya. Batere 18650 ini bisa diisi ulang dengan menggunakan panel surya, sehingga tidak perlu diisi ulang dengan catu daya PLN. Dan kebetulan, kontroller TP4056 juga bisa digunakan untuk mengisi batere 18650 dengan panel surya.

Panel surya yang digunakan sebaiknya menggunakan tegangan 5V, menyesuaikan dengan tegangan masuk board TP4056. Untuk daya panel surya yang dibutuhkan sangat tergantung pada beban. Untuk Stasiun Cuaca dengan NodeMCU saya menggunakan 2 buah panel surya, masing-masing memiliki daya 1 watt. Total daya yang saya dapatkan adalah 2 watt.

Namun, perlu diingat bahwa daya 2 watt ini hanya akan saya dapatkan dalam situasi sinar matahari yang sangat terik. Perkiraan saya bahwa dalam keadaan mendung, di pagi maupun sore hari, saya bisa mendapatkan sekitar 1 watt dari kedua panel surya. Artinya, arus maksimum yang saya dapatkan adalah 200 mA. Arus ini tentu dibawah konfigurasi board TP4056 dari pabrik. Oleh karena itu TP4056 ini perlu dirubah dengan mengganti R3, sesuai tulisan saya sebelumnya.

Setelah modifikasi TP4056 selesai, maka tinggal menyambungkan kedua panel surya secara paralel ke Vin dari TP4056. Mungkin bisa juga sih menggunakan colokan MicroUSB, tapi kok lebih praktis kalau disambung secara langsung. Diagram sambungan panel surya, TP4056 dan batere 18650 bisa dilihat di diagram dibawah ini.

Setelah panel surya selesai disambungkan, keseluruhan rangkaian diletakkan di luar, di bawah sinar matahari sore. Ketika panel surya diarahkan pada sinar matahari langsung, lampu merah di TP4056 langsung menyala, tanda pengisian sedang berlangsung. Dengan mengatur R3 maka arus pengisian bisa diatur di sekitar 150 – 200 mA, cukup untuk IoT Stasiun Cuaca dengan NodeMCU.

Catu Daya 3.3V NodeMCU Dengan Batere Li-Ion 18650

Cara yang paling mudah untuk menyediakan listrik untuk NodeMCU adalah menggunakan catu daya PLN, dengan menggunakan micro USB. Cukup dengan menggunakan charger telepon genggam, colok ke listrik, dan colok micro USB ke NodeMCU, dan NodeMCU pun sudah bisa bekerja dengan baik.

Akan tetapi, catu daya listrik dari PLN ini kurang cocok untuk NodeMCU yang akan digunakan sebagai IoT, yang pada umumnya tidak memiliki akses ke catu daya PLN. Untuk itu, catu daya dengan batere merupakan pilihan yang paling masuk akal. Permasalahannya sekarang, batere seperti apa yang cocok untuk NodeMCU yang tidak terhubung dengan akses catu daya PLN, atau tidak harus sering-sering diganti?

Batere Li-Ion (atau Li-Po) seri 18650 sepertinya menjadi pilihan yang cukup baik. Tegangan batere ini yang tertulis adalah 3.7 volt, cukup mendekati tegangan 3.3v yang dibutuhkan oleh NodeMCU ESP8266. Batere ini juga memiliki kapasitas besar, sehingga tidak perlu sering-sering diganti atau di charge. Dan kelebihan dari batere 18650 adalah bisa di isi ulang dengan menggunakan panel surya, tentunya dengan menggunakan sirkuit tertentu untuk mengatur pengisian ulang.

Tulisan ini berisi catatan menggunakan batere 18650 sebagai catu daya untuk NodeMCU sebagai stasiun cuaca.

Kontroler TP40560

Pengaturan pengisian batere dan daya yang disalurkan ke NodeMCU dilakukan oleh chip TP4056. Chip ini bisa dibeli dalam keadaan terpasang dalam board kecil, sesuai dengan gambar dibawah ini.

Ada 2 jenis board TP4056, tanpa terminal beban terpisah, dan dengan terminal beban terpisah dari batere. Board TP4056 dengan terminal beban terpisah seperti gambar diatas memiliki chip DW01 yang berfungsi untuk melindungi batere dengan memutuskan beban apabila batere 18650 hampir habis. Dengan harga yang lebih mahal sedikit, saran saya untuk memilih TP4056 dengan proteksi batere, dengan terminal terpisah untuk batere dan beban.

Dalam foto diatas, board TP4056 yang saya dapatkan, IC yang digunakan adalah TC4056, bukan TP4056. Ada yang menyebutkan kalau chip TC4056 adalah tiruan dari TP4056. Sejauh ini saya tidak menemukan perbedaan yang berarti.

Regulator Tegangan 3.3v Menggunakan XC6206P332MR

Percobaan pertama dengan menyambungkan keluaran dari board TP4056 ke Vin dan GND dari NodeMCU tidak berhasil. Pengukuran menunjukkan bahwa tegangan Vin-GND adalah 4.02 volt, sesuai dengan tengangan batere 18650 yang terisi penuh. Akan tetapi pengukuran di pin 3V-GND NodeMCU menunjukkan tegangan sebesar 2.5-2.8 volt.

Usut punya usut, ternyata hal ini disebabkan oleh regulator tegangan AMS1117 yang digunakan oleh NodeMCU. Regulator ini membutuhkan tegangan masuk minimal 4.7 volt untuk bisa mengeluarkan tegangan 3.3 volt. Batere 18650 memiliki tegangan maksimal sebesar 4.2 volt dalam keadaan penuh. Dari sini, sudah jelas bahwa diperlukan cara lain.

Ada 3 cara yang bisa digunakan untuk mendapatkan tegangan 3.3 volt dari batere 18650:

  1. Menggunakan DC Boost Converter untuk menaikkan keluaran batere 18650 menjadi 5 volt, lalu menghubungkan tegangan 5 volt pada Vin dari NodeMCU. Cara ini agak boros dari sisi penggunaan daya, karena ada 2 kali konversi tegangan oleh DC Boost Converter menjadi 5 volt, dan AMS1117 pada board NodeMCU dari 5 volt menjadi 3.3 volt.
  2. Mengganti chip AMS1117 pada board NodeMCU dengan regulator tegangan yang bisa menghasilkan tegangan 3.3 volt dari 3.7 volt tegangan 18650. Regulator ini biasa disebut Lod Drop Out (LDO) regulator. Cara ini adalah paling baik, tapi perlu dilakukan dengan teliti dan bisa merusak board NodeMCU. Masalah yang lebih besar adalah menemukan pengganti AMS1117, dengan pin dan ukuran yang sesuai
  3. Cara ketiga dan yang saya pilih adalah dengan memasang chip pengganti AMS1117 di board berbeda. Board ini akan menjadi sebuah jajaran pin untuk sumber daya 3.3 volt untuk sensor.

Chip regulator yang saya pilih adalah XC6206P332MR. Chip ini hanya membutuhkan tegangan sekitar 3.6v untuk menghasilkan tegangan 3.3 volt. Kemasan yang tersedia di toko online adalah dalam kemasan SOT-23, dengan 3 kaki. Kemasan ini ternyata cukup kecil, tapi masih bisa dipasang di PCB dengan solder biasa. Kebetulan jarak antara 2 kaki cukup sesuai dengan jarak 2 lubang kaki di PCB. Dalam gambar dibawah ini, chip XC6206 adalah kotak hitam ditengah.

Keluaran dari XC6206 ini bisa langsung disambungkan dengan salah satu pin 3.3 volt dari NodeMCU, bukan pada pin Vin.

Kombinasi antara TP4056 dan XC6206 ini telah berjalan selama 2 hari. Dengan batere 18650 yang penuh sejauh ini NodeMCU masih bekerja dengan baik. Berikut ini diagram TP4056 – Batere 18650 – XC6206 dan NodeMCU

Stasiun Cuaca dengan NodeMCU: DHT22, WiFi dan ThingSpeak

Setelah membahas target akhir dari Stasiun Cuaca Mandiri dengan NodeMCU di artikel sebelumnya, tahap awal pembuatan stasiun cuaca dimulai dengan hal yang paling dasar, yaitu membaca data lingkungan dan mengirimkannya ke internet. Untuk tahap awal ini cukup dilakukan dengan sebuah sensor, yaitu DHT22.

Merakit NodeMCU dengan Sensor DHT22

Sebagai sensor lingkungan pertama, dipilih sensor DHT22. Sensor ini memiliki kemampuan untuk membaca suhu dan kelembaban. Sensor DHT22 dijual dalam 2 bentuk: kemasan plastik dengan 4 kaki atau kemasan plastik diatas PCB kecil dengan 3 kaki. Pastikan untuk memilih kemasan di atas PCB kecil dengan 3 kaki sehingga tidak dibutuhkan pull-up resistor terpisah.

Ketiga kaki sensor DHT22 memiliki fungsi sebagai berikut: Vcc, DATA dan GND. Nama dari kaki sensor DHT22 ini sudah cukup mudah dimengerti. Untuk komunikasi dengan NodeMCU, maka kaki dari DHT22 dihubungkan dengan pin NodeMCU sebagai berikut:

  1. DHT22-Vcc –> NodeMCU 3V
  2. DHT22-GND –> NodeMCU GND
  3. DHT22-Data –> NodeMCU D3 (GPIO 0)

Setelah perakitan NodeMCU dan sensor DHT22 selesai, kita masuk kedalam pemrograman. Saya memilih untuk menggunakan Arduino IDE karena banyaknya library untuk berbagai sensor, dan juga contoh yang mudah dicari. Arduino IDE bisa diunduh di tautan ini.

Membaca Sensor DHT22

Untuk membaca sensor DHT22, silahkan gunakan program di bawah ini. Program ini akan membaca suhu, kelembaban, dan menghitung index suhu dari hasil pengukuran. Hasil dari pembacaan dan perhitungan akan ditampilkan melalui port Serial. Dari Arduino IDE, data yang dikirim dari NodeMCU melalui port serial bisa dibaca melalui menu Tools --> Serial Monitor.

Beberapa komentar dalam program dibawah ini akan membantu untuk memahami struktur dari program tersebut.

https://gist.github.com/artistio/00d3ec1c9742d5b37950ddc05ba348a0

Setelah di upload ke NodeMCU, hasil pembacaan DHT22 bisa dilihat di Serial Monitor seperti di bawah ini:

Menghubungkan dengan WiFi

Setelah bisa membaca sensor, untuk mengirimkan data ke server IoT dibutuhkan koneksi internet. NodeMCU dilengkapi dengan built-in WiFi untuk bisa terkoneksi dengan internet. Untuk menggunakan koneksi WiFi, kita akan memanfaatkan library WiFi Arduino yang sudah ada, dengan menambahkan kode dibawah ini kedalam kode pembacaan DHT22:

https://gist.github.com/artistio/7bc816ed7afe0437cb7ab94814acecd6

Ada 2 hal yang harus dilakukan sebelum kode diatas bisa digunakan:

  • SSID dan Password untuk WiFi harus diubah sesuai dengan nama dan password WiFi yang akan digunakan
  • Kode diatas menggunakan fungsi startWiFi, yang didefinisikan dalam tautan file startWiFi.ino. File ini harus diletakkan dalam folder yang sama dengan folder kode utama NodeMCU.

Apabila koneksi ke WiFi berhasil, maka dari serial monitor akan terlihat nama WiFi dan IP address yang didapatkan seperti gambar di bawah ini

Mengirimkan Hasil Pengukuran ke ThingSpeak

Setelah berhasil membaca sensor dan terhubung dengan internet, sekarang waktunya untuk menambahkan baris kode untuk mengirimkan hasil pembacaan ke internet. Data IoT seperti hasil pembacaan suhu dan kelembaban ini dikirimkan ke server IoT untuk diproses lebih lanjut. Untuk saat ini saya mencoba mengirimkan data ke ThingSpeak. Untuk itu, diperlukan account di server ThingSpeak.

Ada 2 hal yang perlu didapatkan dari ThingSpeak setelah membuat account. Yang pertama adalah API Key sebagai penanda bahwa kita adalah pemilik data tersebut, dan Channel ID. Channel ID ini bisa didapatkan dengan membuat Channel, yang berisi kumpulan data yang relevan untuk analisis.

https://gist.github.com/artistio/60905fe1e4f64be5d109d182cc54442c

Sebelum baris kode diatas dipasang di NodeMCU, ada beberapa hal yang harus dirubah terlebih dahulu:

  • Sama seperti tahap sebelumnya, baris-baris yang berisi WiFi ID dan passcode harus diupdate
  • Baris-baris konfigurasi untuk ThingSpeak juga perlu disesuaikan dengan akun ThingSpeak masing-masing
  • Kode untuk fungsi sendThingSpeak berada di berkas sendThingSpeak.ino di tautan ini. Berkas ini harus diletakkan di folder yang sama dengan folder kode utama NodeMCU

Hasil pengiriman bisa dilihat di Serial Monitor. Apabila pengiriman data ke ThingSpeak berhasil, maka hasil pengukuran DHT22 juga bisa dilihat di ThingSpeak, seperti dalam tautan stasiun cuaca YD0SPU-13 ini.

Memasuki Mode Deep Sleep

Langkah terakhir dari stasiun cuaca ini adalah memasuki mode deep sleep. Data pada stasiun cuaca biasanya dikirimkan dalam interval tertentu. Dalam FAQ dari Citizen Weather Observation Program (CWOP), rekomendasi pengiriman data cuaca adalah setiap 5 menit atau lebih jarang. Karena akan dipasang dengan sumber daya batere, maka selama interval pengukuran NodeMCU akan berada dalam Mode Deep Sleep, yaitu mode yang memiliki konsumsi daya paling kecil

Kode untuk memasuki Mode Deep Sleep kita tambahkan setelah pengiriman data ke ThingSpeak. Kita juga menambahkan konstanta baru yang akan menentukan seberapa lama NodeMCU akan berada dalam Mode Deep Sleep.

https://gist.github.com/artistio/05dbf6b931c79d8458e50d17222befd7

Hasil perubahan kode dengan menambahkan Mode Deep Sleep bisa dilihat dari Serial Monitor.

Sampai saat ini NodeMCU masih belum terbangun secara otomatis setelah periode Deep Sleep berakhir. untuk itu ada 1 langkah terakhir yang perlu dilakukan.

Saat ini NodeMCU sudah bisa dilepas dari komputer, dan bisa dihubungkan dengan catu data DC 5V melalui micro USB, misalnya dengan charger telepon genggam. Setelah dilepas dari komputer, pin D0 dari NodeMCU harus dihubungkan dengan pin RST. Koneksi antara pin D0 dan pin RST ini yang akan membangunkan NodeMCU ketika interval Deep Sleep telah berakhir.

Dan ketika akan melalukan konfigurasi lagi pada NodeMCU, jangan lupa koneksi pin D0 dan pin RST ini dilepas, sebelum NodeMCU dihubungkan dengan komputer.

Selamat mencoba. Apabila ada pertanyaan atau masukan, silahkan tinggalkan pesan atau komentar di bawah ini.

Bikin Sendiri Stasiun Cuaca Mandiri dengan NodeMCU

Pernalh lihat laporan cuaca di televisi atau di internet? Laporan cuaca ini sebenarnya dibuat dari gabungan beberapa sensor, ditambahkan dengan analisa dan prediksi yang dibuat berdasarkan data tersebut. Untuk analisa dan prediksi mungkin memerlukan ilmu pengetahuan tentang cuaca dan pengalaman. Tetapi, untuk membuat stasiun cuaca yang hanya mengumpulkan data hanya membutuhkan pengetahuan elektronika dan komputer.

Di Amerika banyak warga yang membuat stasiun cuaca sendiri, yang tergabung dalam program Citizen Weather Observation Program (CWOP). Data dari CWOP ini digunakan oleh NOAA (Badan cuaca Amerika) untuk penelitian, analisa dan prediksi cuaca. Alangkah baiknya juga apabila CWOP ini bisa di adopsi di Indonesia, dan datanya juga dimanfaatkan oleh BMKG.

Somebody has to start, right? Oleh karena itu saya memulai stasiun cuaca kerakyatan ini dengan membuat stasiun cuaca sendiri di rumah.

Kontroler: Antara Raspberry Pi, Arduino dan NodeMCU

Untuk project stasiun cuaca ini awalnya saya mempertimbangkan antara Raspberry Pi, Arduino dan NodeMCU.Raspberry Pi memiliki keuntungan karena berjalan dengan sistem operasi Linux. Sistem operasi Linux menyediakan level networking yang baik, dan pilihan bahasa pemrograman untuk memproses data sensor. Akan tetapi sistem operasi Linux membutuhkan daya listrik yang cukup besar, sehingga membutuhkan batere yang besar pula apabila dijalankan dengan panel surya.

Arduino dan NodeMCU memiliki kebutuhan daya yang lebih kecil. Kedua modul ini juga sudah memiliki regulator yang bisa menerima tegangan lebih besar dari 5v, sehingga bisa dihubungkan langsung batere. Arduino menggunakan mikrokontroler ATmega sedangkan NodeMCU menggunakan kontroler ESP8266. Apabila keduanya dibandingkan, ESP8266 memiliki keuntungan dengan ketersediaan WiFi dan konsumsi daya yang lebih rendah dengan kemampuan deep sleep. Sementara Arduino masih membutuhkan WiFi shield tambahan.

Sedikit catatan tentang konsumsi listrik. Stasiun cuaca ini akan memberikan pengukuran setiap 5-15 menit sekali. Di antara pengukuran, stasiun cuaca akan memasukin sleep mode untuk mengurangi penggunaan listrik, terutama apabila menggunakan panel surya. Arduino memang memiliki sleep mode. Tetapi, pengkabelan dan pemrograman sleep mode di Arduino lebih rumit, dibandingkan NodeMCU. Untuk NodeMCU, deep sleep hanya membutuhkan kabel dari pin D0 ke RST, dan dalam pemrograman cukup memanggil fungsin ESP.deepSleep.

Sensor Pengukuran Stasiun Cuaca

Selanjutnya, sampai stasiun cuaca bisa mengukur data-data cuaca, seperti suhu, kelembaban, tekanan udara, dan lain-lain, dibutuhkan beberapa sensor. Pemasangan sensor ini dilakukan secara beberapa tahap supaya kalau ada kendala bisa dengan mudah diperbaiki. Berikut daftar pengukuran, sensor dan tahapan pemasangan yang direncanakan:

  1. Suhu dan Kelembaban: DHT22. Sebaiknya menggunakan paketan sensor DHT22 yang sudah menempel di PCB dengan 3 kaki untuk menghindari kebutuhan komponen tambahan
  2. Tekanan udara: BMP280. Terdapan 2 jenis BMP280, dengan 4 kaki atau dengan 6 kaki. Sensor BMP280 dan DHT22 bisa digabung dengan menggunakan sensor BME280 denga harga yang lebih mahal.
  3. Arah dan kecepatan angin. Sensor ini sebenarnya terdiri dari 2 bagian, untuk mengukur kecepatan angin dan arah angin.
  4. Jumlah hujan. Saat ini saya masih mencari sensor yang tepat untuk mengukur jumlah hujan.

Catu Daya Stasiun Cuaca Mandiri

Setelah menentukan mikrokontroler dan sensor, untuk menjalankan stasiun cuaca dibutuhkan catu daya listrik. ESP8266 bekerja di tegangan 3.3v. Di dalam board NodeMCU v3 yang saya gunakan terdapat konektor micro USB dan DC converter sehingga tegangan 5v dari micro USB bisa digunakan untuk sumber daya ESP8266. Hal ini mempermudah sumber catu daya NodeMCU, dengan menggunakan charger telepon genggam dengan konektor micro USB.

Akan tetapi, tujuan akhir dalam stasiun cuaca ini adalah untuk memiliki catu daya sendiri. Meskipun dalam tahap pertama sumber catu daya yang digunakan masih berasal dari PLN, pada tahap akhir saya akan menggunakan panel surya dan batere rechargeable sebagai sumber catu daya. Untuk itu komponen yang sedang direncanakan:

  1. Panel surya dengan tegangan antara 5-6v, dan arus maksimum sekitar 400mA. Artinya saya membutuhkan panel surya sekitar 2.4 watt.
  2. Batere rechargeable. Pilihan sementara jatuh pada batere Lithium Ion (LiIon) atau yang lebih mahal Lithium Polymer (LiPo). Kedua batere ini memiliki tegangan keluaran 3.7v yang masih bisa diterima oleh NodeMCU. Kapasitas batere sendiri tidak terlalu penting, karena saya akan memanfaatkan kemampuan deep sleep NodeMCU yang hanya mengkonsumsi listrik sangat sedikit diantara pengukuran
  3. Solar Charge Controller. Komponen ini berfungsi untuk mengatur pengisian batere rechargeable dari panel surya, dan memindahkan sumber daya dari panel surya ke batere di malam hari. Beberapa pilihan adalah WEMOS Lithium Charge Controller atau kontroller berbasis TP4056. Kontroler WEMOS memiliki kelebihan karena bisa dihubungkan ke NodeMCU untuk memberikan pembacaan tegangan batere, tapi memiliki harga yang lebih mahal.

[Update 23 Desember 2018] Stasiun cuaca saat ini sudah menggunakan batere 18650 sebagai sumber daya pada poin 2, dan TP4056 sebagai charge controller pada poin 3. Detail penggunaan batere 18650 dan TP4056 bisa dilihat di tulisan ini.

Komunikasi Stasiun Cuaca Mandiri: Internet & Radio Amatir

Stasiun cuaca akan jauh lebih berguna apabila hasil pengukurannya bisa dikirimkan ke internet. Untuk menghubungkan stasiun cuaca dengan internet, saya memanfaatkan kemampuan WiFi dari NodeMCU untuk menghubungkan stasiun cuaca dengan WiFi di rumah, dan lalu ke internet. Sebagai protokol komunikasi, pilihan jatuh kepada format Automatic Packet Reporting System (APRS). Alasannya supaya data yang dihasilkan bisa terbaca oleh situs CWOP, sehingga saya tidak perlu membuat program web khusus untuk menampilkan hasil pengukuran.

Penggunaan komunikasi APRS ini juga membuka kemungkinan untuk mengirimkan hasil pengukuran melalui stasiun radio amatir. Hal ini akan membuat stasiun cuaca yang benar-benar mandiri.

Salah satu pilihan komunikasi yang cukup menarik adalah dengan menggunakan jaringan telepon seluler GSM. Ada beberapa modul yang tersedia untuk Arduino yang juga bisa digunakan oleh NodeMCU. Akan tetapi pilihan ini cukup mahal oleh karena biaya berlangganan paket data dari operator seluler. Kendala lainnya adalah daya yang dibutuhkan oleh modem GSM, sehingga membutuhkan panel surya dan batere yang lebih banyak.

Kotak Pelindung: Stevenson Screen

Terakhir, untuk melengkapi sebuah stasiun cuaca, dibutuhkan kotak untuk melindungi komponen-komponen dari cuaca itu sendiri. Standar dunia untuk stasiun cuaca adalah menggunakan Stevenson Screen, sebuah kotak dengan beberapa lubang sehingga angin bisa berhembus dengan bebas. Banyak instruksi untuk bikin sendiri Stevenson Screen.

Demikian ringkasan dari rencana stasiun cuaca dengan NodeMCU. Untuk memulai pembuatan stasiun cuaca mandiri dengan NodeMCU, silahkan melihat artikel berikutnya.

Cover Photo by John Westrock on Unsplash