Innholdsfortegnelse:
- Trinn 1: Materiais Utilizados
- Trinn 2: Configuração Do ThingSpeak
- Trinn 3: Aplicativo - MIT App Inventor
- Trinn 4: Montagem Do Protótipo
- Trinn 5: Programação Do Microcontrolador
Video: Projeto IoT - Sistema Detector De Fumaça: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Introdução
O Sistema Detector de Fumaça consiste em uma solução IoT com o objetivo de permitir o monitoramento de alarmes de incêndio de residências através de um aplicativo Android. Du kan også bruke mikrokontrolleren til å koble til et trådløst nettverk, og det kan også oppdages av sensor for fumaça. O proprietário da residência consegue monitorar o sistema através de um aplicativo e recebe notificações via Telegram em caso de ativação do alarme de incêndio.
Desenvolvedores
- Bruno Gonçalves Pereira
- João Paulo Tadeu Borges Paiva
- Juliana Guimarães Soares Buére
- Willan Alexander Condor Asenjo
Trinn 1: Materiais Utilizados
Os materiais utilizados para konstrução do projeto foram:
- Modulo WiFi ESP8266 NodeMcu ESP-12: Placa de desenvolvimento que combina o chip ESP8266 (comunicação WiFi), uma interface usb-serial and um regulador de tensão 3.3V. En programação pode ser feita usando a IDE do Arduino, através da comunicação via cabo micro-usb.
- Sensor de Gás MQ-135 for Gases Tóxicos: O Sensor de Gás MQ-135 er en modell som kan brukes til å oppdage gasser som forårsaker gass, dioxidasjon av karbon, benzen, oksidant og e-bok.
- Led vermelho
- Led verde
- 2 Motstander 200Ω
- Protoboard e jumpers para conexão e teste do protótipo
Trinn 2: Configuração Do ThingSpeak
O ThingSpeak er en plattform for IoT for armazenar og recuperar dados usando o protocolo HTTP og MQTT for Internet ou por meio de uma rede local. ThingSpeak tillater aggreger, visualiseringer og analyser av fluxos de dados na nuvem.
O ThingSpeak kan leveres på en gratis måte for en del av produktene (menyene for 3 millioner dager for ano ou aproximadamente 8000 mensagens por dia). Para projetos maiores ou aplicações comerciais, quatro tipos diferentes de licença anual são oferecidos: Standard, Academic, Student and Home.
Configuração de um canal no ThingSpeak
Após criar uma conta no ThingSpeak, é needsário criar um canal. Os canais armazenam os dados enviados de um determinado projeto. Cada canal inclui 8 campos que podem conter qualquer tipo de dados, mais 3 campos for dados de localização e 1 for dados de status. Depois de coletar dados em um canal, você pode usar os aplicativos ThingSpeak para analisá-los e visualizá-los.
Para este projeto, foi criado um canal com nome IoTProject-SmokeDetector e 3 campos for envio de dados:
- Felt 1: Concentração de gás
- Felt 2: Alarme
- Felt 3: Comando desligar
Etter en "privat visning" kan du se en visualisering av de forskjellige stedene. Neste projeto, foram criados:
- 1 gráfico com os dados de concentração de gás CO2 em função do tempo
- 1 indikator for led para indicação de alarme
- 1 gráfico com os dados de comando de desligar alarme em função do tempo
Leitura e escrita no ThingSpeak
O canal do ThingSpeak é criado com um identifierador único (Channel ID) que possibilita sua identificação para envio and leitura de dados. Etter "API -nøkler" kan vi disponere som en chaves for escrita (Write API Key) og søk (Read API Key) de dados no canal. Vi kan også bruke API -forespørsler (HTTP -forespørsler).
Du kan identifisere kanalen slik at vi kan bruke mikrokontroller. Ja som API -forespørsler om bruk av programmer og applikasjoner for Android.
Trinn 3: Aplicativo - MIT App Inventor
A aplicativo para monitoramento do system for foi desenvolvido utilizando o MIT App Inventor. O MIT App Inventor er en gratis internettbasert og integrert del av en integrert del av Massachusetts Institute of Technology (MIT). Ele permite que iniciantes on programação criem aplicativos for Android and iOS.
Para começar, após criar uma conta no MIT App Inventor, criou-se um projeto com o nome IotProject_SmokeDetector.
Det er mulig å installere et alternativ som også gjør det mulig å velge andre komponenter (detaljer, etiketter, bilder osv.) Ingen meny lateral esquerdo (palett). Para cada um dos componentes selecionados, é possível alterar configurações de cores, tamanho, posição, entre outras no menu lateral direito (Properties).
Na tela Blocks er en programvare for programmene. A programação é feita através de blocos, facilitando o desenvolvimento para iniciantes.
Explicação do código
Duas variáveis locais são inicializadas: alarmData e sensorData.
A cada 1 segundo (definido for Clock1), or aplicativo faz um request of dados no canal ThingSpeak através da URL de leitura de dados que pode ser kopiada na aba "API Keys". Vi kan også svare på korrespondanse til CO2 -konsentrasjon. Ja o dado do alarme é testado:
- Se o alarme estiver acionado (alarmData = 1), a aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) é habilitado.
- Se o alarme não estiver acionado (alarmData = 0), a aplicativo mostra ao usuário a mensagem "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Button1) é desabilitado.
Quando o botão de desligar alarme (Button1) for clicado, o aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. Du kan også bruke ThingSpeak til å bruke URL -adressen for å skrive ut en kopi av "API Keys".
Trinn 4: Montagem Do Protótipo
O prototipo foi montado no protoboard conforme indicado and figura.
Sensor MQ135
- Pino AO: conectado ao pino AD0 do módulo ESP8266
- Pino GND: conectado ao GND do módulo ESP8266
- Pino Vcc: conectado ao pino VIN do módulo ESP8266
LED verde
- Conectar uma perna do resistor de 200Ω no pino D5 do módulo ESP8266
- Tilkobling av LED (positiv - maior perna) og motstand
- Koble til LED -lampe (negativ - meny perna) no GND do módulo ESP8266
LED -lampe
- Koble til en doresistor på 200Ω uten p7 D7 for ESP8266.
- Koble til LED (positiv - maior perna) og motstand
- Koble til LED -lampe (negativ - meny perna) no GND do módulo ESP8266
Trinn 5: Programação Do Microcontrolador
En mikrokontrollator for ESP8266 for programmer som kan brukes til IDE for Arduino (for nedlasting).
Du kan fullføre bruken av noen projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções principais: setup e loop.
Oppsett av Fluxo:
- Inicializa a porta serial
- Inicializa os -utganger (pinos dos leds)
- Tilkobling til WiFi
- Inicializa o ThingSpeak
Fluxo do loop:
- Les mer om sensoren MQ135
-
Bekrefter at konsentrasjonen av CO2 ultrapassa eller begrenset definisjon (ideell: CO2 <= 700 ppm)
- Liga o alarme (LED vermelho), desliga o LED de status (verde) e envia notificação pelo Telegram se o valor estiver acima do limite
- Desliga o alarme (LED vermelho) e liga o LED de status (verde) se o valor estiver abaixo do limite
-
Lê o dado de "comando desligar alarme" gjør ThingSpeak
Se o comando = 1, desliga o alarme (LED vermelho) og liga o LED de status (verde)
- Envia dados do sensor, do alarme e de comando para o ThingSpeak a cada 20 segundos
Abaixo será descrita a programação de cada um dos principais módulos com o respectivo código para teste.
Tilkobling og innkobling av WiFi
Du kan bruke IDE til Arduino, til File-> Preferences for ytterligere Board Manager-URLer en URL
Du kan også se verktøy-> Tavler-> Boards Manager digite ESP8266, klikk på for å installere og laste ned.
É nødvendigvis definir 2 variáveis para conexão na rede:
- WIFI_SSID: Du kan ikke bruke WiFi til å koble til et system
- WIFI_PASSWORD: senha da rede
For teste de conexão WiFi, copie or código abaixo, altere as variáveis for conexão WIFI listadas acima e faça upload no moddulo ESP8266.
#include /************************ ALTERE AS DEFINIÇÕES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Navn da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi WiFiClient client; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.begynner (WIFI_SSID, WIFI_PASSWORD); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); forsinkelse (50); // Conectaooo wifi ConnectToWiFi (); }
Lendo dados gjør sensor MQ135
Para ler os dados do sensor MQ135, primeiramente deve-se baixar and biblioteca MQ135.h e adicioná-la na IDE do Arduino através do menu Skecth-> Include Library-> Add. ZIP Library.
Depois, copie o código abaixo and faça upload no model ESP8266 através do cabo micro-usb. For å realisere og finne en konsentrasjon av CO2 em ppm e imprime os valores lidos no serial monitor.
#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Setup da placa void setup () {Serial.begin (115200); forsinkelse (50); } // Loop principal void loop () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("Concentracao de CO2 (ppm):"); Serial.println (sensorValue); }
Escrevendo og lendo dados do ThingSpeak
Primeiro, adicione a Biblioteca do ThingSpeak no Arduino IDE. Finn verktøy-> Tavler-> Tavlerbehandler digite ThingSpeak, klikk på installasjonen og installasjonen.
En gratis versjon av ThingSpeak, for å laste opp de siste 20 dagene, kan du heller ikke teste noe av det vi ønsker å gjøre.
Para comunicar com ThingSpeak é needsário definir as variáveis abaixo:
- myChannelNumber: nåmero canal criado no ThingSpeak
- myWriteAPIKey: chave de escrita do canal do ThingSpeak
- myReadAPIKey: chave de leitura do canal do ThingSpeak
Para teste de comunicação com av ThingSpeak, kopi av en annonse, andre alternativer for konexão og rede e som varáveis listadas acima e faça laste ikke opp noen ESP8266.
#include #include /*********************** ALTERE AS DEFINIÇÕES ABAIXO ***************** *** dados ao ThingSpeak /*********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ unsigned long myChannelNumber = 0000000; // Nummer til kanalen gjør ThingSpeak const char * myWriteAPIKey = "skrive api -nøkkelen din"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "your read api key"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; usignert lang aktuell tid; WiFiClient -klient; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root certificate para api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.begynner (WIFI_SSID, WIFI_PASSWORD); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); forsinkelse (50); // Conectaooo wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (klient); } // Loop principal void loop () {currentTime = millis (); // seta o tempo atual // Lê dados do ThingSpeak int value = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Serial.println (verdi); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = currentTime; } forsinkelse (20000); }
Enviando notificação pelo Telegram
Primeiro, adicione a Biblioteca do Telegram no Arduino IDE. Finn verktøy-> Tavler-> Boards Manager digite UniversalTelegramBot, klikk på for å installere og laste ned.
Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, skaff deg av botfather e clique nele. A janela a seguir deve abrir e você será solicitado and clicar no botão Iniciar. Digite /newbot e siga as instruções para criar seu bot. Dê a ele um nome e nome de usuário. Se o seu bot for criado com sucesso, você receberá uma mensagem com um link para acessar o bot e o token do bot. Salve o token, porque você precisará dele para que o ESP8266 possa enviar notificações.
Em seguida, em sua conta do Telegram, pesquise IDBot. Inicie uma conversa com esse bot e digite/getid. Você receberá uma resposta com seu ID de usuário. Salve o ID, porque você precisará dele para enviar de notificações.
Para teste do envio de notificação pelo telegram, copie o código abaixo, altere as variáveis de definições para conexão WIFI e para comunicação com o Telegram (BOT_TOKEN e CHAT_ID) e faça upload no módulo ESP826.
#include #include #include /******************** ALTERAR DEFINIÇÕES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do telegram # definere CHAT_ID "CHANGEYOURCHATID" // ID do chat do telegram X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot bot (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String melding) {bot.sendMessage (CHAT_ID, melding, ""); Serial.println (melding); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root certificate para api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.begynner (WIFI_SSID, WIFI_PASSWORD); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); forsinkelse (50); // Conectaooo wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }
Anbefalt:
Pequeno Projeto De Uma Casa Inteligente: 5 trinn
Pequeno Projeto De Uma Casa Inteligente: O projeto que faremos é de uma casa inteligente. Det er grunnleggende funksjoner for funksjoner: · Overvåking av temperatur og temperatur. · Overvåking av liste over alimentos og nye filter for geladeira.Não escrever
Projeto CoCoa: Um Colete De Comunicação Alternativa: 8 trinn
Projeto CoCoa: Um Colete De Comunicação Alternativa: CoCoA-prosjektet er en bærbar vest koblet til internett som gjør det mulig å koble sammen taktile symboler for alternativ kommunikasjon for å hjelpe mennesker med tale eller ikke-verbale funksjonshemminger. O Colete de Comunicação Alternativa (CoCoA) consi
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: 5 trinn
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: Este guia mostra como criar um detector de fumaça que emite um bipe quando detecta gás ou fumaça inflamável. Acesse meu último artigo: Arduino: tudo o que você precisa saber [Guia Completo] .O sensor de gás MQ-2O sensor de fumaça MQ-2 é sensível à fu
Projeto Lumos: 8 trinn
Prosjektet Lumos: Vi har en konstruksjon som kan brukes til å styre og dele en smarttelefon for å koble til eller bruke WiFi. Para controlar and luminária foi desenvolvido um aplicativo for Android, que permite apagar and acender and luz utilizando além
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: 4 trinn (med bilder)
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hibrida, sem a nødvendigidade of acessar of recaços of plataformas nativas do Android ou do IOS. Foi utilizado um computador tipo notebook com windows 10. Essa plataforma chama-se Ionic, q