Sisällysluettelo:

Projeto IoT - Sistema -ilmaisin De Fumaça: 5 vaihetta
Projeto IoT - Sistema -ilmaisin De Fumaça: 5 vaihetta

Video: Projeto IoT - Sistema -ilmaisin De Fumaça: 5 vaihetta

Video: Projeto IoT - Sistema -ilmaisin De Fumaça: 5 vaihetta
Video: Экспериментальная ПЕЧЬ в мастерскую!!! 2024, Heinäkuu
Anonim
Projeto IoT - Järjestelmän ilmaisin De Fumaça
Projeto IoT - Järjestelmän ilmaisin De Fumaça

Johdanto

O Femaça Sistema Detector sisältää ratkaisun IoT -komentoon tai luvanvaraiseen valvontaan tai hälytysten seurantaan. 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 alarmme de incêndio.

Ei -kehittyneitä

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

Vaihe 1: 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:

  • Muunnos WiFi ESP8266 NodeMcu ESP-12: Placa de desenvolvimento que combina or chip ESP8266 (comunicação WiFi), uma-liitäntä usb-sarja ja 3,3 V: n säädin. Ohjelma, jonka avulla voit käyttää IDE do Arduinoa, kommunikoida kaapin micro-usb: n kautta.
  • Sensor de Gás MQ-135 para Gases Tóxicos: O Sensor de Gás MQ-135 e mod method cacaz de detectar vários tipos de gases to toksic como amônia, dióxido de carbono, benzeno, óxido nítrico, e também fumaça ou álcool.
  • Led vermelho
  • Led Verde
  • 2 Kestää 200Ω
  • Protoboard ja puserot, jotka on yhdistetty ja testattu

Vaihe 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 on palvelin, joka tarjoaa IoT -laitteen, joka on suunniteltu toimimaan ja palauttamaan, sekä käyttämään HTTP -protokollaa että MQTT -Internetiä tai paikallista paikallista. ThingSpeak on täydellinen, visualisoiva ja anaalinen fluxos de dados na nuvem.

O ThingSpeak tarjoaa ilmaisen palvelun, joka on maksuton, pequenos projetos não comerciais (menot 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 an an são oferecidos: Standard, Academic, Student and Home.

Configuração de um -kanava ei ThingSpeak

Após criar uma conta no ThingSpeak, é välttämätön criar um -kanava. Os canais armazenam os dados enviados de um determinado projeto. Cada canal inclui 8 campos que podem conter qualquer type de dados, more 3 campos para dados de localização e 1 para dados de status. Depois de coletar dados em um canal, você pode usar os aplicativos ThingSpeak para analisá-los and visualizá-los.

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

  • Kenttä 1: Concentração de gás
  • Kenttä 2: Hälytys
  • Kenttä 3: Comando desligar

Voit katsoa yksityisen näkymän ja näyttää sen näkyvänä. Neste Projeto, foram criados:

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

Leitura ja escrita no ThingSpeak

O Canal do ThingSpeak ja criado com um identififier único (Channel ID) que mahdollista sua identifação para envio e leitura de dados. Kaikki "API -avaimet" on tarkoitettu poistettavaksi as char para escrita (Write API Key) ja leitura (Read API Key) ilman kanavaa. Além disso, também são disponibilizadas as API Requests (HTTP get request) 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. Jos sovellusliittymä pyytää Android -sovellusten sovellusten käyttöä.

Vaihe 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

O aplikatiivinen monitoramentointijärjestelmä, joka mahdollistaa käyttöjärjestelmän käytön tai MIT App Inventorin. O MIT App Inventor on ilmainen web -ilmaisohjelma ja koodinhallintaohjelma, joka on tarkoitettu integroitujen sovellusten integrointiin, Massachusetts Institute of Technology (MIT). Tämä on täydellinen aloitusohjelma, jossa on sovellusohjelma Androidille ja iOS: lle.

Parametrit, apros criar uma ei sisällä MIT App Inventor -ohjelmaa, joka tarjoaa IotProject_SmokeDetector-projektin.

Suunnittelija ja suunnittelija voivat käyttää sovelluksia, valikoituja osien välttämättömyyksiä (botit, etiketit, kuvat jne.), Ei valikon sivuttaista esquerdo (paletti). Para cada um dos -komponenttien valinta, ytimien vaihtoehtoiset konfiguraatiot, tamanho, posição, entre outras no menu lateral directito (Properties).

Na tela Blocks ja feat toda 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 segment (definido pelo Clock1), or apicativo faz um request for dados no canal ThingSpeak através da URL for leitura de dados que pode ser copy and aba "API Keys". Quando os dados são retornados, tai dado do sensorsrespondente à keskittyminen de gás CO2 é mostrado na tela do aplicativo. Já o dado do alarme é testado:

  1. Näet hälytyksen estiver acionado (alarmData = 1), tai aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarmme (Button1) ja habilitado.
  2. Näet hälytyksen, joka on estion acionado (alarmData = 0), tai aplicativo mostra ao usuário ja mensagem "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alarmme (Button1) ja desabilitado.

Quando o botão de desligar alarmme (Button1) clickado, tai aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. ThingSpeak etsii URL -osoitteen escrita de dados que pode -palvelusta, joka kopioi "API -avaimet".

Vaihe 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

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

Anturi MQ135

  • Pino AO: conectado ao pino AD0 do mode ESP8266
  • Pino GND: yhdistettynä GND -menetelmään ESP8266
  • Pino Vcc: conectado ao pino VIN do modeulo ESP8266

LED -valo

  • Conectar uma perna do vastus de 200Ω no pino D5 do mode ESP8266
  • Conectar tai anodo do LED (positiivinen - maior perna) ja ulompi vastus
  • Conectar tai catodo do LED (negatiivinen - menor perna) no GND do mode ESP8266

LED vermelho

  • Conectar uma perna -resistori de 200Ω no pino D7 do mode ESP8266.
  • Conectar tai anodo do LED (positiivinen - maior perna) ja ulompi vastus
  • Conectar tai catodo do LED (negatiivinen - menor perna) no GND do mode ESP8266

Vaihe 5: Programação Do Microcontrolador

Mikrohallinta ESP8266 -ohjelmalle, jossa käytetään IDE do Arduino -ohjelmaa (julkisivu tai ladattava versio).

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.

Fluxo do setup:

  • Inicializa portaalisarja
  • Inicializa OS -lähdöt (pinos dos ledit)
  • Conecta ja WiFi
  • Inicializa tai ThingSpeak

Fluxo do -silmukka:

  • Lada osados do anturi MQ135
  • Verifica se a koncentração de gás CO2 ultrapassa tai limite definido (ihanteellinen: CO2 <= 700 ppm)

    • Liga o alarmme (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) ja liga o LED de status (verde) se o valor estiver abaixo do limite
  • Ling o dado de "comando desligar alarmme" tehdä ThingSpeak

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

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

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

Yhdistä ja WiFi

Abra ja 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 instalar e fechar.

Tarvittavat määritelmät 2 muuttujaa, kun ne on yhdistetty:

  • WIFI_SSID: nome da rede WiFi que você deseja conectar seu järjestelmä
  • WIFI_SALASANA: senha da rede

Yhteyden muodostaminen Wi -Fi -yhteydelle, kopiointi tai kopiointi, muutos erilaisiin WIFI -luetteloihin ja ilmeisiin, joita ei voi ladata ESP8266.

#include /************************ ALTERE AS DEFINIÇES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI SALASANA" // 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); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Sarja.println (""); Serial.println ("WiFi -yhteys onnistui!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); viive (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo isot anturit MQ135

MQ135-tunnistimen isäntä, ensisijainen lähdekoodin ja bibliografian MQ135.h luettelo. IDE: n tekeminen Arduino-näytölle valikosta Skecth-> Include Library-> Add. ZIP Library.

Depois, kopio tai código abaixo ja faça upload no mode ESP8266 através do cabo micro-usb. O código realiza a leitura da keskittymän 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); viive (50); } // Silmukan päävoidussilmukka () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("Concentracao de CO2 (ppm):"); Serial.println (sensorValue); }

Escrevendo ja lendo dados tehdä ThingSpeak

Pääministeri, katso ThingSpeak -biblioteca no Arduino IDE. Valitse Työkalut-> Taulut-> Hallitusten johtaja digite ThingSpeak, napsauta asennus ja fechar.

Ilmainen ThingSpeak, 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.

Kommunikaatiokomitea ThingSpeak on välttämätön määritelmä variaveis abaixo:

  • myChannelNumber: número do canal criado no ThingSpeak
  • myWriteAPIKey: Chave de escrita do kanava tehdä ThingSpeak
  • myReadAPIKey: Chave de leitura do canal do ThingSpeak

Testaa de comunicação com tai ThingSpeak, kopioi tai código abaixo, muuta vaihtoehtona para conexão na rede e as variáveis listadas acima and faça upload no mode ESP8266.

#Sisällytä #Sisällytä /********************************************************************************************************** *********/ #define WIFI_SSID "YOUR WIFI SSID" // Node da rede wifi #define WIFI_PASSWORD "YOUR WIFI SALASANA" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios dados ao ThingSpeak /*********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ allekirjoittamaton pitkä myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "kirjoitusapi -avaimesi"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "lukemasi api -avain"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; allekirjoittamaton pitkä nykyinen aika; WiFiClient -asiakas; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root varmenne 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); Serial.print ("."); } Sarja.println (""); Serial.println ("WiFi -yhteys onnistui!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); viive (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (asiakas); } // Silmukan päävoid -silmukka () {currentTime = millis (); // seta o tempo atual // Ling dados do ThingSpeak int value = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Sarja.println (arvo); // Verifica se é o o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = nykyinen aika; } viive (20000); }

Enviando notificação pelo sähke

Primeiro, katso Biblioteca do Telegram no Arduino IDE. Valitse Työkalut-> Laudat-> Taulujen hallinta Digite UniversalTelegramBot, napsauta asennus ja fechar.

Abra o Telegram e siga as próximas etapas para criar um Bot. Hyvä, hanki 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 or 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 contact 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 sähke, kopio tai 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) ja faça upload no modeulo ESP8266.

#Sisällytä #Sisällytä #Sisällytä /********************** ALTERAR DEFINIÇES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI SALASANA" // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do sähke # define CHAT_ID "CHANGEYOURCHATID" // ID chat chat to telegram X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot -botti (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String message) {bot.sendMessage (CHAT_ID, message, ""); Serial.println (viesti); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root varmenne 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); Serial.print ("."); } Sarja.println (""); Serial.println ("WiFi -yhteys onnistui!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); viive (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo sähke SendTelegramNotification ("Testando envio de notificação."); }

Suositeltava: