Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

AWS - Stasiun Cuaca Arduino

Komponen dan persediaan

Arduino UNO
× 1
Kabel USB-A ke Micro-USB
× 1
Breadboard (generik)
× 1
Kabel jumper (generik)
× 1
Plexiglass 4 mm
× 1
Resistor 221 ohm
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
× 1
Maxim Integrated DS1307 64 x 8, Serial, I²C Real-Time Jam
× 1
Resistor foto
× 1
Sensor Suhu &Kelembaban DHT11 (4 pin)
× 1
Sensor Suhu
× 1
Penerima IR (generik)
× 1
Sensor Ketinggian Air
× 1
Kit RFID Pemula Sunfounder
× 1

Alat dan mesin yang diperlukan

Pemotong laser (generik)

Tentang proyek ini

AWS, Stasiun Cuaca Arduino, menyediakan data sepanjang waktu secara akurat untuk lingkungan. Secara khusus, ini didasarkan pada papan mikrokontroler Arduino, dan mendukung sensor penuh untuk analisis lingkungan.

Tujuannya

Tujuan dari kontrol ini adalah untuk mendeteksi serangkaian data melalui sensor yang dijelaskan di atas dan untuk menghubungkannya dengan pengguna melalui layar LCD. Ukuran kecil dari "perangkat keras" proyek memungkinkan untuk menutupnya dalam kotak kecil yang dibuat dengan mesin potong laser.

Sensor yang Digunakan

Sensor Ketinggian Air dan Salju

Indikator ketinggian air digunakan untuk menunjukkan ketinggian air di tangki atas, dengan menggunakan ini kita dapat menghindari meluapnya air, dan kapan saja kita dapat mengetahui ketinggian air di tangki.

Sensor Kelembaban dan Suhu DHT11

Sensor suhu dan kelembaban digital DHT11 adalah sensor gabungan suhu dan kelembaban keluaran sinyal digital, yang modul khusus aplikasi menangkap teknologi dan teknologi sensor suhu dan kelembaban digital untuk memastikan bahwa produk dengan keandalan tinggi dan stabilitas jangka panjang yang sangat baik. Produk ini memiliki kualitas yang sangat baik, respon cepat, kemampuan anti-interferensi, biaya rendah dan keunggulan lainnya.

Fotoresistor

Fotoresistor, juga dikenal sebagai resistor tergantung cahaya (LDR), adalah perangkat peka cahaya yang paling sering digunakan untuk menunjukkan ada tidaknya cahaya, atau untuk mengukur intensitas cahaya. Dalam gelap, resistansinya sangat tinggi, tetapi ketika sensor LDR terkena cahaya, resistansinya turun drastis, bahkan hingga beberapa ohm, tergantung pada intensitas cahaya.

Layar LCD I2C 1602

LCD1602 dengan bus I2C adalah jenis bus serial. Ini adalah bus serial kinerja tinggi yang memiliki aturan bus dan fungsi sinkronisasi perangkat berkecepatan tinggi atau rendah yang diperlukan oleh sistem multi-host. Potensiometer biru pada I2C LCD1602 digunakan hanya untuk lampu latar.

I2C hanya menggunakan dua saluran pembuangan terbuka dua arah, Serial DataLine (SDA) dan Serial Clock Line (SCL), ditarik dengan resistor. Tegangan umum yang digunakan adalah +5 V atau +3,3 V meskipun sistem dengan tegangan lain diizinkan.

DS1302 Modul Jam Waktu Nyata

Ini didasarkan pada DS1302 terintegrasi di mana ada jam / kalender waktu nyata dan 31 byte RAM statis. Anda dapat melihat format waktu sebagai jj/mm/ss, sedangkan format tanggal adalah tttt/mm/hh.

Sensor Suhu LM35

Sensor Suhu Presisi LM35 adalah sensor yang mendeteksi suhu dengan cara yang sangat akurat. Analog to Digital Converter (ADC) mengubah nilai analog menjadi perkiraan digital berdasarkan rumus Nilai ADC =sampel * 1024 / tegangan referensi (+5v). Jadi dengan referensi +5 volt, perkiraan digital akan =tegangan input * 205.

Penerima Inframerah dan Pengontrol Jarak Jauh

Kedua komponen ini bekerja bersama:penerima ir mengizinkan penerimaan data dari kendali jarak jauh. Data tergantung pada tombol mana yang ingin Anda tekan. Tombol berikut telah dipilih untuk menetapkannya ke fungsi tertentu:

  • Tombol 0:Anda dapat melihat waktu dan tanggal di layar LCD.
  • 1 Tombol:Anda dapat melihat data suhu dari LM35 dan data kelembaban dari DHT11 di layar LCD.
  • Tombol 2:Anda dapat melihat persentase kegelapan di layar LCD.
  • Tombol 3:Anda dapat melihat nilai level cairan (mm) di layar LCD.
  • Tombol “Siklus”:Anda dapat melihat semua layar dalam interval waktu 4 detik dari satu sama lain.

A.W.S.

Langkah 1:Konstruksi kotak

Setelah mempertimbangkan ukuran proyek, kami melanjutkan dengan konstruksi kotak plexiglas. Ukuran wajah dengan tempat duduk yang saling terkait dan lubang untuk keluarnya kabel sensor telah dirancang dengan perangkat lunak Autocad, kemudian kami telah memotong wajah dengan mesin lasercut. Dan akhirnya kami telah mengumpulkan semuanya dengan lem yang kuat.

Langkah 2:Koneksi skema dan perangkat keras

Berikut ini adalah gambar skema dari Arduino Weather Station. Itu telah dilakukan dengan perangkat lunak fritzing. Koneksi cukup sederhana.

Langkah 3:Arduino pemrograman

Kami telah melakukan kode pada Arduino IDE, menggunakan semua perpustakaan yang kami butuhkan dan memprogramnya sehingga stasiun cuaca kami berjalan seperti yang kami inginkan.

Langkah 4:Bagaimana berfungsi

AWS (Stasiun Cuaca Arduino ) adalah stasiun cuaca yang mengambil beberapa data dari lingkungan dan memungkinkan mereka untuk melihat dengan menggunakan remote kontrol inframerah. Untuk menghubungkannya dengan pengguna, ia memiliki layar LCD dengan lima layar berbeda yang dapat dipertukarkan oleh pengguna.

Ini adalah layarnya:

1. Layar utama: ini adalah layar pertama yang dapat dilihat pengguna saat kami menyalakan papan. Ini menyajikan proyek dengan kata-kata "Stasiun Cuaca Arduino" yang memiliki efek memudar tertentu. Anda dapat melihat layar ini juga setelah setiap kali Anda meminta AWS untuk melihat beberapa data.

2. Layar Tanggal dan Waktu: ini adalah layar pertama yang dapat diakses pengguna, cukup dengan menekan tombol 0 pada remote control. Saat ditekan, layar memiliki jeda 10 detik dan kemudian kembali ke layar Utama.

3. Layar Kelembaban dan Suhu: itu adalah layar yang memberikan data yang diterima oleh sensor DHT11 dan LM35 tentang kelembaban dan suhu masing-masing. Itu terhubung ke tombol 1 pada remote kontrol dan ketika ditekan layar memiliki penundaan 10 detik dan kemudian kembali ke layar Utama.

4. Layar kegelapan: itu adalah layar yang memberikan data yang diterima oleh LDR tentang jumlah cahaya pada sensor. Ini menunjukkan persentase kegelapan pada sensor. Itu terhubung ke tombol 2 pada remote kontrol dan ketika ditekan layar memiliki penundaan 10 detik dan kemudian kembali ke layar Utama.

5. Layar Level Cairan: layar ini memberikan ketinggian jumlah cairan ke dalam resep. Itu terhubung ke tombol 3 pada remote kontrol dan ketika ditekan layar memiliki penundaan 10 detik dan kemudian kembali ke Layar Beranda.

Empat layar terakhir dapat dilihat secara berurutan dengan interval waktu 4 detik dari satu sama lain, dengan menekan tombol Siklus pada kendali jarak jauh. Dengan mode ini, hanya satu putaran informasi yang dilakukan.

Tindakan pencegahan

Fakta pertama yang harus dipertimbangkan untuk umur panjang yang baik dari proyek ini adalah untuk menghindari kontak cairan atau zat berbahaya lainnya dengan papan dan dengan stasiun pada umumnya.

Setelah hujan, wadah air harus dikosongkan, diperiksa dan dibersihkan sensornya.

Baterai isi ulang memiliki durasi sekitar dua hari, sehingga perlu diisi ulang (sekitar 2 jam) jika akan habis.

Mungkin terkadang sensor infra merah tidak berjalan dengan baik seperti yang kita inginkan, sehingga fungsinya bisa terganggu pada suhu rendah (sekitar 0 derajat). Itu tidak menunjukkan masalah apa pun, sebenarnya Anda hanya perlu membuka kotak dan menekan tombol reset:AWS akan berfungsi normal kembali.

Jika kita menekan tombol reset, modul RTC DS1302 tidak akan berubah nilainya tentang tanggal dan waktu, berkat dukungan baterai yang ada di modul yang bertahan sekitar 10 tahun.

Jika daya AWS dicabut, tanggal dan waktu akan berubah. Untuk mengatasi masalah, perlu untuk mengatur ulang mereka di titik yang ditunjukkan pada daftar sesuai dengan preferensi Anda. Setelah dimuat, Anda perlu menyembunyikan pengaturan ke program seperti yang ditunjukkan di bawah ini.

Sebelum:Waktu t(2017, 12, 03, 10, 15, 00, 1);rtc.time(t);Setelah://Waktu t(2017, 12, 03, 10, 15, 00, 1)//;rtc.time(t); 

Kode

//termasuk perpustakaan sketsa#termasuk #termasuk  //pustaka jam#termasuk  //pustaka jam#termasuk  //jam library#include  //dht11 library#include  //LCD library#include  //Kabel untuk perpustakaan LCD#define lmPin A1 //LM35 lampirkan ke lcd A1LiquidCrystal_I2C (0x27, 16, 2); // setel alamat LCD ke 0x27 untuk 16 karakter dan 2 baris displaydht DHT; //membuat tipe variabel dhtconst int DHT11_PIN =4; // pasang dht11 ke pin 4const int waterSensor =0; //set variabel sensor airint waterValue =0; //variabel untuk sensor airint mmwaterValue =0;int sensorPin =A3; // pilih pin input untuk potensiometerint luce =0; //variabel untuk titik ldrint =0; //variabel untuk ldrfloat tem =0; //variabel untuk temperaturelong lmVal =0; //variabel untuk LM35//irconst int irReceiverPin =3;IRrecv irrecv(irReceiverPin); //Membuat variabel hasil tipe IRrecvdecode_results;//menentukan variabel jamuint8_t RST_PIN =5; //RST pin melampirkan touint8_t SDA_PIN =6; //Io pin melampirkan touint8_t SCL_PIN =7; //clk Pin attach to/* Buat buffer */char buf[50];char day[10];/* Buat objek DS1302 */DS1302 rtc(RST_PIN, SDA_PIN, SCL_PIN);//buat tipe variabel DS1302void print_time(){ /* Dapatkan waktu dan tanggal saat ini dari chip */ Waktu t =rtc.time(); /* Sebutkan hari dalam seminggu */ memset(hari, 0, sizeof(hari)); switch (t.day) { kasus 1:strcpy(hari, "Minggu"); merusak; kasus 2:strcpy(hari, "Senin"); merusak; kasus 3:strcpy(hari, "Selasa"); merusak; kasus 4:strcpy(hari, "Rabu"); merusak; case 5:strcpy(hari, "Kamis"); merusak; case 6:strcpy(hari, "Jumat"); merusak; kasus 7:strcpy(hari, "Sabtu"); merusak; } /* Format waktu dan tanggal dan masukkan ke dalam buffer sementara */ snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d", hari, t. thn, t.mon, t.date, t.hr, t.min, t.sec); /* Cetak string yang diformat ke serial sehingga kita bisa melihat waktu */ Serial.println(buf); lcd.setCursor(2, 0); lcd.print(t.yr); lcd.print("-"); lcd.print(t.mon / 10); lcd.print(t.mon % 10); lcd.print("-"); lcd.print(t.tanggal / 10); lcd.print(t.tanggal % 10); lcd.print(""); lcd.print(hari); lcd.setCursor(4, 1); lcd.print(t.hr); lcd.print(":"); lcd.print(t.min / 10); lcd.print(t.min % 10); lcd.print(":"); lcd.print(t.sec / 10); lcd.print(t.sec % 10);}pengaturan batal() { //jam Serial.begin(9600); rtc.write_protect(salah); rtc.halt(salah); //irirrecv.enableIRIn(); //aktifkan modul penerima lcd.init(); //inisialisasi lcd lcd.backlight(); //buka pinMode lampu latar(sensorPin, INPUT); Waktu t(2017, 12, 03, 10, 15, 00, 1);//inisialisasi waktu /* Mengatur waktu dan tanggal pada chip */ rtc.time(t);}void loop() { lcd. setCursor(0, 0); lcd.print("A"); penundaan (50); lcd.setCursor(1, 0); lcd.print("r"); penundaan (50); lcd.setCursor(2, 0); lcd.print("d"); penundaan (50); lcd.setCursor(3, 0); lcd.print("u"); penundaan (50); lcd.setCursor(4, 0); lcd.print("saya"); penundaan (50); lcd.setCursor(5, 0); lcd.print("n"); penundaan (50); lcd.setCursor(6, 0); lcd.print("o"); penundaan (50); lcd.setCursor(8, 0); lcd.print("W"); penundaan (50); lcd.setCursor(9, 0); lcd.print("e"); penundaan (50); lcd.setCursor(10, 0); lcd.print("a"); penundaan (50); lcd.setCursor(11, 0); lcd.print("t"); penundaan (50); lcd.setCursor(12, 0); lcd.print("h"); penundaan (50); lcd.setCursor(13, 0); lcd.print("e"); penundaan (50); lcd.setCursor(14, 0); lcd.print("r"); penundaan (50); lcd.setCursor(4, 1); lcd.print("S"); penundaan (50); lcd.setCursor(5, 1); lcd.print("t"); penundaan (50); lcd.setCursor(6, 1); lcd.print("a"); penundaan (50); lcd.setCursor(7, 1); lcd.print("t"); penundaan (50); lcd.setCursor(8, 1); lcd.print("saya"); penundaan (50); lcd.setCursor(9, 1); lcd.print("o"); penundaan (50); lcd.setCursor(10, 1); lcd.print("n"); delay(50);if (irrecv.decode(&results)) //jika data penerima modul penerima ir { if (hasil.nilai ==0xFF6897) //jika "0" didorong print TIME{ lcd.clear(); //mengosongkan LCD print_time(); penundaan (10000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD (200); //tunggu sebentar irrecv.resume(); // Terima nilai selanjutnya}jika (nilai hasil ==0xFF30CF) //jika "1" ditekan print TEMPERATURE and HUMIDITY{ lcd.clear(); //hapus LCD //BACA DATA dari DHT int chk =DHT.read11(DHT11_PIN); // TAMPILAN DATA lcd.setCursor(0, 0); lcd.print("Tem:"); lmVal =analogRead(lmPin);//membaca nilai A1 tem =(lmVal * 0,0048828125 * 100);//5/1024=0,0048828125;1000/10=100 lcd.print(tem);//print tem lcd. print(char(223));//cetak satuan" ? " lcd.print("C "); // Serial.println("C"); lcd.setCursor(0, 1); lcd.print("Hum:"); //Serial.print("Hum:"); lcd.print(DHT.kelembaban, 1); //mencetak kelembaban pada lcd //Serial.print(DHT.humidity,1); lcd.print("%"); //Serial.println("%"); penundaan (10000); //tunggu 3000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar irrecv.resume(); // Terima nilai berikutnya}jika (hasil.nilai ==0xFF18E7) ​​//jika "2" ditekan, cetak DARKNESS{ lcd.clear(); //mengosongkan LCD lcd.setCursor(4, 0); //letakkan kursor pada 4 kolom, 1 baris lcd.print("Darkness:"); luce =analogRead(sensorPin); //baca ldr pluce =map(luce, 0, 1023, 0, 100); //nilai sensor diubah menjadi nilai dari 0 hingga 100 lcd.setCursor(6, 1); //letakkan kursor di tengah LCD lcd.print(pluce); //cetak persentase lcd.print("%"); //cetak simbol delay(10000); //tunda 10.000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar irrecv.resume(); // Terima nilai berikutnya}jika (nilai hasil ==0xFF7A85) //jika "3" ditekan, cetak SNOW atau WATER LEVEL{ lcd.clear(); //hapus LCD lcd.setCursor(0, 0); //letakkan kursor pada 0 kolom, 1 baris lcd.print("Level cairan(mm):"); //print "Level cairan(mm):" int waterValue =analogRead(waterSensor); // mendapatkan nilai sensor air lcd.setCursor(6, 1); //tempatkan kursor pada 6 kolom,2 baris mmwaterValue =map(waterValue, 0, 1023, 0, 40); lcd.print(mmwaterValue); //nilai yang ditampilkan pada lcd delay(10000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD(200); irrecv.resume(); // Terima nilai berikutnya}jika (nilai hasil ==0xFF9867) //jika "PRESENTASI" ditekan print TIME, TEM dan HUM, DARKNESS dan S atau W LEVEL satu kali{ lcd.clear(); //mengosongkan LCD print_time(); penundaan (4000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD (200); //tunggu sebentar //BACA DATA DHT int chk =DHT.read11(DHT11_PIN); // TAMPILAN DATA lcd.setCursor(0, 0); lcd.print("Tem:"); lmVal =analogRead(lmPin);//membaca nilai A0 tem =(lmVal * 0,0048828125 * 100);//5/1024=0,0048828125;1000/10=100 lcd.print(tem);//print tem lcd. print(char(223));//cetak satuan" ? " lcd.print("C "); // Serial.println("C"); lcd.setCursor(0, 1); lcd.print("Hum:"); //Serial.print("Hum:"); lcd.print(DHT.kelembaban, 1); //mencetak kelembaban pada lcd //Serial.print(DHT.humidity,1); lcd.print("%"); //Serial.println("%"); penundaan (4000); //tunggu 3000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar lcd.setCursor(4, 0); //letakkan kursor pada 4 kolom, 1 baris lcd.print("Darkness:"); luce =analogRead(sensorPin); //baca ldr pluce =map(luce, 0, 1023, 0, 100); //nilai sensor diubah menjadi nilai dari 0 hingga 100 lcd.setCursor(6, 1); //letakkan kursor di tengah LCD lcd.print(pluce); //cetak persentase lcd.print("%"); //cetak simbol delay(4000); //tunda 10.000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar lcd.setCursor(0, 0); //letakkan kursor pada 0 kolom, 1 baris lcd.print("Level cairan(mm):"); //print "Level cairan(mm):" int waterValue =analogRead(waterSensor); // mendapatkan nilai sensor air lcd.setCursor(6, 1); //tempatkan kursor pada 6 kolom,2 baris mmwaterValue =map(waterValue, 0, 1023, 0, 40); lcd.print(mmwaterValue); //nilai yang ditampilkan pada lcd delay(4000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD(200); irrecv.resume(); // Terima nilai berikutnya}}}  

Alih-alih menulis huruf "Stasiun Cuaca Arduino" per huruf, Anda dapat menulisnya dengan mode "sakelar/huruf".

KESIMPULAN

Kami telah melakukan stasiun cuaca dengan Arduino yang memperhitungkan tanggal dan waktu saat ini dan mengambil beberapa data lingkungan untuk dicetak pada layar LCD yang dikendalikan oleh remote kontrol inframerah.

Kode

  • kode AWS.ino
kode AWS.inoC/C++
//termasuk perpustakaan sketsa#termasuk #termasuk  //pustaka jam#termasuk  //pustaka jam#termasuk  //pustaka jam#termasuk  //dht11 library#include  //LCD library#include  //Wire untuk LCD library#define lmPin A1 //LM35 lampirkan ke lcd A1LiquidCrystal_I2C (0x27, 16, 2 ); // setel alamat LCD ke 0x27 untuk 16 karakter dan 2 baris displaydht DHT; //membuat tipe variabel dhtconst int DHT11_PIN =4; // pasang dht11 ke pin 4const int waterSensor =0; //set variabel sensor airint waterValue =0; //variabel untuk sensor airint mmwaterValue =0;int sensorPin =A3; // pilih pin input untuk potensiometerint luce =0; //variabel untuk titik ldrint =0; //variabel untuk ldrfloat tem =0; //variabel untuk temperaturelong lmVal =0; //variabel untuk LM35//irconst int irReceiverPin =3;IRrecv irrecv(irReceiverPin); //Membuat variabel hasil tipe IRrecvdecode_results;//menentukan variabel jamuint8_t RST_PIN =5; //RST pin melampirkan touint8_t SDA_PIN =6; //Io pin melampirkan touint8_t SCL_PIN =7; //clk Pin attach to/* Buat buffer */char buf[50];char day[10];/* Buat objek DS1302 */DS1302 rtc(RST_PIN, SDA_PIN, SCL_PIN);//buat tipe variabel DS1302void print_time(){ /* Dapatkan waktu dan tanggal saat ini dari chip */ Waktu t =rtc.time(); /* Sebutkan hari dalam seminggu */ memset(hari, 0, sizeof(hari)); switch (t.day) { kasus 1:strcpy(hari, "Minggu"); merusak; kasus 2:strcpy(hari, "Senin"); merusak; kasus 3:strcpy(hari, "Selasa"); merusak; kasus 4:strcpy(hari, "Rabu"); merusak; case 5:strcpy(hari, "Kamis"); merusak; case 6:strcpy(hari, "Jumat"); merusak; kasus 7:strcpy(hari, "Sabtu"); merusak; } /* Format waktu dan tanggal dan masukkan ke dalam buffer sementara */ snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d", hari, t. thn, t.mon, t.date, t.hr, t.min, t.sec); /* Cetak string yang diformat ke serial sehingga kita bisa melihat waktu */ Serial.println(buf); lcd.setCursor(2, 0); lcd.print(t.yr); lcd.print("-"); lcd.print(t.mon / 10); lcd.print(t.mon % 10); lcd.print("-"); lcd.print(t.tanggal / 10); lcd.print(t.tanggal % 10); lcd.print(""); lcd.print(hari); lcd.setCursor(4, 1); lcd.print(t.hr); lcd.print(":"); lcd.print(t.min / 10); lcd.print(t.min % 10); lcd.print(":"); lcd.print(t.sec / 10); lcd.print(t.sec % 10);}pengaturan batal() { //jam Serial.begin(9600); rtc.write_protect(salah); rtc.halt(salah); //irirrecv.enableIRIn(); //aktifkan modul penerima lcd.init(); //inisialisasi lcd lcd.backlight(); //buka pinMode lampu latar(sensorPin, INPUT); Waktu t(2017, 12, 9, 11, 20, 00, 7);//menginisialisasi waktu /* Mengatur waktu dan tanggal pada chip */ rtc.time(t);}void loop() { lcd. setCursor(0, 0); lcd.print("A"); penundaan (50); lcd.setCursor(1, 0); lcd.print("r"); penundaan (50); lcd.setCursor(2, 0); lcd.print("d"); penundaan (50); lcd.setCursor(3, 0); lcd.print("u"); penundaan (50); lcd.setCursor(4, 0); lcd.print("saya"); penundaan (50); lcd.setCursor(5, 0); lcd.print("n"); penundaan (50); lcd.setCursor(6, 0); lcd.print("o"); penundaan (50); lcd.setCursor(8, 0); lcd.print("W"); penundaan (50); lcd.setCursor(9, 0); lcd.print("e"); penundaan (50); lcd.setCursor(10, 0); lcd.print("a"); penundaan (50); lcd.setCursor(11, 0); lcd.print("t"); penundaan (50); lcd.setCursor(12, 0); lcd.print("h"); penundaan (50); lcd.setCursor(13, 0); lcd.print("e"); penundaan (50); lcd.setCursor(14, 0); lcd.print("r"); penundaan (50); lcd.setCursor(4, 1); lcd.print("S"); penundaan (50); lcd.setCursor(5, 1); lcd.print("t"); penundaan (50); lcd.setCursor(6, 1); lcd.print("a"); penundaan (50); lcd.setCursor(7, 1); lcd.print("t"); penundaan (50); lcd.setCursor(8, 1); lcd.print("saya"); penundaan (50); lcd.setCursor(9, 1); lcd.print("o"); penundaan (50); lcd.setCursor(10, 1); lcd.print("n"); delay(50);if (irrecv.decode(&results)) //jika data penerima modul penerima ir { if (hasil.nilai ==0xFF6897) //jika "0" didorong print TIME{ lcd.clear(); //mengosongkan LCD print_time(); penundaan (10000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD (200); //tunggu sebentar irrecv.resume(); // Terima nilai selanjutnya}jika (nilai hasil ==0xFF30CF) //jika "1" ditekan print TEMPERATURE and HUMIDITY{ lcd.clear(); //hapus LCD //BACA DATA dari DHT int chk =DHT.read11(DHT11_PIN); // TAMPILAN DATA lcd.setCursor(0, 0); lcd.print("Tem:"); lmVal =analogRead(lmPin);//membaca nilai A1 tem =(lmVal * 0,0048828125 * 100);//5/1024=0,0048828125;1000/10=100 lcd.print(tem);//print tem lcd. print(char(223));//cetak satuan" " lcd.print("C"); // Serial.println("C"); lcd.setCursor(0, 1); lcd.print("Hum:"); //Serial.print("Hum:"); lcd.print(DHT.kelembaban, 1); //mencetak kelembaban pada lcd //Serial.print(DHT.humidity,1); lcd.print("%"); //Serial.println("%"); penundaan (10000); //tunggu 3000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar irrecv.resume(); // Terima nilai berikutnya}jika (hasil.nilai ==0xFF18E7) ​​//jika "2" ditekan, cetak DARKNESS{ lcd.clear(); //mengosongkan LCD lcd.setCursor(4, 0); //letakkan kursor pada 4 kolom, 1 baris lcd.print("Darkness:"); luce =analogRead(sensorPin); //baca ldr pluce =map(luce, 0, 1023, 0, 100); //nilai sensor diubah menjadi nilai dari 0 hingga 100 lcd.setCursor(6, 1); //letakkan kursor di tengah LCD lcd.print(pluce); //cetak persentase lcd.print("%"); //cetak simbol delay(10000); //tunda 10.000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar irrecv.resume(); // Terima nilai berikutnya}jika (nilai hasil ==0xFF7A85) //jika "3" ditekan, cetak SNOW atau WATER LEVEL{ lcd.clear(); //hapus LCD lcd.setCursor(0, 0); //letakkan kursor pada 0 kolom, 1 baris lcd.print("Level cairan(mm):"); //print "Level cairan(mm):" int waterValue =analogRead(waterSensor); // mendapatkan nilai sensor air lcd.setCursor(6, 1); //tempatkan kursor pada 6 kolom,2 baris mmwaterValue =map(waterValue, 0, 1023, 0, 40); lcd.print(mmwaterValue); //nilai yang ditampilkan pada lcd delay(10000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD(200); irrecv.resume(); // Terima nilai berikutnya}jika (nilai hasil ==0xFF9867) //jika "PRESENTASI" ditekan print TIME, TEM dan HUM, DARKNESS dan S atau W LEVEL satu kali{ lcd.clear(); //mengosongkan LCD print_time(); penundaan (4000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD (200); //tunggu sebentar //BACA DATA DHT int chk =DHT.read11(DHT11_PIN); // TAMPILAN DATA lcd.setCursor(0, 0); lcd.print("Tem:"); lmVal =analogRead(lmPin);//membaca nilai A0 tem =(lmVal * 0,0048828125 * 100);//5/1024=0,0048828125;1000/10=100 lcd.print(tem);//print tem lcd. print(char(223));//cetak satuan" " lcd.print("C"); // Serial.println("C"); lcd.setCursor(0, 1); lcd.print("Hum:"); //Serial.print("Hum:"); lcd.print(DHT.kelembaban, 1); //mencetak kelembaban pada lcd //Serial.print(DHT.humidity,1); lcd.print("%"); //Serial.println("%"); penundaan (4000); //tunggu 3000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar lcd.setCursor(4, 0); //letakkan kursor pada 4 kolom, 1 baris lcd.print("Darkness:"); luce =analogRead(sensorPin); //baca ldr pluce =map(luce, 0, 1023, 0, 100); //nilai sensor diubah menjadi nilai dari 0 hingga 100 lcd.setCursor(6, 1); //letakkan kursor di tengah LCD lcd.print(pluce); //cetak persentase lcd.print("%"); //cetak simbol delay(4000); //tunda 10.000 md lcd.clear(); //menghapus penundaan LCD(200); //tunggu sebentar lcd.setCursor(0, 0); //letakkan kursor pada 0 kolom, 1 baris lcd.print("Level cairan(mm):"); //print "Level cairan(mm):" int waterValue =analogRead(waterSensor); // mendapatkan nilai sensor air lcd.setCursor(6, 1); //tempatkan kursor pada 6 kolom,2 baris mmwaterValue =map(waterValue, 0, 1023, 0, 40); lcd.print(mmwaterValue); //nilai yang ditampilkan pada lcd delay(4000); //tunda 10000ms lcd.clear(); //menghapus penundaan LCD(200); irrecv.resume(); // Terima nilai berikutnya}}}

Suku cadang dan penutup khusus

box_a5et5f4U9F.dwg

Skema

aws_DMDwb4iUZp.fzz

Proses manufaktur

  1. Stasiun Cuaca V 2.0
  2. Detektor Bahasa TinyML Berbasis Edge Impulse &Arduino
  3. Game Arduino Gyroscope dengan MPU-6050
  4. 6-Shooter:Stasiun Pencampur Minuman Arduino
  5. Arduino Digital Dice
  6. Temukan Saya
  7. Lampu Meja Reaktif Audio Arduino
  8. Datalogger Balon Cuaca Bertenaga Arduino
  9. $10 Portable Arduino Weather Station (AWS)
  10. NeoMatrix Arduino Pong