Orodha ya maudhui:

Projeto IoT - Kigunduzi cha Sistema De Fumaça: Hatua 5
Projeto IoT - Kigunduzi cha Sistema De Fumaça: Hatua 5

Video: Projeto IoT - Kigunduzi cha Sistema De Fumaça: Hatua 5

Video: Projeto IoT - Kigunduzi cha Sistema De Fumaça: Hatua 5
Video: Обзор преобразователя LTC3780 Buck Boost 10A: отказал 2 модуля 2024, Julai
Anonim
Projeto IoT - Kigunduzi cha Sistema De Fumaça
Projeto IoT - Kigunduzi cha Sistema De Fumaça

Utangulizi

Kichunguzi cha Sistema cha Fumaça kinajumuisha utaftaji IoT com o objetivo de permitir o monitorament of de alarmes de incêndio de residências através de um aplicativo Android. Je! Unapata msingi wa microcontrolador kwa kutumia njia mpya ya kutumia WiFi, utaftaji wa kifaa chako. Umiliki wa mali unapewa nafasi ya kufuatilia kwa kutumia mfumo wa ufuatiliaji wa vifaa kwa njia ya simu na kupokea taarifa kupitia Telegram kwa njia ya Televisheni inayotumiwa na watu wengine.

Desenvolveores

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

Hatua ya 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 interface usb-serial na umadhibiti wa tensão 3.3V. Programu inaweza kutumika kwa IDE kufanya Arduino, kwa kutumia comunicação kupitia cabo micro-usb.
  • Sensor de Gás MQ-135 para Gases Tóxicos: O Sensor de Gás MQ-135 unapewa habari juu ya utaftaji wa vifaa vya gesi kwa gesi, dióxido de carbono, benzeno, oksino nítrico, e também fumaça ou álcool.
  • Iliyoongozwa vermelho
  • Iliyoongozwa verde
  • 2 Inarudisha 200Ω
  • Protoboard na kuruka kwa kielelezo na majaribio hufanya protótipo

Hatua ya 2: Sanidi 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 for armazenar and recuperar dados usando o protocolo HTTP and MQTT pela Internet ou por meio de uma rede local. ThingSpeak ruhusu agregar, visualizar na analisar fluxos de dados na nuvem.

O ThingSpeak ni sehemu ya huduma inayotolewa kwa ajili ya kutoa huduma kwa wahusika wa programu (menos de 3 milhões de mensagens por o oproximadamente 8000 mensagens por dia). Para projetos maiores ou aplicações comerciais, quatro tipos diferentes de licença anual são oferecidos: Kiwango, Kimasomo, Mwanafunzi na Nyumba.

Configuração de um canal no ThingSpeak

Apros criar uma conta no ThingSpeak, ni muhimu kwa njia ya umri wa mfereji. Os canais armazenam os dados enviados de um determinado projeto. Cada canal inclui 8 campos que podem conter qualifi tipo de dados, zaidi 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.

Kwa sababu hii, hii ni njia kuu ya mfereji wa Moshi-MoshiDetector na 3 campos para envio de dados:

  • Sehemu ya 1: Concentração de gás
  • Sehemu ya 2: Alarme
  • Sehemu ya 3: Comando desligar

Na "Mtazamo wa Kibinafsi" ni picha inayoweza kuonekana kama picha ya utaftaji. Neste projeto, foram criados:

  • 1 gráfico com os dados de concentração de gás CO2 na kufurahisha kwa muda
  • Ishara 1 iliyoongozwa kwa 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

Mfereji ufanye ThingSpeak ni mahali pa kutambuliwa kwa Idara (Kitambulisho cha Kituo) kwa njia hii inaweza kutumika kwa utambulisho wa tovuti na huduma. Na "API Keys" zinaweza kutumiwa kama chaves para escrita (Andika Kitufe cha API) na leitura (Soma Ufunguo wa API) kutoka kwa baba hakuna mfereji. Soma, tuma barua pepe kama Maombi ya API (HTTP hupata maombi) kwa sababu ya programu tumizi ya huduma kwa mahitaji na mahitaji ya baba.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. JA kama API ombi matumizi ya programu na programu ya kufanya aplicativo Android.

Hatua ya 3: Aplicativo - MIT App Inventor

Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu
Aplicativo - MIT Mvumbuzi wa Programu

O aplicativo para monitoramento do sistema foi desenvolvido utilizando o MIT App Inventor. O MIT App Inventor ni orodha ya wavuti ya bure na orodha ya wahusika katika orodha ya kazi ya desenvolvimento ikiwa ni pamoja na programu ya maombi ya Taasisi ya Teknolojia ya Massachusetts (MIT). Ruhusa ya kufanya kazi kwa kutumia programu hii inaweza kutumika kwa Android na iOS.

Kwa sasa, unaweza kusoma ikiwa hakuna Mvumbuzi wa Programu ya MIT, unaweza kujua jinsi unavyotumia IotProject_SmokeDetector.

Muundo wa Mbuni una uwezekano wa kufanya kazi kama vile habari zinavyosema, chagua maandishi, lebo, picha, nk) hakuna orodha inayofuata ya rangi (Palette). Para cada um dos vipengele selecionados, ni uwezekano wa kubadilisha muundo wa cores, tamanho, posição, entre outras no menu lateral direito (Properties).

Na tela Blocks ni feita toda a lógica de programação do aplicativo. Programação é feita através de blocos, facilitando o desenvolvimento para iniciantes.

Ufafanuzi wa código

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

Sehemu 1 (pamoja na saa ya saa 1), unaweza kuomba ombi la baba hakuna mfereji wa ThingSpeak kwa URL na orodha ya watendaji ambao watafanya nakala za "Funguo za API". Quando os dados são retornados, o dado do sensor correspondence to concentração de gás CO2 is mostrado na tela do aplicativo. Já o dado do alarme ni testado:

  1. Angalia sehemu nyingine ya kichocheo (alarmData = 1), na utumie maombi mengi kwa ujumbe "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Kitufe1) ni habilitado.
  2. Tazama kama wewe unakabiliwa na tukio hili (alarmData = 0), na utumie maombi mengi kwa ujumbe "Não se preocupe! Sua casa não está em perigo." e o botão de desligar alarme (Kitufe1) ni 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 by URL for escrita de dados que pode ser copiada na aba "API Keys".

Hatua ya 4: Montagem Do Protótipo

Montagem Do Protótipo
Montagem Do Protótipo

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

Sura ya MQ135

  • Pino AO: conectado ao pino AD0 do módulo ESP8266
  • Pino GND: conectado ao GND fanya módulo ESP8266
  • Pino Vcc: conectado ao pino VIN do módulo ESP8266

Kiwango cha LED

  • Conectar uma perna do resistor de 200Ω no pino D5 do módulo ESP8266
  • Conectar o anodo do LED (positivo - maior perna) na outra perna do resistor
  • Conectar o catodo do LED (negativo - menor perna) hakuna GND kufanya 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) na outra perna inapinga kupinga
  • Conectar o catodo do LED (negativo - menor perna) hakuna GND kufanya módulo ESP8266

Hatua ya 5: Programação Do Microcontrolador

O microcontrolador do módulo ESP8266 kwa programu inayotumia IDE kufanya Arduino (faça o download aqui).

O código fonte completo utilizado no projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções principais: kuanzisha na kitanzi.

Usanidi wa Fluxo:

  • Inicializa mfululizo wa porta
  • Matokeo ya Inicializa os (pinos dos leds)
  • Conecta inafanya rede WiFi
  • Inicializa o ThingSpeak

Fluxo fanya kitanzi:

  • Lê os dados do sensor MQ135
  • Verifica se a concentração de gás CO2 ultrapassa o limite definido (bora: CO2 <= 700 ppm)

    • Liga oararme (LED vermelho), desliga o LED de status (verde) na envia notiface notía Telegram ni muhimu sana
    • Desliga o alarme (LED vermelho) na hali ya LED ya hadhi (verde) inaona nguvu ya upimaji
  • Lê o dado de "comando desligar alarme" fanya ThingSpeak

    Se comando = 1, desliga o alarme (LED vermelho) na kiwango cha LED cha hadhi (verde)

  • Envia dados do sensor, do allarme and de comando para o ThingSpeak a cada 20 sekunde

Utaftaji wa programu hii unaweza kutekelezwa kwa njia inayofaa ikiwa ni pamoja na mambo ambayo unapewa heshima kwa mtihani.

Conectando na rede WiFi

Tumia IDE kufanya Arduino, kwa faili-> Mapendeleo kwa eAdicione em Meneja wa Bodi za Ziada URLs URL

Em seguida, vá em Zana-> Bodi-> Meneja wa Bodi digite ESP8266, unganisha moja kwa moja.

Lazima ufafanuzi 2 tofauti mbili kwa hali ya juu:

  • WIFI_SSID: nome da rede WiFi ikiwa ni pamoja na kusema kwamba unaweza kupata maoni yako
  • WIFI_PASSWORD: senha da rede

Para teste of conexão WiFi, unakili nakala ya barua, kama vile tofauti kwa orodha ya WIFI inayojumuisha orodha ya faili ya kupakia hakuna ESP8266.

# pamoja / / " // Fanya kazi kwa wifi ya kiunganishi batili ConnectToWiFi (utupu) {// Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.anza (WIFI_SSID, WIFI_PASSWORD); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); Printa ya serial ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa batili setup () {Serial.begin (115200); kuchelewesha (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados hufanya sensa MQ135

Para ler os dados do sensor MQ135, primeiramente deve-se bastrong a biblioteca MQ135.h e adicioná-la na IDE do Arduino através do menu Skecth-> Jumuisha Maktaba-> Ongeza Maktaba ya ZIP.

Depois, nakala ya código abaixo na faça upload no modulo ESP8266 através do cabo micro-usb. O código realiza a leitura da concentração de CO2 em ppm na imprime os valores lidos no serial monitor.

# pamoja na "MQ135.h" #fasili MOSHIE_SENSOR A0 // IO do sensor de fumaça sensor floatValue; // Usanidi wa usanidi batili wa kuweka () {Serial.begin (115200); kuchelewesha (50); } // Kitanzi kikuu cha utupu () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gesiSensor.getPPM (); Serial.print ("Concentracao de CO2 (ppm):"); Serial.println (sensorValue); }

Escrevendo na lendo dados do ThingSpeak

Primeiro, ongeza Biblioteca do ThingSpeak no Arduino IDE. Vá em Zana-> Bodi-> Meneja wa Bodi unakuta ThingSpeak, bonyeza kwenye kuanzisha na kufanya kazi.

A versão gratuita do ThingSpeak, aceita upload de dados apenas a cada 20 sekunde, for isso, no código deve-se testar se é o momento correto de enviar os dados.

Para comunicar com o ThingSpeak ni muhimu kwa ufafanuzi kama tofauti tofauti:

  • myChannelNumber: número do canal criado no ThingSpeak
  • myWriteAPIKey: chave de escrita do canal kufanya ThingSpeak
  • myReadAPIKey: chave de leitura do canal do ThingSpeak

Para teste de comunicação com o ThingSpeak, nakala ya 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.

# pamoja na # pamoja / / " dados ao ThingSpeak / ************************ ALTERE AS VARIÁVEIS ABAIXO ****************** ******** / unsigned muda mrefu myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "ufunguo wako wa kuandika api"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "ufunguo wako wa kusoma api"; // Chave de leitura do canal do ThingSpeak unsigned longTime ya mwisho; muda mrefu wa sasa wa muda; Mteja wa Wateja wa WiFi; // Fanya kazi kwa wifi ya kiunganishi batili ConnectToWiFi (batili) {// Sanidi cheti cha mizizi kwa api.telegram.org configTime (0, 0, "pool.ntp.org"); mtejaSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.anza (WIFI_SSID, WIFI_PASSWORD); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); Printa ya serial ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Setup da placa batili setup () {Serial.begin (115200); kuchelewesha (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.anza (mteja); } // Kitanzi kikuu cha utupu () {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 (thamani); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); Mara ya mwisho = wakati wa sasa; } kuchelewa (20000); }

Televisheni ya Enviando notificação pelo

Primeiro, ongeza Biblioteca do Telegram no Arduino IDE. Vyombo vya Vyombo-> Bodi-> Meneja wa Bodi unashughulikia UniversalTelegramBot, angalia usanidi.

Televisheni ya Abra na simu kama próximas etapas para criar um Bot. Primeiro, nunua botfather na sehemu nyingine. 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 kwa criado com sucesso, sauti ya kupokea uma mensagem com um link kwa acessar o bot e o ishara do bot. Salve o tok, 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. Onyesha kitambulisho, onya kwa usahihi kwa sababu ya enviar de notificações.

Para teste do envio de notificação pelo telegram, copy of the código abaixo, altere as variáveis de definições for conexão WIFI na para comunicação com o Telegram (BOT_TOKEN e CHAT_ID) na haifai kupakia simu ESP8266.

# pamoja na # pamoja # # pamoja / / " fafanua CHAT_ID "CHANGEYOURCHATID" // ID hufanya mazungumzo kufanya telegram X509List cert (TELEGRAM_CERTIFICATE_ROOT); Usalama wa mteja wa WiFiClient; UniversalTelegramBot bot (BOT_TOKEN, mtejaSalama); // Envia notificação ao Telegram batili SendTelegramNotification (String message) {bot.sendMessage (CHAT_ID, ujumbe, ""); Serial.println (ujumbe); } // Função que is conexão wifi void ConnectToWiFi (batili) {// Sanidi cheti cha mizizi kwa api.telegram.org configTime (0, 0, "pool.ntp.org"); mtejaSecure.setTrustAnchors (& cert); // Tenta conectar ao wifi Serial.println ("Conectando à rede WiFi"); WiFi.anza (WIFI_SSID, WIFI_PASSWORD); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); Printa ya serial ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Setup da placa batili setup () {Serial.begin (115200); kuchelewesha (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }

Ilipendekeza: