جدول المحتويات:

Projeto IoT - جهاز كشف سيستيما دي فوماكا: 5 خطوات
Projeto IoT - جهاز كشف سيستيما دي فوماكا: 5 خطوات

فيديو: Projeto IoT - جهاز كشف سيستيما دي فوماكا: 5 خطوات

فيديو: Projeto IoT - جهاز كشف سيستيما دي فوماكا: 5 خطوات
فيديو: Top 10 IoT Projects 2023 | Smart IoT Projects | Applications Of IoT | Simplilearn 2024, شهر نوفمبر
Anonim
Projeto IoT - جهاز كشف سيستيما دي فوماكا
Projeto IoT - جهاز كشف سيستيما دي فوماكا

انترودوساو

O Sistema Detector de Fumaça يتألف من حلول إنترنت الأشياء التي تسمح لك بمراقبة أجهزة الإنذار في أماكن الإقامة في تطبيقات Android. O projeto é baseado em um microcontrolador que se comunica com a nuvem pela rede WiFi، enviando os sinais detados by um sensor de fumaça. O proprietário da stayência consegue monitorar o sistema através de um aplicativo e recebe notificações عبر Telegram em caso de ativação do alarme de incêndio.

ديسينفولفولوريس

  • برونو غونسالفيس بيريرا
  • جواو باولو تادو بورجيس بايفا
  • جوليانا غيماريش سواريس بيوري
  • ويلان ألكسندر كوندور أسينجو

الخطوة 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 (comunicação WiFi) ، واجهة uma usb-serial e um regulador de tensão 3.3V. A programação pode ser feita usando a IDE do Arduino، através da comunicação via cabo micro-usb.
  • Sensor de Gás MQ-135 بالنسبة للغازات Tóxicos: O Sensor de Gás MQ-135 é um módulo capaz de detectar vários tipos de gases tóxicos como amônia، dióxido de carbono، benzeno، óxido nítrico، e também fumaça ou á também fumacool.
  • ليد فيرميلهو
  • قاد الأخضر
  • 2 يقاوم 200 درجة
  • لاعبي Protoboard و 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 serviço de plataforma IoT para armazenar e recuperar dados usando o Protocolo HTTP e MQTT pela Internet or by meio de uma rede local. الشيء يسمح بالكلام ، والتخيل ، والتحليل المتدفق من dados na nuvem.

O ThingSpeak está disponível como um serviço free for pequenos projetos não comerciais (menos de 3 milhões de mensagens for ano ou aproximadamente 8000 mensagens por dia). الفقرة projetos maiores ou aplicações comerciais، quatro tipos diferentes de licença anual são oferecidos: Standard، Academic، Student and Home.

Configuração de um canal no ThingSpeak

Após criar uma conta no ThingSpeak، é mustário criar um canal. Os canais armazenam os dados enviados de umerminado 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: المنبه
  • الحقل 3: Comando desligar

Na aba "Private View" é Posível criar as 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 (Channel ID) que possible sua identificação para envio e leitura de dados. Na aba "API Keys" são disponibilizadas مثل chaves para escrita (اكتب مفتاح API) و leitura (قراءة مفتاح API) من dados no canal. Além disso، também são disponibilizadas كطلبات API (طلبات الحصول على HTTP) que também podem ser usadas para envio e Requisição de dados.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Já مثل واجهة برمجة التطبيقات (API) تطلب استخدامًا حقيقيًا في برنامج تشغيل Android.

الخطوة الثالثة: Aplicativo - MIT App Inventor

Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT
Aplicativo - مخترع تطبيقات MIT

يمكنك استخدام تطبيق MIT App Inventor. O MIT App Inventor é um ambiente web gratuito e de código aberto para desenvolvimento Integrado de aplicativos mantido pelo Massachusetts Institute of Technology (MIT). يسمح لك بتثبيت البرامج على تطبيقات Android و iOS.

Para começar، após criar uma conta no MIT App Inventor، criou-se um projeto com o nome IotProject_SmokeDetector.

لا توجد قائمة للتطبيقات الجانبية (لوحة). Para cada um dos componentes selecionados، é possible alternar configurações de cores، tamanho، posição، entre outras no menu lateral direito (Properties).

كتل Na tela é feita toda a lógica de programação do aplicativo. برنامج é feita através de blocos ، يُسهِم في إعداد الفقرة غير الربحية.

شرح دو código

ادعية متنوعة: التنبيه ، البيانات ، الاستشعار ، البيانات.

A cada 1 segundo (تعريف الساعة 1) ، o طلب تطبيق faz um de dados no canal ThingSpeak através da URL de leitura de dados que pode ser copiada na aba "API Keys". Quando os dados são retornados، o dado do sensor developerente à Concentração de gás CO2 é 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 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) for clicado، o aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak، indicando que o comando de desligar alarme foi acionado. O dado é enviado ao ThingSpeak através da URL para escrita de dados que pode ser copiada na aba "API Keys".

الخطوة 4: Montagem Do Protótipo

مونتاجيم دو بروتوتيبو
مونتاجيم دو بروتوتيبو

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

مستشعر MQ135

  • Pino AO: conectado ao pino AD0 do módulo ESP8266
  • بينو GND: conectado ao GND do módulo ESP8266
  • بينو Vcc: conectado ao pino VIN do módulo ESP8266

الصمام الأخضر

  • Conectar uma perna do المقاوم 200Ω no pino D5 do módulo ESP8266
  • Conectar o anodo do LED (positivo - maior perna) na outra perna do المقاوم
  • Conectar o catodo do LED (نيجاتيفو - مينور بيرنا) لا GND do módulo ESP8266

LED فيرميلهو

  • Conectar uma perna doresistor de 200Ω no pino D7 do módulo ESP8266.
  • Conectar o anodo do LED (positivo - maior perna) na outra perna do المقاوم
  • Conectar o catodo do LED (نيجاتيفو - مينور بيرنا) لا GND do módulo ESP8266

الخطوة 5: Programação Do Microcontrolador

O microcontrolador do módulo ESP8266 foi programado utilizando a 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 مسلسل بورتا
  • مخرجات نظام التشغيل Inicializa (مصابيح LED Pinos)
  • Conecta à rede WiFi
  • Inicializa o ThingSpeak

حلقة عمل Fluxo:

  • مستشعر Lê os dados do MQ135
  • Verifica se a concração de gás CO2 ultrapassa o limite selectido (مثالي: CO2 <= 700 جزء في المليون)

    • Liga o Alarme (LED vermelho) ، desliga o LED de status (verde) e envia notificação pelo Telegram se o valor estiver acima do limite
    • Desliga o Alarme (LED vermelho) e 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) e 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

Abra a IDE do Arduino ، vá em File-> Preferences eadicione em عنوان URL لمدير مجلس الإدارة الإضافي

قم بتشغيل الأدوات-> اللوحات-> مدير اللوحات الرقمية ESP8266 ، قم بالتثبيت والتثبيت.

ضرورة التحديد 2 المتغيرات للفقرة المتعارف عليها:

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

Para teste de conexão WiFi، copie o código abaixo، altere as variáveis para conexão WIFI listadas acima e faça download no módulo ESP8266.

#include / ************************ بدلًا من تعريفات ABAIXO ********************* ******* / #define WIFI_SSID "YOUR WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi WiFiClient client؛ // Função que faz a conexão wifi void ConnectToWiFi (باطل) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi") ؛ WiFi.begin (WIFI_SSID ، WIFI_PASSWORD) ؛ while (WiFi.status ()! = WL_CONNECTED) {delay (500) ؛ Serial.print (".") ؛ } Serial.println ("") ؛ Serial.println ("WiFi conectado com sucesso!") ؛ Serial.println ("عنوان IP:")؛ Serial.println (WiFi.localIP ()) ؛ } // Setup da placa void setup () {Serial.begin (115200)؛ تأخير (50) ؛ // Conecta ao wifi ConnectToWiFi () ؛ }

ليندو دادوس يفعل حساس MQ135

الفقرة ler os dados do sensor MQ135 ، 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، copie o código abaixo e faça تحميل no módulo ESP8266 através do cabo micro-usb. لا توجد شاشة تسلسلية.

# تضمين "MQ135.h" # تعريف SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue؛ // إعداد إعداد da placa void () {Serial.begin (115200) ؛ تأخير (50) ؛ } // Loop main void loop () {// 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.

نسخة مجانية من ThingSpeak ، aceita download de dados apenas a cada 20 segundos، por isso، no código deve-se testar se é o momento correto de enviar os dados.

Para comunicar com o ThingSpeak é Requá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، copie o código abaixo، altere as variáveis para conexão na rede e as variáveis listadas acima e faça download no módulo ESP8266.

#include # include / ************************** بدلًا من تعريفات 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 20000 // Intervalo em ms entre envios de dados ao ThingSpeak / ************************** ALTERE AS VARIÁVEIS ABAIXO ******************** ******** / بلا توقيع طويل myChannelNumber = 0000000 ؛ // Número do canal do ThingSpeak const char * myWriteAPIKey = "your write api key"؛ // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "your read api key"؛ // Chave de leitura do canal do ThingSpeak بدون توقيع long lastTime؛ الوقت الحالي الطويل بدون توقيع ؛ عميل WiFiClient ؛ // Função que faz a conexão wifi void ConnectToWiFi (باطل) {// Configura root Certificate para api.telegram.org configTime (0، 0، "pool.ntp.org")؛ clientSecure.setTrustAnchors (& cert) ؛ // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi") ؛ WiFi.begin (WIFI_SSID ، WIFI_PASSWORD) ؛ while (WiFi.status ()! = WL_CONNECTED) {delay (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 (العميل) ؛ } // Loop main void loop () {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 Telegram

Primeiro ، adicione a 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 ، تدبير من قبل الأب والطفلة nele. A janela a seguir deve abrir e você será solicitado a clicar no botão Iniciar. Digite / newbot e siga مثل 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ê ensberá 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 الممكن أن تكون إشعارات بيئية.

Em seguida، em sua conta do Telegram، pesquise IDBot. Inicie uma Conversa com esse bot e digite / getid. Vocêeceberá uma resposta com seu ID de usuário. بطاقة التعريف ، العنوان المعلق.

Para teste do envio de notificação pelo telegram، copie o código abaixo، altere as variáveis de definições para conexão WIFI e para comunicação com o Telegram (BOT_TOKEN e CHAT_ID) e faça download no módulo ESP8266.

#include # include # include / ************************************************************************************************************* ******* / #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 # عرّف CHAT_ID "CHANGEYOURCHATID" // ID do chat do telegram X509List cert (TELEGRAM_CERTIFICATE_ROOT) ؛ عميل WiFiClientSecure ؛ برنامج UniversalTelegramBot (BOT_TOKEN، clientSecure) ؛ // Envia notificação ao Telegram void SendTelegramNotification (رسالة سلسلة) {bot.sendMessage (CHAT_ID ، message ، "") ؛ Serial.println (رسالة) ؛ } // Função que faz a conexão wifi void ConnectToWiFi (باطل) {// Configura root Certificate para api.telegram.org configTime (0، 0، "pool.ntp.org")؛ clientSecure.setTrustAnchors (& cert) ؛ // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi") ؛ WiFi.begin (WIFI_SSID ، WIFI_PASSWORD) ؛ while (WiFi.status ()! = WL_CONNECTED) {delay (500) ؛ Serial.print (".") ؛ } Serial.println ("") ؛ Serial.println ("WiFi conectado com sucesso!") ؛ Serial.println ("عنوان IP:")؛ 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.") ؛ }

موصى به: