Proyek HMI Nextion Interaktif Menggunakan Arduino Mega dan Sensor
Komponen dan Perlengkapan
Arduino Mega 2560
×
1
Proto Shield Arduino Mega
×
1
Layar HMI Nextion 2.4"
×
1
Pembaca Kartu SD
×
1
Sensor Suhu DHT22
×
1
SparkFun Atmospheric Sensor Breakout - BME280
×
1
Modul RTC DS3231
×
1
Penerima Superheterodin 433MHz RXB6
×
1
Resistor 10k ohm
×
1
Resistor 475 ohm
×
1
Timer ne555
×
1
Sumber Daya AC-DC 5v
×
1
Alat dan Mesin yang Diperlukan
Paku Solder (umum)
Aplikasi dan Layanan Online
Arduino IDE
Nextion Editor
Tentang Proyek Ini
Dapatkah Layar Nextion Menghemat Ruang Program di Arduino?
Kadang-kadang kita ingin menggunakan grafis berwarna untuk membuat proyek yang lebih menarik perhatian. Sayangnya, grafis yang indah membutuhkan banyak sumber daya seperti memori kontroler untuk rutinitas perpustakaan grafis dan penyimpanan eksternal seperti memori kartu SD untuk menyimpan gambar dan sebagainya. Kontroler Arduino, di sisi lain, memiliki sumber daya terbatas dan tidak sepenuhnya cocok untuk proyek grafis yang kaya. Untuk mengurangi persyaratan sumber daya, kita dapat menggunakan layar Nextion. Dalam hal ini kita tidak perlu penyimpanan eksternal untuk gambar dan kita dapat secara signifikan mengurangi persyaratan memori.
Dari sudut pandang kontroler, layar Nextion hanyalah perangkat serial, tidak lebih mahal dalam hal sumber daya daripada layar LCD hitam putih biasa. Jadi apakah mungkin untuk membuat stasiun cuaca pada Arduino UNO dan layar Nextion?
Jawabannya tidak sepenuhnya. Anda dapat membuat satu, tetapi akan memiliki fungsionalitas yang sangat terbatas karena kurangnya memori kontroler. Anda tidak dapat menyertakan grafik sejarah atau sebagainya. Untuk membuat stasiun cuaca dengan fungsionalitas kaya, Anda memerlukan mikrokontroler yang lebih canggih.
Dalam artikel ini saya akan menunjukkan cara membuat stasiun cuaca unggulan dengan grafis menarik dan pencatatan data yang menerima data cuaca dari banyak sensor cuaca nirkabel. Stasiun cuaca ini didasarkan pada layar Nextion dan Arduino Mega 2560.
Ide Utama
Misalkan kita sudah memiliki sensor cuaca eksternal, seperti ini atau yang diproduksi oleh produsen terkenal, OREGON, THGN123N. Kami akan membuat unit pusat kami sendiri, yang menerima data cuaca dari sensor eksternal ini, menampilkan suhu, kelembaban, dan tekanan atmosfer, secara berkala menyimpan data ke kartu SD dan menggambar grafik data historis. Juga unit pusat membuat jenis peramalan cuaca berdasarkan perubahan tekanan.
Fitur utama unit stasiun cuaca ini adalah bahwa ia menggunakan gambar latar belakang untuk menunjukkan peramalan cuaca, bukan hanya ikon kecil seperti yang biasanya dilakukan stasiun cuaca lain.
Trik Layar
Kelemahan besar layar Nextion adalah bahwa gambar transparan tidak didukung oleh firmware layar. Jadi kita tidak dapat membuat elemen bulat. Anda harus menggunakan latar belakang 'dipotong' di dalam widget teks Anda untuk menampilkan data teks di atas gambar kustom. Dalam kasus saya berarti bahwa ketika latar belakang layar berubah, semua latar belakang widget teks harus diubah sesuai dengan itu. Jadi kita perlu membuat beberapa layar lengkap untuk setiap peramalan cuaca.
Di sisi lain, menggunakan perubahan tekanan, kita dapat membuat tiga jenis peramalan cuaca berbeda: cerah, berawan atau hujan (salju). Juga ada dua periode hari utama: siang dan malam. Jadi kita hanya perlu membuat 8 layar yang berbeda:
cerah (langit cerah, siang hari)
malam (langit cerah, malam hari)
berawan siang hari
berawan malam hari
hujan siang hari
hujan malam hari
salju siang hari
salju malam hari
Semua layar ini harus dibuat di dalam layar Nextion menggunakan Nextion Editor. Semua layar ini berbagi nama widget yang sama untuk kolom teks (suhu, kelembaban, tekanan) untuk data sensor kami. Ketika kontroler memperbarui layar, pertama-tama ia memilih layar yang sesuai dengan latar belakang yang diinginkan, kemudian memperbarui data sensor di dalam widget layar.
Data Layar Utama
Layar utama terbagi menjadi tiga area utama. Di baris atas layar Anda dapat menemukan data sensor internal: suhu dan kelembaban rumah, tekanan atmosfer, waktu dan tanggal saat ini. Diasumsikan bahwa kita semua tinggal di rumah dengan jendela biasa sehingga tekanan atmosfer sama di dalam rumah dan di luarnya. Jadi kontroler hanya memiliki satu sensor tekanan di dalam modul utama untuk mengukur tekanan atmosfer dengan akurat.
Di setengah kiri layar Anda dapat menemukan data sensor utama: suhu dan kelembaban. Nyaman untuk melihat data sensor eksternal utama di layar sepanjang waktu. ID sensor utama dapat ditentukan di layar pengaturan. Anda dapat memilih ID yang diperlukan dari daftar ID sensor yang tersedia. Jadi, tolong sabar dan tunggu sampai semua sensor eksternal mengirim sinyal ke kontroler. Biasanya memakan waktu sekitar dua menit.
Di sisi kanan layar Anda dapat menemukan data dari semua sensor eksternal dan internal: ID sensor, suhu dan kelembaban. Informasi berubah secara berkala memungkinkan untuk memantau data dari semua sensor. Kontroler mendukung hingga 4 sensor eksternal. Jika Anda hanya memiliki satu sensor eksternal, data sensor internal akan ditampilkan di sisi kanan layar utama juga.
Kontroler memiliki modul jam waktu nyata yang akurat bawaan, ds3231 yang memungkinkan untuk mendapatkan waktu dan tanggal aktual. Data jam ini digunakan untuk mencatat data sensor bersama dengan cap waktu ke kartu SD, membuat peramalan siang dan malam dan mengontrol kecerahan layar.
Layar Lainnya
Ada beberapa layar tambahan di dalam layar Nextion:
Layar yang menampilkan waktu matahari terbit dan terbenam serta usia bulan;
Layar untuk pengaturan kontroler;
Layar untuk menyesuaikan jam waktu nyata;
Layar untuk menampilkan data historis dari sensor
Untuk pergi ke layar 'matahari terbit', ketuk layar utama pada tanggal saat ini. Untuk mengatur kontroler dan menyesuaikan jam, ketuk pada waktu saat ini. Untuk menampilkan data historis, ketuk pada suhu atau tekanan.
Layar Data Log Histori
Ada dua mode untuk layar data histori: periode 1 hari dan periode 8 hari. Untuk mengubah mode saat ini, ketuk pada area grafik.
Ada dua menu kotak ikon di sisi kiri dan atas layar histori. Di menu toolbar kiri Anda dapat memilih ID sensor yang diinginkan (pilih dari yang tersedia). Sensor internal memiliki ID sama dengan 0. Di toolbar atas Anda dapat mengubah jenis data yang akan ditampilkan: tekanan, suhu atau kelembaban.
Layar Pengaturan
Di layar pengaturan Anda dapat:
menyesuaikan ID sensor eksternal utama (tunggu sampai kontroler menerima sinyal dari semua sensor);
Mengatur waktu pagi dan malam (kapan kontroler mengubah kecerahan layar);
Mengonfigurasi kecerahan layar.
Mencegah Kontroler Hang
Untuk meningkatkan stabilitas kontroler dan mencegah kontroler hang, rangkaian watchdog eksternal telah diimplementasikan dalam skema. Rangkaian ini dapat diimplementasikan dalam proyek lain juga, jadi di sini Anda dapat melihat gambar terpisah untuk timer ini di bawah ini.
Timer akan mereset kontroler Arduino dalam waktu sekitar 2-3 menit jika tidak menerima sinyal melalui pin Arduino A2.
Kesimpulan
Cuaca memiliki tampilan grafis kaya, sangat menarik perhatian, stasiun bekerja sangat stabil sekitar setengah tahun.