Talaan ng mga Nilalaman:
- Hakbang 1: Materiais Utilizados
- Hakbang 2: Configuração Do ThingSpeak
- Hakbang 3: Aplicativo - MIT App Inventor
- Hakbang 4: Montagem Do Protótipo
- Hakbang 5: Programação Do Microcontrolador
Video: Projeto IoT - Sistema Detector De Fumaça: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:09
Introdução
Ang Sistema Detector ng Fumaça ay binubuo ng lahat ng mga ito IoT com o objetivo de permitir o monitoramento de alarmes de incêndio de residências através de um aplicativo Android. O projeto é baseado ng kanilang microcontrolador que se comunica com a nuvem pela rede WiFi, upang makita ang ilang mga sensor mula sa sensor. 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
Hakbang 1: Materiais Utilizados
Os materiais utilizados para sa construção do projeto foram:
- Ang WiFi WiFi ESP8266 NodeMcu ESP-12: Maglagay ng chip ng ESP8266 (comunicação WiFi), lahat ng interface ng usb-serial at umayos sa 3.3V. Isang programa ng pode ser feita usando ng isang IDE na gawin ang Arduino, através da comunicação via cabo micro-usb.
- Ang Sensor de Gás MQ-135 para sa Gases Tóxicos: O Sensor de Gás MQ-135 é um módulo capaz de detectar vários tipos de gases tóxicos como amônia, dióxido de carbono, benzeno, óxido nítrico, and também fumaça ou álcool.
- Pinangunahan vermelho
- Pinangunahan verde
- 2 Resistores 200Ω
- Protoboard at jumpers para sa koneksyon ng pagsubok na gawin ang proteksyon
Hakbang 2: Configuração Do ThingSpeak
O ThingSpeak é um serviço de plataforma IoT para sa armazenar at recuperar ay gagamitin ng protokol na HTTP at MQTT pela Internet upang mai-local ko ito. ThingSpeak permite agregar, visualizar at analisar fluxos de magiging na nuvem.
O ThingSpeak está disponível como um serviço gratuito para pequenos projetos não comerciais (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 mensagens por dia). Para sa mga projetos mula sa iyo upang ma-access ang mga comerciais, quatro tipos diferentes de licença anual são oferecidos: Standard, Academic, Student at Home.
Configuração de um canal no ThingSpeak
Narito ang lahat ng mga conta no ThingSpeak, é kinakailangan ng 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 para maging de localização e 1 para maging de status. Depois de coletar dados em um canal, você pode usar os aplicativos ThingSpeak para analisá-los e visualizá-los.
Para sa iyong projeto, maaari kang umunlad sa IoTProject-SmokeDetector at 3 mga kampo para sa mga sumusunod:
- Larangan 1: Concentração de gás
- Larangan 2: Alarme
- Larangan 3: Comando desligar
Sa pamamagitan ng "Pribadong Pagtingin" ay maaari kang tumawag bilang visualizações de cada um dos campos criados. Neste projeto, foram criados:
- 1 gráfico com os dados de concentração de gás CO2 em função do tempo
- 1 indikador de led para sa indicação de alarme
- 1 gráfico com os magiging de comando de desligar alarme em função do tempo
Leitura e escrita no ThingSpeak
O canal do ThingSpeak é criado com um identificador único (Channel ID) que posibilita sua identificação para envio e leitura de magiging. Sa pamamagitan ng "Mga Key ng API" ay hindi na ito naisasagot bilang mga pamamahala (Isulat ang API Key) at ang pagbasa (Basahin ang API Key) na walang kanal. Alem disso, tambem são disponibilizadas bilang mga API Request (HTTP makakuha ng mga kahilingan) que também podem ser usadas para sa envio at kinakailangan na maging.
O identificador gawin ang kanal at bilang chaves serão usadas posteriormente no código do microcontrolador. Bilang kahilingan ng API, gagamitin ang mga programa upang gawin ang Android.
Hakbang 3: Aplicativo - MIT App Inventor
O aplicativo para sa monitoramento para sa sistema ng paggamit ng MIT App Inventor. O MIT App Inventor ay isang kalakal sa web gratuito at de código aberto para desenvolvimento integrado de aplicativos mantido pelo Massachusetts Institute of Technology (MIT). Pinahihintulutan ang mga iniciantes na programa na mag-apruba para sa Android at iOS.
Para sa iba pang mga app para sa MIT App Inventor, maaari mong gawin ito sa IotProject_SmokeDetector.
Sa tela de Designer ay maaari mong gawin bilang mga tela na gagamitin, piliin ang mga sangkap na kinakailangan (botões, label, larawan, atbp) walang menu lateral esquerdo (Palette). Para sa iba pang mga sangkap ng selecionados, ito ay maaaring baguhin ang pag-configure ng mga core, tamanho, posição, entre outras walang menu lateral direito (Mga Katangian).
Na mga bloke ng Blocks é feita toda a lógica de programação do aplicativo. Ang isang programação é feita através de blocos, nangangasiwa sa desenvolvimento para iniciantes.
Explicação do código
Duas variáveis locais são inicializadas: alarmData at sensorData.
Ang isang cada 1 segundo (tiyak na tawag Clock1), o aplicativo faz um request de magiging no canal ThingSpeak através da URL de leitura de magiging que pode ser copiada na aba "API Keys". Quando os lilo são retornados, o sensor ng sensor na tumutugma sa concentração de gás CO2 é mostrado na tela do aplicativo. Maaari kang mag-alala sa pagsubok:
- Se o alarme estiver acionado (alarmData = 1), o aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) ay habilitado.
- Se o alarme não estiver acionado (alarmData = 0), o aplicativo mostra ao usuário a mensagem "Nao se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Button1) ay desabilitado.
Quando o botão de desligar alarme (Button1) para sa clicado, o aplicativo escreverá 1 walang campo Field3: comando desligar criado no ThingSpeak, indigay que o comando de desligar alarme foi acionado. O dado é enviado ao ThingSpeak através da URL para escrita de magiging que pode ser copiada na aba "API Keys".
Hakbang 4: Montagem Do Protótipo
O protótipo foi montado no protoboard conforme indicio na 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
- Makipag-ugnay sa LED (positivo - mai-perna) sa labas ng resistor
- Conectar o catodo do LED (negativo - menor perna) walang GND gawin ang iyong ESP8266
LED vermelho
- Conectar uma perna doresistor de 200Ω no pino D7 do módulo ESP8266.
- Makipag-ugnay sa LED (positivo - mai-perna) sa labas ng resistor
- Conectar o catodo do LED (negativo - menor perna) walang GND gawin ang iyong ESP8266
Hakbang 5: Programação Do Microcontrolador
O microcontrolador do módulo ESP8266 ding programa na magagamit ng isang IDE na gawin ang Arduino (email o pag-download ng aqui).
O código fonte completeo utilizado no projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções principais: pag-setup at loop.
Pag-setup ng Fluxo:
- Inicializa isang porta serial
- Inicializa os outputs (pinos dos leds)
- Makipag-ugnay sa WiFi
- Inicializa o ThingSpeak
Fluxo do loop:
- Nangangailangan ng sensor MQ135
-
Tukuyin ang isang concentração de gás CO2 ultrapassa o limite definido (ideal: CO2 <= 700 ppm)
- Liga o alarme (LED vermelho), desliga o LED de status (verde) at higit na mababanggit 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
-
Mag-isip ng "comando desligar alarme" gawin ang ThingSpeak
Se o comando = 1, desliga o alarme (LED vermelho) e liga o LED de status (verde)
- Envia dados do sensor, do alarme e de comando para o ThingSpeak a cada 20 segundos
Abaixo será describes a programação de cada um dos principais módulos com o respeto código para teste.
Conectando na rede WiFi
Abra a IDE do Arduino, vá em File-> Mga Kagustuhan sa karagdagang Mga Tagapamahala ng Mga URL ng URL isang URL
Sa gayon, sa pamamagitan ng Mga Tool-> Mga Board-> Mga Board Manager ay inilagay ang ESP8266, pinagsama-sama ang mga ito.
Ang kinakailangan ay tumutukoy sa 2 pagkakaiba-iba para sa koneksyon:
- WIFI_SSID: nome da rede WiFi que você deseja conectar seu sistema
- WIFI_PASSWORD: senha da rede
Para sa pagsubok sa WiFi, kopya ng browser, baguhin bilang pagkakaiba-iba para sa koneksyon sa WIFI listadas acima e faça upload no módulo ESP8266.
#include / ***** ***** ******** ALTERE AS DEFINIÇÕES ABAIXO ***************** ***** / #define WIFI_SSID "IYONG WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "IYONG 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.begin (WIFI_SSID, WIFI_PASSWORD); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (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); antala (50); // Conecta ao wifi ConnectToWiFi (); }
Lendo dados do sensor MQ135
Para sa iba pang mga sensor ng MQ135, ang unang bersyon ng MQ135.h e adicioná-la na IDE gawin Arduino através gawin menu Skecth-> Isama ang Library-> Magdagdag. ZIP Library.
Depois, copie o código abaixo at faça upload no módulo ESP8266 através do cabo micro-usb. O real estate a leitura da concentração de CO2 em ppm e imprime os valores lidos walang serial monitor.
# isama ang "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Setup da placa void setup () {Serial.begin (115200); antala (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 e lendo magiging do ThingSpeak
Primeiro, adicione a Biblioteca do ThingSpeak no Arduino IDE. Mga Tool sa loob ng-> Mga Lupon-> Mga Tagapamahala ng Mga Lupon sa iyong ThingSpeak, clique em installar at fechar.
Ang isang dalubhasa na gawin ang ThingSpeak, mag-upload ng isang apada sa loob ng 20 segundos, kung saan, walang código deve-se testar se é momento correto de enviar os magiging.
Para sa comunicar com o ThingSpeak ay kailangan mong tukuyin bilang variáveis abaixo:
- myChannelNumber: número do canal criado no ThingSpeak
- myWriteAPIKey: chave de escrita do canal do ThingSpeak
- myReadAPIKey: chave de leitura do canal do ThingSpeak
Para sa teste de comunicação com o ThingSpeak, copie o código abaixo, baguhin bilang variáveis para sa koneksyon ng redeveis listadas acima at faça upload no módulo ESP8266.
# isama ang # isama / ***** ********* / #define WIFI_SSID "IYONG WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "IYONG WIFI PASSWORD" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios de dados ao ThingSpeak / ************************ ALTERE AS VARIÁVEIS ABAIXO ***************** ******** / unsigned mahabang myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "iyong pagsulat ng api key"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "your read api key"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; unsigned mahabang kasalukuyangTime; Client ng WiFiClient; // 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.begin (WIFI_SSID, WIFI_PASSWORD); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); antala (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (client); } // 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 (halaga); // Verifica se é o momento de enviar maging ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = kasalukuyangTime; } pagkaantala (20000); }
Enviando notificação pelo Telegram
Primeiro, adicione isang Biblioteca do Telegram no Arduino IDE. Sa mga Tool-> Mga Board-> Mga Board Manager ay inilalagay sa UniversalTelegramBot, clique em instalar at fechar.
Abra o Telegram e siga bilang próximas etapas para criar um Bot. Primeiro, kumuha ng por botfather e clique nele. Isang janela a seguir deve abrir e você será solicitado a clicar no botão Iniciar. Digite / newbot at siga bilang instruções para sa criar seu bot. Makipag-usap sa iyo tungkol sa iyo. Tingnan ang bot para sa criado com sucesso, tinaguriang lahat ng mensagem com um link para sa 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 convert sa com esse bot e digite / getid. Tutuunan ang lahat ng respeto sa iyong ID ng usuário. Salve o ID, porque você precisará dele para enviar de notificações.
Para sa teste do envio de notificação pelo telegram, copie o código abaixo, baguhin bilang variáveis de definições para conexão WIFI at para sa comunicação com o Telegram (BOT_TOKEN e CHAT_ID) upang makapag-upload ng walang gabay sa ESP8266.
#include #include #include / ***** ******* / #define WIFI_SSID "IYONG WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "IYONG WIFI PASSWORD" // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do telegram # tukuyin ang 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 message) {bot.sendMessage (CHAT_ID, message, ""); Serial.println (mensahe); } // 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.begin (WIFI_SSID, WIFI_PASSWORD); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (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); antala (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }
Inirerekumendang:
IOT Batay sa Gas Leakage Detector: 4 na Hakbang
IOT Batay sa Gas Leakage Detector: Mga Kinakailangan1 - Nodemcu (ESP8266) 2 - Smoke Sensor (MQ135) 3 - Mga Jumper wires (3)
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: 5 Mga Hakbang
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. Mag-sign up ng artikulong ito: Arduino: tago o que você precisa saber [Guia Completo] .O sensor ng MQ-2O sensor ng fumaça MQ-2 é sensível à fu
IoT Gas Detector Sa Arduino at Raspberry Pi: 5 Hakbang
IoT Gas Detector Sa Arduino at Raspberry Pi: Sa itinuturo na ito malalaman mo kung paano bumuo ng isang IoT gas detector gamit ang isang Arduino, isang Raspberry Pi, at isang MQ-5 gas sensor. Bilang karagdagan sa mga bahaging ito kakailanganin mo ng tatlong mga wire upang ikonekta ang Arduino sa gas sensor. Kapag tapos na iyon ay b
Tutorial Do Projeto Final Do Curso IoT Aplicada isang Smart Home Inatel / Novembro 2017: 4 Hakbang (na may Mga Larawan)
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hibrida, para sa isang kinakailangang acresar os recursos de plataformas nativas do Android ou do IOS. Magagamit ang computador tipo notebook com windows 10. Mag-email sa Ionic, q
IOT Smoke Detector: I-update ang Umiiral na Smoke Detector Sa IOT: 6 na Hakbang (na may Mga Larawan)
IOT Smoke Detector: I-update ang Umiiral na Smoke Detector Gamit ang IOT: Listahan ng mga nag-aambag, Imbentor: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Tagapamahala: Dr Chia Kim Seng Kagawaran ng Mechatronic at Robotic Engineering, Faculty of Electrical and Electronic Engineering, Universiti Tun Hussein Onn Malaysia. Ipamahagi