Indholdsfortegnelse:

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

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

Video: Controle De Gás E Poeira Com O NodeMCU: 5 trin
Video: How to Make Google Assistant control light | Home Automation IOT | NodeMCU ESP8266 2024, December
Anonim
Controle De Gás E Poeira Com O NodeMCU
Controle De Gás E Poeira Com O NodeMCU

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

Trin 1: Komponenter

Komponenter
Komponenter
Komponenter
Komponenter

Os seguintes componentes são utilizados:

  • NodeMCU
  • Sensor de Gas MQ-2
  • Sensor de Poeira og Fumaça Dsm501a Arduino

Det er vigtigt at observere, at NodeMCU ikke kan bruges til GPIO.

Trin 2: Aplicativos

Os seguintes aplicativos são utilizados:

ThingSpeak: uma plataforma IoT open source gratuito, som tillader upload af information og posterior visualização gráfica em tempo real;

Læg mærke til: en plataforma, der tillader integrering af flere simple smartphones (iOS og Android) med mikrokontroladorer (Arduino, Node MCU, Raspberry Pi, entre outros).

Trin 3: Montagem Do Ambiente

Primeiramente, deve-se criar uma conta no ThingSpeak. Se instruktioner til webstedet:

Em seguida, crie um novo canal, e defina os parâmetros que serão recebidos. Você receberá um número de identificação (ID) do canal criado em seu e-mail. Este ID é nødvendário para fazer o upload de dados para o seu canal.

Agora, vamos configurar o Blynk:

Baixe o aplicativo do Blynk para o seu Android, e cria uma conta no serviço. Em seguida, crie um novo projeto, e escolha a plataforma, neste caso o NodeMCU. Vi kan tilbyde, at vi kan sende en e-mail til autenticação.

Trin 4: Programação

Para a codificação do nojetMCU, utilizamos and IDE do Arduino (veja aqui como configurar:

Primeiramente, vamos incluir as bibliotecas needsárias para comunicação com o ThingSpeak e o Blynk:

#omfatte

WiFiClient -klient; / * Blynk */ #define BLYNK_PRINT Seriel #include

Para capturar os dados dos sensores de gás e poeira, foram criadas duas funções:

/ * Sensor de gás */#definere mq2 A0 // MQ-2 analog

int valor_mq2 = 0;

/ * Sensor de Poeira */

#define dsmpin 2 // DSM501A input D4 byte buff [2]; usigneret lang varighed; usigneret lang starttid; usigneret lang sluttid; usigneret lang sampletime_ms = 1000; usigneret lang lavpulsbelægning = 0; flydeforhold = 0; flydekoncentration = 0;

/************************************************ ***Recebendo Dados do Sensor de Gás ****************************************** *********/ void getGasData (void) {valor_mq2 = 0; forsinkelse (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 ("email de alerta de gás enviado"); }} /*********************************************** *****Recebendo Dados do Sensor de Poeira *************************************** ************/ void getPoeiraData (void) {duration = pulseIn (dsmpin, LOW); lavpulsbelægning += varighed; sluttid = millis (); float aux1, aux2 = 0; hvis ((sluttid-starttid)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms)/(sampletime_ms*10.0); // Heltalsprocent 0 => 100 aux2 = 0,1*pow (aux1, 2)+(619*aux1) +50; // ved hjælp af specifikationskurve hvis (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!"); Serial.println ("email de alerta de poeira enviado"); }}}

Observer que, em ambas funções acima, utilizamos uma função do Blynk for disparar um email, como um alerta caso os níveis de gás e poeira atinjam níveis elevados:

Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!");

Tendo os dados dos sensores salvos, agora vamos envia-los para o ThingSpeak. Para comunicação com o ThingSpeak, utilizaremos o protocolo HTTP, efetuando uma requisição POST.

/************************************************* ***Enviando os Dados para o ThingSpeak ***************************************** *********/ void sendDataTS (void) {if (client.connect (server, 80)) {String postStr = apiKey; postStr += "& field1 ="; postStr += String (forhold); postStr += "& field2 ="; postStr += String (koncentration); postStr += "& field3 ="; postStr += String (valor_mq2); postStr += "\ r / n / r / n"; client.print ("POST /opdater HTTP /1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Forbindelse: tæt / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Indholdstype: application/x-www-form-urlencoded / n"); client.print ("Indholdslængde:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); forsinkelse (1000); } client.stop (); }

Neste código, é montado o cabeçalho da requisição HTTP, adicionando o ID do canal criado (apiKey), e uma string contendo cada um dos parâmetros identifierados to criação do canal, com os valores lidos dos sensores de poeira (concentração e proporção de e gás (concentração de gás). No ThingSpeak, você pode visualizar as informações em forma de gráficos.

Afsluttende, enviamos os mesmos dados for aplicativo to Android com or Blynk:

/************************************************* ***Enviando Dados para o Blynk ****************************************** ********/ void sendDataBlynk () {Blynk.virtualWrite (10, ratio); // pin V10 Blynk.virtualWrite (11, koncentration); // pin V11 Blynk.virtualWrite (12, valor_mq2); // virtuel pin V12}

Trin 5: Konklusion

Completando este guia com sucesso, você poderá tanto visualizar em seu celular informationa de concentração de gás e poeira em um dado ambiente, como acompanhar and evolução destes dados através de gráficos on internet.

Forfattere:

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

Anbefalede: