- Componenten vereist
- API-link voor het verkrijgen van de Corona Live-gegevens
- Schakelschema
- ESP32 programmeren voor Covid19 Tracker
- De automatische handdesinfectie testen met Covid19 Tracker
Het coronavirus (Covid19) richt grote schade aan in de wereld. Bijna elk land lijdt aan het Coronavirus. De WHO heeft al aangekondigd dat het een pandemische ziekte is en veel steden zitten vast, mensen kunnen hun huizen niet verlaten en duizenden zijn omgekomen. Veel websites bieden live updates van de coronavirusgevallen zoals Microsoft's Tracker, Esri's Covid19 Tracker, enz.
In dit project zullen we een Auto Hand Sanitizer Dispenser bouwen met een LCD die ook de live telling van Coronavirusgevallen laat zien. Dit project maakt gebruik van ESP32, ultrasone sensor, 16x2 LCD-module, waterpomp en handdesinfecterend middel. We gebruiken Esri's API Explorer om de live gegevens van Covid19-geïnfecteerde mensen te krijgen. Een ultrasone sensor wordt gebruikt om de aanwezigheid van handen onder de uitlaat van de ontsmettingsmachine te controleren. Het berekent continu de afstand tussen de ontsmettingsmiddeluitlaat en zichzelf en vertelt de ESP om de pomp in te schakelen wanneer de afstand minder dan 15 cm is om het ontsmettingsmiddel eruit te duwen.
ESP32 wordt gebruikt als de hoofdcontroller, het is een Wi-Fi-module die gemakkelijk verbinding kan maken met internet. We hebben het eerder gebruikt om veel op IoT gebaseerde projecten te bouwen met ESP32.
Componenten vereist
- ESP32-ontwikkelaarsmodule
- Ultrasoon sensor
- 16 * 2 LCD-scherm
- Relaismodule
- Mini DC-dompelpomp
- Handreinigingsmiddel
API-link voor het verkrijgen van de Corona Live-gegevens
Hier moeten we de gegevens van internet halen en deze vervolgens naar ESP32 sturen om ze op een 16x2 LCD-scherm weer te geven. Daarvoor wordt een HTTP-get-verzoek aangeroepen om het JSON-bestand van internet te lezen. Hier gebruiken we de API van Coronavirus Disease GIS Hub. U kunt eenvoudig de juiste query-URL samenstellen om het totale aantal bevestigde en herstelde gevallen voor India te krijgen en u kunt ook het land / de regio wijzigen als u dit voor een ander land wilt gebruiken.
Klik nu op "Nu proberen" of plak de query-URL in een nieuwe browser, de uitvoer van die query zal er als volgt uitzien:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," velden ":," features ":}
Nadat u de JSON-gegevens hebt opgehaald, genereert u nu de code om de JSON-gegevens te lezen en deze te formuleren volgens onze behoeften. Ga daarvoor naar de ArduinoJson-assistent en plak de JSON-gegevens in het gedeelte Invoer.
Blader nu omlaag naar het ontledingsprogramma en kopieer het codegedeelte dat voor u nuttig is. Ik heb de onderstaande variabelen gekopieerd omdat ik alleen de bevestigde en herstelde gevallen in India nodig had.
Schakelschema
Het volledige schakelschema voor deze Covid19 Tracker & automatische dispensermachine voor handdesinfectie wordt hieronder gegeven
De waterpomp is verbonden met de ESP32 via een relaismodule. Vcc- en GND-pinnen van het relais zijn verbonden met Vin- en GND-pinnen van ESP32 terwijl de ingangspen van het relais is verbonden met de D19-pin van ESP32. Trig- en Echo-pinnen van de ultrasone sensor zijn verbonden met D5- en D18-pinnen van Arduino.
Volledige aansluitingen worden gegeven in de onderstaande tabel.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potentiometer |
RS | D22 |
RW | GND |
E. | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
EEN | 5V |
K | GND |
Ultrasoon sensor | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECHO | D18 |
De hardware voor deze Motion Sensor Hand Sanitizer Dispenser ziet er als volgt uit
ESP32 programmeren voor Covid19 Tracker
De volledige code voor Auto Hand Sanitizer en CORONA19 Tracker vindt u aan het einde van de pagina. Hier worden belangrijke onderdelen van het programma uitgelegd.
Start de code door alle vereiste bibliotheekbestanden op te nemen. De HTTPClient-bibliotheek wordt gebruikt om de gegevens van de HTTP-server op te halen. ArduinoJson-bibliotheek wordt gebruikt om de gegevensarrays te formuleren. Hier wordt de ArduinoJson-bibliotheek gebruikt om de bevestigde gevallen te filteren en hersteld uit de gegevensarray die we van de server krijgen. LiquidCrystal-bibliotheek wordt gebruikt voor de LCD-displaymodule.
# omvatten
Om de gegevens van de server te krijgen, moet NodeMCU ESP32 verbinding maken met internet. Voer daarvoor uw Wi-Fi SSID en wachtwoord in de onderstaande regels in.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Definieer daarna de pinnen waarop u de LCD-module, ultrasone sensor en relaismodule hebt aangesloten.
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 pomp = 19;
Nu voeren we de API-link in die eerder is gegenereerd. Via deze link krijgen we het totale aantal bevestigde gevallen en herstelde gevallen in India. U kunt de landnaam in de URL naar wens wijzigen.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&outField_Region, Hersteld ";
Definieer nu in de leegte-instelling () de trigger- en echopin van de ultrasone sensor als invoerpennen en relaispen als een uitvoer.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pomp, OUTPUT);
Om meer te weten te komen over hoe de ultrasone sensor werkt, controleert u de interface met Arduino, waar we de functie van de TRIG- en ECHO-pin hebben uitgelegd en hoe deze wordt gebruikt om de afstand tussen elk object te berekenen. Bekijk ook andere ultrasone projecten.
Controleer daarna of het ESP is verbonden met Wi-Fi, zo niet, dan wacht het tot het ESP verbinding heeft gemaakt door "….." af te drukken op de seriële monitor.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {vertraging (500); Serial.print ("."); // print… till not connected} Serial.println ("WiFi verbonden");
Binnen de void ultra () functie zullen we continu de afstand berekenen met behulp van een ultrasone sensor en als de afstand kleiner is dan of gelijk is aan 15 cm, dan zal hij de pomp 2 seconden aanzetten om het ontsmettingsmiddel door de buis naar buiten te duwen. Onbewust wanneer iemand zijn handen onder de uitlaatpijp steekt, zal de afstand kleiner worden en zal de pomp worden ingeschakeld.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duur = pulseIn (echoPin, HIGH); afstand = duur * 0,0340 / 2; Serial.println ("Afstand"); Serial.println (afstand); if (afstand <= 15) {Serial.print ("Opening Pump"); digitalWrite (pomp, HIGH); vertraging (2000); digitalWrite (pomp, LOW); ESP.restart (); }}
Controleer nu in de void loop () -functie of het JSON-bestand is ontvangen door de ESP32 door het te lezen en JSON-gegevens af te drukken op de seriële monitor met behulp van de volgende regels
int httpCode = https.GET (); if (httpCode> 0) {// Controleer de terugkerende code String payload = https.getString ();
Gebruik daarna het fraseringsprogramma dat is gegenereerd met ArduinoJson Assistant. Dit formuleringsprogramma geeft ons het totale aantal bevestigde en herstelde gevallen in India.
JsonArray-velden = doc; JsonObject features_0_attributes = doc; lange 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;
De automatische handdesinfectie testen met Covid19 Tracker
Dus eindelijk is onze op batterijen werkende dispenser voor handdesinfectie klaar om te testen. Sluit gewoon de hardware aan volgens het schakelschema en upload het programma naar ESP32, in het begin zou u het bericht "Covid19 Tracker" & "Hand Sanitizer" op het LCD-scherm moeten zien en na enkele seconden zal het bevestigde gevallen en herstelde gevallen in de LCD-scherm zoals hieronder weergegeven.
Op dezelfde manier kunt u deze gegevens voor elk land verkrijgen door enkele wijzigingen aan te brengen in de API-link. Aan het einde van de pagina vindt u een volledige werkende video en code.