Taula de continguts:

Controle De Gás E Poeira Com O NodeMCU: 5 Steps
Controle De Gás E Poeira Com O NodeMCU: 5 Steps

Vídeo: Controle De Gás E Poeira Com O NodeMCU: 5 Steps

Vídeo: Controle De Gás E Poeira Com O NodeMCU: 5 Steps
Vídeo: Cleaning dust filled 18 month old PS5 2024, De novembre
Anonim
Controle De Gás E Poeira Com O NodeMCU
Controle De Gás E Poeira Com O NodeMCU

Este foi um treball per medir níveis de poeira e gás num dado ambiente, e compartilhar estes dados nas nuvens e em seu celular, inclòs disparar um e-mail d'alerta caso os valores lidos sejam considerados altos.

Pas 1: components

Components
Components
Components
Components

Els següents components són utilitzats:

  • NodeMCU
  • Sensor de gas MQ-2
  • Sensor de Poeira e Fumaça Dsm501a Arduino

És important observar que un pinagem de NodeMCU no segueix o està en GPIO.

Pas 2: Aplicatius

Els següents aplicatius s’utilitzen:

ThingSpeak: la vostra plataforma IoT de codi obert gratuït, que permet carregar informació i visualitzar gràficament posteriorment en temps real;

Blynk: una plataforma que permet integrar més simples entre smartphones (iOS i Android) amb microcontroladors (Arduino, Node MCU, Raspberry Pi, entre altres).

Pas 3: Montagem Do Ambiente

Primerament, haureu de criar si no teniu cap ThingSpeak. Seguiu les instruccions del lloc:

Em seguida, crie um novo canal, e defina os parámetros que seré recebidos. S'ha rebut un número d'identificació (ID) del canal criat al seu correu electrònic. Aquest ID és necessari per fer-ho o carregar-lo per al seu canal.

Ara, vamos configurar o Blynk:

Baixe o aplicativo do Blynk para el seu Android, e cria uma conta no serviço. Seguint, cridant un nou projecte, i escoltant una plataforma, en aquest cas o NodeMCU. Apos a criação do projecteto, serà enviat per al seu correu electrònic amb un testimoni d'autenticació.

Pas 4: programació

Per a una codificació del projecte sense NodeMCU, s'utilitza un IDE d'Arduino (veja aqui com configurar:

Primerament, podem incloure biblioteques necessàries per a la comunicació amb ThingSpeak e o Blynk:

#incloure

Client WiFiClient; / * Blynk * / #define BLYNK_PRINT Serial #include

Per capturar els dados dos sensores de gasos i poeira, foram criadas duas funções:

/ * Sensor de gas * / # define mq2 A0 // MQ-2 analog

int valor_mq2 = 0;

/ * Sensor de Poeira * /

#define dsmpin 2 // DSM501A input D4 byte buff [2]; llarga durada sense signar; temps d'inici llarg sense signar; temps de finalització llarg sense signar; unsigned long sampletime_ms = 1000; ocupació baixa sense signe llarg = 0; relació de flotació = 0; concentració de flotador = 0;

/ ************************************************** ** * Recebendo Dados do Sensor de Gás ****************************************** ********* / void getGasData (void) {valor_mq2 = 0; retard (1000); int N = 9; for (int i = 0; i 130) {Blynk.email ("[email protected]", "Sensor de Gás", "ALERTA de Concentração de Gás !!!"); Serial.println ("correu electrònic d'alerta de gas enviat"); }} / ************************************************ **** * Recebendo Dados do Sensor de Poeira **************************************** *********** / void getPoeiraData (void) {durada = pulseIn (dsmpin, BAIX); baixa ocupació de pols + = durada; endtime = millis (); flotador aux1, aux2 = 0; if ((endtime-starttime)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms) / (sampletime_ms * 10.0); // Percentatge enter 0 => 100 aux2 = 0,1 * pow (aux1, 2) + (619 * aux1) +50; // utilitzant la corba del full d’especificacions if (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentració de Poeira !!!"); Serial.println ("correu electrònic d'alerta de poeira enviada"); }}}

Observe que, em ambas funções acima, utilamos uma função do Blynk per disparar um email, com um alerta case os níveis de gás e poeira atinjam níveis elevados:

Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentració de Poeira !!!");

Tendo os dados dos sensores salvos, agora vamos envia-los para o ThingSpeak. Per a la comunicació amb ThingSpeak, utilitzem el protocol HTTP, fent servir la vostra sol·licitud POST.

/ ************************************************** ** * Enviant os Dados para o ThingSpeak ****************************************** ********* / void sendDataTS (void) {if (client.connect (servidor, 80)) {String postStr = apiKey; postStr + = "& field1 ="; postStr + = String (ratio); postStr + = "& field2 ="; postStr + = String (concentració); postStr + = "& field3 ="; postStr + = String (valor_mq2); postStr + = "\ r / n / r / n"; client.print ("POST / actualització HTTP / 1.1 / n"); client.print ("Amfitrió: api.thingspeak.com / n"); client.print ("Connexió: tancar / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Tipus de contingut: application / x-www-form-urlencoded / n"); client.print ("Longitud del contingut:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); retard (1000); } client.stop (); }

Aquest codi, és muntat o bé pot requerir HTTP, addicionando o ID do canal criado (apiKey), e uma string contendo cada um dos paràmetres identificats en criação do canal, com os valores lidos dos sensores de poeira (concentració i proporció de poeira) e gás (concentração de gás). No ThingSpeak, es pot visualitzar com a informació en forma de gràfics.

Finalment, enviamos mesmos dados per a un aplicatiu Android amb Blynk:

/ ************************************************** ** * Enviant Dados para o Blynk ******************************************* ******** / void sendDataBlynk () {Blynk.virtualWrite (10, proporció); // pin V10 Blynk.virtualWrite (11, concentració); // pin V11 Blynk.virtualWrite (12, valor_mq2); // pin virtual V12}

Pas 5: Conclusió

Completant aquest guia com amb èxit, es pot veure tant visualitzar en el seu celular informació de concentració de gàs i poeira em un mateix ambient, com acompanyar a l’evolució d’aquests dados através de gràfics pela internet.

Autors:

  • Egon Patrick Marques Silva
  • Frederico Clark
  • Paola Fróes

Recomanat: