- Komponenter krävs
- API-länk för att få Corona Live Data
- Kretsschema
- Programmering ESP32 för Covid19 Tracker
- Testar den automatiska handrensaren med Covid19 Tracker
Corona Virus (Covid19) sårar kaos i världen. Nästan alla länder lider av Corona-viruset. WHO har redan meddelat att det är en pandemisk sjukdom och många städer är i låsningssituation, människor kan inte gå ut ur sina hem och tusentals har förlorat sina liv. Många webbplatser tillhandahåller liveuppdateringar av koronavirusfall som Microsofts Tracker, Esri's Covid19 Tracker, etc.
I det här projektet kommer vi att bygga en Auto Hand Sanitizer Dispenser med en LCD som också visar antalet live Coronavirus-fall. Detta projekt kommer att använda ESP32, ultraljudssensor, 16x2 LCD-modul, vattenpump och handdesinfektionsmedel. Vi använder Esris API Explorer för att få live-data från Covid19-infekterade personer. En ultraljudssensor används för att kontrollera närvaron av händer under desinficeringsmaskinens utlopp. Den beräknar kontinuerligt avståndet mellan desinfektionsutloppet och sig själv och ber ESP att sätta på pumpen när avståndet är mindre än 15 cm för att trycka ut desinfektionsmedlet.
ESP32 används som huvudkontroller, det är en Wi-Fi-modul som enkelt kan anslutas till internet. Vi använde den tidigare för att bygga många IoT-baserade projekt med ESP32.
Komponenter krävs
- ESP32 Dev-modul
- Ultraljudssensor
- 16 * 2 LCD-skärm
- Relämodul
- Mini DC dränkbar pump
- Handsprit
API-länk för att få Corona Live Data
Här måste vi hämta informationen från internet och sedan skicka den till ESP32 för att visa den på 16x2 LCD. För det anropas en HTTP-get-begäran för att läsa JSON-filen från internet. Här använder vi API som tillhandahålls av Coronavirus Disease GIS Hub. Du kan enkelt sammanställa rätt sökadress för att få de totala bekräftade och återställda fallen för Indien och kan också ändra land / region om du vill använda detta för ett annat land.
Klicka nu på "Försök nu" eller klistra in frågan URL i en ny webbläsare, resultatet av frågan kommer att se ut så här:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Efter att ha fått JSON-data, generera nu koden för att läsa JSON-data och formulera den enligt våra behov. För det, gå till ArduinoJson-assistenten och klistra in JSON-data i avsnittet Ingång.
Bläddra nu ner till analysprogrammet och kopiera det kodavsnitt som är användbart för dig. Jag kopierade nedanstående variabler eftersom jag bara behövde de bekräftade och återställda fallen i Indien.
Kretsschema
Det fullständiga kretsschemat för denna Covid19 Tracker & automatisk handdesinfektionsmaskin finns nedan
Vattenpumpen är ansluten till ESP32 via en relämodul. Reläet Vcc och GND på reläet är anslutna till Vin och GND-stiften på ESP32 medan ingångsstiftet på reläet är anslutet till D19-stiftet på ESP32. Trig- och Echo-stift på ultraljudssensorn är ansluten till D5 och D18 Pins av Arduino.
Kompletta anslutningar ges i nedanstående tabell.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potentiometer |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K | GND |
Ultraljudssensor | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
EKO | D18 |
Hårdvaran för denna rörelsesensors handdesinfektionsdispenser kommer att se ut så här
Programmering ESP32 för Covid19 Tracker
Komplett kod för Auto Hand Sanitizer och CORONA19 Tracker finns i slutet av sidan. Här förklaras viktiga delar av programmet.
Starta koden genom att inkludera alla nödvändiga biblioteksfiler. HTTPClient-biblioteket används för att hämta data från HTTP-servern. ArduinoJson-biblioteket används för att formulera dataarrisen. Här används ArduinoJson-biblioteket för att filtrera de bekräftade fallen och återställas från den dataarray som vi får från servern. LiquidCrystal-biblioteket används för LCD-skärmmodulen.
#omfatta
För att få data från servern måste NodeMCU ESP32 ansluta till internet. För det, ange ditt Wi-Fi SSID och lösenord i raderna nedan.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Därefter definierar du stiften där du har anslutit LCD-modulen, ultraljudssensorn och relämodulen.
konst 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;
Nu går vi in i API-länken som genererades tidigare. Med hjälp av den här länken får vi de totala bekräftade fallen och återställda fallen i Indien. Du kan ändra landets namn i webbadressen enligt dig.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&outFields, Återställd ";
Nu inne i hålrums setup () , definiera Trig och Echo stift av Ultraljudssensor som ingångsstiften och Relä stift som en utgång.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pump, OUTPUT);
För att lära dig mer om hur ultraljudssensorn fungerar, kontrollera dess gränssnitt med Arduino där vi har förklarat funktionen för dess TRIG- och ECHO-stift samt hur den används för att beräkna avståndet mellan något objekt. Kontrollera också andra ultraljudsbaserade projekt.
Efter det, kontrollera om ESP är ansluten till Wi-Fi, om inte väntar den på att ESP ska ansluta genom att skriva ut “…..” på den seriella bildskärmen.
WiFi.begin (ssid, pass); medan (WiFi.status ()! = WL_CONNECTED) {fördröjning (500); Serial.print ("."); // skriv ut… tills den inte är ansluten} Serial.println ("WiFi-ansluten");
Inne i tomrummet ultra () -funktionen kommer vi kontinuerligt att beräkna avståndet med en ultraljudssensor och om avståndet är mindre än eller lika med 15 cm, kommer det att sätta på pumpen i 2 sekunder för att skjuta desinfektionsmedlet ut genom röret. Omedvetet när någon lägger händerna under utloppsröret minskar avståndet och det kommer att få pumpen att sätta på.
ogiltig ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); varaktighet = pulseIn (echoPin, HIGH); avstånd = varaktighet * 0,0340 / 2; Serial.println ("Avstånd"); Serial.println (avstånd); if (avstånd <= 15) {Serial.print ("Öppningspump"); digitalWrite (pump, HIGH); fördröjning (2000); digitalWrite (pump, LOW); ESP.start (); }}
Nu inne i tomrummet loop () funktion, kontrollera om JSON-fil tas emot av ESP32 genom att läsa den och skriva JSON data på seriebildskärmen med följande rader
int httpCode = https.GET (); if (httpCode> 0) {// Sök efter den returnerande koden String payload = https.getString ();
Använd sedan fraseringsprogrammet genererat från ArduinoJson Assistant. Detta formuleringsprogram ger oss de totala bekräftade och återhämtade fallen i Indien.
JsonArray-fält = doc; JsonObject features_0_attributes = doc; långa funktioner_0_attribut_Last_Update = funktioner_0_attribut; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Testar den automatiska handrensaren med Covid19 Tracker
Så slutligen är vår batteridrivna handdesinfektionsdispenser redo att testas. Anslut bara hårdvaran enligt kretsschemat och ladda upp programmet till ESP32, i början bör du se meddelandet "Covid19 Tracker" & "Hand Sanitizer" på LCD-skärmen och sedan efter några sekunder kommer det att visas bekräftade fall och återställda fall i LCD-skärm som visas nedan.
I likhet med detta kan du få denna information för vilket land som helst genom att göra några ändringar i API-länken. En komplett arbetsvideo och kod ges i slutet av sidan.