Inhaltsverzeichnis:
- Schritt 1: Materiais Utilizados
- Schritt 2: Konfiguration von ThingSpeak
- Schritt 3: Aplicativo - MIT App Inventor
- Schritt 4: Montagem Do Protótipo
- Schritt 5: Programação Do Microcontrolador
Video: Projeto IoT - Sistema-Detektor De Fumaça - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Einführung
O Sistema Detector de Fumaça besteht aus einer Lösung von IoT-Com-Objekten oder einer Überwachung von Alarmmeldungen von incêndios através através de aplicativo Android. 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 sistema através de um aplicativo e recebe notificações via Telegram em caso de ativação do alarme de incêndio.
Desenvolvedores
- Bruno Gonçalves Pereira
- João Paulo Tadeu Borges Paiva
- Juliana Guimarães Soares Buére
- Willan Alexander Condor Asenjo
Schritt 1: Materiais Utilizados
Os materiais utilizados para construção do projeto foram:
- Módulo WiFi ESP8266 NodeMcu ESP-12: Kombinationsplatz für ESP8266-Chip (WiFi-Kommunikation), USB-Seriell-Schnittstelle und 3.3V-Spannungsregelung. A programação pode ser feita usando a IDE do Arduino, através da comunicação über Cabo Micro-USB.
- Gassensor MQ-135 para Gases Tóxicos: O Sensor de Gas MQ-135 é um modulare Capaz de Detectar varios tipos de gas tóxicos como atônia, dióxido de carbono, benzeno, óxido nítrico, e também fumacoolça.
- Led vermelho
- Led verde
- 2 Widerstände 200Ω
- Protoboard und Jumper für Conexão und Teste do Protótipo
Schritt 2: Konfiguration von ThingSpeak
O ThingSpeak ist ein Plattform-IoT-Dienst für Armazenar und Rekuperar-Dados oder ein HTTP- und MQTT-Protokoll für das Internet oder für die lokale Wiederverwendung. ThingSpeak erlaubt gemeinsames, visualisieren und analysieren von neuen Daten.
O ThingSpeak ist eine kostenlose Disponível como um serviço serviço for pequenos projetos não comerciais (Menos de 3 Milhões de mensagens por ano ou ca. 8000 mensagens pro dia). Para projetos maiores oder aplicações comerciais, quatro tipos diferentes de licença anual são oferecidos: Standard, Academic, Student und Home.
Configuração de um canal no ThingSpeak
Após criar uma conta no ThingSpeak, écessário crar um den Kanal. Os canais armazenam os dados enviados de um determinado projeto. Cada canal beinhaltet 8 Campos que Podem conter qualquer tipo de dados, mais 3 campos para dados de localização und 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 und 3 campos para envio de dados:
- Feld 1: Concentração de gás
- Feld 2: Alarme
- Feld 3: Comando desligar
Na aba "Private View" é possível crar as visualizações de cada um dos campos criados. Neste projeto, foram criados:
- 1 gráfico com os dados de concentração de gas CO2 em função do tempo
- 1 LED-Anzeige für Alarmanzeige
- 1 gráfico com os dados de comando de desligar alarme em função do tempo
Leitura e escrita no ThingSpeak
O canal do ThingSpeak ist eine Criado-Com-Um-Identifikationsnummer (Channel ID), die eine Identifikationsmöglichkeit für die Umgebung und die Leitura von Dados bietet. Na aba "API Keys" sind verfügbar als chaves para escrita (API-Schlüssel schreiben) und leitura (API-Schlüssel lesen) de dados no canal. Além disso, também são disponibilizadas as API Requests (HTTP Get Requests) que também podem ser usadas para envio e requisição de dados.
O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Ja als API-Anforderungen, die für Android-Anwendungen verwendet werden.
Schritt 3: Aplicativo - MIT App Inventor
O aplicativo para monitoramento do sistema foi deenvolvido utilizando oder MIT App Inventor. O MIT App Inventor é um ambiente web gratuito and de código aberto para Desenvolvimento integrado de aplicativos mantido pelo Massachusetts Institute of Technology (MIT). Erlaubt die Einleitung von Anwendungen für Android und iOS.
Para começar, após criar uma conta no MIT App Inventor, Criou-se um ein Projekt mit einem Namen von IotProject_SmokeDetector.
Na tela de Designer é possível montar als telas do aplicativo, selecionando os Componentes Bedarf (Botões, Labels, Images, etc) kein Menü seitliche esquerdo (Palette). Para cada um dos komponenten selecionados, é possível alterar configurações de cores, tamanho, posição, entre outras no menu lateral direito (Eigenschaften).
Na tela Blocks é feita toda a logica de programação do aplicativo. A programação é feita através de blocos, facilitando o desenvolvimento para iniciantes.
Erklärung des Codes
Duas variáveis locais são inicializadas: alarmData und sensorData.
A cada 1 segundo (definido pelo Clock1), oder aplicativo faz um Request von dados no canal ThingSpeak através von URL de leitura de dados que pode ser copiada na aba "API Keys". Quando os dados são retornados, o dado do sensor korrespondente à concentração de gas CO2 é Mostrado na tela do aplicativo. Já o dado do alarme é testado:
- Se o alarme estiver acionado (alarmData = 1), o aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e oder botão de desligar alarme (Button1) und habilitado.
- Se o alarme não estiver acionado (alarmData = 0), o aplicativo mostra ao usuário a mensagem "Não se preocupe! Sua casa não está em perigo." e oder botão de desligar alarme (Button1) é desabilitado.
Quando oder botão de desligar alarme (Button1) für clicado, oder aplicativo escreverá 1 no campo Field3: comando deligar criado no ThingSpeak, indicando que o comando de deligar alarme foi acionado. O dado enviado ao ThingSpeak através von URLs für schreibgeschützte Daten, die mit "API Keys" kopiert werden.
Schritt 4: Montagem Do Protótipo
O protótipo foi montado no protoboard konforme indicado na figura.
Sensor MQ135
- Pino AO: Verbindung mit Pino AD0 oder Modul ESP8266
- Pino GND: Verbindung mit GND oder Modul ESP8266
- Pino Vcc: Verbindung mit Pino VIN oder ESP8266
LED-Verde
- Conectar uma perna do Widerstand de 200Ω kein Pino D5 do módulo ESP8266
- Conectar o anodo do LED (positivo - maior perna) na outra perna do Widerstand
- Conectar o catodo do LED (negativo - menor perna) kein GND do módulo ESP8266
LED-Vermelho
- Conectar uma perna doresistor de 200Ω ohne Pino D7 oder ESP8266 Modul.
- Conectar o anodo do LED (positivo - maior perna) na outra perna do Widerstand
- Conectar oder catodo do LED (negativo - menor perna) kein GND do módulo ESP8266
Schritt 5: Programação Do Microcontrolador
O microcontrolador dopódulo ESP8266 für die Nutzung von Programmen und IDE für Arduino (Faça oder Download aqui).
O código fonte completo 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:
- Initialisierung einer Porta Serial
- Initialisieren von os-Ausgängen (pinos dos leds)
- Conecta à rede WiFi
- Initialisierung oder ThingSpeak
Fluxo do-Schleife:
- Lê os dados do Sensor MQ135
-
Verifica se a concentração de gas CO2 ultrapassa o limite definido (ideal: CO2 <= 700 ppm)
- Liga o alarme (LED vermelho), desliga o LED de status (verde) e envia notificação pelo Telegramm 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
-
Lê o dado de "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 resivo código para teste.
Connectando na rede 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 instalar e fechar.
É notwenig definir 2 variáveis para conexão na rede:
- WIFI_SSID: nome da rede WiFi que você deseja conectar seu sistema
- WIFI_PASSWORD: senha da rede
Para teste de conexão WiFi, copy or código abaixo, altere as variáveis para conexão WIFI listadas acima and faça upload no módulo ESP8266.
#include /************************ ÄNDERN ALS DEFINIÇÕES ABAIXO ******************** *******/ #define WIFI_SSID "IHRE WIFI-SSID" // Name des WLAN-Neustarts #define WIFI_PASSWORD "IHR WIFI-KENNWORT" // Erneut WLAN-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); Während (WiFi.status () != WL_CONNECTED) { Verzögerung (500); Serial.print("."); } Serial.println(""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido: "); Serial.println (WiFi.localIP()); aufrechtzuerhalten. // Setup da placa void setup () { Serial.begin (115200); Verzögerung (50); // Conecta ua WLAN ConnectToWiFi (); }
Lendo dados do sensor MQ135
Para ler os dados Sensor MQ135, Primeiramente deve-se baixar a biblioteca MQ135.h e adicioná-la na IDE do Arduino através do menu Skecth->Include Library->Add. ZIP Library.
Depois, Kopie oder Código Abaixo und Faça Upload kein Modul ESP8266 através mit Cabo Micro-USB. O código realiza a leitura da concentração de CO2 em ppm und imprime os valores Lidos kein serieller Monitor.
#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Setup da placa Void setup () { Serial.begin (115200); Verzögerung (50); } // Schleifenprinzip Void loop () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM(); Serial.print ("Concentracao de CO2 (ppm):"); Serial.println (sensorValue); }
Escrevendo e lendo dados do ThingSpeak
Primeiro, eine Biblioteca von ThingSpeak ohne Arduino IDE. Vá em Tools->Boards->Boards Manager digite ThingSpeak, clique em instalar e fechar.
Eine kostenlose Version von ThingSpeak, das Hochladen von 20 Segmenten und 20 Segundos, kein código deve-se testar se é oder momento correto de enviar os dados.
Para comunicar com o ThingSpeak ist notwendig, um als Variáveis abaixo zu definieren:
- 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, kopieren oder código abaixo, ändern als variáveis para conexão na rede e als variáveis listadas acima und faça upload no módulo ESP8266.
#include #include /************************ ÄNDERN ALS DEFINIES ABAIXO ***************** *********/ #define WIFI_SSID "IHRE WIFI-SSID" // Nome da rede wifi #define WIFI_PASSWORD "IHR WIFI PASSWORD" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervall em ms entre envios de dados ua ThingSpeak /************************ ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ unsigned long myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "Ihr Schreib-API-Schlüssel"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "Ihr gelesener API-Schlüssel"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; unsigned long currentTime; WiFiClient-Client; // 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); Während (WiFi.status () != WL_CONNECTED) { Verzögerung (500); Serial.print("."); } Serial.println(""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP()); aufrechtzuerhalten. // Setup da placa void setup () { Serial.begin (115200); Verzögerung (50); // Conecta ua WLAN ConnectToWiFi (); // Initialisierung ThingSpeak lastTime = 0; ThingSpeak.begin(Client); } // Schleifenprinzip 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 (Wert); // Verifica se é o momento de enviar dados ao ThingSpeak if((currentTime - lastTime > THINGSPEAK_WRITE_INTERVAL)) { ThingSpeak.setField(1, 100); ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); letzteZeit = aktuelleZeit; } Verzögerung (20000); }
Enviando notificação pelo Telegramm
Primeiro, adicione a Biblioteca do Telegram no Arduino IDE. Vá em Tools->Boards->Boards Manager digite UniversalTelegramBot, clique em instalar e fechar.
Abra o Telegram und siga as póximas etapas para criar um Bot. Primeiro, besorgen Sie von Botfather und Clique nele. A janela a seguir deve abrir e você será solicitado a clicar no botão Iniciar. Digite /newbot und siga als 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. Beginnen Sie mit der Konversation mit Bot und Digit/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 to envio de Benachrichtigung Pelo Telegramm, kopieren oder código abaixo, ändern als variáveis de definições para conexão WIFI and para comunicação com o Telegramm (BOT_TOKEN und CHAT_ID) und faça Upload kein Modul ESP8266.
#include #include #include /********************* ALTERAR DEFINIÇÕES ABAIXO ***************** * CHAT_ID "CHANGEYOURCHATID" definieren // ID chatten Telegramm X509List cert(TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot-Bot(BOT_TOKEN, clientSecure); // Envia Benachrichtigung ao Telegram void SendTelegramNotification(String message) { bot.sendMessage(CHAT_ID, message, ""); Serial.println (Nachricht); } // 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); Während (WiFi.status () != WL_CONNECTED) { Verzögerung (500); Serial.print("."); } Serial.println(""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido: "); Serial.println (WiFi.localIP()); aufrechtzuerhalten. // Setup da placa void setup () { Serial.begin (115200); Verzögerung (50); // Conecta ua WLAN ConnectToWiFi (); // Testa-Benachrichtigungstelegramm SendTelegramNotification("Testando envio de notificação."); }
Empfohlen:
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg
So fügen Sie IOT-Funktionen zu Ihren Projekten hinzu – wikiHow
So fügen Sie Ihren Projekten IOT-Funktionen hinzu: Nichts ist besser, als ein DIY-Projekt zu erstellen, das ein kommerzielles Produkt ersetzt, das Sie für nützlich halten. Nun, eigentlich gibt es etwas Besseres. Hinzufügen von IOT-Fähigkeiten zu Ihrem Projekt. Wenn es um Automatisierung geht, flippen Anfänger in der Regel aus
LTE CAT-M1 GSM IoT Sensors Network T - 15 Minuten.: 5 Schritte
LTE CAT-M1 GSM IoT Sensors Network… T - 15 Minuten.: Am 08. April 2018 gab R&D Software Solutions srl [itbrainpower.net] der Öffentlichkeit die Ankündigung des xyz-mIoT von itbrainpower.net Shield bekannt - das erste und kompakteste IoT-Board, das die Vielseitigkeit der ARM0-Mikrosteuerung kombiniert
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud – wikiHow
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud: In vielen Anwendungen müssen Benutzer ihre Daten zusammen mit dem lokalen Zeitstempel der in der Nutzlast zu sendenden Werte an die AskSensors-IoT-Cloud senden. Das Zeitstempelformat ist die Zeit der UNIX-Epoche: die Anzahl der Millisekunden, die seit Januar
Steuern von Haushaltsgeräten mit Node-MCU und Google Assistant - IOT - Blynk - IFTTT: 8 Schritte
Steuern von Haushaltsgeräten mit Node-MCU und Google Assistant | IOT | Blynk | IFTTT: Ein einfaches Projekt zur Steuerung von Geräten mit Google Assistant: Warnung: Der Umgang mit Netzstrom kann gefährlich sein. Mit äußerster Sorgfalt behandeln. Stellen Sie einen professionellen Elektriker ein, während Sie mit offenen Stromkreisen arbeiten. Ich übernehme keine Verantwortung für die da