Daftar Isi:
- Langkah 1: Materiais Utilados
- Langkah 2: Mengonfigurasição Lakukan ThingsSpeak
- Langkah 3: Aplicativo - MIT App Inventor
- Langkah 4: Montagem Do Protótipo
- Langkah 5: Program, Lakukan Mikrokontroler
Video: Projeto IoT - Detektor Sistema De Fumaça: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Perkenalan
O Sistema Detector de Fumaça terdiri dari solusi IoT dan objetivo de permitir o monitoramento de alarmes de incêndio de residencias através de um 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 sistem através de um aplicativo dan terima pemberitahuan melalui 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
Langkah 1: Materiais Utilados
Semua materi dapat digunakan untuk membangun foram projeto:
- Módulo WiFi ESP8266 NodeMcu ESP-12: Tempatkan kombinasi chip ESP8266 (WiFi komunikasi), antarmuka uma serial usb dan pengatur tegangan 3.3V. Sebuah programação pode ser feita usando a IDE do Arduino, através da comunicação melalui cabo micro-usb.
- Sensor dari Gás MQ-135 untuk Gas Toxicos: O Sensor de Gás MQ-135 é um módulo capaz de detectar vários tipos de gas tóxicos como amônia, dióxido de carbono, benzeno, óxido nítrico, dan também fumaça ou.
- dipimpin vermelho
- dipimpin verde
- 2 Resistor 200Ω
- Protoboard dan jumper para conexão e teste do protótipo
Langkah 2: Mengonfigurasição Lakukan ThingsSpeak
O ThingSpeak é um serviço de plataforma IoT para armazenar dan recuperar dados usando o protokol HTTP dan MQTT pela Internet ou por meio de uma rede lokal. ThingSpeak izinkan agregar, visualizar e Analisis fluxos de dados na 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 por dia). Para projetos maiores ou aplicações comerciais, quatro tipos diferentes de licença anual são oferecidos: Standar, Akademik, Pelajar dan Rumah.
Konfigurasikan kanal de um no ThingSpeak
Após criar uma conta no ThingSpeak, é necessário criar um canal. Os canais armazenam os dados enviados de um determinado projeto. Kanal Cada termasuk 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 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:
- Bidang 1: Concentração de gás
- Bidang 2: Alarm
- Bidang 3: Komando desligar
Na aba "Pemandangan Pribadi" é possível criar as visualizações de cada um dos campos criados. Neste projeto, foram criados:
- 1 gráfico com os dados de concentração de gás CO2 em função do tempo
- 1 indikator yang dipimpin untuk menunjukkan tanda bahaya
- 1 gráfico com os dados de comando de desligar alarme em função do tempo
Leitura e escrita no ThingSpeak
Canal do ThingSpeak é criado com um identificador nico (Channel ID) que possibilita sua identificação para envio e leitura de dados. Tidak ada "Kunci API" untuk disponibilizadas sebagai chaves para escrita (Tulis Kunci API) e leitura (Baca Kunci API) tidak ada kanal. 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 identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Já sebagai permintaan API serão utilizadas na programação melakukan aplikasi Android.
Langkah 3: Aplicativo - MIT App Inventor
Aplikasi untuk memantau sistem untuk penggunaan desenvolvido o MIT App Inventor. O MIT App Inventor dan dapatkan gratis web gratis untuk semua desenvolvimento integrado de aplicativos mantido pelo Massachusetts Institute of Technology (MIT). Tidak ada izin untuk memulai program aplikasi untuk Android dan iOS.
Untuk datang, untuk mencari tahu tentang MIT App Inventor, mencari tahu proyek com o nome IotProject_SmokeDetector.
Na tela de Designer é possível montar sebagai telas do aplicativo, selecionando os componentes necessários (botões, label, imagens, dll) tidak ada menu lateral esquerdo (Palette). Para cada um dos componentes selecionados, é possível alterar configurações de cores, tamanho, posição, entre outras no menu lateral direito (Properti).
Na tela Blocks é feita toda a lógica de programação do aplicativo. Sebuah programação é feita através de blocos, facilitando o desenvolvimento para iniciantes.
Penjelasan lakukan código
Duas variáveis locais são inicializadas: alarmData dan sensorData.
A cada 1 segundo (definido pelo Clock1), atau aplikasi yang diminta dari dados no canal ThingSpeak através da URL de leitura de dados que pode ser copiada na aba "API Keys". Quando os dados são retornados, o dado lakukan sensor koresponden konsentrasi gas CO2 dan paling banyak aplikasi. 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 o botão de desligar alarme (Tombol1) é habilitado.
- Se o alarme não estiver acionado (alarmData = 0), o aplicativo mostra ao usuário a mensagem "No se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Tombol1) é desabilitado.
Quando o botão de desligar alarme (Tombol1) untuk 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 copiada na aba "Kunci API".
Langkah 4: Montagem Do Protótipo
O protótipo foi montado tidak ada protoboard sesuai indikasi dan figura.
Sensor MQ135
- Pino AO: conectado ao pino AD0 lakukan módulo ESP8266
- Pino GND: conectado ao GND lakukan módulo ESP8266
- Pino Vcc: conectado ao pino VIN melakukan módulo ESP8266
LED verde
- Conectar uma perna do resistor de 200Ω no pino D5 do módulo ESP8266
- Conectar atau anodo do LED (positivo - maior perna) dan outra perna do resistor
- Conectar o catodo do LED (negativo - menor perna) tidak ada GND do módulo ESP8266
LED vermelho
- Conectar uma perna doresistor de 200Ω no pino D7 melakukan módulo ESP8266.
- Conectar atau anodo do LED (positivo - maior perna) dan outra perna do resistor
- Conectar o catodo do LED (negativo - menor perna) tidak ada GND do módulo ESP8266
Langkah 5: Program, Lakukan Mikrokontroler
O mikrokontroler lakukan módulo ESP8266 untuk program dan gunakan IDE untuk Arduino (faça o download aqui).
O código fonte completo utilizado no projeto pode ser baixado no tutorial akhir akhir (Iot_project.ino). O código tem duas funções principais: setup e loop.
Fluxo lakukan pengaturan:
- Inisialisasi serial porta
- Inisialisasi output os (pinos dos leds)
- Conecta rede WiFi
- Inisialisasi dari ThingSpeak
Perulangan fluks:
- Lebih baik melakukan sensor MQ135
-
Verifikasi konsentrasi CO2 ultrapassa o limite definido (ideal: CO2 <= 700 ppm)
- Liga o alarme (LED vermelho), desliga o LED de status (verde) dan envia notificação pelo Telegram 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" lakukan ThingSpeak
Se o comando=1, desliga o alarme (LED vermelho) dan liga o LED de status (verde)
- Envia dados do sensor, do alarme e de comando para o ThingSpeak a cada 20 detik
Abaixo será descrita a programação de cada um dos principais módulos com o respectivo código para teste.
Koneksi dengan WiFi
Abra a IDE lakukan Arduino, vá em File-> Preferences eadicione em Tambahan Board Manager URL URL
Seguida, vá em Tools->Boards->Boards Manager digite ESP8266, klik instal dan fechar.
perlu ditentukan 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
Untuk menguji koneksi WiFi, menyalin dan mengubahnya sebagai variáveis untuk koneksi WIFI listadas acima dan faça upload no módulo ESP8266.
#include /************************ ALTERE AS DEFINIES ABAIXO ******************* *******/ #menentukan WIFI_SSID "SSID WIFI ANDA" // Menyebutkan ulang wifi #menentukan WIFI_PASSWORD "PASSWORD WIFI ANDA" // Menentukan ulang wifi klien WiFiClient; // 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("."); } Serial.println(""); Serial.println("WiFi terhubung dengan sukses!"); Serial.println("IP obtido: "); Serial.println(WiFi.localIP()); } // Setup da placa void setup(){ Serial.begin(115200); penundaan(50); // Koneksi dan wifi ConnectToWiFi(); }
Lendo dados melakukan sensor MQ135
Para ler os dados melakukan sensor MQ135, pengembangan utama biblioteca MQ135.h e adicioná-la IDE lakukan Arduino através lakukan menu Skect->Include Library->Add. ZIP Library.
Depois, copy o código abaixo dan faça upload no módulo ESP8266 através lakukan cabo micro-usb. O código realiza a leitura da konsentrasi CO2 em ppm dan imprime os valores lidos tidak ada monitor serial.
#sertakan "MQ135.h" #define SMOKE_SENSOR A0 // IO lakukan sensor de fumaça float sensorValue; // Setup da placa void setup(){ Serial.begin(115200); penundaan (50); } // Loop principal void loop(){ // Faz leitura melakukan sensor MQ135 gasSensor = MQ135(SMOKE_SENSOR); sensorValue = gasSensor.getPPM(); Serial.print("Konsentrasi CO2 (ppm): "); Serial.println(Nilai sensor); }
Escrevendo dan lendingo dados lakukan Hal Bicara
Primeiro, adicione a Biblioteca melakukan ThingSpeak no Arduino IDE. Vá em Tools->Boards->Boards Manager digite ThingSpeak, klik instal dan fechar.
Jawaban gratis untuk 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 é necessário definir as variáveis abaixo:
- myChannelNumber: nomor canal criado no ThingSpeak
- myWriteAPIKey: chave de escrita do canal do ThingSpeak
- myReadAPIKey: chave de leiura do canal do ThingSpeak
Para teste de comunicao o ThingSpeak, copy 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 /************************ ALTERE AS DEFINIES ABAIXO ***************** *********/ #define WIFI_SSID "SSID WIFI ANDA" // Nome da rede wifi #define WIFI_PASSWORD "PASSWORD WIFI ANDA" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios de dados ao ThingSpeak /************************ ALTERE AS VARIVEIS ABAIXO ****************** ********/ unsigned long myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "kunci api tulis Anda"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "kunci api baca Anda"; // Chave de leiura do canal do ThingSpeak unsigned long lastTime; waktu lama saat ini tidak ditandatangani; Klien WiFiClient; // Função que faz a conexão wifi void ConnectToWiFi(void){ // Konfigurasi root certificate untuk 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("."); } Serial.println(""); Serial.println("WiFi terhubung dengan sukses!"); Serial.println(WiFi.localIP()); } // Setup da placa void setup(){ Serial.begin(115200); penundaan(50); // Koneksi dan wifi ConnectToWiFi(); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin(klien); } // Loop prinsip void loop(){ currentTime = milis(); // seta o tempo aktual // Lakukan hal-hal yang penting nilai = ThingSpeak.readIntField(myChannelNumber, 1, myReadAPIKey); Serial.println("Dado no campo 1 melakukan ThingSpeak:"); Serial.println(nilai); // Verifikasikan momen untuk mengetahui hal-hal yang dibicarakan if((Waktu saat ini - Waktu Terakhir > THINGSPEAK_WRITE_INTERVAL)) { ThingSpeak.setField(1, 100); ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); waktu terakhir = waktu saat ini; } penundaan (20000); }
Enviando notificação pelo Telegram
Primeiro, adicione a Biblioteca melakukan Telegram no Arduino IDE. Vá em Tools->Boards->Boards Manager digit UniversalTelegramBot, klik instal dan fechar.
Abra o Telegram e siga sebagai próximas etapas para criar um Bot. Primeiro, dapatkan 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 sebagai instruções untuk criar seu bot. Dê a ele um nome e nome de usuário. Se o seu bot untuk 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 pemberitahuan possa enviar.
Em seguida, em sua conta do Telegram, cela 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.
Untuk mengetahui pemberitahuan pelo telegram, salinan dari kode abaixo, ubah sebagai variáveis de definições para conexão WIFI e untuk komunikasi dengan Telegram (BOT_TOKEN e CHAT_ID) dan faça upload no módulo ESP8266.
#include #include #include /********************* ALTERAR DEFINIES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "ANDA WIFI PASSWORD" // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do telegram # define CHAT_ID "CHANGEYOURCHATID" // ID melakukan chat do telegram X509List cert(TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; Bot UniversalTelegramBot(BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification(String message) { bot.sendMessage(CHAT_ID, message, ""); Serial.println(pesan); } // Bersenang-senang dengan koneksi wifi void ConnectToWiFi(void){ // Mengonfigurasi sertifikat root untuk 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("."); } Serial.println(""); Serial.println("WiFi terhubung dengan sukses!"); Serial.println("IP obtido: "); Serial.println(WiFi.localIP()); } // Setup da placa void setup(){ Serial.begin(115200); penundaan(50); // Koneksi dan wifi ConnectToWiFi(); // Testa notificação pelo telegram SendTelegramNotification("Testando envio de notificação."); }
Direkomendasikan:
Pequeno Projeto De Uma Casa Inteligente: 5 Langkah
Pequeno Projeto De Uma Casa Inteligente: O projeto que faremos é de uma casa inteligente. Possui basicamente dois grupos de funcionalidades:· De monitoramento de iluminação dan temperatur dos cômodos.· De monitoramente de lista de alimentos dan água filtrada na geladeira.Não escrever
Projeto CoCoa: Um Colete De Comunicação Alternatif: 8 Langkah
Projeto CoCoa: Um Colete De Comunicação Alternativa: Proyek CoCoA adalah rompi yang dapat dikenakan yang terhubung ke internet yang memungkinkan penggabungan simbol sentuhan komunikasi alternatif untuk membantu orang-orang dengan disabilitas bicara atau non-verbal.O Colete de Comunicação Alternativa (CoCoA) consi
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: 5 Langkah
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 inflamável. Akses lebih lanjut: Arduino: tudo o que você precisa saber [Guia Completo].O sensor de gás MQ-2O sensor de fumaça MQ-2 é sensível fu
Projeto Lumos: 8 Langkah
Projeto Lumos: O projeto Lumos terdiri dari konstruo de uma luminária mengontrol sebagian dari koneksi ponsel cerdas mesma rede móvel ou WiFi. Untuk mengontrol luminária foi desenvolvido um aplikasi Android, izinkan apagar dan acender a luz utilizando além
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: 4 Langkah (dengan Gambar)
Tutorial Melakukan Projeto Final Lakukan Curso IoT Aplicada a Smart Home Inatel / Novembro 2017: No desenvolvimento desse projeto foi utilizada uma plataforma hybrid, sem a necessidade de acessar os recursos de plataformas nativas do Android ou do IOS. Menggunakan komputer tipo notebook com windows 10. Essa plataforma chama-se Ionic, q