Satura rādītājs:

Projeto IoT - Sistēmas detektors De Fumaça: 5 soļi
Projeto IoT - Sistēmas detektors De Fumaça: 5 soļi

Video: Projeto IoT - Sistēmas detektors De Fumaça: 5 soļi

Video: Projeto IoT - Sistēmas detektors De Fumaça: 5 soļi
Video: IoT Smoke & Gas Detector using ESP8266 & Blynk 2.0 2024, Jūlijs
Anonim
Projeto IoT - Sistēmas detektors De Fumaça
Projeto IoT - Sistēmas detektors De Fumaça

Ievads

Sistēmas detektors Fumaça piedāvā risinājumu IoT com vai objektīvam atļaujas izsniegšanai vai signalizācijas uzraudzībai. 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.

Dezinvolvēti

  • Bruno Gonsalvess Pereira
  • João Paulo Tadeu Borges Paiva
  • Juliana Guimarães Soares Buére
  • Villans Aleksandrs Kondors Asenjo

1. darbība: Materiais Utilizados

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

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

  • Modulis WiFi ESP8266 NodeMcu ESP-12: ESP8266 mikroshēmas kombinācija vai mikroshēma (comunicação WiFi), uma interfeiss usb-serial un 3.3V regulētājs. A programmação pode ser feita usando IDE do Arduino, através da comunicação via cabo micro-usb.
  • Sensor de Gás MQ-135 para Gāzes 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 Resistori 200Ω
  • Protoboard un džemperi, kas paredzēti lietošanai un testēšanai

2. darbība. 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 ir pakalpojums, kas nodrošina platforma IoT armazenar un recuperar dados usando vai protokols HTTP un MQTT spēlē Internet vai vietējais. ThingSpeak ir visaptverošs, vizualizējošs un analītisks fluxos de dados un nuvem.

O ThingSpeak ir paredzēts, lai sniegtu bezmaksas servisa pakalpojumus. (3 milhões de mensagens por ano ou aproximadamente 8000 mensagens). 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 kanāls bez ThingSpeak

Após criar uma conta no ThingSpeak, é requiredá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 e 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. lauks: Concentração de gás
  • 2. lauks: Modinātājs
  • 3. lauks: Comando desligar

Ir pieejams "privāts skats", un tas var parādīties kā vizualizēts cada um dos campos criados. Neste projeto, foram criados:

  • 1 gráfico com os dados de koncentração de gás CO2 em função do tempo
  • 1 indikators de led para 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 and criado com um identifador único (Channel ID) que possibleilita sua identifação para envio e leitura de dados. Abas "API atslēgas" ir saīsinātas, un tās var pasūtīt (rakstīt API atslēgu) un leitura (lasīt API atslēgu). 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. Kā API pieprasa, lai izmantotu Android programmas un izmantotu programmas.

3. darbība: Aplicativo - MIT App Inventor

Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs
Aplicativo - MIT lietotņu izgudrotājs

O monitoramento monitoramento do system fori desenvolvido utilizando vai MIT App Inventor. O MIT App Inventor ir bezmaksas bezmaksas tīmekļa vietne un kodēšanas programma, kas paredzēta, lai integrētu lietojumprogrammas mantro pelo Masačūsetsas Tehnoloģiju institūtā (MIT). Šī ir vispiemērotākā programma, kas paredzēta programmas Android un iOS operētājsistēmai.

Para começar, após criar uma nav MIT App Inventor, var izmantot IotProject_SmokeDetector.

Dizaineris var izmantot montāžas un aplikācijas programmas, atlasīt un komponēt nepieciešamās detaļas (botus, etiķetes, attēlus utt.) Bez izvēlnes sānu esquerdo (palete). Para cada um dos komponentes selecionados, é possível alterar configurações de cores, tamanho, posição, entre outras no menu lateral directito (Properties).

Na tela Blocks é feita toda a lógica de programção do aplicativo. A programmaçã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), vai aplicativo faz um request to dados no canal ThingSpeak através da URL de leitura de dados que pode ser copy and the "API Keys". Quando os dados são retornados, o dado do sensorrespondente à koncentração de gás CO2 é mostrado na tela do aplicativo. Já o dado do alarme é testado:

  1. Skatiet trauksmes estiver acionado (alarmData = 1), vai aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) un habilitado.
  2. Skatiet trauksmes signālu (alarmData = 0), vai 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) klikšķiem, vai aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. O dado é enviado ao ThingSpeak através da URL for escrita de dados que pode ser copy and the "API Keys".

4. solis: montāža Do Protótipo

Montāža Do Protótipo
Montāža Do Protótipo

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

Sensors MQ135

  • Pino AO: konektado ao pino AD0 do modeulo ESP8266
  • Pino GND: savienots ar GND vai ESP8266
  • Pino Vcc: conectado ao pino VIN do metodulo ESP8266

LED apgaismojums

  • Conectar uma perna do rezistors de 200Ω no pino D5 do metodes ESP8266
  • Conectar vai anodo do LED (pozitīvs - maior perna) un ārējais rezistors
  • Conectar o catodo do LED (negativo - menor perna) no GND do modeulo ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω no pino D7 do mode ESP8266.
  • Conectar vai anodo do LED (pozitīvs - maior perna) un ārējais rezistors
  • Conectar o catodo do LED (negativo - menor perna) no GND do mode ESP8266

5. solis: Programação Do Microcontrolador

Izmantojot mikrokontroles metodi ESP8266, lai izmantotu programmu un IDE do Arduino (fasādes vai lejupielādes versijas).

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 iestatīšana:

  • Inicializa a porta serial
  • Inicializa OS izejas (pinos dos gaismas diodes)
  • Conecta atjauno WiFi
  • Inicializa vai ThingSpeak

Fluxo do cilpa:

  • Sensors MQ135
  • Verifica se a koncentração de gás CO2 ultrapassa vai limite definido (ideāls: CO2 <= 700 ppm)

    • Liga vai signalizācija (LED vermelho), desliga o LED de status (verde) e envia notificação pelo Telegram se o valor estiver acima do limite
    • Trauksmes signāls (LED vermelho) un liga o LED de status (verde) se o valor estiver abaixo do limite
  • Ling o dado de "comando desligar alarme" to ThingSpeak

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

  • Envia dados do sensor, do alarme e 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.

Izveidojiet savienojumu ar WiFi

Abra un IDE do Arduino, vá Fails-> Preferences eadicione em Papildu valdes pārvaldnieka URL vietrāži URL

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

Nepieciešams definir 2 variáveis para conexão na rede:

  • WIFI_SSID: nome da rede WiFi que você deseja conectar seu sistēma
  • WIFI_PASSWORD: senha da rede

Wi -Fi savienojuma pārbaude, kopēšana vai kodēšana abaixo, kā arī dažādi WIFI saraksti, kā arī augšupielādes augšupielādes režīms ESP8266.

#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 WiFiClient klients; // 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) {kavēšanās (500); Sērijas nospiedums ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); kavēšanās (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados do sensors MQ135

Paredzēts sensoru MQ135, pirmkārt, deve-se baixar a biblioteca MQ135.h un IDE do Arduino através menu menu Skecth-> Include Library-> Add. ZIP Library.

Depois, kopija vai kodēšanas abaixo un fasādes augšupielāde bez metodes 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); kavēšanās (50); } // Cilpas galvenā void loop () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("Concentracao de CO2 (ppm):"); Serial.println (sensorValue); }

Escrevendo un lendo dados do ThingSpeak

Sākotnēji, skatiet ThingSpeak Biblioteca no Arduino IDE. Izvēlieties Rīki-> Dēļi-> Dēļu pārvaldnieks digite ThingSpeak, klikšķis un instalācija un fechar.

A versão gratuita do 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.

Para comunicar com o ThingSpeak ir nepieciešams definēt kā variáveis abaixo:

  • myChannelNumber: número do canal criado no ThingSpeak
  • myWriteAPIKey: Chave de escrita do kanāls darīt ThingSpeak
  • myReadAPIKey: Chave de leitura do canal do ThingSpeak

Komunikācijas paraugu pārbaude ar ThingSpeak, kopiju vai kodēšanas abaixo, mainīt kā variācijas para conexão na rede e kā dažādu sarakstu saraksts, kā arī augšupielādes augšupielādes veids 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 ****************** ********/ neparakstīts garš myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "tava rakstīšanas api atslēga"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "tava lasītā api atslēga"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; neparakstīts ilgs strāvas laiks; WiFiClient klients; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root sertifikāts 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) {kavēšanās (500); Sērijas nospiedums ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); kavēšanās (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (klients); } // Cilpas galvenais 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 (vērtība); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = pašreizējais laiks; } kavēšanās (20000); }

Enviando notificação pelo Telegram

Galvenais, apskatiet Telegrammas bibliotēku no Arduino IDE. Izvēlieties Rīki-> Dēļi-> Dēļu pārvaldnieks digite UniversalTelegramBot, klikšķis un instalācija un fechar.

Abra o Telegram e siga as próximas etapas para criar um Bot. Labi, iegādājieties 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 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 telegramma, 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) un fasādes augšupielādes no metodes ESP8266.

#iekļaut #iekļaut #iekļaut /********************* 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 telegramma # definējiet CHAT_ID "CHANGEYOURCHATID" // ID tērzēšanas do telegrammas X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot robots (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String message) {bot.sendMessage (CHAT_ID, message, ""); Serial.println (ziņojums); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root sertifikāts 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) {kavēšanās (500); Sērijas nospiedums ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); kavēšanās (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegramma SendTelegramNotification ("Testando envio de notificação."); }

Ieteicams: