Բովանդակություն:

Projeto IoT - Sistema Detector De Fumaça: 5 քայլ
Projeto IoT - Sistema Detector De Fumaça: 5 քայլ

Video: Projeto IoT - Sistema Detector De Fumaça: 5 քայլ

Video: Projeto IoT - Sistema Detector De Fumaça: 5 քայլ
Video: DETECTOR DE FUMAÇA, entende como POSICIONAR eles no projeto ou no imóvel 2024, Հուլիսի
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

Ներածություն

O Sistema Detector de Fumaça- ն բաղկացած է IoT- ի լուծումից, որը թույլ է տալիս թույլատրել կամ օգտագործել ահազանգերը ՝ ներառելով Android- ի կիրառման մնացորդները: Մենք կարող ենք օգտագործել միկրոկառավարիչ, որն ապահովում է միացում, որը թույլ է տալիս օգտագործել WiFi- ն, ինչպես նաև հայտնաբերել է մեր ֆունկցիոնալ տվիչը: O proprietário da residência consegue monitorar or sistema através de um aplicativo e Recebe notaçações via Telegram em caso de ativação do alarme de incéndio.

Desenvolvedores

  • Բրունո Գոնսալվես Պերեյրա
  • Ãոաո Պաուլո Թադեու Բորխես Պայվա
  • Julուլիանա Գիմարիես Սոարես Բուերե
  • Վիլան Ալեքսանդր Կոնդոր Ասենջո

Քայլ 1: Materiais Utilizados

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

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

  • Módulo WiFi ESP8266 NodeMcu ESP-12: Տեղադրման վահանակի միացում կամ միացում ESP8266 (WiFi կապ), ինտերֆեյսի usb- սերիալ և արագության 3.3V արագություն: A programação pode ser feita usando a IDE do Arduino, através da comunicação միջոցով cabo micro-usb:
  • Sensor de Gás MQ-135 para Gokes Tóxicos:
  • Led vermelho
  • Առաջնորդվելով verde
  • 2 դիմադրություն 200Ω
  • Protoboard e jumpers para conexão e teste do protótipo

Քայլ 2. Կարգավորեք 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 Proto HTTP e MQTT pela Internet ou por meio de uma rede local. ThingSpeak permite agregar, visualizar e analisar fluxos de dados na nuvem:

O ThingSpeak is disponível como um serviço gratuito for pequenos projetos não comerciais (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 menagens por dia): Կիրառվում են կոմերցիոն ծառայություններ, որոնք տարբեր տարիների տարբեր թույլտվություններ են տալիս ստանդարտ, ակադեմիական, ուսանողական և տնային:

Configuração de um canal no ThingSpeak

Após criar uma conta no ThingSpeak, անհրաժեշտ է criar um ջրանցք: 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 parados 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: Concentração de gás
  • Դաշտ 2 ՝ Ալարմե
  • Դաշտ 3 ՝ Comando desligar

«Անձնական դիտում» -ի դեպքում հնարավոր է արատավորել, քանի որ մենք պատկերացնում ենք, թե ինչպես պետք է կատարվեն արատներ: 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 alarme
  • 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 ri criado com um identificador único (Channel ID) que possibilita sua identificação para envio e leitura de dados: Na APA «API Keys» - ը կարող է անհասանելի լինել որպես escrita (Write API Key) և 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 identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador- ի միջոցով: JI as API- ն խնդրում է օգտագործել Android- ի ծրագրային ապահովումը:

Քայլ 3. Aplicativo - MIT հավելվածի գյուտարար

Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար
Aplicativo - MIT հավելվածի գյուտարար

Կիրառական մոնիտորինգի համակարգի կիրառման համար անհրաժեշտ է օգտագործել MIT App Inventor- ը: O MIT հավելվածի գյուտարարը մենք ունենք անվճար համացանց և հնարավորություն ենք տալիս օգտագործել Մասաչուսեթսի տեխնոլոգիական ինստիտուտի (MIT) ինտեգրված ծրագրերը: Android- ի և iOS- ի համար թույլատրված ծրագրային ապահովման թույլտվություն ունի:

Նախկինում անհրաժեշտ է օգտագործել MIT հավելվածի գյուտարարի, ինչպես նաև IotProject_SmokeDetector- ի բոլոր հնարավորությունները:

Դիզայներները կարող են ունենալ վանք, քանի որ դրանք կիրառելի են, ընտրում են անհրաժեշտ բաղադրիչներ (բոտեր, պիտակներ, պատկերներ և այլն) ոչ մի կողային ճաշացանկ (ներկապնակ): Համապատասխանաբար, մենք ընտրում ենք տարբեր բաղադրիչներ, որոնք կարող են ունենալ միջուկների այլընտրանքային կարգավորումներ, լրացնել, տեղադրել, առանց կողմնակի ուղեցույցների (հատկություններ):

Na tela Blocks é feita toda a lógica de programação do aplicativo է: A programação é feita através de blocos- ը, հեշտացնում է նախագծման սկզբունքը:

Explicação do código

Duas variáveis locais são inicializadas: alarmData e sensorData:

Կարդալ ավելին (հստակ ժամացույցի ժամացույց 1), կամ կիրառել այն, երբ պահանջվում է պահանջել ոչ մի ջրանցք ThingSpeak at URLs- ից, որը թույլ է տալիս օգտագործել «API բանալիներ» կոդերի պատճենը: Quando os dados são retornados, o dado do sensor համապատասխանող և կենտրոնացված de gás CO2 և ամենաարդյունավետ գործածումը: Já o dado do alarme é testado:

  1. Se o alarme estiver acionado (alarmData = 1), o aplicativo mostra ao usuário a menusagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) é habilitado.
  2. Se o alarme não estiver acionado (alarmData = 0), o aplicativo mostra ao usuário a menagagem "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) կտտացման համար, կամ կիրառեք escreverá 1 no campo Field3- ը: O dado é enviado ao ThingSpeak através da URL para escrita de dados que pode ser copiada na aba "API Keys":

Քայլ 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

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

Սենսոր MQ135

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

LED verde

  • Conectar uma perna do resistor de 200Ω no pino D5 do módulo ESP8266
  • Conectar o anodo do LED (positivo - maior perna) և արտաքին perna do resistor
  • Conectar o catodo do LED (բացասական - menor perna) no GND do módulo ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω no pino D7 do módulo ESP8266:
  • Conectar o anodo do LED (positivo - maior perna) և արտաքին perna do resistor
  • Conectar o catodo do LED (բացասական - menor perna) no GND do módulo ESP8266

Քայլ 5. Programação Do Microcontrolador

O microcontrolador do módulo ESP8266 ծրագիրը կօգտագործի IDE do Arduino- ն (faça o download aqui):

Կիրառեք ամբողջական օգտագործման ունակությունը, որը թույլ չի տալիս մուտքագրել ոչ մի վերջնական ձեռնարկ (Iot_project.ino): O código tem duas funções principais: setup e loop:

Fluxo do setup:

  • Inicializa a porta սերիալ
  • Inicializa os ելքեր (pinos dos leds)
  • Conecta à rede WiFi
  • Inicializa o ThingSpeak

Fluxo do loop:

  • Lê os dados do sensor MQ135
  • Verifica se a concentração de gás CO2 ultrapassa o limite definido (իդեալական ՝ CO2 <= 700 ppm)

    • Liga o alarme (LED vermelho), desliga o LED de status (verde) և envia notificação pelo Telegram se o valor estiver acima do limite
    • Desliga o alarme (LED vermelho) և 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) և 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 respectivo código para teste.

Միացեք WiFi- ին

Վերցրեք IDE- ն Arduino- ի միջոցով, այնուհետև Ֆայլ-> Նախընտրանքներ, որոնք խորհուրդ են տալիս ավելացնել խորհրդի լրացուցիչ մենեջերի URL- ներ ՝

Մենք օգտագործում ենք գործիքներ-> Տախտակներ-> Տախտակներ Կառավարիչ digite ESP8266, սեղմեք մեր տեղադրման և այլնի վրա:

É needário definir 2 variáveis para conexão na rede:

  • WIFI_SSID: nome da rede WiFi que você deseja conectar seu system
  • WIFI_PASSWORD: senha da rede

WiFi- ի փորձարկման համար, պատճենեք կամ ջնջեք այն, փոխեք այն որպես տարբերակներ `միացնելով WIFI ցուցակները, որոնք թույլ են տալիս վերբեռնել ESP8266 ֆայլը:

#ներառել /********************** ALTERE AS DEFINIÇÕES ABAIXO ****************** *******/ #սահմանել WIFI_SSID «YOUR WIFI SSID» // Nome da rede wifi #սահմանել WIFI_PASSWORD «YOUR WIFI PASSWORD» // Senha da rede wifi 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) {ուշացում (500); Serial.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); ուշացում (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados- ը կատարում է MQ135 սենսորը

Para ler os dados do sensor MQ135, primeiramente deve-se baixar and biblioteca MQ135.h եւ adicioná-la na IDE do Arduino através do menu Skecth-> Include Library-> Add. ZIP Library.

Depois, copy of código abaixo e faça upload no módulo ESP8266 através do cabo micro-usb. O CODIGO իրականացնում է մի արագություն, որը կենտրոնացնում է CO2- ը ppm- ում և թույլ է տալիս, որ սերիական մոնիտոր չլինի:

#ներառել «MQ135.h» #սահմանել SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Setup da placa void setup () {Serial.begin (115200); ուշացում (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, adicione of a Biblioteca do ThingSpeak no Arduino IDE: Տե՛ս Գործիքներ-> Տախտակներ-> Տախտակների կառավարիչ փնտրեք ThingSpeak, սեղմեք մեր տեղադրման և այլնի վրա:

A versão gratuita do ThingSpeak- ը, թույլ է տալիս վերբեռնել ֆայլերը 20 վայրկյան առաջ, այնուհետև, առանց որևէ փորձարկման, դա մի պահ է, որն ապահովում է ձեր պաշտպանվածությունը:

Para comunicar com o ThingSpeak é needário definir as variáveis abaixo:

  • 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, copy of 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.

#ներառել #ներառել /********************** ALTERE AS DEFINIÇÕES ABAIXO ***************** *********/ #սահմանել WIFI_SSID «YOUR WIFI SSID» // Nome da rede wifi #սահմանել WIFI_PASSWORD «YOUR WIFI PASSWORD» // Senha da rede wifi #սահմանել THINGSPEAK_WRITE_INTERVAL em 000 ms // Intervalo dados ao ThingSpeak /********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ անստորագիր երկար myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "քո գրած api բանալին"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "ձեր կարդացած api բանալին"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; անստորագիր երկար ընթացիկ ժամանակ; WiFiClient հաճախորդ; // Funchã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 (& վկայական); // Tenta conectar ao wifi Serial.println («Conectando de rede WiFi»); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {ուշացում (500); Serial.print ("."); } Serial.println (""); Serial.println («WiFi conectado com sucesso!»); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); ուշացում (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (հաճախորդ); } // Loop principal 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 (արժեքը); // Verifica se é oé momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = ընթացիկ ժամանակ; } ուշացում (20000); }

Enviando notificação pelo Telegram

Primeiro, adicione a Biblioteca do Telegram no Arduino IDE. Տե՛ս Գործիքներ-> Տախտակներ-> Տախտակների մենեջեր UniversiteTelegramBot, ընտրեք և տեղադրեք մեր տվյալները:

Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, procure 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 հղումը 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.

Նախատեսեք ձեր հեռագրի ծանուցումը, պատճենեք կամ ուղարկեք այն, փոխեք այն որպես տարբերակներ, որոնք նախատեսված են համացանցային WIFI և Telegram (BOT_TOKEN և CHAT_ID) համար ՝ առանց ֆիքսված վերբեռնման ոչ մի ESP8266:

#ներառել #ներառել #ներառել /******************** ALTERAR DEFINIÇÕES ABAIXO ******************* *******/ #սահմանել WIFI_SSID «YOUR WIFI SSID» // Nome da rede wifi #սահմանել WIFI_PASSWORD «YOUR WIFI PASSWORD» // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot teleg սահմանել CHAT_ID "CHANGEYOURCHATID" // ID- ով զրուցել հեռագրով X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot բոտ (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (Լարային հաղորդագրություն) {bot.sendMessage (CHAT_ID, հաղորդագրություն, ""); Serial.println (հաղորդագրություն); } // 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 (& վկայական); // Tenta conectar ao wifi Serial.println («Conectando de rede WiFi»); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {ուշացում (500); Serial.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); ուշացում (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification («Testando envio de notificação»); }

Խորհուրդ ենք տալիս: