- Komponen Diperlukan
- Pautan API untuk mendapatkan Corona Live Data
- Rajah Litar
- Pengaturcaraan ESP32 untuk Covid19 Tracker
- Menguji Pembersih Tangan Automatik dengan Covid19 Tracker
Corona Virus (Covid19) mendatangkan malapetaka di dunia. Hampir setiap negara menderita Virus Corona. WHO telah mengumumkannya sebagai penyakit Pandemik dan banyak bandar berada dalam keadaan terkurung, orang tidak dapat keluar dari rumah mereka, dan ribuan orang kehilangan nyawa. Banyak laman web memberikan kemas kini langsung mengenai kes coronavirus seperti Microsoft's Tracker, Esri's Covid19 Tracker, dll.
Dalam projek ini, kami akan membina Auto Hand Sanitizer Dispenser dengan LCD yang juga menunjukkan jumlah langsung kes Coronavirus. Projek ini akan menggunakan ESP32, Sensor Ultrasonik, Modul LCD 16x2, pam Air, dan Pembersih Tangan. Kami menggunakan Penjelajah API Esri untuk mendapatkan data langsung orang yang dijangkiti Covid19. Sensor ultrasonik digunakan untuk memeriksa kehadiran tangan di bawah saluran keluar mesin pembersih. Ia akan terus mengira jarak antara saluran sanitizer dan dirinya dan memberitahu ESP untuk menghidupkan pam setiap kali jaraknya kurang dari 15cm untuk menolak pembersih keluar.
ESP32 digunakan sebagai pengawal utama, ia adalah modul Wi-Fi yang dapat disambungkan ke internet dengan mudah. Kami sebelum ini menggunakannya untuk membina banyak projek berasaskan IoT menggunakan ESP32.
Komponen Diperlukan
- Modul Dev ESP32
- Sensor Ultrasonik
- Paparan LCD 16 * 2
- Modul Relay
- Pam Submersible Mini DC
- Pembersih tangan
Pautan API untuk mendapatkan Corona Live Data
Di sini kita perlu mendapatkan data dari internet dan kemudian menghantarnya ke ESP32 untuk memaparkannya pada LCD 16x2. Untuk itu, permintaan get HTTP dipanggil untuk membaca fail JSON dari internet. Di sini kami menggunakan API yang disediakan oleh Coronavirus Disease GIS Hub. Anda boleh menyusun URL pertanyaan yang betul dengan mudah untuk mendapatkan jumlah kes yang Disahkan dan dipulihkan untuk India dan juga boleh mengubah negara / Wilayah jika anda ingin menggunakannya untuk negara lain.
Sekarang klik "Cuba Sekarang" atau tampal URL pertanyaan ke penyemak imbas baru, output pertanyaan itu akan kelihatan seperti ini:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," terkiniWkid ": 4326}," bidang ":," ciri ":}
Setelah mendapatkan data JSON, sekarang hasilkan kod untuk membaca data JSON dan frasa mengikut keperluan kami. Untuk itu, pergi ke ArduinoJson Assistant dan tampal data JSON di bahagian Input.
Sekarang tatal ke bawah ke program penghuraian dan salin bahagian kod yang berguna untuk anda. Saya menyalin pemboleh ubah berikut kerana saya hanya memerlukan kes yang disahkan dan pulih di India.
Rajah Litar
Gambarajah litar lengkap untuk mesin dispenser pembersih tangan & automatik Covid19 ini diberikan di bawah
Pam air disambungkan ke ESP32 melalui modul geganti. Pin relay Vcc dan GND disambungkan ke pin Vin dan GND ESP32 sementara pin input relay disambungkan ke pin D19 ESP32. Pin Trig dan Echo dari sensor Ultrasonik disambungkan ke D5 dan D18 Pin Arduino.
Sambungan lengkap diberikan dalam jadual di bawah.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potensiometer |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K | GND |
Sensor Ultrasonik | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECHO | D18 |
Perkakasan untuk Motion Sensor Hand Sanitizer Dispenser ini akan kelihatan seperti ini
Pengaturcaraan ESP32 untuk Covid19 Tracker
Kod lengkap untuk Auto Hand Sanitizer dan CORONA19 Tracker boleh didapati di hujung halaman. Di sini bahagian penting program dijelaskan.
Mulakan kod dengan memasukkan semua fail perpustakaan yang diperlukan. Pustaka klien HTTP digunakan untuk mendapatkan data dari pelayan HTTP. Perpustakaan ArduinoJson digunakan untuk frasa susunan data. Di sini perpustakaan ArduinoJson digunakan untuk menyaring kes yang Disahkan dan Dipulihkan dari array data yang kami perolehi dari pelayan. Perpustakaan LiquidCrystal digunakan untuk Modul paparan LCD.
#sertakan
Untuk mendapatkan data dari pelayan, NodeMCU ESP32 harus berhubung dengan internet. Untuk itu, masukkan SSID dan Kata Laluan Wi-Fi anda pada baris di bawah.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Selepas itu tentukan pin di mana anda telah menyambungkan modul LCD, sensor Ultrasonik, dan modul Relay.
const int rs = 22, en = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); const int trigPin = 5; const int echoPin = 18; const int pump = 19;
Sekarang kita memasukkan pautan API yang dihasilkan lebih awal. Dengan menggunakan pautan ini, kita akan mendapat jumlah kes yang disahkan dan kes yang Dipulihkan di India. Anda boleh menukar nama negara dalam URL mengikut anda.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false, Dipulihkan ";
Sekarang di dalam persediaan kosong () , tetapkan pin Trig dan Echo sensor Ultrasonik sebagai pin input dan pin Relay sebagai output.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pam, OUTPUT);
Untuk mengetahui lebih lanjut mengenai bagaimana sensor Ultrasonik berfungsi, periksa hubungannya dengan Arduino di mana kami telah menerangkan fungsi pin TRIG dan ECHOnya serta bagaimana ia digunakan untuk mengira jarak antara objek apa pun. Juga, periksa projek berasaskan ultrasonik lain.
Selepas itu, periksa sama ada ESP dihubungkan dengan Wi-Fi, jika tidak, ia akan menunggu ESP menyambung dengan mencetak “…..” pada monitor bersiri.
WiFi.begin (ssid, lulus); sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (500); Cetakan bersiri ("."); // cetak… sehingga tidak disambungkan} Serial.println ("WiFi disambungkan");
Di dalam fungsi ultra void void kita akan terus menghitung jarak menggunakan sensor ultrasonik dan jika jaraknya kurang dari atau sama dengan 15 cm, maka ia akan menghidupkan pam selama 2 saat untuk mendorong pembersih keluar melalui paip. Tidak sedar apabila seseorang meletakkan tangannya di bawah paip keluar, jaraknya akan berkurang dan ia akan mencetuskan pam untuk menyala.
void ultra () {digitalWrite (trigPin, RENDAH); kelewatanMikrodetik (2); digitalWrite (trigPin, TINGGI); kelewatanMikrodetik (10); digitalWrite (trigPin, RENDAH); tempoh = pulseIn (echoPin, TINGGI); jarak = jangka masa * 0.0340 / 2; Serial.println ("Jarak"); Serial.println (jarak); jika (jarak <= 15) {Serial.print ("Opening Pump"); digitalWrite (pam, TINGGI); kelewatan (2000); digitalWrite (pam, RENDAH); ESP.mulakan semula (); }}
Sekarang di dalam fungsi gelung void () , periksa apakah fail JSON diterima oleh ESP32 dengan membacanya dan mencetak data JSON pada monitor bersiri menggunakan baris berikut
int httpCode = https.GET (); jika (httpCode> 0) {// Periksa kod pengembalian String payload = https.getString ();
Selepas itu, gunakan program frasa kerja yang dihasilkan dari ArduinoJson Assistant. Program frasa ini akan memberi kita keseluruhan kes yang disahkan dan pulih di India.
Medan JsonArray = doc; JsonObject features_0_attributes = doc; ciri panjang_0_attribut_Last_Update = features_0_attribut; int features_0_attributes_Confirmed = features_0_attribut; // int features_0_attributes_Deaths = features_0_attribut; int features_0_attributes_Recovered = features_0_attribut;
Menguji Pembersih Tangan Automatik dengan Covid19 Tracker
Jadi akhirnya dispenser pembersih tangan yang dikendalikan bateri kami siap untuk diuji. Cukup sambungkan perkakasan mengikut gambarajah litar dan muat naik program ke dalam ESP32, pada mulanya anda akan melihat mesej "Covid19 Tracker" & "Hand Sanitizer" di LCD dan kemudian setelah beberapa saat ia akan memaparkan kes yang disahkan & kes yang dipulihkan di Skrin LCD seperti gambar di bawah.
Sama seperti ini, anda boleh mendapatkan data ini untuk negara mana pun dengan membuat beberapa perubahan pada pautan API. A video kerja lengkap dan kod yang diberikan pada akhir halaman.