Съдържание:

Controle De Gás E Poeira Com O NodeMCU: 5 стъпки
Controle De Gás E Poeira Com O NodeMCU: 5 стъпки

Видео: Controle De Gás E Poeira Com O NodeMCU: 5 стъпки

Видео: Controle De Gás E Poeira Com O NodeMCU: 5 стъпки
Видео: How to make a Nodemcu GAS LEVEL MONITORING system | Blynk with GAS LEVEL MONITORING [MQ2 sensor] 2024, Юли
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 compatilhar estes dados nas nuvens e em seu celular, включително disparar um e-mail de alertta caso os valores lidos sejam obzirrados altos.

Стъпка 1: Компоненти

Компоненти
Компоненти
Компоненти
Компоненти

Os seguintes компоненти são използване:

  • NodeMCU
  • Сензор за газ MQ-2
  • Сензор за Poeira e Fumaça Dsm501a Arduino

Важно е да наблюдавате, че NodeMCU не е защитен от GPIO.

Стъпка 2: Aplicativos

Os seguintes aplicativos são utilizados:

ThingSpeak: безплатна IoT безплатна програма с отворен код, разрешаване на качване на информация и последна визуализация на графиката в темпо реално;

Blynk: Uma Plataforma Que Permite интеграция, прости прости entre смартфони (iOS и Android) с микроконтролатори (Arduino, Node MCU, Raspberry Pi, entre outros).

Стъпка 3: Montagem Do Ambiente

Премиера, деве-се criar uma контакт не ThingSpeak. Siga as instruções do site:

Em seguida, crie um novo channel, e defina os parâmetros que serão recebidos. Você receberá um número de identificação (ID) do channel criado em seu e-mail. Este ID е необходимо за фаза или качване на dados за seu канал.

Agora, vamos конфигуратор или Blynk:

Baixe или aplicativo do Blynk за ou Android, e cria uma conta no serviço. Em seguida, crie um 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.

Стъпка 4: Програмиране

За кодифициране на проектиране без NodeMCU, използвайте IDE за Arduino (трябва да бъде конфигуриран като:

Primeiramente, vamos incluir като bibliotecas neophodárias para comunicação com o ThingSpeak e o Blynk:

#включва

Клиент WiFiClient; / * Blynk */ #define BLYNK_PRINT Сериен #include

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

/ * Sensor de gás */#define mq2 A0 // MQ-2 аналог

int valor_mq2 = 0;

/ * Сензор на Poeira */

#define dsmpin 2 // DSM501A вход D4 байтов буф [2]; неподписана дълга продължителност; неподписан дълъг начален час; неподписан дълъг краен час; unsigned long sampletime_ms = 1000; без подпис дълъг нискоимпулсен заетост = 0; плаващо съотношение = 0; концентрация на поплавък = 0;

/************************************************* ***Recebendo Dados do Sensor de Gás ***************************************** *********/ void getGasData (void) {valor_mq2 = 0; забавяне (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 ("имейл за предупреждение за опазване на околната среда"); }} /*********************************************** *****Recebendo Dados do Sensor de Poeira *************************************** ***********/ void getPoeiraData (void) {duration = pulseIn (dsmpin, LOW); ниска пулсова заетост += продължителност; endtime = millis (); поплавък aux1, aux2 = 0; if ((endtime-starttime)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms)/(sampletime_ms*10.0); // Целочислено процентно 0 => 100 aux2 = 0.1*pow (aux1, 2)+(619*aux1) +50; // използвайки кривата на спецификационния лист if (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!"); Serial.println ("имейл за предупреждение за poeira enviado"); }}}

Наблюдавайте 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 или ThingSpeak, използване на протокол HTTP, ефективно използване на POST.

/************************************************* ***Enviando os Dados за ThingSpeak ***************************************** *********/ void sendDataTS (void) {if (client.connect (server, 80)) {String postStr = apiKey; postStr += "& field1 ="; postStr += Низ (съотношение); postStr += "& field2 ="; postStr += Низ (концентрация); postStr += "& field3 ="; postStr += низ (valor_mq2); postStr += "\ r / n / r / n"; client.print ("POST /актуализиране на HTTP /1.1 / n"); client.print ("Хост: api.thingspeak.com / n"); client.print ("Връзка: затвори / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Тип съдържание: application/x-www-form-urlencoded / n"); client.print ("Content-Length:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); забавяне (1000); } client.stop (); }

Neste código, é montado o cabeçalho da requisição HTTP, adicionando o ID do channel 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 (концентриран и пропорционен) e gás (koncentração de gás). No ThingSpeak, вижте настройките на визуализацията като информация за формата на графика.

И накрая, обсъдете съобщенията, които можете да използвате за Android com или Blynk:

/************************************************* ***Enviando Dados para o Blynk **************************************** ********/ void sendDataBlynk () {Blynk.virtualWrite (10, ratio); // щифт V10 Blynk.virtualWrite (11, концентрация); // щифт V11 Blynk.virtualWrite (12, valor_mq2); // виртуален щифт V12}

Стъпка 5: Заключение

Completando este guia com sucesso, você poderá tanto visualizar em seu клетъчни информации за концентриране на gás e poeira em um dado ambiente, como acompanhar и evolução destes dados através de gráficos pela интернет.

Autores:

  • Егон Патрик Маркис Силва
  • Фредерико Кларк
  • Паола Фроес

Препоръчано: