Mục lục:

Projeto IoT - Máy dò Sistema De Fumaça: 5 bước
Projeto IoT - Máy dò Sistema De Fumaça: 5 bước

Video: Projeto IoT - Máy dò Sistema De Fumaça: 5 bước

Video: Projeto IoT - Máy dò Sistema De Fumaça: 5 bước
Video: IoT Smart Fume Extractor #adafruit #circuitpython #3dprinting 2024, Tháng mười một
Anonim
Projeto IoT - Máy dò Sistema De Fumaça
Projeto IoT - Máy dò Sistema De Fumaça

Introdução

O Sistema Detector de Fumaça gồm có em uma solução IoT com o objetivo de permitir o monitoramento de alertmes de incêndio de Residencecias através de um aplicativo Android. O projeto é baseado em um microcontrolador que se comunica com a nuvem pela red WiFi, enviando os sinais detados por um sensor de fumaça. O proprietário da Residenceência consegue monitorar o sistema através de um aplicativo e receiverbetifyações qua Telegram em caso de ativação do alertme de incêndio.

Desenvolvedores

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

Bước 1: Materiais Utilizados

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

Os materiais Pracizados para construção do projeto foram:

  • Módulo WiFi ESP8266 NodeMcu ESP-12: Placa de desenvolvimento que combina o chip ESP8266 (comunicação WiFi), giao diện uma usb-serial e um điều chỉnh de tensão 3.3V. Một chương trình pode ser feita usando một IDE do Arduino, através da comunicação qua cabo micro-usb.
  • Sensor de Gás MQ-135 para Gases Tóxicos: O Sensor de Gás MQ-135 é um módulo capaz de detar vários tipos de gas 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 Điện trở 200Ω
  • Protoboard e jumpers para conexão e teste do protótipo

Bước 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 é um serviço de plataforma IoT para armazenar e recuperar dados usando o protocolo HTTP e MQTT pela Internet ou por meio de uma red local. ThingSpeak permite agregar, visualizar e analisar 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: Tiêu chuẩn, Học thuật, Sinh viên và Nhà riêng.

Configuração de um channel no ThingSpeak

Após criar uma conta no ThingSpeak, kênh đào é needário criar um. Os canais armazenam os dados enviados de um xác định projeto. Cada channel 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:

  • Trường 1: Concentração de gás
  • Trường 2: Báo động
  • Trường 3: Comando desligar

Na aba "Góc nhìn riêng tư" é 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 indicador de led para indicação de alertme
  • 1 gráfico com os dados de comando de desligar alertme em função do tempo

Leitura e escrita no ThingSpeak

O channel do ThingSpeak é criado com um Idificador único (Channel ID) que Obibilita sua Idificação para envio e leitura de dados. Na aba "API Key" são disponibilizadas as chaves para escrita (Viết khóa API) e leitura (Đọc khóa API) de dados no channel. Além disso, também são disponibilizadas as API Request (HTTP get request) que também podem ser usadas para envio e recisição de dados.

Hỡi những con người làm kênh đào e as chaves serão usadas posteriormente no código do vi điều khiển. Já as API yêu cầu serão useizadas na Programação do aplicativo Android.

Bước 3: Aplicativo - Nhà phát minh ứng dụng MIT

Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT
Aplicativo - Nhà phát minh ứng dụng MIT

O aplicativo para monitoramento do sistema foi desenvolvido Operatingizando o Nhà phát minh ứng dụng MIT. O MIT App Inventor é um ambiente web gratuito e de código aberto para desenvolvimento integrationdo de aplicativos mantido pelo Viện Công nghệ Massachusetts (MIT). Ele permite que iniciantes na Programação criem aplicativos para Android e iOS.

Para começar, após criar uma conta no MIT App Inventor, criou-se um projeto com o nome IotProject_SmokeDetector.

Nói nôm na là tela de Designer é possível montar là telas do aplicativo, các thành phần selecionando os cần thiết (botões, nhãn, hình ảnh, v.v.) không có menu bên cạnh (Palette). Para cada um dos các thành phần selecionados, é Possível alterar configurações de core, tamanho, posição, entre outras no menu lateral direito (Thuộc tính).

Na tela Blocks é feita toda a lógica de programmação do aplicativo. A programmação é feita através de blocos, Treatando o desenvolvimento para iniciantes.

Explicação do código

Duas variáveis locais são inicializadas: báo độngData e sensorData.

A cada 1 segundo (Defdo pelo Clock1), o aplicativo faz um request de dados no channel 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 do phóng viên cảm biến à Concentração de gás CO2 é mostrado na tela do aplicativo. Já o dado do alertme é testado:

  1. Se o alertme estiver acionado (alertData = 1), o aplicativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alertme (Nút1) é habilitado.
  2. Se o alertme não estiver acionado (alertData = 0), o aplicativo mostra ao usuário a mensagem "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alertme (Nút1) é desabilitado.

Quando o botão de desligar alertme (Button1) cho sáo ngữ, o aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alertme foi acionado. O dado é enviado ao ThingSpeak através da URL para escrita de dados que pode ser copiada na aba "API Keys".

Bước 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

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

Cảm biến MQ135

  • Pino AO: nónctado ao pino AD0 do módulo ESP8266
  • Pino GND: nónctado ao GND do módulo ESP8266
  • Pino Vcc: conectado ao pino VIN do módulo ESP8266

LED verde

  • Conectar uma perna do điện trở de 200Ω không pino D5 do módulo ESP8266
  • Conectar o anodo do LED (posvo - maior perna) na outra perna do điện trở
  • Conectar o catodo do LED (negativo - menor perna) no GND do módulo ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω không có pino D7 do módulo ESP8266.
  • Conectar o anodo do LED (posvo - maior perna) na outra perna do điện trở
  • Conectar o catodo do LED (negativo - menor perna) no GND do módulo ESP8266

Bước 5: Lập trình Vi điều khiển

O microcontrolador do módulo ESP8266 foi programado useizando a IDE do Arduino (mặt tiền o tải xuống aqui).

O hasdigo fonte completo useizado no projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções Principais: thiết lập vòng lặp e.

Fluxo thực hiện thiết lập:

  • Inicializa một nối tiếp porta
  • Đầu ra hệ điều hành Inicializa (dẫn pinos dos)
  • Conecta à red WiFi
  • Inicializa o ThingSpeak

Vòng lặp Fluxo do:

  • Le os dados do sensor MQ135
  • Verifica se a Concentração de gás CO2 ultrapassa o limite xác định (lý tưởng: CO2 <= 700 ppm)

    • Liga o báo thức (LED vermelho), giải thưởng o LED de status (verde) e envia notificationação pelo Telegram se o valor estiver acima do limite
    • Giải trí o báo thức (LED vermelho) e dây chằng o LED de trạng thái (verde) se o valor estiver abaixo do limite
  • Lê o dado de "comando desligar alertme" do ThingSpeak

    Se o comando = 1, desliga o alertme (LED vermelho) e liga o LED de status (verde)

  • Envia dados do sensor, doarmme e de comando para o ThingSpeak a cada 20 segundos

Abaixo será descrita a programmação de cada um dos Principais módulos com o respectivo código para teste.

Conectando na red WiFi

Abra a IDE do Arduino, vá em File-> Preferences eadicione em Trình quản lý bảng bổ sung URL một URL

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

É needário Defr 2 variáveis para conexão na red:

  • WIFI_SSID: nome da red WiFi que você deseja conectar seu sistema
  • WIFI_PASSWORD: senha da red

Para teste de conexão WiFi, copie o código abaixo, altere as variáveis para conexão WIFI listadas acima e fronta upload no módulo ESP8266.

#include / ************************ CŨNG NHƯ DEFINIÇÕES ABAIXO ******************* ******* / #define WIFI_SSID "YOUR WIFI SSID" // Nome da red wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da red wifi WiFiClient client; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Tenta conectar ao wifi Serial.println ("Conectando à red WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Thiết lập chương trình void setup () {Serial.begin (115200); chậm trễ (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados do sensor MQ135

Para ler os dados do sensor MQ135, primeiramente deve-se baixar a biblioteca MQ135.h e adicioná-la na IDE do Arduino através do menu Skecth-> Bao gồm Thư viện-> Thêm Thư viện. ZIP.

Depois, copie o codigo abaixo e fronta upload no módulo ESP8266 através do cabo micro-usb. O hasdigo realiza a leitura da Concentração de CO2 em ppm e printme os valores lidos no serial monitor.

#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Thiết lập trình duyệt void setup () {Serial.begin (115200); chậm trễ (50); } // Vòng lặp chính 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, adicione a Biblioteca do ThingSpeak no Arduino IDE. Vá em Tools-> Boards-> Boards Manager digite ThingSpeak, clique em instalar e 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 Correto de enviar os dados.

Para comunicar com o Thing

  • myChannelNumber: número do channel criado no ThingSpeak
  • myWriteAPIKey: chave de escrita do channel do ThingSpeak
  • myReadAPIKey: chave de leitura do channel do ThingSpeak

Para teste de comunicação com o ThingSpeak, copie o código abaixo, altere as variáveis para conexão na red e as variáveis listadas acima e surfacea upload no módulo ESP8266.

#include #include / ************************ CŨNG NHƯ DEFINIÇÕES ABAIXO ***************** ********* / #define WIFI_SSID "YOUR WIFI SSID" // Nome da red wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da red wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios de dados ao ThingSpeak / ************************ CŨNG NHƯ VARIÁVEIS ABAIXO ****************** ******** / unsigned long myChannelNumber = 0000000; // Número do channel do ThingSpeak const char * myWriteAPIKey = "your write api key"; // Chave de escrita do channel do ThingSpeak const char * myReadAPIKey = "your read api key"; // Chave de leitura do channel do ThingSpeak unsigned long lastTime; thời gian dài hiện tại không được ký; Máy khách WiFiClient; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Chứng chỉ gốc Configura para api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à red WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Thiết lập chương trình void setup () {Serial.begin (115200); chậm trễ (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (máy khách); } // Vòng lặp chính void loop () {currentTime = millis (); // seta o tempo atual // Le dados do ThingSpeak int value = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Serial.println (giá trị); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = currentTime; } delay (20000); }

Enviandotifyação pelo Telegram

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 e siga as próximas etapas para criar um Bot. Primeiro, mua sắm bởi botfather e clique nele. A janela a seguir deve abrir e você será solicitado một sáo ngữ no botão Iniciar. Digite / newbot e siga như bot công cụ. Dê a ele um nome e nome de usuário. Se o seu bot cho criado com sucesso, você Recberá uma mensagem com um link para acessar o bot e o token do bot. Salve o token, porque você Preisará xóa para que o ESP8266 possa enviar notificationações.

Em seguida, em sua conta do Telegram, pesquise IDBot. Inicie uma seeka com esse bot e digite / getid. Você Recberá uma resposta com seu ID de usuário. Salve o ID, porque você Preisará xóa para enviar de thông báo.

Para teste do envio detifyação pelo telegram, copie o codigo abaixo, altere as variáveis de Defções para conexão WIFI e para comunicação com o Telegram (BOT_TOKEN e CHAT_ID) e surface upload no módulo ESP8266.

#include #include #include / ********************* ALTERAR DEFINIÇÕES ABAIXO ******************* ******* / #define WIFI_SSID "YOUR WIFI SSID" // Nome da red wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da red wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do telegram # định nghĩa CHAT_ID "CHANGEYOURCHATID" // ID trò chuyện do telegram X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; Bot UniversalTelegramBot (BOT_TOKEN, clientSecure); // Thông báo thông báo ao Telegram void SendTelegramNotification (Chuỗi tin nhắn) {bot.sendMessage (CHAT_ID, tin nhắn, ""); Serial.println (tin nhắn); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Chứng chỉ gốc Configura para api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à red WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Thiết lập chương trình void setup () {Serial.begin (115200); chậm trễ (50); // Conecta ao wifi ConnectToWiFi (); // Kiểm tra thông báo điện báo pelo SendTelegramNotification ("Testando envio de thông báo."); }

Đề xuất: