- Необходимые компоненты
- Ссылка API для получения данных Corona Live Data
- Принципиальная электрическая схема
- Программирование ESP32 для трекера Covid19
- Тестирование автоматического дезинфицирующего средства для рук с помощью трекера Covid19
Вирус короны (Covid19) сеет хаос в мире. Почти каждая страна страдает от вируса короны. ВОЗ уже объявила это пандемическим заболеванием, и многие города заблокированы, люди не могут выйти из своих домов, и тысячи людей погибли. Многие веб-сайты предоставляют живые обновления о случаях коронавируса, такие как Microsoft Tracker, Esri Covid19 Tracker и т. Д.
В этом проекте мы построим автоматический дозатор дезинфицирующего средства для рук с ЖК-дисплеем, который также будет отображать количество случаев заражения коронавирусом в реальном времени. В этом проекте будет использоваться ESP32, ультразвуковой датчик, ЖК-модуль 16x2, водяной насос и дезинфицирующее средство для рук. Мы используем API-интерфейс Esri для получения оперативных данных о людях, инфицированных Covid19. Ультразвуковой датчик используется для проверки наличия рук под выходным отверстием дезинфицирующего устройства. Он будет постоянно рассчитывать расстояние между выпускным отверстием дезинфицирующего средства и самим собой и сообщает ESP включать насос, когда расстояние меньше 15 см, чтобы вытолкнуть дезинфицирующее средство.
В качестве основного контроллера используется ESP32, это модуль Wi-Fi, который легко подключается к Интернету. Ранее мы использовали его для создания многих проектов на основе Интернета вещей с использованием ESP32.
Необходимые компоненты
- Модуль разработки ESP32
- Ультразвуковой датчик
- ЖК-дисплей 16 * 2
- Модуль реле
- Погружной насос постоянного тока Mini
- Санитайзер для рук
Ссылка API для получения данных Corona Live Data
Здесь нам нужно получить данные из Интернета, а затем отправить их в ESP32 для отображения на ЖК-экране 16x2. Для этого вызывается HTTP-запрос на чтение файла JSON из Интернета. Здесь мы используем API, предоставляемый Coronavirus Disease GIS Hub. Вы можете легко скомпилировать правильный URL-адрес запроса, чтобы получить общее количество подтвержденных и восстановленных случаев для Индии, а также можете изменить страну / регион, если хотите использовать это для другой страны.
Теперь нажмите «Попробовать» или вставьте URL-адрес запроса в новый браузер, результат этого запроса будет выглядеть следующим образом:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintain": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "SpaceReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
После получения данных JSON сгенерируйте код для чтения данных JSON и сформулируйте его в соответствии с нашими потребностями. Для этого перейдите в ArduinoJson Assistant и вставьте данные JSON в раздел ввода.
Теперь прокрутите вниз до программы синтаксического анализа и скопируйте фрагмент кода, который вам пригодится. Я скопировал указанные ниже переменные, так как мне нужны были только подтвержденные и вылеченные случаи в Индии.
Принципиальная электрическая схема
Полная принципиальная схема этого Covid19 Tracker и автоматического дозатора дезинфицирующего средства для рук приведена ниже.
Водяной насос подключен к ESP32 через модуль реле. Контакты Vcc и GND реле подключены к контактам Vin и GND ESP32, а входной контакт реле подключен к контакту D19 ESP32. Контакты Trig и Echo ультразвукового датчика подключены к контактам D5 и D18 Arduino.
Полные соединения приведены в таблице ниже.
ЖК-дисплей | ESP32 |
VSS | GND |
VDD | 5В |
VO | Потенциометр |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
А | 5В |
K | GND |
Ультразвуковой датчик | ESP32 |
Vcc | Вин |
GND | GND |
Триггер | D5 |
ЭХО | D18 |
Аппаратное обеспечение этого дозатора дезинфицирующего средства для рук с датчиком движения будет выглядеть следующим образом
Программирование ESP32 для трекера Covid19
Полный код для Auto Hand Sanitizer и CORONA19 Tracker можно найти в конце страницы. Здесь объясняются важные части программы.
Запустите код, включив все необходимые файлы библиотеки. Библиотека HTTPClient используется для получения данных с HTTP-сервера. Библиотека ArduinoJson используется для формирования массивов данных. Здесь библиотека ArduinoJson используется для фильтрации подтвержденных случаев и восстановленных из массива данных, который мы получаем с сервера. Библиотека LiquidCrystal используется для модуля ЖК-дисплея.
#включают
Чтобы получить данные с сервера, NodeMCU ESP32 должен подключиться к Интернету. Для этого введите свой SSID и пароль Wi-Fi в следующие строки.
const char * ssid = "Галактика-М20"; const char * pass = "ac312124";
После этого определите контакты, к которым вы подключили ЖК-модуль, ультразвуковой датчик и релейный модуль.
const int rs = 22, en = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; ЖК-дисплей LiquidCrystal (RS, EN, D4, D5, D6, D7); const int trigPin = 5; const int echoPin = 18; const int pump = 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)&returnFirometry=falseryout, Восстановлено ";
Теперь внутри настройки void () определите контакты Trig и Echo ультразвукового датчика как входные контакты и контакт реле как выход.
pinMode (trigPin, ВЫХОД); pinMode (echoPin, ВХОД); 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 см, он включит насос на 2 секунды, чтобы вытолкнуть дезинфицирующее средство наружу через трубу. Незаметно, когда кто-то кладет руки под выпускную трубу, расстояние сокращается, и насос запускается.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); расстояние = продолжительность * 0,0340 / 2; Serial.println («Расстояние»); Serial.println (расстояние); if (distance <= 15) {Serial.print («Открывающий насос»); digitalWrite (насос, ВЫСОКИЙ); задержка (2000); digitalWrite (насос, НИЗКИЙ); ESP.restart (); }}
Теперь внутри функции void loop () проверьте, получен ли файл JSON ESP32, прочитав его и распечатав данные JSON на последовательном мониторе, используя следующие строки
int httpCode = https.GET (); if (httpCode> 0) {// Проверяем возвращаемый код String payload = https.getString ();
После этого используйте программу фразировки, созданную с помощью ArduinoJson Assistant. Эта программа формулировки даст нам общее количество подтвержденных и вылеченных случаев в Индии.
JsonArray fields = doc; JsonObject features_0_attributes = doc; длинные 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;
Тестирование автоматического дезинфицирующего средства для рук с помощью трекера Covid19
Итак, наконец, наш дозатор дезинфицирующего средства для рук на батарейках готов к испытаниям. Просто подключите оборудование в соответствии с принципиальной схемой и загрузите программу в ESP32, при запуске вы должны увидеть сообщение «Covid19 Tracker» и «Hand Sanitizer» на ЖК-дисплее, а затем через несколько секунд оно отобразит подтвержденные случаи и восстановленные случаи в ЖК-экран, как показано ниже.
Аналогично этому, вы можете получить эти данные для любой страны, внеся некоторые изменения в ссылку API. Полные рабочие видео и коды приведены в конце страницы.