Cov txheej txheem:

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

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

Video: Controle De Gás E Poeira Com O NodeMCU: 5 Kauj Ruam
Video: Dust Sensor DSM501A with Arduino, PM10 & PM2.5 Air Quality Monitoring, Arduino Project 2024, Hlis ntuj nqeg
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.

Kauj ruam 1: Componentes

Cheebtsam
Cheebtsam
Cheebtsam
Cheebtsam

Os seguintes componentes são utilizados:

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

É qhov tseem ceeb ua raws li tus pinagem ua NodeMCU não segue o padrão GPIO.

Kauj Ruam 2: Cov ntawv thov

Os seguintes aplicativos são utilizados:

ThingSpeak: uma plataforma IoT qhib qhov chaw gratuito, que tso cai upload de informações e posterior visualização gráfica em tempo real;

Blynk: uma plataforma que permite integração mais simples entre smartphones (iOS thiab Android) com microcontroladores (Arduino, Node MCU, Raspberry Pi, entre outros).

Kauj Ruam 3: Montagem Ua Ambiente

Primeiramente, deve-se criar uma conta no ThingSpeak. Siga as instruções do site:

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

Tam sim no, muaj kev teeb tsa los ntawm Blynk:

Ua raws li cov ntawv thov los ntawm Blynk rau o seu Android, thiab cria uma conta no serviço. Peb tab tom tham txog, xav txog qhov novo projeto, e escolha a plataforma, neste caso o NodeMCU. Após a criação do projeto, será enviado para seu e-mail um token de autenticação.

Kauj Ruam 4: Cov phiaj xwm

Para codificação do projeto no NodeMCU, siv IDE ua Arduino (veja aqui como configurar:

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

#suav nrog

WiFiClient tus thov kev pab; / * Blynk */ #define BLYNK_PRINT Serial #suav nrog

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

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

int valor_mq2 = 0;

/ * Sensor de Poeira */

#define dsmpin 2 // DSM501A input D4 byte buff [2]; tsis kos npe ntev; unsigned ntev pib; tsis kos npe ntev ntev; unsigned ntev sampletime_ms = 1000; unsigned ntev lowpulseoccupancy = 0; ntab piv = 0; ntab concentration = 0;

/********************************************************** ***Recebendo Dados ua Sensor de Gás ***************************************** *********/ void getGasData (tsis muaj dab tsi) {valor_mq2 = 0; ncua (1000); int N = 9; rau (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 ua Sensor de Poeira *************************************** ***********/ tsis muaj dab tsi getPoeiraData (tsis muaj dab tsi) {ntev = pulseIn (dsmpin, LOW); lowpulseoccupancy += ncua sijhawm; endtime = millis (); ntab aux1, aux2 = 0; yog ((sijhawm kawg-pib lub sijhawm)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms)/(sampletime_ms*10.0); // Integer feem pua 0 => 100 aux2 = 0.1*pow (aux1, 2)+(619*aux1) +50; // siv cov ntawv tshwj xeeb nkhaus yog (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!"); Serial.println ("email de alerta de poeira enviado"); }}}

Soj ntsuam que, em ambas funções acima, utilizamos uma função ua Blynk rau xa 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, siv cov txheej txheem ntawm HTTP, efetuando uma requisição POST.

/********************************************************** ***Enviando os Dados para o ThingSpeak ********************************************* *********/ void sendDataTS (void) {yog (client.connect (server, 80)) {String postStr = apiKey; postStr += "& field1 ="; postStr += Txoj hlua (piv); postStr += "& field2 ="; postStr += Txoj hlua (mloog zoo); postStr += "& teb 3 ="; postStr += Txoj hlua (valor_mq2); postStr += "\ r / n / r / n"; client.print ("POST /hloov tshiab HTTP /1.1 / n"); client.print ("Tus tswv tsev: api.thingspeak.com / n"); client.print ("Kev sib txuas: kaw / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Cov ntsiab lus-Hom: thov/x-www-form-urlencoded / n"); client.print ("Cov ntsiab lus-Ntev:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); ncua (1000); } client.stop (); }

Neste código, é montado o cabeçalho da requisição HTTP, adicionando o ID ua kwj dej criado (apiKey), e uma string contendo cada um dos parâmetros identificados na criação do canal, com os valores lidos dos sensores de poeira (concentração e proporção e gás (concentração de gás). Tsis muaj ThingSpeak, hais txog qhov pom tau zoo li cov ntaub ntawv em forma de gráficos.

Thaum kawg, enviamos os mesmos dados para um aplicativo Android com o Blynk:

/********************************************************** ***Enviando Dados rau Blynk ********************************************** ********/ void sendDataBlynk () {Blynk.virtualWrite (10, piv); // pin V10 Blynk.virtualWrite (11, mloog zoo); // pin V11 Blynk.virtualWrite (12, valor_mq2); // tus pin virtual V12}

Kauj ruam 5: Xaus

Ua kom tiav raws li qhov kev xav tau, ua raws li cov lus pom zoo los ntawm cov ntsiab lus ntawm cov ntsiab lus ntawm cov ntsiab lus tseem ceeb hauv lub ntiaj teb, como acompanhar a evolução destes dados através de gráficos pela internet.

Sau:

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

Pom zoo: