Πίνακας περιεχομένων:

Projeto IoT - Sistema Detector De Fumaça: 5 Βήματα
Projeto IoT - Sistema Detector De Fumaça: 5 Βήματα

Βίντεο: Projeto IoT - Sistema Detector De Fumaça: 5 Βήματα

Βίντεο: Projeto IoT - Sistema Detector De Fumaça: 5 Βήματα
Βίντεο: Detecção de incêndio - Como instalar os dispositivos periféricos (Detectores, acionadores e sirenes) 2024, Ιούλιος
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

Εισαγωγή

O Sistema Detector de Fumaça συνίσταται σε μια λύση στο IoT που επιτρέπει την παρακολούθηση των συναγερμών και την εγκατάσταση των υπολειμμάτων των εφαρμογών Android. Μπορείτε να χρησιμοποιήσετε έναν μικροελεγκτή που σας επιτρέπει να επικοινωνείτε με ένα νέο δίκτυο Wi -Fi, να ελέγχετε τον αισθητήρα σας. Σχετικά με την παρακολούθηση της παρακολούθησης της παρακολούθησης των συστημάτων και των εφαρμογών που λαμβάνουν ειδοποιήσεις μέσω Telegram em caso de ativação do alarme de incêndio.

Desenvolvedores

  • Μπρούνο Γκονσάλβες Περέιρα
  • Ζοάο Πάολο Ταδέου Μπόρχες Πάιβα
  • Juliana Guimarães Soares Buére
  • Willan Alexander Condor Asenjo

Βήμα 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: Placa de desenvolvimento que combina o chip ESP8266 (επικοινωνία WiFi), uma interface usb-serial και regulador de tensão 3.3V. Ένας προγραμματισμός που μπορεί να χρησιμοποιηθεί και να χρησιμοποιήσει ένα IDE do Arduino, μπορεί να χρησιμοποιηθεί μέσω του micro-usb.
  • Sensor de Gás MQ-135 para Gases Tóxicos: O Sensor de Gás MQ-135 é um módulo capaz de detear vários tipos de gases tóxicos como amônia, dióxido de carbono, benzeno, óxido nítrico, e também fumaça ou
  • Led vermelho
  • Led verde
  • 2 Αντίσταση 200Ω
  • Protoboard e jumpers para conexão e teste do protótipo

Βήμα 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 vi um vi plat plat plat o o o o o arm arm arm arm arm arm arm protocol protocol protocol protocol protocol protocol protocol protocol protocol protocol protocol protocol protocol protocol Internet Internet Internet Internet Internet Internet Internet Internet ThingSpeak permite agregar, visualizar και analisar fluxos de dados na nuvem.

O ThingSpeak είναι διαθέσιμη για τη δωρεάν παροχή υπηρεσιών που μπορούν να χρησιμοποιηθούν (δεν είναι διαθέσιμες για 8 χιλιάδες άνδρες ή άντρες). Για την εφαρμογή των εμπορικών προγραμμάτων, που αφορούν τις διαφορετικές άδειες χρήσης των προτύπων: Standard, Academic, Student and Home.

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 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:

  • Πεδίο 1: Concentração de gás
  • Πεδίο 2: Alarme
  • Πεδίο 3: Comando desligar

Για την "Ιδιωτική προβολή" υπάρχει πιθανότητα να εμφανιστεί ως απεικόνιση του 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 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 é criado com um identificador único (Κανάλι Αναγνωριστικό) που είναι εφικτό να αναγνωριστεί για το περιβάλλον και τη διαμονή του παιδιού. Na aba "API Keys" s dispo disponibilizadas as chaves para escrita (Write API Key) και leitura (Read API Key) de dados no canal. Σύντομα, μπορείτε να διαχωρίσετε τα αιτήματα API (HTTP λαμβάνουν αιτήματα), καθώς και να χρησιμοποιηθούν για το περιβάλλον και το απαιτούμενο περιβάλλον.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Já as API ζητάει να χρησιμοποιήσει το πρόγραμμα και να χρησιμοποιήσει το Android.

Βήμα 3: Aplicativo - MIT App Inventor

Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT
Εφαρμογή - εφευρέτης εφαρμογών MIT

Εφαρμογή για την παρακολούθηση της χρήσης του συστήματος χρήσης του MIT App Inventor. O MIT App Inventor είναι ένας δωρεάν περιβαλλοντικός ιστότοπος που μπορεί να χρησιμοποιηθεί για να δημιουργήσει μια ολοκληρωμένη εφαρμογή εφαρμογών για το Ινστιτούτο Τεχνολογίας της Μασαχουσέτης (MIT). Εγκαταστήστε το λογισμικό που χρησιμοποιεί εφαρμογές για Android και iOS.

Προς το παρόν, μπορείτε να επικοινωνήσετε με το MIT App Inventor, και να προωθήσετε την εφαρμογή του IotProject_SmokeDetector.

Na tela de Designer είναι διαθέσιμος ως μοναστήρι ως telas do aplicativo, επιλέγοντας και συστατικά στοιχεία που απαιτούνται (botões, ετικέτες, εικόνες, κλπ) χωρίς μενού πλάγια esquerdo (παλέτα). Παράλληλα, πρέπει να επιλέξετε πολλές επιλογές, μπορείτε να διαμορφώσετε άλλες ρυθμίσεις των πυρήνων, να ρυθμίσετε, να καταχωρίσετε, να μην εισέλθετε έξω από το μενού (πλευρές).

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 URL και να μάθετε πώς μπορείτε να αντιγράψετε τα "API Keys". Quando os dados s reto retornados, o dado do sensor αντιστοιχούν και συγκεντρώνουν το CO2 και είναι πολύ πιθανό να εφαρμοστούν. Já o dado do alarme é testado:

  1. 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 (Button1) é habilitado.
  2. Se o alarme não estiver acionado (alarmData = 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 alarme (Button1) é desabilitado.

Quando o botão de desligar alarme (Button1) για clicado, ή aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. Πηγαίνετε εδώ για να χρησιμοποιήσετε το ThingSpeak και να χρησιμοποιήσετε το URL για τις βασικές πληροφορίες που θα σας βοηθήσουν να αντιγράψετε το "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: conectado ao GND do módulo ESP8266
  • 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) και outra perna do resistor
  • Conectar o catodo do LED (negativo - 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) και outra perna do resistor
  • Conectar o catodo do LED (negativo - 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:

  • Inicializa ένα σίριαλ porta
  • Inicializa os έξοδοι (pinos dos leds)
  • Conecta de 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 του διαχειριστή πίνακα μια διεύθυνση URL

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

É είναι απαραίτητο να προσδιορίσετε 2 παραλλαγές για τη σύνδεση:

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

Για δοκιμή σύνδεσης WiFi, αντιγραφής ή εγγραφής αρχείων, αλλάξτε ως παραλλαγές για τη σύνδεση WIFI καταλόγων που απαιτούνται για να ανεβάσετε το αρχείο χωρίς ESP8266.

#include /********************** ALTERE AS DEFINIÇÕES ABAIXO ****************** *******/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi WiFiClient // Funchão que faz a conexão wifi void ConnectToWiFi (void) {// 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 (); }

Ο Lendo dados κάνει αισθητήρα MQ135

Παρακαλώ σημειώστε τον αισθητήρα MQ135, προμηθευτείτε τη βιβλιοθήκη MQ135.h και adicioná-la na IDE do Arduino através do menu Skecth-> Include Library-> Add. ZIP Library.

Αποθήκευση, αντίγραφο του código abaixo e faça upload no módulo ESP8266 através do cabo micro-usb. Πραγματοποιήστε μια πραγματική συγκέντρωση CO2 em ppm και imprim os valores lidos χωρίς σειριακή οθόνη.

#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Setup da placa void setup () {Serial.begin (115200); καθυστέρηση (50)? } // Κύριος βρόχος κενό βρόχου () {// 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, κάντε κλικ στο instalar e fechar.

A versão gratuita do ThingSpeak, μεταφορτώστε τα αρχεία σας για 20 δευτερόλεπτα, αλλά δεν είναι απαραίτητο να πραγματοποιήσετε μια δοκιμή που θα σας βοηθήσει να προχωρήσετε στο περιβάλλον σας.

Για την επικοινωνία του ThingSpeak είναι απαραίτητο να καθοριστεί ως vará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, αντίγραφο 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 DEFINIÇÕES ABAIXO ***************** *********/ #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede 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 = 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; ανυπόγραφο μακρύ currentTime; Πελάτης WiFiClient. // Funchão que faz a conexão wifi void ConnectToWiFi (void) {// Configura root certificate για api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // 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 (πελάτης); } // Κύριος βρόχος κενού βρόχου () {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 = currentTime; } καθυστέρηση (20000); }

Ενημερωθείτε για το Telegram

Primeiro, συμβουλευτείτε την Biblioteca do Telegram no Arduino IDE. Vá em Tools-> Boards-> Boards Manager digite UniversalTelegramBot, κάντε κλικ στο instalar e fechar.

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 για 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 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 και του comunicação com στο Telegram (BOT_TOKEN e CHAT_ID) και να μην ανεβάσετε κανένα αρχείο 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 teleg ορίστε CHAT_ID "CHANGEYOURCHATID" // Αναγνωριστικό για συνομιλία με τηλεγράφημα X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot bot (BOT_TOKEN, clientSecure). // Προειδοποίηση για το Telegram void SendTelegramNotification (Μήνυμα συμβολοσειράς) {bot.sendMessage (CHAT_ID, μήνυμα, ""); Serial.println (μήνυμα); } // Funchão que faz a conexão wifi void ConnectToWiFi (void) {// Configura root certificate για api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // 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."); }

Συνιστάται: