- Componentes necessários
- Link da API para obter o Corona Live Data
- Diagrama de circuito
- Programando ESP32 para Covid19 Tracker
- Testando o desinfetante de mãos automático com Covid19 Tracker
O Corona Virus (Covid19) está causando estragos no mundo. Quase todos os países sofrem com o vírus Corona. A OMS já anunciou que é uma doença pandêmica e muitas cidades estão em situação de bloqueio, as pessoas não podem sair de suas casas e milhares perderam suas vidas. Muitos sites estão fornecendo atualizações ao vivo dos casos de coronavírus, como Microsoft's Tracker, Esri's Covid19 Tracker, etc.
Neste projeto, construiremos um Dispensador Desinfetante de Mãos Automático com um LCD que também mostra a contagem ao vivo de casos de Coronavírus. Este projeto usará ESP32, Sensor Ultrassônico, Módulo LCD 16x2, Bomba de água e Desinfetante para as mãos. Estamos usando o API Explorer da Esri para obter dados ao vivo de pessoas infectadas pela Covid19. Um sensor ultrassônico é usado para verificar a presença de mãos abaixo da saída da máquina desinfetante. Ele calculará continuamente a distância entre a saída do desinfetante e ele mesmo e informará ao ESP para ligar a bomba sempre que a distância for inferior a 15 cm para empurrar o desinfetante para fora.
ESP32 é usado como o controlador principal, é um módulo Wi-Fi que pode se conectar facilmente à internet. Nós o usamos anteriormente para construir muitos projetos baseados em IoT usando ESP32.
Componentes necessários
- Módulo ESP32 Dev
- Sensor ultrasônico
- Visor LCD 16 * 2
- Módulo de Relé
- Bomba Submersível Mini DC
- Desinfetante para as mãos
Link da API para obter o Corona Live Data
Aqui, precisamos obter os dados da Internet e enviá-los ao ESP32 para exibi-los no LCD 16x2. Para isso, uma solicitação HTTP get é invocada para ler o arquivo JSON da internet. Aqui, estamos usando a API fornecida pelo Coronavirus Disease GIS Hub. Você pode compilar facilmente o URL de consulta correto para obter o total de casos confirmados e recuperados para a Índia e também pode alterar o país / região se quiser usar para um país diferente.
Agora clique em “Experimente agora” ou cole o URL da consulta em um novo navegador, a saída dessa consulta será semelhante a esta:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Depois de obter os dados JSON, agora gere o código para ler os dados JSON e formule-os de acordo com nossas necessidades. Para isso, acesse o ArduinoJson Assistant e cole os dados JSON na seção Input.
Agora role para baixo até o programa de análise e copie a seção de código que é útil para você. Copiei as variáveis abaixo, pois precisava apenas dos casos confirmados e recuperados na Índia.
Diagrama de circuito
O diagrama de circuito completo para este distribuidor Covid19 Tracker e desinfetante manual é fornecido abaixo
A bomba de água é conectada ao ESP32 por meio de um módulo de relé. Os pinos Vcc e GND do relé são conectados aos pinos Vin e GND do ESP32, enquanto o pino de entrada do relé é conectado ao pino D19 do ESP32. Os pinos de disparo e eco do sensor ultrassônico são conectados aos pinos D5 e D18 do Arduino.
As conexões completas são fornecidas na tabela abaixo.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potenciômetro |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
UMA | 5V |
K | GND |
Sensor ultrasônico | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECO | D18 |
O hardware para este dispensador higienizador de mãos com sensor de movimento será semelhante a este
Programando ESP32 para Covid19 Tracker
O código completo para Auto Hand Sanitizer e CORONA19 Tracker pode ser encontrado no final da página. Aqui são explicadas partes importantes do programa.
Inicie o código incluindo todos os arquivos de biblioteca necessários. A biblioteca HTTPClient é usada para obter os dados do servidor HTTP. A biblioteca ArduinoJson é usada para criar frases para os arrays de dados. Aqui, a biblioteca ArduinoJson é usada para filtrar os casos confirmados e recuperados do array de dados que estamos obtendo do servidor. A biblioteca LiquidCrystal é usada para o módulo de display LCD.
#incluir
Para obter os dados do servidor, o NodeMCU ESP32 deve se conectar à Internet. Para isso, insira seu SSID e senha do Wi-Fi nas linhas abaixo.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Depois disso, defina os pinos onde você conectou o módulo LCD, o sensor ultrassônico e o módulo de relé.
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; bomba int const = 19;
Agora entramos no link da API gerado anteriormente. Usando este link, obteremos o total de casos confirmados e casos recuperados na Índia. Você pode alterar o nome do país no URL de acordo com você.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27meds&retConfirometry=false&outFields,Recuperado";
Agora dentro da configuração vazia () , defina o pino de disparo e eco do sensor ultrassônico como pinos de entrada e o pino de relé como uma saída.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (bomba, OUTPUT);
Para saber mais sobre como o sensor ultrassônico funciona, verifique sua interface com o Arduino, onde explicamos a função de seu pino TRIG e ECHO e como ele é usado para calcular a distância entre qualquer objeto. Além disso, verifique outros projetos baseados em ultrassom.
Depois disso, verifique se o ESP está conectado ao Wi-Fi, caso contrário, ele aguardará a conexão do ESP imprimindo “…..” no monitor serial.
WiFi.begin (SSID, aprovação); enquanto (WiFi.status ()! = WL_CONNECTED) {atraso (500); Serial.print ("."); // imprimir… até não conectar} Serial.println ("WiFi conectado");
Dentro da função void ultra () , calcularemos continuamente a distância usando um sensor ultrassônico e se a distância for menor ou igual a 15 cm, então ele ligará a bomba por 2 segundos para empurrar o desinfetante para fora através do tubo. Sem saber o que fazer, quando alguém coloca as mãos abaixo do tubo de saída, a distância diminui e a bomba liga.
void ultra () {digitalWrite (trigPin, LOW); atrasoMicrosegundos (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duração = pulseIn (echoPin, HIGH); distância = duração * 0,0340 / 2; Serial.println ("Distância"); Serial.println (distância); if (distância <= 15) {Serial.print ("Bomba de abertura"); digitalWrite (bomba, ALTO); atraso (2000); digitalWrite (bomba, LOW); ESP.restart (); }}
Agora, dentro da função void loop () , verifique se o arquivo JSON foi recebido pelo ESP32 lendo-o e imprimindo dados JSON no monitor serial usando as seguintes linhas
int httpCode = https.GET (); if (httpCode> 0) {// Verifique o código de retorno String payload = https.getString ();
Depois disso, use o programa de fraseamento gerado a partir do ArduinoJson Assistant. Este programa de formulação nos dará o total de casos confirmados e recuperados na Índia.
JsonArray fields = doc; JsonObject features_0_attributes = doc; long 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;
Testando o desinfetante de mãos automático com Covid19 Tracker
Então, finalmente, nosso dispensador de desinfetante de mão operado por bateria está pronto para ser testado. Basta conectar o hardware de acordo com o diagrama de circuito e carregar o programa no ESP32, ao iniciar você deve ver a mensagem “Covid19 Tracker” e “Hand Sanitizer” no LCD e depois de alguns segundos ele exibirá casos confirmados e casos recuperados no Tela LCD conforme mostrado abaixo.
Semelhante a isso, você pode obter esses dados para qualquer país fazendo algumas alterações no link da API. Um vídeo de trabalho completo e código são fornecidos no final da página.