Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
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.
Etapa 1: Componentes
Os seguintes componentes são utilizados:
- NodeMCU
- Sensor de Gas MQ-2
- Sensor de Poeira e Fumaça Dsm501a Arduino
É importante observar que a pinagem do NodeMCU não segue o padrão GPIO.
Etapa 2: Aplicativos
Os seguintes aplicativos são utilizados:
ThingSpeak: uma plataforma IoT open source gratuito, que permite o upload de informações e posterior visualização gráfica em tempo real;
Blynk: uma plataforma que permite a integração mais simples entre smartphones (iOS e Android) com microcontroladores (Arduino, Node MCU, Raspberry Pi, entre outros).
Etapa 3: Montagem Do Ambiente
Primeiramente, deve-se criar uma conta no ThingSpeak. Siga as instruções do site:
Em seguida, crie um novo canal, e ajuste os parâmetros que serão recebidos. Você recebeu um número de identificação (ID) do canal criado em seu e-mail. Este ID é necessá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 crie 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.
Etapa 4: Programação
Para a adaptação do projeto no NodeMCU, utilizamos um IDE do Arduino (veja aqui como configurar:
Primeiramente, vamos incluir as bibliotecas para comunicação com o ThingSpeak e o Blynk:
#incluir
Cliente WiFiClient; / * Blynk * / #define BLYNK_PRINT Serial #include
Para capturar os dados dos sensores de gás e poeira, foram duas funções:
/ * Sensor de gás * / # define mq2 A0 // MQ-2 analógico
int valor_mq2 = 0;
/ * Sensor de Poeira * /
#define dsmpin 2 // DSM501A input D4 byte buff [2]; longa duração sem sinal; tempo de início longo sem sinal; tempo de fim longo sem sinal; longo sem sinal sampletime_ms = 1000; ocupação de pulso baixa longa sem sinal = 0; razão de flutuação = 0; concentração de flutuação = 0;
/ *************************************************** ** * Recebendo Dados do Sensor de Gás ***************************************** ********* / void getGasData (void) {valor_mq2 = 0; atraso (1000); int N = 9; para (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); ocupação de pulso baixa + = duração; tempo final = milis (); float aux1, aux2 = 0; if ((endtime-starttime)> sampletime_ms) {aux1 = (lowpulseoccupancy-endtime + starttime + sampletime_ms) / (sampletime_ms * 10.0); // Porcentagem inteira 0 => 100 aux2 = 0,1 * pow (aux1, 2) + (619 * aux1) +50; // usando a curva da folha de especificações if (aux1 42) {Blynk.email ("[email protected]", "Sensor de Poeira", "ALERTA de Concentração de Poeira !!!"); Serial.println ("email de alerta de poeira enviada"); }}}
Observe que, em ambas funções acima, utiliza uma função do Blynk para disparar um e-mail, como um alerta caso os níveis de gás e poeira a níveis elevados de poeira:
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 (proporção); postStr + = "& field2 ="; postStr + = String (concentração); postStr + = "& field3 ="; postStr + = String (valor_mq2); postStr + = "\ r / n / r / n"; client.print ("POST / atualizar HTTP / 1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Conexão: fechar / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application / x-www-form-urlencoded / n"); client.print ("Content-Length:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); atraso (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 identificados na criação do canal, com os valores lidos dos sensores de poeira (concentração e densidade de poeira) e gás (concentração de gás). No ThingSpeak, você pode visualizar as informações em forma de gráficos.
Finalmente, enviamos os mesmos dados para um aplicativo Android com o Blynk:
/ *************************************************** ** * Enviando Dados para o Blynk ****************************************** ******** / void sendDataBlynk () {Blynk.virtualWrite (10, proporção); // pino V10 Blynk.virtualWrite (11, concentração); // pino V11 Blynk.virtualWrite (12, valor_mq2); // pino virtual V12}
Etapa 5: Conclusão
Completando este guia com sucesso, você poderá visualizar em seu celular informações de concentração de gás e poeira em um dado ambiente, como acompanhar a evolução destes dados através de gráficos pela internet.
Autores:
- Egon Patrick Marques Silva
- Frederico Clark
- Paola Fróes
Recomendado:
Prolongue a Vida do Seu Laptop! Limpe a poeira do dissipador de calor: 3 etapas
Prolongue a Vida do Seu Laptop! Limpe a poeira do dissipador de calor .: Uma visão geral básica de como limpei a poeira do dissipador de calor do meu laptop Toshiba. Havia tanto lá dentro! Não acredito que essa prática não seja recomendada e incentivada pelos fabricantes. Se a poeira estiver bloqueando a entrada e saída de ar e
ESP8266 RGB LED STRIP WIFI Control - NODEMCU como um controle remoto IR para faixa de LED controlada por wi-fi - Controle de smartphone RGB LED STRIP: 4 etapas
ESP8266 RGB LED STRIP WIFI Control | NODEMCU como um controle remoto infravermelho para faixa de LED controlada por wi-fi | RGB LED STRIP Smartphone Control: Olá pessoal, neste tutorial vamos aprender como usar o nodemcu ou esp8266 como um controle remoto IR para controlar uma faixa RGB LED e o Nodemcu será controlado pelo smartphone através de wi-fi. Então, basicamente você pode controlar o RGB LED STRIP com seu smartphone
Estudo de poeira do Arduino: 8 etapas
Arduino Dust Study: Como seria viver em Marte? O ar é respirável? É seguro? Quanta poeira existe? Qual a frequência das tempestades? Já se perguntou a resposta a qualquer uma dessas perguntas?
Sensor de poeira sodial no Android: 6 etapas
Sensor de poeira sodial no Android: um ano atrás, um amigo meu deu um workshop de fim de semana sobre monitoramento ambiental. O objetivo do workshop era construir um sensor de poeira conectado a uma placa de framboesa pi para colocar dados de medição em algum servidor que fornecia poeira atualizada com frequência
Como limpar e tirar a poeira do seu PC: 5 etapas
Como limpar e tirar a poeira do seu PC: !!! LEIA TODOS OS SLIDES ANTES DE COMEÇAR UM PASSO !!! ============================================= ======== Olá e bem-vindo a possivelmente a coisa mais importante que você verá hoje! Vamos aprender como manter a li