코로나 바이러스 (Covid19)는 전 세계를 혼란에 빠뜨리고 있습니다. 거의 모든 국가가 코로나 바이러스로 고통 받고 있습니다. WHO는 이미 전염병이라고 발표했으며 많은 도시가 폐쇄 상황에 처해 있으며 사람들은 집에서 나갈 수 없으며 수천 명이 목숨을 잃었습니다. 많은 웹 사이트에서 Microsoft의 Tracker, Esri의 Covid19 Tracker 등과 같은 코로나 바이러스 사례의 실시간 업데이트를 제공하고 있습니다.
이 프로젝트에서 우리는 LCD가 있는 자동 손 소독제 디스펜서 를 만들어 코로나 바이러스 사례의 실시간 수를 표시합니다. 이 프로젝트는 ESP32, 초음파 센서, 16x2 LCD 모듈, 워터 펌프 및 손 소독제를 사용합니다. 우리는 Esri의 API Explorer를 사용하여 Covid19에 감염된 사람들의 실시간 데이터를 얻습니다. 초음파 센서는 소독기 배출구 아래에 손이 있는지 확인하는 데 사용됩니다. 살균제 배출구와 자체 사이의 거리를 지속적으로 계산하고 거리가 15cm 미만일 때마다 ESP에 펌프를 켜서 살균제를 밀어 내도록 지시합니다.
ESP32는 메인 컨트롤러로 사용되며 인터넷에 쉽게 연결할 수있는 Wi-Fi 모듈입니다. 이전에 ESP32를 사용하여 많은 IoT 기반 프로젝트를 빌드하는 데 사용했습니다.
필요한 구성 요소
- ESP32 개발 모듈
- 초음파 센서
- 16 * 2 LCD 디스플레이
- 릴레이 모듈
- 미니 DC 잠수정 펌프
- 손 소독제
코로나 라이브 데이터를 얻기위한 API 링크
여기서 우리는 인터넷에서 데이터를 가져온 다음 ESP32로 보내 16x2 LCD에 표시해야합니다. 이를 위해 HTTP get 요청이 호출되어 인터넷에서 JSON 파일을 읽습니다. 여기에서는 코로나 바이러스 질병 GIS Hub에서 제공하는 API를 사용하고 있습니다. 정확한 쿼리 URL을 쉽게 컴파일하여 인도에 대한 총 확인 및 복구 된 사례를 가져올 수 있으며 다른 국가에서 사용하려는 경우 국가 / 지역을 변경할 수도 있습니다.
이제 "Try Now"를 클릭하거나 쿼리 URL을 새 브라우저에 붙여 넣으면 해당 쿼리의 출력이 다음과 같이 표시됩니다.
{ "objectIdFieldName": "OBJECTID", "uniqueIdField": { "name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": { " wkid ": 4326,"latestWkid ": 4326},"fields ":,"features ":}
JSON 데이터를 가져온 후 이제 JSON 데이터를 읽고 필요에 따라 구문을 작성하는 코드를 생성합니다. 이를 위해 ArduinoJson Assistant로 이동하여 입력 섹션에 JSON 데이터를 붙여 넣습니다.
이제 구문 분석 프로그램으로 스크롤하여 유용한 코드 섹션을 복사하십시오. 인도에서 확인되고 회복 된 사례 만 필요했기 때문에 아래 변수를 복사했습니다.
회로도
이 Covid19 추적기 및 자동 손 소독제 디스펜서 기계 의 전체 회로도 는 다음과 같습니다.
워터 펌프는 릴레이 모듈을 통해 ESP32에 연결됩니다. 릴레이의 Vcc 및 GND 핀은 ESP32의 Vin 및 GND 핀에 연결되고 릴레이의 입력 핀은 ESP32의 D19 핀에 연결됩니다. 초음파 센서의 Trig 및 Echo 핀은 Arduino의 D5 및 D18 핀에 연결됩니다.
완전한 연결은 아래 표에 나와 있습니다.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | 전위차계 |
RS | D22 |
RW | GND |
이자형 | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
ㅏ | 5V |
케이 | GND |
초음파 센서 | ESP32 |
Vcc | 빈 |
GND | GND |
삼각 | D5 |
에코 | D18 |
이 Motion Sensor Hand Sanitizer Dispenser 의 하드웨어 는 다음과 같습니다.
Covid19 추적 기용 ESP32 프로그래밍
Auto Hand Sanitizer 및 CORONA19 Tracker에 대한 전체 코드 는 페이지 끝에 있습니다. 여기에 프로그램의 중요한 부분이 설명되어 있습니다.
필요한 모든 라이브러리 파일을 포함하여 코드를 시작합니다. HTTPClient 라이브러리는 HTTP 서버에서 데이터를 가져 오는 데 사용됩니다. ArduinoJson 라이브러리는 데이터 배열을 표현하는 데 사용됩니다. 여기서 ArduinoJson 라이브러리는 확인 된 케이스를 필터링하는 데 사용되며 서버에서 가져온 데이터 배열에서 복구됩니다. LiquidCrystal 라이브러리는 LCD 디스플레이 모듈에 사용됩니다.
#포함
서버에서 데이터를 얻으려면 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=false&outFields=Country_Region,Confirmed,회복 된";
이제 void setup () 내부에서 초음파 센서의 Trig 및 Echo 핀을 입력 핀으로, 릴레이 핀을 출력으로 정의합니다.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pump, OUTPUT);
초음파 센서의 작동 방식에 대해 자세히 알아 보려면 TRIG 및 ECHO 핀의 기능과 물체 간의 거리를 계산하는 데 사용되는 방법을 설명한 Arduino와의 인터페이스를 확인하십시오. 또한 다른 초음파 기반 프로젝트를 확인하십시오.
그런 다음 ESP가 Wi-Fi에 연결되어 있는지 확인하고 그렇지 않으면 직렬 모니터에“…..”을 인쇄하여 ESP가 연결될 때까지 기다립니다.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); // 인쇄… 연결되지 않을 때까지} Serial.println ("WiFi 연결됨");
void ultra () 함수 내에서 초음파 센서를 사용하여 거리를 지속적으로 계산하고 거리가 15cm 이하이면 펌프를 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 ("Opening Pump"); digitalWrite (펌프, HIGH); 지연 (2000); digitalWrite (펌프, LOW); ESP.restart (); }}
이제 void loop () 함수 내에서 JSON 파일을 읽고 다음 줄을 사용하여 직렬 모니터에 JSON 데이터를 인쇄하여 ESP32에서 수신했는지 확인합니다.
int httpCode = https.GET (); if (httpCode> 0) {// 반환 코드 확인 String payload = https.getString ();
그런 다음 ArduinoJson Assistant 에서 생성 된 구문 프로그램을 사용합니다 . 이 표현 프로그램은 인도에서 확인 및 복구 된 총 사례를 제공합니다.
JsonArray 필드 = 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에 프로그램을 업로드하기 만하면 시작시 LCD에 "Covid19 Tracker"및 "Hand Sanitizer"메시지가 표시되고 몇 초 후에 확인 된 사례 및 복구 된 사례가 아래와 같이 LCD 화면.
이와 유사하게 API 링크를 일부 변경하여 모든 국가에서이 데이터를 얻을 수 있습니다. 전체 작업 비디오와 코드가되는 페이지의 끝에서 주어진.