- Необходими компоненти
- API връзка за получаване на Corona Live Data
- Електрическа схема
- Програмиране на ESP32 за Covid19 Tracker
- Тестване на автоматичен дезинфектант за ръце с Covid19 Tracker
Corona Virus (Covid19) прави хаос в света. Почти всяка страна страда от вируса на короната. СЗО вече обяви, че е пандемична болест и много градове са в затворено положение, хората не могат да излязат от домовете си, а хиляди са загубили живота си. Много уебсайтове предоставят актуализации на живо за случаите на коронавирус като Tracker на Microsoft, Covid19 Tracker на Esri и др.
В този проект ще изградим автоматичен дозатор за дезинфекция на ръце с LCD дисплей, който също показва броя на случаите на коронавирус на живо Този проект ще използва ESP32, ултразвуков сензор, 16x2 LCD модул, водна помпа и дезинфектант за ръце. Използваме API Explorer на Esri, за да получим активните данни на заразени с Covid19 хора. Ултразвуков сензор се използва за проверка на присъствието на ръце под изхода на дезинфектанта. Той непрекъснато ще изчислява разстоянието между изхода на дезинфектанта и себе си и казва на ESP да включи помпата, когато разстоянието е по-малко от 15 см, за да изтласка дезинфектанта навън.
ESP32 се използва като основен контролер, това е Wi-Fi модул, който може лесно да се свърже с интернет. Преди това го използвахме за изграждане на много IoT базирани проекти, използващи ESP32.
Необходими компоненти
- ESP32 Dev модул
- Ултразвуков сензор
- 16 * 2 LCD дисплей
- Релеен модул
- Мини потопяема помпа DC
- Дезинфектант за ръце
API връзка за получаване на Corona Live Data
Тук трябва да вземем данните от интернет и след това да ги изпратим на ESP32, за да ги покажем на LCD 16x2. За това се извиква HTTP заявка за получаване за четене на JSON файла от интернет. Тук използваме API, предоставен от GIS Hub на коронавирусна болест. Можете лесно да компилирате правилния URL адрес на заявката, за да получите общия брой потвърдени и възстановени случаи за Индия, а също така можете да промените държавата / региона, ако искате да използвате това за друга държава.
Сега кликнете върху „Опитайте сега“ или поставете URL адреса на заявката в нов браузър, изходът на тази заявка ще изглежда така:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintain": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," полета ":," характеристики ":}
След като получите JSON данните, сега генерирайте кода, за да прочетете JSON данните и да го формулирате според нашите нужди. За това отидете на ArduinoJson Assistant и поставете JSON данните в секцията Input.
Сега превъртете надолу до програмата за синтактичен анализ и копирайте секцията с код, която е полезна за вас. Копирах по-долу променливи, тъй като имах нужда само от потвърдени и възстановени случаи в Индия.
Електрическа схема
Пълната схема на веригата за тази машина за дозатор и автоматичен дезинфектант за ръце Covid19 е дадена по-долу
Водната помпа е свързана към ESP32 чрез релеен модул. Vcc и GND щифтове на релето са свързани към Vin и GND щифтове на ESP32, докато входният щифт на релето е свързан с D19 пина на ESP32. Trig и Echo щифтовете на ултразвуковия сензор са свързани към D5 и D18 щифтовете на Arduino.
Пълните връзки са дадени в таблицата по-долу.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
ГЛАС | Потенциометър |
RS | D22 |
RW | GND |
Е. | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
К | GND |
Ултразвуков сензор | ESP32 |
Vcc | Вин |
GND | GND |
Trig | D5 |
ECHO | D18 |
Хардуерът за този дозатор за дезинфекция на ръцете на сензора за движение ще изглежда така
Програмиране на ESP32 за Covid19 Tracker
Пълен код за автоматичен дезинфектант за ръце и CORONA19 Tracker можете да намерите в края на страницата. Тук са обяснени важни части от програмата.
Стартирайте кода, като включите всички необходими библиотечни файлове. HTTPClient библиотеката се използва за получаване на данни от HTTP сървъра. Библиотеката ArduinoJson се използва за фразиране на масивите от данни. Тук библиотеката ArduinoJson се използва за филтриране на потвърдените случаи и Възстановени от масива от данни, който получаваме от сървъра. Библиотеката LiquidCrystal се използва за модула за LCD дисплей.
#include
За да получи данните от сървъра, NodeMCU ESP32 трябва да се свърже с интернет. За целта въведете своя Wi-Fi SSID и парола в долните редове.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
След това определете щифтовете, към които сте свързали LCD модула, ултразвуковия сензор и модула за реле.
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 помпа = 19;
Сега въвеждаме API връзка, която е генерирана по-рано. Използвайки тази връзка, ще получим общия брой потвърдени случаи и възстановени случаи в Индия. Можете да промените името на държавата в URL адреса според вас.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=falionField&outurnGeometry=falger, Възстановен ";
Сега вътре в настройката за празнота () , дефинирайте Trig и Echo щифта на ултразвуковия сензор като входни щифтове и релейния щифт като изход.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (помпа, ИЗХОД);
За да научите повече за това как работи ултразвуковият сензор, проверете взаимодействието му с Arduino, където обяснихме функцията на неговия щифт TRIG и ECHO, както и как се използва за изчисляване на разстоянието между всеки обект. Също така проверете други проекти, базирани на ултразвук.
След това проверете дали ESP е свързан с Wi-Fi, ако не, той ще изчака ESP да се свърже, като отпечата „…..“ на серийния монитор.
WiFi.begin (ssid, pass); докато (WiFi.status ()! = WL_CONNECTED) {закъснение (500); Serial.print ("."); // отпечатвам… докато не е свързан} Serial.println ("WiFi свързан");
Във функцията void ultra () ние непрекъснато ще изчисляваме разстоянието с помощта на ултразвуков сензор и ако разстоянието е по-малко или равно на 15 cm, тогава ще включи помпата за 2 секунди, за да избута дезинфектанта навън през тръбата. Очевидно, когато някой сложи ръце под изходната тръба, разстоянието ще намалее и помпата ще се включи.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); продължителност = pulseIn (echoPin, HIGH); разстояние = продължителност * 0,0340 / 2; Serial.println ("Разстояние"); Serial.println (разстояние); if (разстояние <= 15) {Serial.print ("Отваряща помпа"); digitalWrite (помпа, HIGH); забавяне (2000); digitalWrite (помпа, LOW); ESP.restart (); }}
Сега във функцията void loop () проверете дали JSON файлът е получен от ESP32, като го прочетете и отпечатате JSON данни на серийния монитор, като използвате следните редове
int httpCode = https.GET (); if (httpCode> 0) {// Проверете за връщащия код String payload = https.getString ();
След това използвайте програмата за фразиране, генерирана от ArduinoJson Assistant. Тази програма за фразиране ще ни даде общите потвърдени и възстановени случаи в Индия.
JsonArray полета = doc; JsonObject features_0_attributes = doc; дълги функции_0_attributes_Last_Update = характеристики_0_attributes; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = характеристики_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Тестване на автоматичен дезинфектант за ръце с Covid19 Tracker
Така че най-накрая нашият акумулаторен дозатор за ръце с батерии е готов за тестване. Просто свържете хардуера според схемата на веригата и качете програмата в ESP32, в началото трябва да видите съобщението „Covid19 Tracker“ и „Hand Sanitizer“ на LCD и след няколко секунди ще покаже потвърдени случаи и възстановени случаи в LCD екран, както е показано по-долу.
Подобно на това, можете да получите тези данни за всяка държава, като направите някои промени в API връзката. A пълен работен видео и код са дадени в края на страницата.