Სარჩევი:

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 ნაბიჯი
ვიდეო: Smoke Detector Without Arduino 2024, ივლისი
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

გაცნობა

O Sistema Detector de Fumaça შედგება ჩვენი io solução IoT com ან ობიექტური ნებართვისა და სიგნალიზაციის მონიტორინგის ნებართვისგან, რომელიც მოიცავს Android– ის აპლიკაციების გამოყენებას. ეს არის ჩვენი ძირითადი მიკროკონტროლი, რომელიც დაკავშირებულია ახალ კომუნიკაციებთან და ახალი WiFi ქსელებით, რაც ხელს შეუწყობს სენსორის დეფექციას. შეინარჩუნა შემდგომი მონიტორინგი ან სისტემა, რომლის საშუალებითაც ჩვენ ვიღებთ შეტყობინებებს Telegram– ის საშუალებით, როდესაც ჩვენ ვაგზავნით შეტყობინებებს.

Desenvolvedores

  • ბრუნო გონსალვეს პერეირა
  • ჟოაო პაულო ტადეუ ბორხეს პაივა
  • ჯულიანა გიმარიეს სოარეს ბუერი
  • ვილან ალექსანდრე კონდორ ასენჯო

ნაბიჯი 1: Materiais Utilizados

მატერიის უტილიზადოსი
მატერიის უტილიზადოსი
მატერიის უტილიზადოსი
მატერიის უტილიზადოსი
მატერიის უტილიზადოსი
მატერიის უტილიზადოსი
მატერიის უტილიზადოსი
მატერიის უტილიზადოსი

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

  • Módulo WiFi ESP8266 NodeMcu ESP-12: პლაცენტის დაყენება შესაძლებელია ჩიპთან ESP8266 (WiFi კავშირი), USB ინტერფეისის USB სერიული და დაძაბულობის 3.3V გამოყენებით. პროგრამული უზრუნველყოფის კოდი, რომელიც იყენებს IDE– ს Arduino– ს, კაბინის მიკრო USB– ის საშუალებით.
  • სენსორი de Gás MQ-135 პარაგრაფის გაზებისათვის: O Sensor de Gás MQ-135 é um módulo capaz de detear vários tipos de gazs tóxicos como amônia, dióxido de carbono, benzeno, óxido nítrico, e também fumaça ou
  • ლედ ვერმელჰო
  • ლედ ვერდე
  • 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 არის პლატფორმის IoT სერვისი, რომლის საშუალებითაც შეგიძლიათ გამოიყენოთ HTTP და MQTT პროტოკოლი, რათა გამოიყენოთ ინტერნეტი, როგორც ადგილობრივად. ThingSpeak permite agregar, visualizar და analisar fluxos de dados na nuvem.

O ThingSpeak არის საჭირო იმისათვის, რომ მიიღოთ უფასო სერვისები, რომლებიც დაკავშირებულია კომერციულ მომსახურებასთან (3 მილიონ ადამიანზე მეტი ან მეტი სიახლოვისთვის 8000 მამაკაცისათვის). გამოიყენება კომერციული მიზნებისათვის, რომლებიც განსხვავდება ყოველწლიური ლიცენზირების ლიცენზიით: სტანდარტული, აკადემიური, სტუდენტური და საშინაო.

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 for 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 არის კრიტიკოსი umnicicador único (არხის ID), რაც შესაძლებელს გახდის იდენტიფიცირდეს გარემოსა და თავისუფალ გარემოში. არსებობს "API კლავიშები", რომლებიც არ იზიარებენ როგორც ესკრატიას (ჩაწერეთ API გასაღები) და ასევე (წაიკითხეთ API გასაღები) არხიდან. გარდა ამისა, თქვენ შეგიძლიათ გამოიყენოთ როგორც API მოთხოვნები (HTTP მიიღებს მოთხოვნებს), როდესაც ჩვენ ვცდილობთ გამოვიყენოთ ჩვენი მოთხოვნები, რათა გავითვალისწინოთ ის, თუ რა არის საჭირო.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. როგორც API ითხოვს პროგრამული უზრუნველყოფის გამოყენებას Android- ისთვის.

ნაბიჯი 3: Aplikativo - MIT აპლიკაციის გამომგონებელი

Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი
Aplicativo - MIT აპლიკაციის გამომგონებელი

გამოიყენეთ მონიტორინგის სისტემა და გამოიყენეთ MIT აპლიკაციის გამომგონებელი. O MIT აპლიკაციის გამომგონებელი და ჩვენი ვებ – გვერდი უფასოა, თუ როგორ უნდა გავააქტიუროთ მასაჩუსეტსის მასაჩუსეტსის ტექნოლოგიური ინსტიტუტი (MIT). Android პროგრამის Android და iOS პროგრამული უზრუნველყოფის პროგრამის გამოყენებით

მოვიდა, რაც შეიძლება გამოყენებულ იქნას არა MIT აპლიკაციის გამომგონებლის, არამედ სხვა IotProject_SmokeDetector– ის გამოქვეყნების მიზნით.

დიზაინერებს აქვთ ისეთი მონასტერი, როგორიც არის თელა, რომელიც გამოიყენება, აუცილებელია კომპონენტების შერჩევისთვის (ბოტები, ეტიკეტები, სურათები და ა.შ.) მენიუს გვერდითი ესკვერდო (პალიტრა). რა თქმა უნდა, ეს არის კომპონენტები, რომლებიც შეიცავს ბირთვების, კონფიგურაციის და სხვა სახის კონფიგურაციის შესაძლებლობას, გვერდითი მიმართულების გარეშე მენიუს გარეშე (თვისებები).

ბლოკები არის პროგრამული უზრუნველყოფის პროგრამული უზრუნველყოფის გამოყენება. პროგრამული უზრუნველყოფა feita através de blocos, გაადვილებულია და მიზნად ისახავს პირველ ინიციატივებს.

ექსპლუატაციის გაკეთება

შეიძლება შეიცვალოს ადგილმდებარეობის შესახებ: alarmData და სენსორი მონაცემები.

თქვენ უნდა შეასრულოთ 1 საათი (განსაზღვრეთ საათის 1), გამოიყენეთ ეს მოთხოვნა არხის საშუალებით ThingSpeak at URL– ების მითითებით, რომლითაც შეგიძლიათ დააკოპიროთ "API Keys". Quando os dados s reto retornados, o dado do sensore korrespondente à კონცენტრაცია de gás CO2 most mostrado na tela do aplicativo. 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 menagagem "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Button1) და desabilitado.

Quanto o botão de desligar alarme (Button1) დაწკაპუნებისთვის, გამოიყენეთ escreverá 1 არა კამპანიის სფერო 3: გამოაქვეყნეთ კრიტიკა არა ThingSpeak, მიუთითეთ ის, თუ როგორ უნდა გამოიყენოთ ეს. გააცნობიერე, თუ როგორ გამოიყენებ ThingSpeak– ს URL– ების შესანახად, რომლითაც დაგჭირდებათ კოდირებული კოდი API– სთვის "API Keys".

ნაბიჯი 4: Montagem Do Protótipo

მონტაგემ დო პროტოტიპო
მონტაგემ დო პროტოტიპო

O protótipo foi montado არ 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 (პოზიტივი - მაიორ პერნა) და გარე პერნა დოზის რეზისტორი
  • Conectar o catodo do LED (უარყოფითი - მენტორი 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 (პოზიტივი - მაიორ პერნა) და გარე პერნა დოზის რეზისტორი
  • Conectar o catodo do LED (უარყოფითი - მენტორი perna) no GND do módulo ESP8266

ნაბიჯი 5: პროგრამის გაკეთება მიკროკონტროლერისთვის

O microcontrolador do módulo ESP8266 foi programado utilisando IDE do Arduino (faça or download aqui).

თქვენ შეგიძლიათ გამოიყენოთ სრული პროგრამა, რომელიც არ გამოიყენება თქვენი პროგრამის დასრულების გარეშე, არ არსებობს სასწავლო გეგმა (Iot_project.ino). O código tem duas funções principais: setup e loop.

Fluxo do setup:

  • ოფიციალური პორტალის სერიალი
  • Inicializa os შედეგები (pinos dos leds)
  • Conecta à rede WiFi
  • Inicializa o ThingSpeak

Fluxo do loop:

  • Lê os dados do სენსორი 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
  • ლეო დედოფალი "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

ასევე, ინსტრუმენტები-> დაფები-> დაფების მენეჯერი შეაფასეთ ESP8266, დააწკაპუნეთ ჩვენს ინსტალატორზე.

აუცილებელია განვსაზღვროთ 2 ვარიანტი, რათა შეცვალოთ და შეცვალოთ:

  • 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 WiFi კლიენტის კლიენტი; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi. დასაწყისი (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 (); }

ლენდო დადო აკეთებს სენსორს MQ135

გამოიყენეთ სენსორი MQ135, მენიუ უნდა შეიცავდეს ბიბლიოთეკას MQ135.h და ad idá-la na IDE do Arduino através do menu Skecth-> Include Library-> Add. ZIP ბიბლიოთეკის დამატება.

დეპონირება, ასლი და გადატვირთვა, ფაილების ატვირთვა ESP8266 არ გამოიყენება micro-usb კაბოებში. თქვენ გაეცანით CO2 em ppm– ის კონცენტრაციას და იმუშავებს, რაც არ იძლევა სერიულ მონიტორს.

#მოიცავს "MQ135.h" #განსაზღვრა 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. გამოიყენეთ ინსტრუმენტები-> დაფები-> დაფების მენეჯერი ThingSpeak, დააწკაპუნეთ ჩვენს ინსტალატორზე და ასევე.

უფასოდ უფასოდ ThingSpeak, ატვირთეთ ფაილები 20 წუთის განმავლობაში, მაგრამ ასევე არ არსებობს ტესტები, რომლებიც საშუალებას მოგცემთ შეცვალოთ თქვენი გარემოება.

Para comunicar com o ThingSpeak არის საჭირო განსაზღვრული როგორც 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

შეაფასეთ კომუნიკაციის ფუნქცია ThingSpeak, დააკოპირეთ ან შეაერთეთ, შეცვალეთ, როგორც ვარაუდი, რომ შეცვალოთ და შეცვალოთ, როგორც სხვადასხვა სიის ატვირთვა და გადატვირთვა ESP8266 არ არის.

#მოიცავს #მოიცავს /*************************************************************************** *********/ #განსაზღვრეთ WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #განსაზღვრეთ WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #განსაზღვრეთ THINGSPEAK_WRITE_INTERVAL em 000 ms // ინტერვალი 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; ხელმოუწერელი long currentTime; WiFiClient კლიენტი; // Função que faz a conexão wifi void ConnectToWiFi (void) {// კონფიგურაციის root სერთიფიკატი api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& სერტიფიკატი); // Tenta conectar ao wifi Serial.println ("Conectando de rede WiFi"); WiFi. დასაწყისი (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 = მიმდინარე დრო; } დაგვიანებით (20000); }

ეს არის Telegram

Primeiro, adlikee a Biblioteca do Telegram no Arduino IDE. გამოიყენეთ ინსტრუმენტები-> დაფები-> დაფების მენეჯერი UniversalTelegramBot, დააწკაპუნეთ ჩვენს ინსტალატორზე და ასევე.

Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, procure por botfather e clique nele. ერთი ჯანსაღად ადევნებს აბრირს და ხმამაღლა გვთავაზობს კლიკატს, რომელიც არ არსებობს. 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 link to acessar o bot e o token do bot. Salve o token, porque você precisará dele para que o ESP8266 possa enviar notificações.

ჩვენ ვიცით, 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 e 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" // პირადობის მოწმობა ტელეგრამისათვის 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. დასაწყისი (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."); }

გირჩევთ: