Cuprins:

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

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

Video: Controle De Gás E Poeira Com O NodeMCU: 5 Steps
Video: Cleaning dust filled 18 month old PS5 2024, Noiembrie
Anonim
Controle De Gás E Poeira Com O NodeMCU
Controle De Gás E Poeira Com O NodeMCU

Este foi um lucru pentru medir níveis de poeira e gás num dado ambiente, e compartilhar estes dados nas nuvens e em seu celular, incluzând disparar um e-mail de alertă caz os valores lidos sejam considerate altos.

Pasul 1: Componente

Componente
Componente
Componente
Componente

Următoarele componente sunt utilizate:

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

Este important să observați că un pinagem al NodeMCU nu continuă sau pătrunde GPIO.

Pasul 2: Aplicații

Următoarele aplicații sunt utilizate:

ThingSpeak: uma platformă IoT open source gratuită, care permite încărcarea informațiilor și a vizualizării grafice posterioare în timp real;

Blynk: o platformă care permite integrarea mai multor smartphone-uri (iOS și Android) cu microcontrolatoare (Arduino, Node MCU, Raspberry Pi, între altele).

Pasul 3: Montagem Do Ambiente

Primeiramente, trebuie-se criar uma conta no ThingSpeak. Așa cum faceți site-ul:

Em seguida, crie um novo canal, e defina os parâmetros that serão recebidos. Voi primi un număr de identificare (ID) pentru canalul de e-mail. Acest ID este necesar pentru a face o încărcare de date pentru canalul tău.

Agora, vamos configurar o Blynk:

Baixe o aplicație do Blynk pentru Android, e cria uma conta no serviço. Urmărit, creează un proiect nou, e înscris pe o platformă, în acest caz în NodeMCU. Apoi a criação do project, will be enviado for your e-mail um token de autenticação.

Pasul 4: Programare

Pentru o codificare a proiectului în NodeMCU, utilizăm un IDE de Arduino (veja aqui como configurar:

În primul rând, includem ca bibliotecă necesară pentru comunicare cu ThingSpeak și Blynk:

#include

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

Pentru a captura os dados dos sensores de gás e poeira, foram criadas duas funções:

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

int valor_mq2 = 0;

/ * Senzor de Poeira * /

#define dsmpin 2 // DSM501A input D4 byte buff [2]; durată lungă nesemnată; timp de început lung nesemnat; o perioadă lungă de timp nesemnată; unsigned long sampletime_ms = 1000; nesemnificat lung lowpulseoccupancy = 0; raport float = 0; concentrația plutitorului = 0;

/ ************************************************** ** * Recebendo Dados do Sensor de Gás ***************************************** ********* / void getGasData (void) {valor_mq2 = 0; întârziere (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 ("e-mail de alertă a gazelor enviate"); }} / *********************************************** **** * Recebendo Dados do Sensor de Poeira *************************************** *********** / void getPoeiraData (void) {durata = pulseIn (dsmpin, LOW); lowpulse ocupancy + = durata; endtime = milis (); plutitor aux1, aux2 = 0; if ((endtime-starttime)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms) / (sampletime_ms * 10.0); // Procent întreg 0 => 100 aux2 = 0,1 * pow (aux1, 2) + (619 * aux1) +50; // folosind spec sheet curve if (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!"); Serial.println ("e-mail de alertă de poeira enviată"); }}}

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

Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentrație de Poeira !!!");

Tendo os dados dos sensores salvos, agora vamos envia-los para o ThingSpeak. Pentru comunicație cu ThingSpeak, utilizăm protocoalele HTTP, efectuând o cerere POST.

/ ************************************************** ** * Enviando os Dados para o ThingSpeak ***************************************** ********* / void sendDataTS (void) {if (client.connect (server, 80)) {String postStr = apiKey; postStr + = "& field1 ="; postStr + = String (ratio); postStr + = "& field2 ="; postStr + = String (concentrare); postStr + = "& field3 ="; postStr + = String (valor_mq2); postStr + = "\ r / n / r / n"; client.print ("POST / actualizare HTTP / 1.1 / n"); client.print ("Gazdă: api.thingspeak.com / n"); client.print ("Conexiune: închidere / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application / x-www-form-urlencoded / n"); client.print („Lungime conținut:”); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); întârziere (1000); } client.stop (); }

În acest cod, este montat sau capabil de cerere HTTP, adăugând o ID-ul canalului criat (apiKey), e uma string contând fiecare um doi parametri identificați pe canalul canalului, cu valori oscilante două senzori de poeira (concentrare și proporție de poeira) e gás (concentrarea de gás). No ThingSpeak, puteți vizualiza ca informații în formă de grafice.

În cele din urmă, trimitem mesaje pentru un aplicativ Android cu Blynk:

/ ************************************************* ** * Enviando Dados para o Blynk ******************************************* ******** / void sendDataBlynk () {Blynk.virtualWrite (10, raport); // pin V10 Blynk.virtualWrite (11, concentrație); // pin V11 Blynk.virtualWrite (12, valor_mq2); // pinul virtual V12}

Pasul 5: Concluzie

Completando este guia com sucesso, você poderá tanto visualizar em seu celular informações de concentração de gás e poeira em um dado ambiente, ca însoțitor la evoluția acestor dados através de gráficos pela internet.

Autori:

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

Recomandat: