- Gerekli Bileşenler
- Corona Canlı Verilerini almak için API bağlantısı
- Devre şeması
- Covid19 Tracker için ESP32'yi Programlama
- Otomatik El Temizleyicisinin Covid19 Tracker ile Test Edilmesi
Corona Virüsü (Covid19) dünyada büyük hasarlar yaratıyor. Neredeyse her ülke Corona Virüsünden muzdarip. DSÖ, bunun Pandemik bir hastalık olduğunu duyurdu ve birçok şehir kilit altında, insanlar evlerinden çıkamıyor ve binlerce kişi hayatını kaybetti. Birçok web sitesi, Microsoft'un Tracker, Esri'nin Covid19 Tracker vb. Gibi koronavirüs vakalarının canlı güncellemelerini sağlıyor.
Bu projede, Koronavirüs vakalarının canlı sayısını da gösteren LCD'li bir Otomatik El Temizleyici Dispenseri inşa edeceğiz. Bu proje ESP32, Ultrasonik Sensör, 16x2 LCD Modül, Su pompası ve El Dezenfektanı kullanacaktır. Covid19 bulaşmış kişilerin canlı verilerini almak için Esri'nin API Gezgini'ni kullanıyoruz. Dezenfektan makinesinin çıkışının altında ellerin varlığını kontrol etmek için bir ultrasonik sensör kullanılır. Dezenfektan çıkışı ile kendisi arasındaki mesafeyi sürekli olarak hesaplar ve ESP'ye mesafe 15 cm'den az olduğunda dezenfektanı dışarı itmek için pompayı açmasını söyler.
ESP32 ana kontrolör olarak kullanılır, internete kolaylıkla bağlanabilen bir Wi-Fi modülüdür. Daha önce ESP32 kullanarak birçok IoT tabanlı proje oluşturmak için kullandık.
Gerekli Bileşenler
- ESP32 Geliştirme Modülü
- Ultrasonik sensör
- 16 * 2 LCD Ekran
- Röle Modülü
- Mini DC Dalgıç Pompa
- El dezenfektanı
Corona Canlı Verilerini almak için API bağlantısı
Burada veriyi internetten alıp 16x2 LCD'de görüntülemek için ESP32'ye göndermemiz gerekiyor. Bunun için JSON dosyasını internetten okumak için bir HTTP alma isteği çağrılır. Burada Coronavirus Disease GIS Hub tarafından sağlanan API'yi kullanıyoruz. Hindistan için toplam Onaylanmış ve kurtarılmış vakaları almak için doğru sorgu URL'sini kolayca derleyebilir ve bunu farklı bir ülke için kullanmak istiyorsanız ülkeyi / Bölgeyi de değiştirebilirsiniz.
Şimdi "Şimdi Dene" yi tıklayın veya sorgu URL'sini yeni bir tarayıcıya yapıştırın, bu sorgunun çıktısı aşağıdaki gibi görünecektir:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," alanlar ":," özellikler ":}
JSON verilerini aldıktan sonra, şimdi JSON verilerini okumak ve ihtiyaçlarımıza göre ifade etmek için kodu oluşturun. Bunun için ArduinoJson Assistant'a gidin ve JSON verilerini Input bölümüne yapıştırın.
Şimdi ayrıştırma programına gidin ve sizin için yararlı olan kod bölümünü kopyalayın. Yalnızca Hindistan'da doğrulanmış ve kurtarılmış vakalara ihtiyacım olduğu için aşağıdaki değişkenleri kopyaladım.
Devre şeması
Bu Covid19 Tracker & otomatik el dezenfektanı dağıtma makinesi için tam devre şeması aşağıda verilmiştir.
Su pompası, bir röle modülü aracılığıyla ESP32'ye bağlanır. Rölenin Vcc ve GND pinleri ESP32'nin Vin ve GND pinlerine, rölenin giriş pini ise ESP32'nin D19 pinine bağlanır. Ultrasonik sensörün Trig ve Echo pinleri Arduino'nun D5 ve D18 Pinlerine bağlanır.
Komple bağlantılar aşağıdaki tabloda verilmiştir.
LCD ekran | ESP32 |
VSS | GND |
VDD | 5V |
SES | Potansiyometre |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
Bir | 5V |
K | GND |
Ultrasonik sensör | ESP32 |
Vcc | Vin |
GND | GND |
Tetikleyici | D5 |
EKO | D18 |
Bu Hareket Sensörü El Dezenfektanı Dispenseri için donanım şu şekilde görünecek
Covid19 Tracker için ESP32'yi Programlama
Auto Hand Sanitizer ve CORONA19 Tracker için tam kod sayfanın sonunda bulunabilir. Burada programın önemli kısımları açıklanmıştır.
Tüm gerekli kitaplık dosyalarını ekleyerek kodu başlatın. HTTPClient kitaplığı, verileri HTTP sunucusundan almak için kullanılır. Veri dizilerini ifade etmek için ArduinoJson kütüphanesi kullanılır. Burada ArduinoJson kütüphanesi, Onaylanmış durumları ve sunucudan aldığımız veri dizisinden Kurtarılmış durumları filtrelemek için kullanılır. LCD ekran Modülü için LiquidCrystal kitaplığı kullanılır.
#Dahil etmek
Verileri sunucudan almak için NodeMCU ESP32'nin internete bağlanması gerekir. Bunun için aşağıdaki satırlara Wi-Fi SSID'nizi ve Şifrenizi girin.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Bundan sonra LCD modülünü, Ultrasonik sensörü ve Röle modülünü bağladığınız pimleri tanımlayın.
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 pompası = 19;
Şimdi daha önce oluşturulan API linkine giriyoruz. Bu bağlantıyı kullanarak Hindistan'daki toplam teyit edilmiş vakaları ve Kurtarılmış vakaları alacağız. URL'deki ülke adını size göre değiştirebilirsiniz.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometrysonry&med, Kurtarıldı ";
Şimdi boşluk kurulumunun () içinde , Ultrasonik sensörün Trig ve Echo pinini giriş pinleri ve Röle pinini çıkış olarak tanımlayın.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pompa, ÇIKIŞ);
Ultrasonik sensörün nasıl çalıştığı hakkında daha fazla bilgi edinmek için, herhangi bir nesne arasındaki mesafeyi hesaplamak için nasıl kullanıldığının yanı sıra TRIG ve ECHO pininin işlevini açıkladığımız Arduino ile arayüzünü kontrol edin. Ayrıca, diğer ultrasonik tabanlı projeleri kontrol edin.
Bundan sonra, ESP'nin Wi-Fi ile bağlı olup olmadığını kontrol edin, değilse, ESP'nin bağlanmasını seri monitörde “…..” yazdırarak bekleyecektir.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {gecikme (500); Seri.print ("."); // bağlanmayana kadar yazdır…} Serial.println ("WiFi bağlı");
İç boşluk, ultra () işlev sürekli bir ultrasonik sensör kullanarak mesafe hesaplamak ve mesafe 15 cm e eşit veya daha az ise 2 saniye borusu vasıtasıyla dezenfektan dışında itmek için, o zaman pompa açılır. Açıkçası birisi ellerini çıkış borusunun altına koyduğunda mesafe azalacak ve bu pompanın açılmasını tetikleyecektir.
void ultra () {digitalWrite (trigPin, LOW); gecikme Mikrosaniye (2); digitalWrite (trigPin, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (trigPin, DÜŞÜK); süre = pulseIn (echoPin, HIGH); mesafe = süre * 0,0340 / 2; Serial.println ("Mesafe"); Serial.println (mesafe); if (mesafe <= 15) {Serial.print ("Pompayı Açma"); digitalWrite (pompa, YÜKSEK); gecikme (2000); digitalWrite (pompa, DÜŞÜK); ESP.restart (); }}
Şimdi void loop () işlevinin içinde, JSON dosyasının ESP32 tarafından alınıp alınmadığını kontrol edin ve aşağıdaki satırları kullanarak seri monitörde JSON verilerini yazdırın.
int httpCode = https.GET (); if (httpCode> 0) {// Dönen kodu kontrol edin String payload = https.getString ();
Bundan sonra, ArduinoJson Assistant'tan oluşturulan cümleleme programını kullanın . Bu ifade programı bize Hindistan'daki toplam doğrulanmış ve kurtarılmış vakaları verecektir.
JsonArray alanları = doc; JsonObject features_0_attributes = doc; long features_0_attributes_Last_Update = features_0_attributes; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Otomatik El Temizleyicisinin Covid19 Tracker ile Test Edilmesi
Sonunda pille çalışan el dezenfektanı dağıtıcımız teste hazır. Donanımı devre şemasına göre bağlayın ve programı ESP32'ye yükleyin, başlangıçta LCD'de "Covid19 Tracker" ve "Hand Sanitizer" mesajını görmelisiniz ve birkaç saniye sonra, onaylanmış vakaları ve kurtarılmış vakaları Aşağıda gösterildiği gibi LCD ekran.
Buna benzer şekilde, API bağlantısında bazı değişiklikler yaparak bu verileri herhangi bir ülke için alabilirsiniz. Bir tam çalışma, video ve kod olan sayfanın sonunda verilen.