فهرست مطالب:

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 شامل em solução IoT com یا objetivo برای اجازه یا نظارت بر هشدارهای موجود در برنامه های باقی مانده از برنامه های کاربردی Android است. با استفاده از یک سیستم میکروکنترلر می توانید ارتباط خود را با یک وای فای وصل کنید و از طریق سنسور فوماسا از آن استفاده کنید. O proprietário da residência consegue monitorar or sistema através de um aplicativo e recebe notificationsaç viaes from Telegram em caso de ativação do alarme de incenndio.

Desenvolvedores

  • برونو گونسالس پریرا
  • ژائو پائولو تادئو بورخس پایوا
  • جولیانا گیمارس سوارس بوئر
  • ویلان الکساندر کاندور آسنجو

مرحله 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 مخابراتی) ، واسط usb-serial و um regulador de tensão 3.3V. یک برنامه کاربردی برای استفاده از IDE و 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 gazs tóxicos como amônia ، dioksid 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 é sum serviço de plataforma IoT for armazenar و recuperar dados usando o protoo HTTP و MQTT به اینترنت یا برای استفاده از مکان محلی مراجعه کنید. ThingSpeak permite agregar، visualizar e 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 canal. 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 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

با استفاده از "نمای خصوصی" می توانید criar را به عنوان visualizações de 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 (شناسه کانال) que possibilita sua identificação para envio e leitura de dados. Na aba "API Keys" به عنوان chaves para escrita (نوشتن کلید API) و leitura (خواندن کلید API) در کانال بدون کانال. Além disso، também são disponibilizadas as API Requests (درخواست های HTTP دریافت می شود) در صورت استفاده از محیط پیش نیاز و نیاز به دادساز ، می توانید از آنها استفاده کنید.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Já 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 App مخترع و محیط وب را به صورت رایگان برای برنامه های کاربردی خود در نظر بگیرید تا بتوانید از طریق برنامه های کاربردی موسسه فناوری ماساچوست (MIT) استفاده کنید. برای فعال کردن برنامه های کاربردی برای Android و iOS استفاده کنید.

برای استفاده از این برنامه می توانید از هیچ برنامه MIT App Inventor استفاده نکنید ، IriProject_SmokeDetector را به طور کامل اجرا کنید.

Na tela de Designer به عنوان telas do aplicativo ، selecionando os componentes Requireios (Botões ، برچسب ها ، تصاویر و غیره) بدون منوی جانبی esquerdo (Palette) وجود دارد. Para cada um dos componentes selecionados ، و امکان تغییر پیکربندی هسته ها ، tamanho ، posição ، خارج از منو بدون منوی جانبی direito (خواص).

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 بار دیگر (مشخصاً ساعت 1) را درخواست کنید و درخواست کنید که از کانال هیچ چیزی استفاده نکنید ThingSpeak at URLs leitura de dados que pode ser copiada na aba "API Keys". Quando os dados são retornados ، o dado do sensorrespondente à focusração 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) ، یا 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 ، o aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak ، نشان می دهد که باید از چه چیزی استفاده کنید. از طریق برنامه 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

  • Conectar uma perna do resistor de 200Ω no pino D5 do módulo ESP8266
  • Conectar o anodo do LED (positivo - maior perna) و خارج از منزل مقاومت
  • 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) و خارج از منزل مقاومت
  • 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 در Arduino (faça o download aqui) استفاده کنید.

O código fonte completeo utilisado no projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções principais: راه اندازی و حلقه.

تنظیم Fluxo do:

  • Inicializa یک سریال پورتا
  • خروجی های Inicializa os (pinos dos leds)
  • وای فای Conecta à rede
  • 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) و لیگا یا 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) و لیگا یا 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 https://arduino.esp8266.com/stable/package_esp8266com_index.json را وارد کنید.

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

É defin defin á á á á re:

  • WIFI_SSID: nome da rede WiFi que você deseja conectar seu sistema
  • 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 a biblioteca MQ135.h e 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. می توانید از 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. Vá em Tools-> Boards-> Boards Manager digite ThingSpeak، clique em instalar e fechar.

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 ، کپی یا استفاده از آن را تغییر دهید ، به عنوان تغییرات پیشین در تغییر و تغییر در لیست بارگذاری EPS8266 تغییر دهید.

#شامل #include /********************** 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 20000 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؛ جریان طولانی بدون علامت؛ مشتری WiFiClient ؛ // Função que faz a conexão wifi void ConnectToWiFi (void) {// گواهی ریشه پیکربندی برای 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) ؛ }

Enviando notificação pelo تلگرام

Primeiro ، علاوه بر Biblioteca do Telegram no Arduino IDE. Vá em Tools-> Boards-> Boards manager digite UniversalTelegramBot، clique em 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 for 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 و ارتباطات در تلگرام (BOT_TOKEN e CHAT_ID) و بارگذاری فاقد هرگونه بارگیری ESP8266.

#include #include #include /******************* ALTERAR DEFINIÇÕES ABAIXO ******************* *******/ #تعریف WIFI_SSID "YIFUR WIFI SSID" // Nome da rede wifi #تعریف WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi #definine 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) {// گواهی ریشه پیکربندی برای 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.")؛ }

توصیه شده: