Sisukord:

Projeto IoT - Sema detektor De Fumaça: 5 sammu
Projeto IoT - Sema detektor De Fumaça: 5 sammu

Video: Projeto IoT - Sema detektor De Fumaça: 5 sammu

Video: Projeto IoT - Sema detektor De Fumaça: 5 sammu
Video: Произведения искусства (криминал) полнометражный фильм 2024, Juuli
Anonim
Projeto IoT - süsteemidetektor De Fumaça
Projeto IoT - süsteemidetektor De Fumaça

Sissejuhatus

Fumaça süsteemi süsteemidetektor sisaldab IoT lahendusi või lubade andmise või häirete jälgimise jälgimise operatsioone Androidis. O projeto ja 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.

Avaldatud tegevused

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

Samm 1: Materiaalsed utiliidid

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

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

  • WiFi ESP8266 NodeMcu ESP-12 meetod: Ühenduse või kiibi ESP8266 (ühenduse loomine WiFi-võrgus), uma liidese USB-jadaliidese ja 3,3 V regulaatori liides. Programm, mis võimaldab teil kasutada IDE do Arduino, através da comunicação cabo micro-usb kaudu.
  • Sensor de Gás MQ-135 para Gases Tóxicos: O Sensor de Gás MQ-135 e um moodulo 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 Resistore 200Ω
  • Protoboard ja džemprid, mis on ühendatud ja testitud

Samm 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 teenuse IoT platvormi teenus, mida saab kasutada ja protokoll HTTP ja MQTT mängida Internetis või kohalikul tasandil. ThingSpeak on täielik, visualiseeriv ja analüütiline fluxos de dados ja nuvem.

O ThingSpeak on teenusepakkuja tasuta teenindusprojektide jaoks (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 an an são oferecidos: Standard, Academic, Student and Home.

Configuração de um kanal no 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 localizeçã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. väli: Concentração de gás
  • 2. väli: Alarm
  • 3. väli: Comando desligar

Kui soovite vaadata privaatset vaadet, saate selle kujunduse visualiseerida. Neste projeto, foram criados:

  • 1 gráfico com os dados de kontsentração de gás CO2 em função do tempo
  • 1 indikaator de led para indicação de alarme
  • 1 põhikomöödia, mis on loodud alarmi em função do tempo jaoks

Leitura ja escrita no ThingSpeak

O kanal ThingSpeak ja criado com identifikaator único (Kanali ID) on võimalik, et see on identifitseeritud para envio e leitura de dados. Naaba "API võtmed" on disponibilizadas as chaves para escrita (Write API Key) ja leitura (Read API Key) de dados no canal. 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. Juba API nõuab päringuid Androidi rakenduste kasutamiseks.

3. samm: 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

Kasutage rakenduste monitoorimise süsteemi rakenduste kasutamiseks või MIT App Inventori jaoks. O MIT App Inventor on tasuta veebipõhine veebikood ja abikood abervoo integreeritud rakenduste integreerimiseks, mis on loodud Massachusettsi Tehnoloogiainstituudis (MIT). See on ideaalne programm, mis käivitab rakenduse Androidi ja iOS -i jaoks.

Kui see on saadaval, siis ei sisalda MIT App Inventor, mis on loodud IotProject_SmokeDetector'i jaoks.

Disaineril on võimalus kasutada rakendusi, valida osad ja komponendid (botid, sildid, pildid jne), puudub menüü külgmine esquerdo (palett). Para cada um dos komponentide valimine, tuumade ja muude konfiguratsioonide konfigureerimine, tamanho, posição, entre outras no menu lateral directito (Properties).

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

  1. Vaadake alarmi estiver acionado (alarmData = 1), või rakendage seda kõige sagedamini ja kasutage menüüd "Atenção! Sua casa está em perigo!" e o botão de desligar alarm (Button1) é habilitado.
  2. Vaadake äratuseta (alarmData = 0) või kasutage rakendust "Menüü" ja "Muretsemine! Sua casa não está em perigo". e o botão de desligar alarm (Button1) é desabilitado.

Quando o botão de desligar alarm (Button1) clickado jaoks, või aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. ThingSpeak vaatab URL -i escrita de dados que pode seria „API võtmed” alla.

Samm 4: Montagem Do Protótipo

Montaaž Do Protótipo
Montaaž Do Protótipo

Ootame, et teil pole protoboardit, mis kinnitaks kuju ja kuju.

Andur MQ135

  • Pino AO: conectado ao pino AD0 do modeulo ESP8266
  • Pino GND: ühendatud GND meetodiga ESP8266
  • Pino Vcc: conectado ao pino VIN do meetodulo ESP8266

LED -lamp

  • Conectar uma perna do resistor de 200Ω no pino D5 do mode ESP8266
  • Conectar või anodo do LED (positiivne - maior perna) ja välimine takistus
  • Conectar või catodo do LED (negatiivne - menor perna) no GND do mode ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω no pino D7 do mode ESP8266.
  • Conectar või anodo do LED (positiivne - maior perna) ja välimine takistus
  • Conectar või catodo do LED (negatiivne - menor perna) no GND do mode ESP8266

Samm 5: Programação Do Microcontrolador

Kasutage mikrokontrollerit ESP8266 kasutamiseks Arduino ja IDE programmides (nägu või allalaadimine).

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 seadistamine:

  • Portaali seriaalide kuvamine
  • Inicializa os väljundid (pinos doosid)
  • Conecta pakub WiFi -ühendust
  • Inicializa või ThingSpeak

Fluxo do silmus:

  • Andur MQ135
  • Verifica se a koncentração de gás CO2 ultrapassa või limite definido (ideaalne: CO2 <= 700 ppm)

    • Liga o alarm (LED vermelho), desliga o LED de status (verde) e envia notificação pelo Telegram se o valor estiver acima do limite
    • Desliga o alarm (LED vermelho) and liga o LED de status (verde) se o valor estiver abaixo do limite
  • ThingSpeaki abil saate luua "comando desligar alarme"

    Se o comando = 1, desliga o alarm (LED vermelho) ja 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.

Ühendage ja ühendage WiFi

Abra ja IDE do Arduino, vá Fail-> Eelistused ja täiendavad juhatusehalduri URL-id URL-i

Tööriistad-> Lauad-> Tahvlite haldur digite ESP8266, klikkides ja paigaldades.

Vajalik 2 variaveis para conexão na rede:

  • WIFI_SSID: nome da rede WiFi que você deseja conectar seu süsteem
  • WIFI_PASSWORD: senha da rede

WiFi -ühenduse testimine, abiaxo -koopia või muud moodulid, mis muudavad WIFI -võrgu loendeid, näpunäiteid ja fassaadi üleslaadimise režiimi 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 klient; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.binin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.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); viivitus (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo isad andurile MQ135

Anduri MQ135 iseenesest leidmine, esmakordne arendus ja biblioteek MQ135.h ning IDE-d Arduino atribuutide menüü Skecth-> Include Library-> Add. ZIP Library.

Depois, koopia või koodide abaixo ja fassaa upload no mode ESP8266 através do cabo micro-usb. Ocódigo realise a leitura da kontsentraçã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); viivitus (50); } // Tsükli peamine void loop () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("CO2 kontsentratsioon (ppm):"); Serial.println (sensorValue); }

Escrevendo ja lendo dados teevad ThingSpeaki

Peaminister, ThingSpeak Biblioteca no Arduino IDE. Ava tööriistad-> Lauad-> Juhatuste haldur digite ThingSpeak, kliki ja paigalda.

A tasuta 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.

ThungSpeak com comunicar com on vajalik, kuna see on variaveis abaixo:

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

Com tesa de comunicação com või ThingSpeak, koopia või código abaixo, altere as varieveis para conexão na rede e as varieveis 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 de ms entre envios dados ao ThingSpeak /*********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ allkirjastamata pikk myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "sinu kirjutamise api võti"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "sinu loetud api võti"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; allkirjastamata long currentTime; WiFiClient klient; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root sertifikaat para api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.binin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); viivitus (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (klient); } // Tsükli peamine void loop () {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:"); Serial.println (väärtus); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = praegune aeg; } viivitus (20000); }

Enviando notificação pelo Telegram

Peaminister, telegrammi biblioteka nr Arduino IDE. Ava tööriistad-> Lauad-> Laudade haldur digiteeritud UniversalTelegramBot, klikk ja paigaldus ja fechar.

Abra o Telegram e siga as próximas etapas para criar um Bot. Peaminister, hankige 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, 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 telegram, copie o código abaixo, altere as variáveis de definições para conexão WIFI and para comunicação com o Telegram (BOT_TOKEN e CHAT_ID) e faa upload no method ESP8266.

#kaasamine #kaasamine #kaasamine /********************* 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" // ID vestlus telegrammile X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot robot (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String message) {bot.sendMessage (CHAT_ID, message, ""); Serial.println (sõnum); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root sertifikaat para api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.binin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.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); viivitus (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegramm SendTelegramNotification ("Testando envio de notificação."); }

Soovitan: