Isi kandungan:

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

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

Video: Controle De Gás E Poeira Com O NodeMCU: 5 Langkah
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #5 2024, November
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 selular, incluindo disparar um e-mail de alerta caso os valores lidos sejam thinkados altos.

Langkah 1: Komponen

Komponen
Komponen
Komponen
Komponen

Os seguintes komponenes são utilizados:

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

É penting pemerhati que a pinagem do NodeMCU não segue o padrão GPIO.

Langkah 2: Aplicativos

Os seguintes aplicativos são utilizados:

ThingSpeak: uma plataforma IoT open source gratuito, que permite upload de informações e posterior visualização gráfica em tempo real;

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

Langkah 3: Montagem Do Ambiente

Primeiramente, deve-se criar uma conta no ThingSpeak. Siga sebagai instrukses melakukan laman web:

Em seguida, terusan crie um novo, e defina os parâmetros que serão recebidos. Você receberá um número de identificação (ID) do canal criado em seu e-mel. Este ID diperlukan untuk memuat naik terusan de dados para o seu.

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. Apo a criação do projeto, será enviado para seu e-mail um token de autenticação.

Langkah 4: Programação

Sebagai codificação do projeto no NodeMCU, gunakan IDE do Arduino (veja aqui como configurar:

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

#sertakan

Pelanggan WiFiClient; / * Blynk * / #tentukan BLYNK_PRINT Serial #masuk

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

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

int valor_mq2 = 0;

/ * Sensor de Poeira * /

#define dsmpin 2 // DSM501A input D4 bait buff [2]; jangka masa panjang yang tidak ditandatangani; waktu mula lama yang tidak ditandatangani; waktu tamat lama yang tidak ditandatangani; sampletime_ms = 1000 yang tidak ditandatangani; lowpulseoccupancy panjang yang tidak ditandatangani = 0; nisbah apungan = 0; kepekatan apungan = 0;

/ ************************************************* ** * Recebendo Dados do Sensor de Gás ***************************************** ********* / batal getGasData (tidak sah) {valor_mq2 = 0; kelewatan (1000); int N = 9; untuk (int i = 0; i 130) {Blynk.email ("[email protected]", "Sensor de Gás", "ALERTA de Concentração de Gás !!!"); Serial.println ("e-mel de alerta de gás enviado"); }} / *********************************************** **** * Recebendo Dados do Sensor de Poeira *************************************** *********** / void getPoeiraData (void) {tempoh = pulseIn (dsmpin, LOW); lowpulseoccupancy + = tempoh; waktu tamat = milis (); apungan aux1, aux2 = 0; jika ((endtime-starttime)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms) / (sampletime_ms * 10.0); // Peratusan integer 0 => 100 aux2 = 0.1 * pow (aux1, 2) + (619 * aux1) +50; // menggunakan keluk lembaran spesifikasi jika (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!"); Serial.println ("e-mel de alerta de poeira enviado"); }}}

Perhatikan que, em ambas funções acima, utilizamos uma função do Blynk para 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 + = "& bidang1 ="; postStr + = Rentetan (nisbah); postStr + = "& bidang2 ="; postStr + = Rentetan (kepekatan); postStr + = "& bidang3 ="; postStr + = Rentetan (nilai_mq2); postStr + = "\ r / n / r / n"; client.print ("POST / kemas kini HTTP / 1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Sambungan: tutup / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application / x-www-form-urlencoded / n"); client.print ("Panjang Kandungan:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); kelewatan (1000); } pelanggan.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 identificados na criação do canal, com os valores lidos dos sensores de poeira (concentrração de proporção de proporção de proporção e gás (centração de gás). No ThingSpeak, visualiz pode sebagai maklumat sebagai forma de gráficos.

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

/ ************************************************* ** * Enviando Dados para o Blynk ****************************************** ******** / batal sendDataBlynk () {Blynk.virtualWrite (10, nisbah); // pin V10 Blynk.virtualWrite (11, kepekatan); // pin V11 Blynk.virtualWrite (12, nilai_mq2); // pin maya V12}

Langkah 5: Kesimpulannya

Komen lengkap, maklumat lanjut, visual visual, dan maklumat selular de konsentração de gás e poeira em um dado ambiente, como acompanhar a evolução destes dados através de gráficos pela internet.

Autore:

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

Disyorkan: