- Požadované komponenty
- Odkaz na rozhraní API pro získání živých dat Corona
- Kruhový diagram
- Programování ESP32 pro Covid19 Tracker
- Testování automatického dezinfekčního prostředku na ruce pomocí nástroje Covid19 Tracker
Virus Corona (Covid19) způsobuje ve světě spoušť. Téměř každá země trpí virem Corona. WHO již ohlásila pandemickou nemoc a mnoho měst je v uzamčené situaci, lidé nemohou vystoupit ze svých domovů a tisíce lidí přišly o život. Mnoho webů poskytuje živé aktualizace případů koronaviru, jako je Microsoft Tracker, Esri's Covid19 Tracker atd.
V tomto projektu postavíme automatický dávkovač dezinfekce rukou s LCD displejem, který také zobrazuje aktuální počet případů koronavirů. Tento projekt bude využívat ESP32, ultrazvukový senzor, 16x2 LCD modul, vodní čerpadlo a ruční dezinfekci. K získání živých dat infikovaných lidí Covid19 používáme Esri's API Explorer. Ultrazvukový senzor se používá ke kontrole přítomnosti rukou pod výstupem zařízení na dezinfekci. Neustále vypočítá vzdálenost mezi výstupem sanitizéru a sebou samým a řekne ESP, aby zapnulo čerpadlo, kdykoli je vzdálenost menší než 15 cm, aby sanitizer vytlačil.
Jako hlavní řadič se používá ESP32, jedná se o modul Wi-Fi, který lze snadno připojit k internetu. Dříve jsme ho používali k vytváření mnoha projektů založených na IoT pomocí ESP32.
Požadované komponenty
- Modul ESP32 Dev
- Ultrazvukový senzor
- 16 * 2 LCD displej
- Reléový modul
- Mini DC ponorné čerpadlo
- Dezinfekční prostředek na ruce
Odkaz na rozhraní API pro získání živých dat Corona
Zde musíme získat data z internetu a poté je odeslat na ESP32, aby se zobrazila na 16x2 LCD. Za tímto účelem je vyvolán požadavek HTTP get ke čtení souboru JSON z internetu. Zde používáme API poskytované Coronavirus Disease GIS Hub. Můžete snadno sestavit správnou adresu URL dotazu, abyste získali celkový počet potvrzených a obnovených případů pro Indii, a můžete také změnit zemi / oblast, pokud ji chcete použít pro jinou zemi.
Nyní klikněte na „Vyzkoušet“ nebo vložte adresu URL dotazu do nového prohlížeče, výstup tohoto dotazu bude vypadat takto:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Po získání dat JSON nyní vygenerujte kód, který načte data JSON, a formulujte je podle našich potřeb. Za tímto účelem přejděte do asistenta ArduinoJson a vložte data JSON do sekce Vstup.
Nyní přejděte dolů na program analýzy a zkopírujte část kódu, která je pro vás užitečná. Zkopíroval jsem níže uvedené proměnné, protože jsem potřeboval pouze potvrzené a obnovené případy v Indii.
Kruhový diagram
Kompletní schéma zapojení pro tento automat Covid19 Tracker a automatický dávkovač dezinfekce rukou je uveden níže
Vodní čerpadlo je připojeno k ESP32 přes reléový modul. Kolíky Vcc a GND relé jsou připojeny k pinům Vin a GND ESP32, zatímco vstupní kolík relé je připojen k kolíku D19 ESP32. Kolíky Trig a Echo ultrazvukového senzoru jsou připojeny k kolíkům D5 a D18 Arduina.
Kompletní připojení jsou uvedena v následující tabulce.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potenciometr |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K. | GND |
Ultrazvukový senzor | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECHO | D18 |
Hardware pro tento dávkovač dezinfekce rukou na senzory pohybu bude vypadat takto
Programování ESP32 pro Covid19 Tracker
Kompletní kód pro Auto Hand Sanitizer a CORONA19 Tracker najdete na konci stránky. Zde jsou vysvětleny důležité části programu.
Spusťte kód zahrnutím všech požadovaných souborů knihovny. Knihovna HTTPClient se používá k získání dat ze serveru HTTP. Knihovna ArduinoJson se používá k formulaci datových polí. Zde se knihovna ArduinoJson používá k filtrování potvrzených případů a obnovy z datového pole, které získáváme ze serveru. Pro modul LCD displeje se používá knihovna LiquidCrystal.
#zahrnout
Chcete-li získat data ze serveru, musí se NodeMCU ESP32 připojit k internetu. Za tímto účelem zadejte na následujících řádcích své SSID a heslo Wi-Fi.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Poté definujte piny, ke kterým jste připojili LCD modul, ultrazvukový senzor a reléový modul.
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 čerpadlo = 19;
Nyní zadáme odkaz API, který je generován dříve. Pomocí tohoto odkazu získáme celkem potvrzené případy a obnovené případy v Indii. Název země můžete v URL změnit podle sebe.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&out_ield_outse, Obnoveno ";
Nyní uvnitř nastavení void () definujte kolík Trig a Echo ultrazvukového senzoru jako vstupní kolíky a reléový kolík jako výstup.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (čerpadlo, VÝSTUP);
Chcete-li se dozvědět více o tom, jak funguje ultrazvukový senzor, zkontrolujte jeho propojení s Arduino, kde jsme vysvětlili funkci jeho kolíku TRIG a ECHO spolu s tím, jak se používá k výpočtu vzdálenosti mezi jakýmkoli objektem. Zkontrolujte také další projekty založené na ultrazvuku.
Poté zkontrolujte, zda je ESP připojen k Wi-Fi, pokud ne, počká na připojení ESP vytištěním „…..“ na sériovém monitoru.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); // tisk… dokud není připojen} Serial.println ("WiFi připojeno");
Uvnitř funkce void ultra () budeme průběžně vypočítávat vzdálenost pomocí ultrazvukového senzoru a pokud je vzdálenost menší nebo rovna 15 cm, zapne čerpadlo na 2 sekundy, aby vytlačilo sanitizér ven potrubím. Je zřejmé, že když někdo položí ruce pod výstupní potrubí, vzdálenost se zmenší a spustí se zapnutí čerpadla.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); vzdálenost = doba trvání * 0,0340 / 2; Serial.println ("vzdálenost"); Serial.println (vzdálenost); if (vzdálenost <= 15) {Serial.print ("Otevírací čerpadlo"); digitalWrite (pumpa, VYSOKÁ); zpoždění (2000); digitalWrite (čerpadlo, LOW); ESP.restart (); }}
Nyní uvnitř funkce void loop () zkontrolujte, zda soubor JSON přijal ESP32, a to načtením a tiskem dat JSON na sériovém monitoru pomocí následujících řádků
int httpCode = https.GET (); if (httpCode> 0) {// Zkontrolujte návratový kód String payload = https.getString ();
Poté použijte frázovací program vygenerovaný z ArduinoJson Assistant. Tento program vytváření frází nám poskytne celkový počet potvrzených a obnovených případů v Indii.
JsonArray pole = 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;
Testování automatického dezinfekčního prostředku na ruce pomocí nástroje Covid19 Tracker
Nakonec je náš bateriový dávkovač dezinfekčních prostředků na ruce připraven k testování. Jednoduše připojte hardware podle schématu zapojení a nahrajte program do ESP32, na začátku byste měli vidět zprávu „Covid19 Tracker“ a „Hand Sanitizer“ na LCD a poté po několika sekundách zobrazí potvrzené případy a obnovené případy v LCD obrazovka, jak je znázorněno níže.
Podobně můžete získat tato data pro libovolnou zemi provedením určitých změn v odkazu API. Kompletní pracovní video a kód je uveden na konci této stránky.