Obsah:

Projeto IoT - Detektor systému De Fumaça: 5 kroků
Projeto IoT - Detektor systému De Fumaça: 5 kroků

Video: Projeto IoT - Detektor systému De Fumaça: 5 kroků

Video: Projeto IoT - Detektor systému De Fumaça: 5 kroků
Video: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, Červenec
Anonim
Projeto IoT - detektor systému De Fumaça
Projeto IoT - detektor systému De Fumaça

Úvod

O Sistema Detector de Fumaça Conserve em uma solução IoT com o objetivo of permitir or monitoramento de alares de incêndio de residências através de um aplicativo Android. Jedná se o základní mikrokontrolér, který komunikuje s více bezdrátovými sítěmi, detekuje a zjišťuje přítomnost senzoru v okolí. O vlastnických datech a monitorovacích systémech můžete sledovat různé aplikace a přijímat oznámení prostřednictvím telegramů, které vás informují o alarmech.

Desenvolvedores

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

Krok 1: Materiais Utilizados

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

Materiály, které lze použít pro konstrukci:

  • Modul WiFi ESP8266 NodeMcu ESP-12: Descavolvimento que combina o chip ESP8266 (comunicação WiFi), uma interface usb-serial and um regulador de tensão 3.3V. Programy, které jsou podporovány řadou IDE pro Arduino, jsou k dispozici přes 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 detector vários tipos de plyn 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 odpory 200Ω
  • Protoboardy a propojky pro připojení a prototipy

Krok 2: 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 a um služby pro plataforma IoT pro armazenar e rekuperar dados usando o protocolo HTTP e MQTT pela Internet or o me por deio de uma rede local. Souhlas ThingSpeak souhlasí s vizualizací a vyhodnocením různých dat.

O ThingSpeak má k dispozici více než jednu službu, která vám pomůže s výběrem více (více než 3 miliony lidí s více než 8 000 muži s průměrem). Jedná se o více než jednu obchodní aplikaci, která může mít různé typy licencí: standardní, akademické, studentské a domácí.

Konfiguração de um kanál bez ThingSpeak

Apros criar uma conta no ThingSpeak, é needário criar um canal. Osvědčené možnosti pro rozhodování o projednávání. Cada canal inclui 8 campos que podem conter qualquer tipo de dados, more 3 campos para dados de localização e 1 para dados de status. Naše hlavní kanály mohou obsahovat více než jednu aplikaci ThingSpeak, která umožňuje zobrazit a zobrazit.

Para este projeto, foi criado um canal com nome IoTProject-SmokeDetector e 3 campos para envio de dados:

  • Pole 1: Concentração de gás
  • Pole 2: Alarm
  • Pole 3: Comando desligar

Na "Soukromý pohled" a možnost zobrazení jako vizuální efekty. Nyní projeto, foram criados:

  • 1 hlavní hra s koncentrací CO2 a funkcí tempa
  • 1 indikace LED diody signalizace alarmu
  • 1 hlavní hra, která vám pomůže s tempem

Leitura e escrita no ThingSpeak

O kanálu můžete ThingSpeak a hlavní identifikační číslo (ID kanálu), které je možné identifikovat z hlediska ochrany životního prostředí. K dispozici jsou „klíče API“, které jsou k dispozici jako hlavní parametry (klíč API pro zápis) a leitura (klíč pro čtení rozhraní API) pro žádný kanál. Všechny možnosti, které můžete mít k dispozici jako požadavky API (žádosti o získání HTTP), můžete získat z jakéhokoli prostředí pro vaše potřeby.

Identifikace do kanálu může vést k mikrokontroléru. Já jako API požaduje použití různých programů a aplikací pro Android.

Krok 3: Aplicativo - MIT App Inventor

Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor

Aplikaci můžete sledovat do jednoho systému, abyste mohli používat aplikaci MIT App Inventor. O MIT App Inventor a mnoho dalších webových aplikací, které mohou mít vliv na integraci aplikací do Massachusetts Institute of Technology (MIT). Všechny možnosti spuštění programu a aplikací pro Android a iOS.

Para começar, após criar uma conta no MIT App Inventor, criou-se um projeto com o nome IotProject_SmokeDetector.

Na návrháři a montéři montujeme různé aplikace, vybíráme a vybíráme jednotlivé komponenty (boty, štítky, obrázky atd.) Bez bočního menu (palety). Vybrat si můžete z více složek, případně ze všech možných konfigurací jader, tamanho, posição, entre outras no menu lateral directito (Properties).

Na těle bloků a programových programů a aplikací. A programa feita através de blocos, facilitando or desenvolvimento para initiantes.

Explicação do código

Duo variáveis locais são initializadas: alarmData e sensorData.

A 1 segundo (defindo pelo Clock1), or application can use any request from dados no canal ThingSpeak através da URL de leitura de dados que pode ser copiada on aba "API Keys". Nejčastěji se vyskytují hlavní problémy se senzorem a koncentrace CO2 a většina CO2 na těle do aplikace. Já o dado do alarme é testado:

  1. Se o alarme estiver acionado (alarmData = 1), or aplicativo mostra ao usuário and mensagem "Atenção! Sua casa está em perigo!" e o botao de desligar alarme (Button1) é habilitado.
  2. Vyberte možnost alarmu (alarmData = 0), použijte většinu možností a klikněte na „Načítám si!“. alarm alarmu (Tlačítko 1) a jeho spolehlivost.

Quando o botão de desligar alarme (Button1) for clicado, or aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme fori acionado. O dado é enviado ao ThingSpeak at URL URL para escrita de dados que pode ser copiada na aba "API Keys".

Krok 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

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

Senzor MQ135

  • Pino AO: připojení a pino AD0 do modulu ESP8266
  • Pino GND: připojení a GND k modulu ESP8266
  • Pino Vcc: připojení a pino VIN do modulu ESP8266

LED verde

  • Conectar uma perna do rezistor de 200Ω no pino D5 do módulo ESP8266
  • Conectar o anodo do LED (positivo - maior perna) with outra perna do resistor
  • Conectar o catodo do LED (negativní - menor perna) no GND do módulo ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω no pino D7 do módulo ESP8266.
  • Conectar o anodo do LED (positivo - maior perna) with outra perna do resistor
  • Conectar o catodo do LED (negativní - menor perna) no GND do módulo ESP8266

Krok 5: Naprogramujte mikrokontrolér

Mikrokontrolér do modulu ESP8266 pro použití s IDE do Arduino (stáhnout nebo stáhnout).

O código fonte kompatibilní s žádným projeto pode ser baixado no final deste tutorial (Iot_project.ino). Hlavní zásady: nastavení smyčky.

Nastavení Fluxo:

  • Inicializujte porta seriál
  • Inicializační výstupy os (pinos dos leds)
  • Připojte se k WiFi
  • Inicializa o ThingSpeak

Fluxo do smyčka:

  • Prohlédněte si snímač MQ135
  • Ověřte, zda je koncentrace CO2 extrémně vysoká nebo neomezená (ideální: CO2 <= 700 ppm)

    • Liga o alarme (LED vermelho), desliga o LED de status (verde) and 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
  • Prohlédněte si "comando desligar alarme" do 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á descrita a programação de cada um dos principais módulos com o respectivo código para teste.

Připojení k WiFi

Abra a IDE do Arduino, vá em File-> Preferences eadicione em Additional Board Manager URLs a URL

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

Potřebujete definovat 2 různé varianty připojení:

  • WIFI_SSID: nome da rede WiFi que você deseja conectar seu sistema
  • WIFI_PASSWORD: senha da rede

Para teste de conexão WiFi, copie o código abaixo, altere as variáveis para conexão WIFI listadas acima e faça upload no módulo ESP8266.

#include /************************ ALTERE AS DEFINIÇÕES ABAIXO ******************* *******/ #define WIFI_SSID "VAŠE WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi WiFiClient client; // Funkce připojení a připojení wifi neplatné ConnectToWiFi (neplatné) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); } Serial.println (""); Serial.println („WiFi conectado com sucesso!“); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Nastavení neplatného nastavení () {Serial.begin (115200); zpoždění (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados do 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, copy or código abaixo and faça upload no módulo ESP8266 através do cabo micro-usb. Realizace a soustředění koncentrací CO2 a ppm empirických údajů bez sériového monitoru.

#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Nastavení neplatného nastavení () {Serial.begin (115200); zpoždění (50); } // Hlavní smyčka smyčky () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("Koncentracao de CO2 (ppm):"); Serial.println (sensorValue); }

Escrevendo a lendo dados to ThingSpeak

Primeiro, odkaz na Biblioteca do ThingSpeak no Arduino IDE. Vá em Tools-> Boards-> Boards Manager digite ThingSpeak, clique em installr e fechar.

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

Para comunicar com o ThingSpeak é needário definir as 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 e faça upload no módulo ESP8266.

#include #include /************************* ALTERE AS DEFINIÇÕES ABAIXO ***************** *********/ #define WIFI_SSID "VAŠE 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 ****************** ********/ nepodepsané dlouhé 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 = "your read api key"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; bez znaménka dlouhý aktuální čas; Klient 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); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); } Serial.println (""); Serial.println („WiFi conectado com sucesso!“); Serial.println (WiFi.localIP ()); } // Nastavení neplatného nastavení () {Serial.begin (115200); zpoždění (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (klient); } // Loop principal void loop () {currentTime = millis (); // seta o temp atual // Lê dados do ThingSpeak int value = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Serial.println (hodnota); // 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; } zpoždění (20 000); }

Enviando upozorní na telegram

Primeiro, což je biblioteca do telegramu bez Arduino IDE. Vá em Tools-> Boards-> Boards Manager digite UniversalTelegramBot, clique em installationr e fechar.

Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, kupte si botfather e clique nele. A janela a seguir deve abrir e você será solicitado a 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 link link para acessar o bot e o token do bot. Ověřte si token, porque você precisará dele para que o ESP8266 possa enviar notificações.

Em seguida, em sua conta do Telegram, pesquise IDBot. Začínáme s více botami/pracemi. Vicê receberá uma resposta com seu ID de usuário. Uveďte ID, porque você precisará dele para enviar de notificações.

Para testes to envio de notificação pelo telegram, copy of 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 ESP8266.

#include #include #include /********************** ALTERAR DEFINIÇÕES ABAIXO ****************** *******/ #define WIFI_SSID "VAŠE 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 # definujte CHAT_ID "CHANGEYOURCHATID" // ID do chatu do telegramu 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 (zpráva); } // 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); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); } Serial.println (""); Serial.println („WiFi conectado com sucesso!“); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Nastavení neplatného nastavení () {Serial.begin (115200); zpoždění (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }

Doporučuje: