Sadržaj:

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

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

Video: Projeto IoT - Detector Sistema De Fumaça: 5 koraka
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Novembar
Anonim
Projeto IoT - Detector Sistema De Fumaça
Projeto IoT - Detector Sistema De Fumaça

Introdução

O Sistema Detector de Fumaça sastoji se u rješavanju IoT -a o objektima dozvole ili nadgledanju alarma u vezi sa dodacima preostalih zahtjeva za primjenu Androida. O projektovani i bazirani mikrokontroler koji se nalazi u komunikaciji s nulem pela rede WiFi, sa osnažnim detektorima putem senzora za fumaçu. Vlasnici da ostanu saglasni za nadgledanje sistema koji prima zahtjeve za primenu i prima obaveštenja putem Telegrama u slučaju aktiviranja alarma za uključivanje.

Desenvolvedores

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

Korak 1: Upotreba materijala

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:

  • Upravljački modul WiFi ESP8266 NodeMcu ESP-12: Uređaj za uključivanje i isključivanje kombinira čip ESP8266 (komunikacijski WiFi), USB sučelje sa standardnim naponom od 3.3V. Program za podešavanje servera koji koristi IDE do Arduino, através da comunicação preko cabo micro-USB.
  • Senzor za Gás MQ-135 za gasove Toksiko: O Sensor za Gas MQ-135 je u stanju da detektuje detektore u tipovima gasova u toksikologiji u amoniji, dioksidu karbona, benzena, oksido nitrika, i tambula fumaco ili o.
  • Led vermelho
  • Led verde
  • 2 Otpori 200Ω
  • Protoboard i kratkospojnici za povezivanje i testiranje do prototipa

Korak 2: Konfigurirajte Do ThingSpeak

Konfigurišite Do ThingSpeak
Konfigurišite Do ThingSpeak
Konfigurišite Do ThingSpeak
Konfigurišite Do ThingSpeak
Konfigurišite Do ThingSpeak
Konfigurišite Do ThingSpeak

O ThingSpeak -u je usluga plataformnog IoT -a za armazeran i rekuperativan način korištenja protokola HTTP -a i MQTT -a za pristup Internetu ili na lokalnom nivou. ThingSpeak dozvoljava agregat, vizualizirajući i analizirajući tok fluida u moru.

O ThingSpeak, está disponível como um serviço gratuito para pequenos projetos não comerciais (od 3 mil. H do mensagena ili otprilike 8000 poruka po dijagramu). Para projetos maiores ili applicações comerciais, quatro tipos diferentes de licence anual são oferecidos: Standard, Academic, Student i Home.

Konfiguracija kanala bez ThingSpeak -a

Após criar uma uma no ThingSpeak, é needário criar um channel. Os canais armazenam os dados enviados de um determinado projeto. Cada kanal uključuje 8 campos que podem conter qualquer tipo de dados, mais 3 campos para dados de localização i 1 para dados de status. Depois de coletar dados em um channel, você pode usar os aplicativos ThingSpeak para analisá-los e visualizá-los.

Za sve projekcije, foi criado um kanalskom komunikacijom IoTProject-SmokeDetector i 3 kamere za prikaz podataka:

  • Polje 1: Concentração de gás
  • Polje 2: Alarm
  • Polje 3: Comando desligar

Na "Private View" možete vidjeti i vizualizaciju cada um 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 indikator indikatora za indikaciju alarma
  • 1 gráfico com os dados de comando de desligar alarme em função do tempo

Nema uputstava za ThingSpeak

O kanalu do ThingSpeak -a govorite putem identifikacionog kanala (ID kanala) koji je moguć za identifikaciju za bilo koju drugu državu. Aba "API ključevi" nisu dostupni ni kao parametri za escrita (Write API Key) niti za čitanje (Read API Key) bez kanala. Osim toga, ne želite da se disponibilizuju kao API zahtevi (HTTP zahtevi za primanje), već morate da pošaljete podatke koji su nam potrebni za prilagođavanje zahteva i zahteva.

O identifikator kanala e kao chaves serão usadas posteriormente no código do microcontrolador. Kao API zahtijeva korištenje programa u aplikacijama za Android.

Korak 3: Aplicativo - MIT App Inventor

Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor

Aplikacija za praćenje sistema za desenvolvido korištenje MIT App Inventor. O MIT App Inventor -u, ambijentalna web stranica besplatna je i prilagođena za desenvolvimento integraciju primjene mantido na Massachusetts Institute of Technology (MIT). Dozvolite pokretanje početnih programa i aplikacija za Android i iOS.

Kako biste pronašli aplikaciju koja nije u MIT-ovom App Inventoru, criou-se um projektovao o nome IotProject_SmokeDetector.

Na kućištu Designer -a moguće je montirati sve aplikacije koje se primjenjuju, odabirom komponenti koje su neophodne (bote, naljepnice, slike itd.) Bez bočnog izbornika (paleta). Za odabir komponenti koje su odabrane, moguće je mijenjati konfiguracije jezgri, tamanho, pozicionirati, ulaziti izvan izbornika bočno (Svojstva).

Na tela Blocks je feita koja se bavi programiranjem i primjenom programa. Program koji podržava feravitetne blokove, olakšava desenvolvimento para iniciantes.

Explicação do código

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

Zaključuje se 1 dodatak (definitivno Clock1), ili primjenjujte faz zahtjev za dodavanjem kanala ThingSpeak pribavite URL adresu za postavljanje kopije podataka na "API ključeve". Kada su u pitanju retorne, o senzoru koji odgovara senzoru koji koncentrira CO2 u većinu na tijelo do aplikacije. Já o dado do alarme é testado:

  1. Pošaljite alarme sve više (alarmData = 1), ili primijenite većinu ao korištenja izbornika "Atenção! Sua casa está em perigo!" e o bottao desligar alarme (Button1) i habilitado.
  2. Ako alarm više niste aktivni (alarmData = 0), primijenite mostru ili upotrijebite meni s porukom "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Button1) i desabilitado.

Zahtjev za botu desligarnog alarma (Button1) za klik, za primjenu escreverá 1 bez campa Field3: Komando desligar krijada bez ThingSpeak -a, indikator za komandu za desligarni alarm za akciju. O tome morate dodati ThingSpeak através URL -u za pomoć pri postavljanju kopije podataka na "API ključeve".

Korak 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

O prototipu za montažu bez protokolarne konforme na slici.

Senzor MQ135

  • Pino AO: povezivanje ao pino AD0 sa modulom ESP8266
  • Pino GND: spojen na GND sa modulom ESP8266
  • Pino Vcc: spojen na pino VIN sa modulom 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 otpornika
  • Priključivanje ili napajanje LED diodama (negativno - izvorno) nema GND za upravljanje ESP8266

LED vermelho

  • Priključni umanski doresistor od 200 Ω nema pino D7 na modulu ESP8266.
  • Priključak ili anodo do LED (pozitivna - veća perna) na vanjski otpornik otpornika
  • Priključivanje ili napajanje LED diodama (negativno - izvorno) nema GND za upravljanje ESP8266

Korak 5: Programirajte mikrokontrolador

O mikrokontrolatoru za upravljanje ESP8266 za programe koji koriste IDE za Arduino (facu za preuzimanje aqui).

O codigo fonte do kraja upotrijebite nijedan projeto pode ser baixado nema konačni deste tutorial (Iot_project.ino). O principu tem duas funções principais: setup e loop.

Fluxo do postavljanje:

  • Inicijalizacija porta serijala
  • Inicializa os izlazi (pinos dos LED)
  • Povežite se putem WiFi -a
  • Inicijalizacija ili ThingSpeak

Fluxo do petlja:

  • Pronađite senzor MQ135
  • Provjerite koncentraciju ugljikovog dioksida ultrazvučnom ili ograničenom definicijom (idealno: CO2 <= 700 ppm)

    • Liga o alarmu (LED vermelho), desliga o LED statusu (verde) e envia notificação pelo Telegram se može pohvaliti još više do ograničenja
    • Desliga o alarmu (LED vermelho) i liga o LED statusu (verde) se ocjenjuju hrabrošću do kraja
  • Ovo je "comando desligar alarme" za ThingSpeak

    Komando = 1, desliga ili alarm (LED žaruljica) i liga o LED status (verde)

  • Uz pomoć senzora, alarma i 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.

Povežite WiFi mrežu

Dodajte IDE na Arduino, u datoteci-> Postavke eadicione ili Dodatne URL adrese upravitelja odbora URL

Postavite, a zatim odaberite Alati-> Ploče-> Upravitelj ploča digitalan ESP8266, kliknite i instalirajte ih.

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

  • WIFI_SSID: ime za vraćanje WiFi mreže u vezu sa sistemom za povezivanje u sistemu
  • WIFI_PASSWORD: senha da rede

Za povezivanje WiFi -a, povezivanja ili korištenja bežične veze, promijenite kao varijaciju za povezivanje WIFI -ja popise 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; // Funkcioniše sa povezivanjem wifi -a void ConnectToWiFi (void) {// Tenta veza sa wi -fi Serial.println ("Conectando à rede WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {kašnjenje (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi konekcija sa sucesom!"); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); } // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); // Conecta ao wifi ConnectToWiFi (); }

Dodatni senzori rade senzor MQ135

Parametri za senzor MQ135 omogućuju vam da pronađete biblioteku MQ135.h dodavanjem IDE-a u Arduino u meni Skecth-> Include Library-> Add. ZIP Library.

Depois, kopije o abaixo i fac fajlu ne prenose ESP8266 através do cabo micro-usb. Kako biste postigli koncentraciju CO2 u ppm -u i neprimjerenu vrijednost, bez serijskog monitora.

#include "MQ135.h" #define SMOKE_SENSOR A0 // IO radi senzor fumaça float sensorValue; // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); } // Glavna petlja void petlje () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print ("Koncentracija CO2 (ppm):"); Serial.println (sensorValue); }

Escrevendo e lendo dados do ThingSpeak

Primeiro, dodaj u biblioteku do ThingSpeak -a bez Arduino IDE -a. Na raspolaganju Alati-> Ploče-> Upravitelji ploča digitalno ThingSpeak, kliknite i instalirajte ih.

Verzija besplatna za ThingSpeak, preuzmite otpremljene datoteke sa 20 sekundi unazad, bez isteka, bez provjere da li ste provjerili da li je trenutak ispravljen u odnosu na očeve.

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

  • myChannelNumber: broj kanala bez kanala ThingSpeak
  • myWriteAPIKey: Chave de escrita do channel do ThingSpeak
  • myReadAPIKey: Chave de leitura do canal do ThingSpeak

Para teste de comunicação com of ThingSpeak, copie o codigo abaixo, altere as variáveis para conexão to rede e as variáveis listadas acima e faça upload no módulo ESP8266.

#include #include /************************ PROMENI KAO DEFINICIJE ABAIXO ***************** *********/ #define WIFI_SSID "YOUR WIFI SSID" // Ime za rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha to 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 to channel to ThingSpeak const char * myReadAPIKey = "vaš read api ključ"; // Chave de leitura do channel do ThingSpeak unsigned long lastTime; unsigned long currentTime; WiFiClient klijent; // Funkcioniranje i povezivanje wifi -a void ConnectToWiFi (void) {// Konfiguriranje korijenskog certifikata za api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conektar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {odgoda (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi konekcija sa sucesom!"); Serial.println (WiFi.localIP ()); } // Postavljanje da placa void setup () {Serial.begin (115200); kašnjenje (50); // Conecta ao wifi ConnectToWiFi (); // Pokretanje ThingSpeak lastTime = 0; ThingSpeak.begin (klijent); } // Petlja glavne petlje void loop () {currentTime = millis (); // seta o tempu atualnog // Učitajte ThingSpeak int vrijednost = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Serial.println (vrijednost); // Provjeriće se trenutak u kojem se nalazi ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = currentTime; } kašnjenje (20000); }

Zabilježite obavijest o Telegramu

Primeiro, biblioteka za Telegram bez Arduino IDE. Na raspolaganju Alati-> Ploče-> Upravitelj ploča digitalan UniversalTelegramBot, kliknite i instalirajte ih.

Abra o Telegram e siga kao próximas etapas para criar um Bot. Primeiro, nabavite por botfather e clique nele. A janela a seguir deve abrir e você será solicado a clicar no botão Iniciar. Digite /newbot e siga kao instrukcije za kriju seu bot. Dê a ele um nome e nome de usuário. Se o seu bot za criado com sucesso, você receberá uma mensagem com um link para acessar o bot e o token do bot. Salve o token, porque você precizno brisanje para que ili ESP8266 pošiljaoca obavijesti.

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 codigo abaixo, altere as variáveis de definiciõ para conexão WIFI or 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 za razgovor do 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); } // Funkcioniši sa povezivanjem wifi -a void ConnectToWiFi (void) {// Konfiguracija korijenskog certifikata za api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Tenta conektar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {kašnjenje (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi konekcija sa sucesom!"); Serial.println ("IP adresa:"); 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čuje se: