Përmbajtje:

Projeto IoT - Sistema Detector De Fumaça: 5 hapa
Projeto IoT - Sistema Detector De Fumaça: 5 hapa

Video: Projeto IoT - Sistema Detector De Fumaça: 5 hapa

Video: Projeto IoT - Sistema Detector De Fumaça: 5 hapa
Video: IoT Smoke Detector using MQ135 Gas Sensor, Nodemcu ESP8266, and Blynk Application 2024, Korrik
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

Hyrje

O Sistema Detector de Fumaça përbëhet nga një zgjidhje e IoT ose objekteve të lejimit të monitorimit të alarmit në përfshirjen e mbetjeve të përdorimit të aplikacioneve Android. Për shembull, ju mund të përdorni një mikrokontrollues që mund të komunikoni me një rrjet të ri WiFi, mund të zbulohet nga një sensor i fumës. O pronari i mbetjeve të përcjellë monitorimin ose sistemin e aplikimit të aplikimit dhe marrjes së njoftimeve përmes Telegramit në rastet kur ju dëshironi të alarme de incenndio.

Desenvolvedores

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

Hapi 1: Materiais Utilizados

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

Os materiais utilizados para konstruksionit për të bërë projekte:

  • Módulo WiFi ESP8266 NodeMcu ESP-12: Vendosja e dëshiruar e kombinimit të çipit ESP8266 (komunikim WiFi), ndërfaqe USB dhe seriale dhe rregullim i tensionit 3.3V. Një program programi përdoret për të përdorur një IDE për Arduino, duke përdorur komunikimin përmes mikro-usb-së.
  • Sensor de Gás MQ-135 para Gazeve Toksikos: O Sensor de Gás MQ-135 është shumë i përshtatshëm për zbulimin e gazeve të gazit nga toksika në amoni, dioksid karboni, benzeno, oksido nítrico, dhe também fumaça ou
  • Led vermelho
  • Led verde
  • 2 Rezistente 200Ω
  • Protoboard e kërcyesit për conexão e teste do protótipo

Hapi 2: Konfiguro A ThingSpeak

Configuração Bëni Gjëra Flisni
Configuração Bëni Gjëra Flisni
Configuração Bëni Gjëra Flisni
Configuração Bëni Gjëra Flisni
Configuração Bëni Gjëra Flisni
Configuração Bëni Gjëra Flisni

O ThingSpeak është një shërbim i Platformës IoT për armatim dhe rikuperim të përdorimit të protokollit HTTP dhe MQTT për Internetin ose për shkak të përdorimit lokal. ThingSpeak permite agregar, visualizar dhe analisar fluxos de dados na nuvem.

O ThingSpeak është e disponueshme për të shërbyer falas për pequenos projetos dhe comerciais (menos nga 3 milje të menaxherëve për një ose dy afroksimadamente prej 8000 menaxherësh për ditë). Për aplikimet maiores ose aplikimet e tregtisë, të dhëna të ndryshme nga licencat vjetore të shërbimeve: Standard, Akademik, Student dhe Shtëpi.

Configuração de um canal no ThingSpeak

Após criar uma conta no ThingSpeak, është e nevojshme criar um canal. Os canais armazenam os dados enviados de um determinado projeto. Cada canal përfshinë 8 fusha që mund të kontrollohen në mënyrë të besueshme, por 3 kampe për vendndodhjen e vendndodhjes 1 për statusin e babait. Depois de coletar dados em um kanal, duke përdorur kodin e përdorimit të aplikacioneve ThingSpeak para analisá-los e visualizá-los.

Për këtë qëllim, fri criado um canal com nome IoTProject-SmokeDetector e 3 campos para envio de dados:

  • Fusha 1: Concentração de gás
  • Fusha 2: Alarme
  • Fusha 3: Comando desligar

Për sa i përket "Pamjes Private" mund të gjeni një kërcim si një vizualizim të madh në dosjen e camriados. 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 është një krijesë e identifikuar me único (ID e kanalit) që është e mundur të identifikohet për mjedisin e parë të lehësisë. Ju mund të përdorni "Çelësat API" si paraprakisht të shkruara (Shkruani çelësin API) dhe të lexoni (Lexoni çelësin API) nga asnjë kanal. Për më tepër, mund të shpërndahen si API Kërkesat (HTTP marrin kërkesa) në mënyrë që të përdorni të gjitha shërbimet për mjedisin e nevojshëm të kërkesës.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Ashtu si API kërkon të përdorni shërbimet e programit për të aplikuar Android.

Hapi 3: Aplikativo - Shpikësi i Aplikacioneve MIT

Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT
Aplikativo - Shpikësi i Aplikacioneve MIT

Aplikoni për monitorimin e sistemit të përdorimit të përdorimit të MIT App Inventor. O MIT Aplikuesi Shpikësi është një mjedis në internet falas për të krijuar një program për të krijuar një integrim të aplikacioneve të përdorura në Institutin e Teknologjisë të Masaçusetsit (MIT). Lejoni që të filloni të përdorni programin për të instaluar aplikacione për Android dhe iOS.

Para së gjithash, ju mund të kontaktoni me një MIT App Inventor, duke zbuluar se si të zbuloni IotProject_SmokeDetector.

Ne tela de Designer është në gjendje për të ndërtuar një montar siç mund të aplikoni, zgjidhni një përbërës të nevojshëm (bota, etiketa, imazhe, etj.) Pa menu anësore (Paleta). Për shembull, ju mund të zgjidhni disa përbërës, mund të gjeni një konfigurim alternativ të bërthamave, të gjitha, të vendosni, të hyni jashtë menysë direkt (Prona).

Blloqet e tela janë një nga programet më të mira të aplikimit. Një program programi për zbutjen e blloqeve, lehtësimin dhe dëshirën e inicantes.

Explicação do código

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

Një herë më parë (definito pelo Clock1), ose aplikoni për të kërkuar një kërkesë nga kanali ThingSpeak në adresën e URL -së për të lexuar kodin në kodin e api "API Keys". Quando os dados s reto retornados, ose një sensor që korrespondon me një përqendrim të lartë të CO2 në shumicën e aplikacioneve të tua. Já o dado do alarme é testado:

  1. Se o alarme estiver acionado (alarmData = 1), ose aplikativo mostra ao usuário a mensagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Butoni1) é habilitado.
  2. Se o alarme não estiver acionado (alarmData = 0), ose aplikoni shumicën e përdorimit të një menagjemi "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Butoni1) dhe desabilitado.

Quando o botão de desligar alarme (Button1) për klikim, ose aplikim për të hequr 1 fushë fusha 3: komando desligar criado no ThingSpeak, duke treguar se si të komandoni një deshirim të alarme foi acionado. Përdorimi i një gjëje në ThingSpeak përshkruani URL -në tuaj për të zgjedhur kodin e kodit të kopjuar me "API Keys".

Hapi 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

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

Sensori MQ135

  • Pino AO: konektor ao pino AD0 dhe módulo ESP8266
  • Pino GND: lidhja me GND do të përdoret në ESP8266
  • Pino Vcc: konektoni ose pino VIN bëni më shumë ESP8266

LED verde

  • Conectar uma perna do resistor de 200Ω no pino D5 do módulo ESP8266
  • Konektor ose anodo për LED (pozitivo - maior perna) dhe jashtë rezistencës
  • Conectar ose catodo do LED (negativo - menor perna) pa GND do módulo ESP8266

LED vermelho

  • Conectar uma perna doresistor de 200Ω no pino D7 do módulo ESP8266.
  • Konektor ose anodo për LED (pozitivo - maior perna) dhe jashtë rezistencës
  • Conectar ose catodo do LED (negativo - menor perna) pa GND do módulo ESP8266

Hapi 5: Programação Do Microcontrolador

Për mikrokontrollues do të përdorni ESP8266 për programin e përdorimit të një IDE për Arduino (faqja ose programi i shkarkimit).

Përdorimi i plotë i përdorimit pa kodin e nevojshëm nuk ju ndihmon tutorialin përfundimtar (Iot_project.ino). O código tem duas funções principais: setup e loop.

Fluxo do setup:

  • Inicializa një serial porta
  • Inicializa os daljet (pinos dos leds)
  • Conecta à rede WiFi
  • Inicializa o Gjë Flisni

Fluxo do loop:

  • Lê os dados do sensor MQ135
  • Verifikimi i një përqendrimi të gás të CO2 ultrapassa ose limite definido (ideale: CO2 <= 700 ppm)

    • Liga o alarme (LED vermelho), desliga o LED status (verde) dhe envia notificação pelo Telegram se o valor estiver acima do limite
    • Desliga o alarme (LED vermelho) dhe liga o LED de status (verde) se o valor estiver abaixo do limite
  • Le o dado de "comando desligar alarme" do ThingSpeak

    Se o comando = 1, desliga o alarme (LED vermelho) dhe liga o LED 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.

Lidhu me WiFi

Paraqitni një IDE për Arduino, duke parë Skedarin-> Preferencat që dëshironi të përdorni URL shtesë të Menaxherit të Bordit një URL

Për më tepër, në Tools-> Bordet-> Menaxherët e bordeve digjitale ESP8266, klikoni në instalar e fechar.

Éshtë e nevojshme të përcaktohen 2 ndryshime për lidhjen me të:

  • WIFI_SSID: nome da rede WiFi që ka nevojë për lidhjen e sistemit
  • WIFI_PASSWORD: senha da rede

Për të testuar lidhjen WiFi, kopjoni ose përdorni kodin, ndryshoni si ndryshime për lidhjen e listave të WIFI të lidhura me ngarkesën pa ngarkim ESP8266.

#include /********************** ALTERE AS DEFINIÇÕES ABAIXO ****************** *******/ #define WIFI_SSID "YID Your WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi WiFiClient klient; // Funchão que faz a conexão wifi void ConnectToWiFi (pavlefshme) {// Tenta conectar ao wifi Serial.println ("Conectando de rede WiFi"); WiFi.filloj (WIFI_SSID, WIFI_PASSWORD); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP -ja e marrë:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); vonesë (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados bën sensorin MQ135

Për ler os dados do sensor MQ135, fillirament 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, kopjoni kodin abaixo e faça ngarkoni pa e-mail më ESP8266 në mënyra të përdorimit të mikro-usb. Ju mund të kuptoni një përqëndrim të shpejtë të CO2 në ppm dhe të mos vlerësoni asnjë monitor serik.

#përfshi "MQ135.h" #përcakto SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorVlera; // Setup da placa void setup () {Serial.begin (115200); vonesë (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 (sensorVlera); }

Escrevendo e lendo dados do ThingSpeak

Primeiro, adicione a Biblioteca do ThingSpeak no Arduino IDE. Vá em Tools-> Bordet-> Bordet Menaxheri digite ThingSpeak, klikoni në instalar e fechar.

A versão gratuita do ThingSpeak, ju mund të ngarkoni me një kërkesë prej 20 ditësh, por në të njëjtën kohë, nuk ka teste se çfarë mund të ndodhë për momentin kur të përdorni një mjedis.

Për komunikimin me ThingSpeak është e nevojshme të përcaktohet si 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 testit të komunikimit me o ThingSpeak, kopjoni ose regjistroni, ndryshoni si ndryshime për lidhjen dhe rivendosjen e ndryshimeve të listës së acima e faça të ngarkoni pa një kod ESP8266.

#include #include /********************** ALTERE AS DEFINIÇÕES ABAIXO ***************** *********/ #përcakto WIFI_SSID "YID Your WIFI SSID" // Nome da redde wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #define THINGSPEAK_WRITE_INTERVAL em 000 ms // Interval dados ao ThingSpeak /********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ myChannelNumber i gjatë i panënshkruar = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "çelësi juaj i shkrimit api"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "çelësi juaj i lexuar api"; // Chave de leitura do canal do ThingSpeak unsigned longTimeTime; aktual i panënshkruar aktual Koha; Klienti WiFiClient; // Função que faz a a conexão woid void ConnectToWiFi (pavlefshme) {// Certifikata e konfigurimit të rrënjës për api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando de rede WiFi"); WiFi.filloj (WIFI_SSID, WIFI_PASSWORD); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); vonesë (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.filloj (klienti); } // Loop principal 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 (vlera); // Verifiko se është një moment për të drejtuar një gjë në ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); koha e fundit = koha aktuale; } vonesë (20000); }

Enviando notificação pelo Telegram

Primeiro, adicione a Biblioteca do Telegram no Arduino IDE. Vá em Tools-> Bordet-> Bordet Menaxheri digite UniversalTelegramBot, klikoni në instalar e fechar.

Abra o Telegram e siga si próximas etapas para criar um Bot. Primeiro, procure por botfather e clique nele. Një janel 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 për criado com sucesso, ju do të merrni një menaxher com um link para acessar o bot e o token do bot. Ruaj një shenjë, porque precisará dele para que o ESP8266 mund të ketë një njoftim të mundshëm.

Për shembull, ne sua conta do Telegram, pesquise IDBot. Inicie uma conversa com esse bot e digite/getid. Você receberá uma resposta com seu ID e përdorimit. Salve o ID, porque você precisará dele para enviar de notificações.

Për shembull, për të përcjellë telegramin e njoftimit, kopjoni ose regjistroni, ndryshoni si ndryshime të përcaktuara për lidhjen e WIFI dhe komunikimit në Telegram (BOT_TOKEN e CHAT_ID) nëse nuk ngarkoni asnjë kod ESP8266.

#include #include #include /******************** ALTERAR DEFINIÇÕES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #define BOT_TOKEN "CHANGEYOURTOKEN" // Token do bot do telegram përcaktoni CHAT_ID "CHANGEYOURCHATID" // ID bëni chat në telegramin X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot bot (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram i pavlefshëm SendTelegramNotification (Mesazhi me varg) {bot.sendMessage (CHAT_ID, mesazh, ""); Serial.println (mesazh); } // Função que faz a conexão wifi void ConnectToWiFi (pavlefshme) {// Certifikata e konfigurimit të rrënjës për api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando de rede WiFi"); WiFi.filloj (WIFI_SSID, WIFI_PASSWORD); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP -ja e marrë:"); Serial.println (WiFi.localIP ()); } // Setup da placa void setup () {Serial.begin (115200); vonesë (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }

Recommended: