Tartalomjegyzék:

Projeto IoT - Sistema Detector De Fumaça: 5 lépés
Projeto IoT - Sistema Detector De Fumaça: 5 lépés

Videó: Projeto IoT - Sistema Detector De Fumaça: 5 lépés

Videó: Projeto IoT - Sistema Detector De Fumaça: 5 lépés
Videó: Detecção de incêndio - Como instalar os dispositivos periféricos (Detectores, acionadores e sirenes) 2024, November
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

Introdução

A Fumaça rendszer érzékelője tartalmazza az IoT megoldását, vagy engedélyezi vagy felügyeli a riasztásokat, és bekapcsolja az Android alkalmazást. O projeto é baseado em um microcontrolador que se comunica com a nuvem pela rede WiFi, enviando os sinais detectados por um sensor de fumaça. O proprietário da residência consegue monitorar o system através de um aplicativo e recebe notificações via Telegram em caso de ativação do alarme de incêndio.

Fejlődési zavarok

  • Bruno Gonçalves Pereira
  • João Paulo Tadeu Borges Paiva
  • Juliana Guimarães Soares Buére
  • Willan Alexander Condor Asenjo

1. lépés: Materiais Utilizados

Materiais Utilizados
Materiais Utilizados
Materiais Utilizados
Materiais Utilizados
Materiais Utilizados
Materiais Utilizados
Materiais Utilizados
Materiais Utilizados

Os materiais utilizados para konstrukção do projeto foram:

  • Módosított WiFi ESP8266 NodeMcu ESP-12: Az ESP8266 (comunicação WiFi) chip kombinációjának vagy kombinációjának csatlakoztatása, uma interfész USB-soros és 3.3V-os szabályozó. A programção pode ser feita usando IDE do Arduino, através da comunicação via cabo micro-usb.
  • Sensor de Gás MQ-135 para 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, e também fumaça ou álcool.
  • Led vermelho
  • Led verde
  • 2 Ellenállás 200Ω
  • Protoboard és jumperek a conexão e teste do protótipo számára

2. lépés: Configuração Do ThingSpeak

Configuração Do ThingSpeak
Configuração Do ThingSpeak
Configuração Do ThingSpeak
Configuração Do ThingSpeak
Configuração Do ThingSpeak
Configuração Do ThingSpeak

O ThingSpeak és az IoT platform szolgáltatása, amely az armazenar és a recuperar dados usando vagy a protokoll HTTP és az MQTT játék Internet vagy a helyi szolgáltatás. A ThingSpeak tökéletesen megegyezik, megjeleníti és elemzi a fluxusokat.

O ThingSpeak, amely ingyenes szolgáltatást kínál ingyenesen, ha nincsenek komercípiai projektek (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 mensagens por dia). Para projetos maiores ou aplicações comerciais, quatro tipos diferentes de licence 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 qualityquer tipo de dados, more 3 campos para dados de localização and 1 para 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 para envio de dados:

  • 1. mező: Concentração de gás
  • 2. mező: Riasztás
  • 3. mező: Comando desligar

A "Private View" és a legmagasabb színvonalú megjelenítés, mint a cada um dos campos criados megjelenítése. Neste projeto, foram criados:

  • 1 gráfico com os dados de koncentração de gás CO2 em função do tempo
  • 1 indikátor de led para indicação de alarme
  • 1 gráfico com os dados de comando de desligar alarmme em função do tempo

Leitura e escrita no ThingSpeak

O canal do ThingSpeak é criado com um identifador único (Channel ID) ez a lehetőség az azonosításra para envio e leitura de dados. Az "API -kulcsok" a disponibilizadas as chaves para escrita (Write API Key) és a leitura (Read API Key) de dados no canal. Além disso, também são disponibilizadas as API Requests (HTTP get kérések) que também podem ser usadas para envio e requisição de dados.

O identifador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Az API kéri, hogy használja az Android programjait.

3. lépés: Aplicativo - MIT App Inventor

Alkalmazás - MIT App Inventor
Alkalmazás - MIT App Inventor
Alkalmazás - MIT App Inventor
Alkalmazás - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor

Használja a monitoramento rendszere rendszer for desenvolvido utilizando vagy MIT App Inventor alkalmazását. Az MIT App Inventor ingyenes webcím és webkód, amely lehetővé teszi a Massachusetts Institute of Technology (MIT) alkalmazásintegrációs integrációját. Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Ingyenes Elfogadja a legújabb programokat az Android és iOS operációs rendszer alkalmazásaihoz.

Ez a program nem tartalmazza az MIT App Inventor programot, az IotProject_SmokeDetector programot.

A tervező és a tervező telepíti a telas do aplicativo, a selecionando os komponensek szükségleteit (botok, címkék, képek stb.) Nincs menüoldali esquerdo (paletta). Para cada um dos komponensek kiválasztása, magok konfigurálása, tamanho, posição, entre outras no menu lateral directito (Tulajdonságok).

Na tela Blocks é feita toda a lógica de programção do aplicativo. A programçã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 szegmens (definito pelo Clock1), vagy az alkalmazás kérése az apja nem csatorna ThingSpeak através da URL de leitura de dados que pode ser copiada and aba "API Keys". Quando os dados são retornados, o dado do sensor levelező à koncentráció a gás CO2 é mostrado na tela do aplicativo. Já o dado do alarme é testado:

  1. Lásd a alarmme estiver acionado (alarmData = 1), vagy aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarmme (Button1) é habilitado.
  2. Se o alarmme não estiver acionado (alarmData = 0), vagy 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 alarm (Button1) clickado, vagy aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. A ThingSpeak az URL -címet az escrita de dados que pode -hoz másolja az "API -kulcsok" segítségével.

4. lépés: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

O protótipo foi montado no protoboard conforme indicado na figura.

MQ135 érzékelő

  • Pino AO: conectado ao pino AD0 do módulo ESP8266
  • Pino GND: kapcsolódik a GND módhoz ESP8266
  • Pino Vcc: conectado ao pino VIN do mód ESP8266

LED világítás

  • Conectar uma perna do ellenállás de 200Ω nincs pino D5 do mód ESP8266
  • Conectar vagy anodo do LED (pozitiv - maior perna) és külső ellenállás
  • Conectar o catodo do LED (negatív - menor perna) nincs GND mód ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω no pino D7 do mode ESP8266.
  • Conectar vagy anodo do LED (pozitiv - maior perna) és külső ellenállás
  • Conectar o catodo do LED (negatív - menor perna) nincs GND mód ESP8266

5. lépés: Programação Do Microcontrolador

Az ESP8266 mikrokontrolador programja az IDE do Arduino program használatához (vagy letölthető).

O código fonte completeto utilizado no projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções principais: setup e loop.

A Fluxo beállítása:

  • Inicializa a porta sorozat
  • Inicializa os kimenetek (pinos dos ledek)
  • Conecta a wifi eléréséhez
  • Inicializa vagy ThingSpeak

Fluxo do hurok:

  • Nézze meg az MQ135 érzékelőt
  • Verifica se a koncentração de gás CO2 ultrapassa o limite definido (ideális: CO2 <= 700 ppm)

    • Liga vagy riasztó (LED vermelho), desliga o LED de status (verde) e envia notificação pelo Telegram se o valor estiver acima do limite
    • Desliga o alarmme (LED vermelho) and liga o LED de status (verde) se o valor estiver abaixo do limite
  • A ThingSpeak "comando desligar alarmme" funkciója

    Se o comando = 1, desliga o alarmme (LED vermelho) és liga o LED de status (verde)

  • Envia dados do sensor, do alarmme e de comando para or ThingSpeak a cada 20 segundos

Abaixo será descrita a programção de cada um dos principais módulos com o respectivo código para teste.

Vegye fel a kapcsolatot a WiFi -vel

Abra és IDE do Arduino, vá em File-> Preferences eadicione em További Board Manager URL-ek URL-címek

Em seguida, vá em Tools-> Boards-> Boards Manager digite ESP8266, clique em instalar e fechar.

É needário definir 2 varáveis para conexão na rede:

  • WIFI_SSID: node da rede WiFi que você deseja conectar seu rendszer
  • WIFI_JELSZÓ: senha da rede

A Wi -Fi -kapcsolat tesztelése, másolás vagy másolás, más változatok, mint a WIFI -listák listája, és az oldal feltöltése mód nélkül ESP8266.

#include /************************ ALTERE AS DEFINIÇES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI JELSZÓ" // Senha da rede wifi WiFiClient kliens; // 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); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } Soros.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); késleltetés (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados do MQ135 érzékelő

Az MQ135 szenzorok, deve-se baixar and biblioteca MQ135.h és IDE do Arduino através menu Skecth-> Include Library-> Add. ZIP Library.

Depois, copie o código abaixo e faça upload no modeulo ESP8266 através do cabo micro-usb. O código realiza a leitura da koncentração de 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); késleltetés (50); } // Loop fő void loop () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("Concentracao de CO2 (ppm):"); Serial.println (sensorValue); }

Escrevendo és lendo dados a ThingSpeakhez

Primeiro, nézze meg a Biblioteca do ThingSpeak no Arduino IDE -t. Vá em Tools-> Boards-> Boards Manager digite ThingSpeak, clique em instalar e fechar.

Ingyenes A ThingSpeak ingyenes, aceita upload de dados apenas a cada 20 segundos, por isso, no código deve-se testar se é o momento correctto de enviar os dados.

Para comunicar com o ThingSpeak és szükségszerűség, mint 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 teste de comunicação com o ThingSpeak, copie o código abaixo, altere as variáveis para conexão na rede e as variáveis listadas acima and faça upload no mode ESP8266.

#include #include /************************* ALTERE AS DEFINIÇÕES ABAIXO ***************** *********/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios dados ao ThingSpeak /*********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ előjel nélküli hosszú myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "your write api key"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "az olvasott api kulcsa"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; előjel nélküli long currentTime; WiFiClient kliens; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root tanúsítvány 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); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } Soros.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); késleltetés (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (kliens); } // Loop fő 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 (érték); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = aktuális idő; } késleltetés (20000); }

Enviando notificação pelo távirat

Primeiro, nézze meg a Biblioteca do Telegram no Arduino IDE -t. Vá em Tools-> Boards-> Boards Manager digite UniversalTelegramBot, clique em instalar e fechar.

Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, szerezzen be botfather e clique nele. A janela a seguir deve abrir e você será solicitado a clickar 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 Tele Telegram, mosolygós 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 távirat, 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 modeulo ESP8266.

#befoglalás #befoglalás #befoglalás /********************** 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 # define CHAT_ID "CHANGEYOURCHATID" // azonosító csevegés távirathoz 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 (üzenet); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root tanúsítvány 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); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } Soros.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); késleltetés (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo távirat SendTelegramNotification ("Testando envio de notificação."); }

Ajánlott: