Stasiun Cuaca Nirkabel Arduino: Kit Pemantauan Cuaca Portabel DIY
Komponen dan Perlengkapan
Arduino Due atau Arduino Mega – 1 unit
TFT 3.2″ HX8357C – 1 unit
Modul Real Time Clock DS3231 – 1 unit
Sensor Suhu DHT22 – 1 unit
Transceiver Breakout SparkFun nRF24L01+ – 1 unit
Breadboard (umum) – 1 unit
Male-Header 36 Posisi 1 Baris – Panjang (0.1″) – 1 unit
Kabel Jumper (umum) – beberapa
Arduino Nano R3 – 1 unit
Powerbank Xiaomi – 1 unit
Tentang Proyek Ini
Membangun Stasiun Cuaca Nirkabel adalah pengalaman belajar yang luar biasa. Setelah Anda selesai membangun proyek ini, Anda akan memiliki pemahaman yang lebih baik tentang cara kerja komunikasi nirkabel, cara kerja sensor, dan seberapa hebatnya platform Arduino. Dengan proyek ini sebagai dasar dan pengalaman yang didapatkan, Anda akan dapat dengan mudah membangun proyek yang lebih kompleks di masa depan.
Stasiun cuaca adalah perangkat yang mengumpulkan data terkait cuaca dan lingkungan menggunakan banyak sensor berbeda. Kita dapat mengukur banyak hal seperti:
Suhu
Kelembaban
Angin
Tekanan Barometrik
Indeks UV
Hujan
Di Stasiun Cuaca yang akan kita bangun, kita akan mengukur Suhu dan Kelembaban di dua lokasi dan menampilkan tanggal dan waktu saat ini. Membangun stasiun cuaca sangat mudah. Namun apakah pembuat dapat membuat unit dengan layar TFT berwarna dan fitur yang cocok dengan unit komersial? Jawabannya YA! Dengan kekuatan perangkat lunak dan perangkat keras open source, seseorang dapat membangun stasiun cuaca yang mengesankan ini dengan mudah!
Proyek ini terdiri dari dua bagian: pemancar dan penerima.
Pemancar mengukur suhu dan kelembaban, dan mengirim data secara nirkabel ke penerima. Penerima mengukur suhu dan kelembaban, menerima data dari sensor jarak jauh dan menampilkan semuanya di layar TFT berwarna besar.
Mari kita bangun proyek ini!
Langkah 1: Kumpulkan Semua Bagian
Bagian yang diperlukan untuk membangun proyek ini adalah sebagai berikut:
Biaya proyek sekitar 40$. Anda dapat mengurangi biaya proyek sebesar 5$ jika menggunakan Arduino Mega alih-alih Arduino Due. Saya memilih Arduino Due untuk penerima karena sangat cepat dan memiliki banyak memori. Ini akan sangat berguna di masa depan saat kita menambahkan lebih banyak fitur ke proyek.
Langkah 2: Sensor Suhu dan Kelembaban - DHT22
DHT22 adalah sensor suhu dan kelembaban yang sangat populer. Ini murah, mudah digunakan, dan spesifikasi klaim presisi dan akurasi yang baik.
Sensor DHT terdiri dari dua bagian: sensor kelembaban kapasitif dan termistor. Ada juga chip di dalamnya yang melakukan beberapa konversi analog ke digital dan mengeluarkan sinyal digital dengan suhu dan kelembaban. Sinyal digital cukup mudah dibaca menggunakan mikrokontroler apa pun.
Karakteristik DHT22
Biaya rendah
Daya dan I/O 3 hingga 5V
Arus maksimal 2.5mA selama konversi
Bacaan kelembaban 0-100% dengan akurasi 2-5%
Bacaan suhu -40 hingga 125°C ±0.5°C akurasi
Lambat
Koneksi dengan Arduino sangat mudah. Kita menghubungkan pin sensor dengan tanda + ke output 5V atau 3.3V Arduino. Kita menghubungkan pin sensor dengan tanda - ke GROUND. Terakhir, kita menghubungkan pin OUT ke pin digital mana pun Arduino.
Untuk menggunakan sensor DHT22 dengan Arduino, kita harus menggunakan pustaka DHT.
https://github.com/adafruit/DHT-sensor-library
Langkah 3: Modul Real Time Clock DS3231
Modul Real Time Clock DS3231 adalah, seperti namanya menunjukkan, jam waktu nyata. Menggunakan baterainya, ia dapat menjaga waktu selama tahun karena konsumsi daya minimal.
Biaya modulnya sangat rendah; biayanya sekitar 2$ termasuk baterai! Kita akan menggunakannya untuk menjaga waktu dalam Proyek Stasiun Cuaca kami.
Langkah 4: NRF24L01+: Modul Nirkabel
Modul NRF24L01 adalah modul transceiver nirkabel dua arah dengan biaya rendah. Biayanya kurang dari 3$! Ia beroperasi pada pita 2.4GHz dan dapat mencapai tingkat data 2Mbits! Mengesankan bukan? Ia menggunakan antarmuka SPI untuk berkomunikasi dengan Arduino, jadi sangat mudah digunakan dengannya. Kita harus menghubungkan 7 dari 8 pin modul agar dapat bekerja dengan Arduino.
Sayangnya, kita tidak dapat mencolokkan modul ke breadboard jadi kita akan menggunakan kabel pria-ke-wanita untuk menghubungkan modul ke Arduino. Pin nomor 1 modul adalah GND. Anda harus menghubungkannya ke Ground Arduino. Pin berikutnya adalah Vcc. Anda harus menghubungkannya ke output 3.3V Arduino Uno. Hati-hati! Jangan menghubungkannya ke 5V atau Anda akan merusak modul Anda! Pin ketiga bernama CE dan Anda dapat menghubungkannya ke pin digital mana pun yang Anda sukai. Dalam contoh ini saya akan menghubungkannya ke pin digital 7. Pin 4 adalah CS dan Anda dapat menghubungkannya ke pin digital mana pun juga. Saya akan menghubungkannya ke pin digital 8. Pin berikutnya adalah SCK yang pergi ke pin digital 13 Arduino Uno. Pin berikutnya adalah MOSI yang pergi ke pin digital 11, dan pin terakhir adalah MISO yang pergi ke pin digital 12. Itu saja!
Untuk memudahkan penggunaan, modul dengan Arduino kita harus menggunakan pustaka berikut: https://github.com/TMRh20/RF24
Jika Anda belum menggunakan modul NRF24L01+ sebelumnya, silakan periksa video yang dilampirkan untuk melihat cara menggunakannya dengan membangun proyek sederhana. Ini akan membantu Anda memahami cara kerjanya.
Langkah 5: Membangun Pemancar
Mari kita bangun pemancar terlebih dahulu. Ini sangat sederhana.
Untuk pemancar kita menggunakan:
Sebuah Arduino Nano
Sebuah sensor DHT22
Sebuah modul nirkabel NRF24L01+
Sebuah breadboard
Beberapa kabel
Kita menghubungkan pin output sensor ke pin digital 4 Arduino Nano. Kita menghubungkan Ground dan Vcc dan kita siap. Yang harus kita lakukan sekarang adalah menghubungkan modul nirkabel NRF24L01.
Silakan pasang menggunakan pin yang ditampilkan di gambar ketiga. Untuk detail lebih lanjut, silakan tonton video rinci yang telah saya lampirkan di langkah sebelumnya.
Itu saja, pemancar Anda siap. Mari kita lanjutkan ke penerima.
Langkah 6: Membangun Penerima
Untuk membangun penerima, kita membutuhkan bagian-bagian berikut:
Sebuah Arduino Due atau Mega
Sebuah modul Real Time Clock DS3231
Sebuah Sensor Suhu dan Kelembaban DHT22
Sebuah Modul Nirkabel NRF24L01+
Sebuah Layar TFT Berwarna 3.2″
Sebuah breadboard
7 pin header
Beberapa kabel
Pertama, kita membengkokkan 7 pin header dan kita menempatkannya di beberapa pin Arduino Due. Kita memerlukan satu ke Ground dan satu ke 3.3V. Kita memerlukan dua di pin I2C. Kita memerlukan 3 sisanya ke pin digital dari 6 hingga 8. Kita juga harus memasang tiga kabel ke pin SPI hardware Arduino Due. Kita memerlukan MOSI, MISO dan SCK. Periksa diagram dengan hati-hati. Kita menghubungkan kabel ke pin header dan kita siap untuk memasang layar.
Menghubungkan DS3231
Pin VCC pada output 3.3V Arduino
Pin GND ke Ground Arduino dan
Pin SDA (Serial Data Line) ke pin SDA Arduino dan
Pin SCL (Serial Clock Line) ke pin SCL Arduino
Menghubungkan Sensor DHT22
Pin VCC pada output 3.3V Arduino
Pin GND ke Ground Arduino dan
Pin output ke pin digital 8 Arduino
Menghubungkan Modul NRF24L01
Pin GND ke Ground Arduino
Pin VCC ke Arduino 3.3V
Pin ke-3 ke pin digital 6 Arduino
Pin ke-4 ke pin digital 7 Arduino
Pin ke-5 ke pin SCK yang telah kita las
Pin ke-6 ke pin MOSI yang telah kita las
Pin ke-7 ke pin MISO yang telah kita las
Langkah 7: Kode Pemancar
Pertama-tama, kita harus mengunduh pustaka RF24 untuk memudahkan hidup kita saat bekerja dengan modul nirkabel NRF24L01. Kami juga memerlukan pustaka DHT untuk sensor DHT22.
Mari kita lihat terlebih dahulu kode Pemancar. Ini mengirimkan struktur data sederhana yang berisi dua float, suhu dan kelembaban.
Untuk membangun tautan komunikasi, kita harus membuat “pip” antara dua modul. Pip itu perlu memiliki alamat. Keduanya harus menulis dan membaca dari pip yang sama untuk berkomunikasi. Itu adalah hal pertama yang kita tentukan dalam kode kita. Kami mengatur alamat pip ke “0”. Selanjutnya kita menentukan saluran tempat kita ingin berkomunikasi dengan modul lainnya. Chip NRF24L01 mendukung 126 saluran yang berbeda. Kedua modul perlu menggunakan saluran yang sama untuk berkomunikasi satu sama lain. Dalam contoh ini saya menggunakan saluran 115. Selanjutnya, saya menentukan bahwa saya ingin menggunakan daya transmisi maksimum yang ditawarkan modul. Ini menggunakan lebih banyak daya tetapi memperluas jangkauan komunikasi. Selanjutnya kita menentukan tingkat data transmisi. Saya mengatur ke 250Kbs yang adalah tingkat data terendah yang mungkin untuk mencapai jangkauan yang lebih baik. Langkah selanjutnya adalah membuka pip agar dapat ditulis ke sana nanti.
Dalam fungsi loop, kita membaca nilai suhu dan kelembaban dari sensor, kita menyimpan data tersebut ke struktur data dan kemudian kita mengirim struktur data dengan menulis struktur data ke pip. Itu saja. Anda dapat menemukan kode yang dilampirkan dalam tutorial ini.
FU361QHIQFCEYSE.ino
Langkah 8: Kode Penerima
Mari kita lihat kode penerima sekarang. Kami membutuhkan 4 pustaka. Pertama kami harus mengunduh pustaka untuk layar dari tautan ini:
Setelah mengunduh pustaka, Anda harus membuka file User_Setup.h. Komentari baris 13 dan buka komentar baris 14, karena layar yang kita miliki menggunakan driver HX8357C. Sekarang kita dapat melanjutkan dengan 3 pustaka lainnya. Kami membutuhkan satu pustaka untuk jam waktu nyata, satu untuk sensor DHT22 dan terakhir satu untuk modul nirkabel.
Mari kita lihat kode. Hal pertama yang harus kita lakukan adalah mengatur waktu ke modul jam waktu nyata jika belum diatur. Untuk melakukannya, masukkan tanggal dan waktu saat ini di fungsi setRTCTime, buka komentar pemanggilan fungsi setRTCTime pada baris 54 dan unggah program ke Arduino. Sekarang waktu telah diatur. Tetapi kemudian kita harus mengomentari pemanggilan fungsi setRTCTime lagi dan unggah program ke Arduino sekali lagi.
Kode penerima bekerja sebagai berikut. Dalam fungsi setup, kita menginisialisasi semua sensor dan modul serta mencetak Antarmuka Pengguna. Kemudian, dalam fungsi loop, kita terus-menerus memeriksa data nirkabel baru. Jika ada data baru kita menyimpan data tersebut dalam variabel dan mencetaknya di layar. Kita membaca suhu dan kelembaban sekali menit dan kita hanya memperbarui layar jika ada perubahan pada nilai. Dengan cara ini kita mengurangi berkedip layar lebih jauh! Saya juga telah menyiapkan versi kode dengan suhu yang ditampilkan dalam derajat Fahrenheit. Anda dapat menemukan kedua versi kode yang dilampirkan dalam tutorial ini.
F053BTXIQFCEZ09.inoFNV3X4LIQFCEZ0C.ino
Langkah 9: Menguji Proyek
Langkah terakhir untuk menyala semua dan melihat apakah semuanya berfungsi sesuai harapan. Jika demikian, di bagian atas layar tanggal dan waktu saat ini ditampilkan. Di bagian bawah layar, Anda dapat melihat suhu dan kelembaban dari sensor jarak jauh dan lokal.
Jika tidak ada data yang ditampilkan untuk sensor jarak jauh, gerakkan pemancar lebih dekat - mungkin berada di luar jangkauan. Jika masalah berlanjut, periksa semua koneksi sekali lagi - pasti ada yang salah di sana.
Seperti yang Anda lihat, proyek ini adalah demonstrasi hebat tentang apa yang dapat dilakukan oleh perangkat keras dan perangkat lunak open source. Dalam beberapa jam seseorang dapat membangun proyek yang mengesankan ini! Tentu saja, ini hanyalah awal. Kita dapat menambahkan banyak fitur lainnya ke proyek. Saya akan segera menambahkan tombol, sehingga kita dapat menampilkan grafik dan memiliki berbagai mode. Kita juga dapat menambahkan lebih banyak sensor, pencatatan data, koneksi internet dan setara. Kami menggunakan Arduino Due, jadi kita memiliki banyak memori untuk menerapkan banyak hal lagi. Saya akan senang mendengar pendapat Anda tentang proyek ini. Bagaimana Anda ingin melihatnya berkembang? Silakan posting komentar atau ide Anda di bagian komentar di bawah!
Jika Anda ingin detail lebih lanjut, tonton video YouTube di pengantar atau kunjungi situs web saya. Terima kasih telah melihat!