Sadržaj:
- Korak 1: Materiais Utilizados
- Korak 2: Konfigurirajte Do ThingSpeak
- Korak 3: Aplicativo - MIT App Inventor
- Korak 4: Montagem Do Protótipo
- 5. korak: Programirajte mikrokontrolador
Video: Projeto IoT - Detector Sistema De Fumaça: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:31
Uvod
O Sistema Detector de Fumaça sastoji se u rješavanju IoT com o objektivu dozvole o monitoringu alarma za uključivanje ostataka atravésa u um aplikacijama Androida. 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 vlasništvu da rezidencija zatraži nadzor nad sustavom através de um aplicativo e recebe notificações putem Telegrama 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
Korak 1: Materiais Utilizados
Os materiais utilizados para construção do projeto foram:
- Módulo WiFi ESP8266 NodeMcu ESP-12: Place de desenvolvimento que combina o chip ESP8266 (comunicação WiFi), um sučelje usb-serijski i s regulatorom od 3.3V. Program podešava ser feita koristeći IDE do Arduino, através da comunicação putem cabo micro-USB-a.
- Sensor de Gás MQ-135 para Gases Tóxicos: O Sensor de Gás MQ-135 é um módulo capaz de detectar vários tipos de gasses tóxicos como amônia, dióxido de carbono, benzeno, óxido nítrico, e também fumaço ou.
- Led vermelho
- Led verde
- 2 Otpori 200Ω
- Protoboard i skakači para conexão e teste do protótipo
Korak 2: Konfigurirajte Do ThingSpeak
O ThingSpeak é um servisu za plataforma IoT para armazenar i recuperar dados usando o protokolu HTTP e MQTT pela Internet ili por meio de uma rede local. ThingSpeak dozvoljava agregat, vizualizirajući i analizirajući protok podataka u nuvem.
O ThingSpeak está disponível como um serviço gratuito para pequenos projetos não comerciais (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 mensagens dia). Para projetos maiores ou applicações comerciais, quatro tipos diferentes de licença anual são oferecidos: Standard, Academic, Student i Home.
Konfiguracija kanala bez ThingSpeaka
Após criar uma conta no ThingSpeak, é needário criar um channel. Os canais armazenam os dados enviados de um determinado projeto. Cada canal inclui 8 campos que podem conter qualquer tipo de dados, mais 3 campos para dados de localização e 1 para dados de status. Depois de coletar dados em um channel, você pode usar os aplicativos ThingSpeak para analisá-los e visualizá-los.
Para este projeto, foi criado um channel com nome IoTProject-SmokeDetector e 3 campos para envio de dados:
- Polje 1: Concentração de gás
- Polje 2: Alarm
- Polje 3: Comando desligar
Na aba "Private View" é je moguće pronaći kao vizualizaciju de 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 indicador de led para indicação de alarme
- 1 gráfico com os dados de comando de desligar alarme em função do tempo
Leitura e escrita no ThingSpeak
O kanalu ThingSpeak é criado com um identificador único (Channel ID) que possible to sua identificação para envio e leitura de dados. Na "API ključevima" također nema disponibilizada kao chaves para escrita (Write API Key) i leitura (Read API Key) bez kanala. Osim toga, tambi su disponibilizirani kao API zahtjevi (HTTP zahtjevi za primanje), jer tambem podem serdadas para envio e requisição de dados.
O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Já as API zahtijeva korištenje programa za programiranje aplikacija na Androidu.
Korak 3: Aplicativo - MIT App Inventor
O primjeni parametara za nadzor sustava za desenvolvido korištenje programa MIT App Inventor. O MIT App Inventor -u je ambijentalna web stranica besplatna i de Código aberto para desenvolvimento integrado de aplicativos mantido pelo Massachusetts Institute of Technology (MIT). Omogućite pokretanje iniciativnih programa na aplikacijama za Android i iOS.
Za sve one koji žele pristupiti aplikaciji MIT App Inventor, criou-se um projektovati com o nome IotProject_SmokeDetector.
Na tela de Designer je moguće montirati kao primjenjive, odabrane komponente kao neophodne (botove, naljepnice, slike itd.) Bez bočnog izbornika (paleta). Para cada um dos komponente odabire, é possível alterar konfiguracije jezgri, tamanho, posição, entre outras no menu lateral direito (Svojstva).
Na tela Blocks é feita toda a lógica de programaçã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 segundo (definitivno Clock1), ili aplicirajte faz um request de dados no channel ThingSpeak através to URL de leitura de dados que pode ser copiada on aba "API Keys". Quando os dados são retornados, o dado do sensor korespondente à koncentração de gás CO2 é mostrado na tela do aplicativo. Já o dado do alarme é testado:
- Pogledajte o alarmu estiver acionado (alarmData = 1), o aplikaciji mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) é habilitado.
- Pogledajte o alarmu da ne počnete s aktivacijom (alarmData = 0), ili primijenite 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) for clicado, o 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 para escrita de dados que pode ser kopiju na "API ključeve".
Korak 4: Montagem Do Protótipo
O protótipo foi montado no protoboard conforme indicado na figura.
Senzor MQ135
- Pino AO: conectado ao pino AD0 do módulo ESP8266
- Pino GND: spojen na GND s modelom ESP8266
- Pino Vcc: spojite ao pino VIN na modul ESP8266
LED verde
- Spojite otpornik na otpornik od 200 Ω bez pina D5 na modulu ESP8266
- Priključak ili anodo do LED (pozitivna - veća perna) na vanjski otpornik otpornik
- Priključak ili katodo do LED (negativno - menor perna) nema GND do módulo ESP8266
LED vermelho
- Spojite uma perna doresistor od 200Ω bez pina D7 do módulo ESP8266.
- Konektor ili anodo do LED (pozitivna - veća perna) na vanjskom perna do otporniku
- Priključak ili katodo do LED (negativno - menor perna) nema GND do módulo ESP8266
5. korak: Programirajte mikrokontrolador
O mikrokontrolatoru za upravljanje ESP8266 za program koji koristi IDE do Arduino (faca za preuzimanje 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: postavljanje e petlje.
Fluxo do postavljanje:
- Inicializa porta serijski
- Inicializa os izlazi (pinos dos leds)
- Povežite se putem WiFi -a
- Inicializa ili ThingSpeak
Fluxo do petlja:
- Pronađite senzor MQ135
-
Provjerite je li koncentracija CO2 ultrapassa ili ograničeno definitivno (idealno: CO2 <= 700 ppm)
- Liga o alarmu (LED vermelho), desliga ili LED de status (verde) e envia notificação pelo Telegram se o hrabrosti estiver acima do limite
- Desliga o alarmu (LED vermelho) e liga ili 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)
- Uz senzore, do alarme ili komande za ThingSpeak a cada 20 sekundi
Abaixo será descrita a programção de cada um dos principais módulos com o respectivo código para teste.
Spojite i obnovite WiFi
U IDE-u za Arduino otvorite datoteku-> Preferences eadicione em Dodatne URL-ove upravitelja odbora URL
Postavite, a zatim odaberite Alati-> Ploče-> Upravitelj ploča digite ESP8266, kliknite i instalirajte ih.
É needário definir 2 variáveis para conexão na rede:
- WIFI_SSID: ime za redefiniranje WiFi veze s glasom radi povezivanja sustava
- WIFI_PASSWORD: senha da rede
Za povezivanje Wi -Fi -ja, kodiranja ili povezivanja, promijenite kao varijaciju za povezivanje WIFI -ja na popisu datoteka i faksa za prijenos bez ESP8266.
#include /************************ PROMJENI KAO DEFINICIJE ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Ime za rede wifi #define WIFI_PASSWORD "VAŠA WIFI LOZINKA" // Senha da rede wifi WiFiClient klijent; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.započni (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {odgoda (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); // Conecta ao wifi ConnectToWiFi (); }
Lendo dados radi senzor MQ135
Paralelno s senzorima MQ135, najbolje je to učiniti bibliotekom MQ135.h dodavanjem IDE-a u Arduino na izborniku Skecth-> Include Library-> Add. ZIP Library.
Depois, copie o código abaixo e faça upload no módulo ESP8266 através do cabo micro-usb. O código realization a leitura da koncentração de CO2 em ppm e imprime os valores lidos no serijski monitor.
#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); } // Loop principal 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, dodaj u Biblioteku do ThingSpeak bez Arduino IDE -a. Alati-> Ploče-> Upravitelji ploča digitalan ThingSpeak, kliknite i instalirajte ih.
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 correto de enviar os dados.
Para comunicar com o ThingSpeak é needário definir as variáveis abaixo:
- myChannelNumber: número do criado kanala bez ThingSpeak -a
- 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 /************************ PROMJENI KAO DEFINICIJE ABAIXO ***************** *********/ #define WIFI_SSID "YOUR WIFI SSID" // Ime za rede wifi #define WIFI_PASSWORD "VAŠA WIFI LOZINKA" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios de dados ao ThingSpeak /************************ PROMJENI KAO VARIÁVEIS ABAIXO ****************** ********/ unsigned long myChannelNumber = 0000000; // Numerički kanal za ThingSpeak const char * myWriteAPIKey = "vaš API API ključ"; // Chave de escrita do channel do ThingSpeak const char * myReadAPIKey = "vaš read api ključ"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; unsigned long currentTime; WiFiClient klijent; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Konfiguracija korijenskog certifikata za api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.započni (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {odgoda (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (klijent); } // Petlja glavne petlje void loop () {currentTime = millis (); // seta o tempo atual // Doznajte za ThingSpeak int vrijednost = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Serial.println (vrijednost); // Verificira se o trenutku u kojem se može vidjeti da je ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = currentTime; } kašnjenje (20000); }
Enviando notificação pelo Telegram
Primeiro, dodatna biblioteka do Telegrama bez Arduino IDE -a. Na raspolaganju su vam Alati-> Ploče-> Upravitelj ploča digitalan UniversalTelegramBot, kliknite i instalirajte ih.
Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, nabavite por 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 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 telegram, copie o código abaixo, altere as variáveis de defineçõ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 /********************* ALTERARNE DEFINICIJE ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Ime za rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do telegram # definirati CHAT_ID "CHANGEYOURCHATID" // ID dopisivati putem telegrama X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot bot (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String poruka) {bot.sendMessage (CHAT_ID, poruka, ""); Serial.println (poruka); } // Funkão que faz a conexão wifi void ConnectToWiFi (void) {// Konfiguracija korijenskog certifikata za api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.započni (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {odgoda (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }
Preporučeni:
Pequeno Projeto De Uma Casa Inteligente: 5 koraka
Pequeno Projeto De Uma Casa Inteligente: O projeto que faremos é de uma casa inteligente. Possui basicamente dois grupos de funcionalidades: · De monitorramento de iluminação e temperature dos cômodos. · Monitoring liste de alimentos e nível de água filtrada na geladeira.Não escrever
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: 5 koraka
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: Este guia mostra como criar um detector de fumaça que emite um bipe quando detecta gás ou fumaça infável. Acesse meu último artigo: Arduino: tudo o que você precisa sabre [Guia Completo] .O senzor za MQ-2O senzor za fumaça MQ-2 je osjetljiv na fu
Projeto Fila Fácil: 7 koraka
Projeto Fila Fácil: Em nosso dia a dia vamos diversas vezes em locais onde é neophod á ria uma gest ã o de senhas de clientes para organizar e agilizar atendimentos. Em alguns estabelecimentos podemos demorar alguns minutos ou at é mesmo horas esp
Vodič Učinite li Projeto Final Do Curso IoT Aplicada Smart Home Inatel / Novembro 2017: 4 koraka (sa slikama)
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hibrida, sem a needidade de acessar os recursos de plataformas nativas for Android or the IOS. Za korištenje računara tipo prijenosno računalo s windows 10. Essa plataforma chama-se Ionic, q
Pokretanje pametne kuće - Projeto Konačno: 6 koraka
Pokretanje pametne kuće - Projeto Konačno: Projeto apresentado é parte do projeto final do curso de IoT aplicado a Smart Home.O projeto mostrado a seguir é parte do projeto final a ser apresentado no curso de IoT aplicada a Smart Home, que consiste de sensores e atuadores conec