Turinys:
- 1 žingsnis: „Materiais Utilizados“
- 2 veiksmas: „Configuração Do ThingSpeak“
- 3 žingsnis: „Aplicativo“- „MIT App Inventor“
- 4 žingsnis: „Montagem Do Protótipo“
- 5 žingsnis: „Programação Do Microcontrolador“
Video: „Projeto IoT“- sistemos detektorius De Fumaça: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Įvadas
„Fumaça“sistemos detektorius yra susijęs su IoT sprendimu arba leidimo ar stebėjimo signalų stebėjimo įjungimo sistema „Android“. Projektas yra bazinis, jis yra mikrokontroladorius, skirtas komunikacijai ir „WiFi“ryšiui, o tai leidžia nustatyti jutiklius. O proprietário da residência consegue monitorar o system através de um aplicativo e recebe notificações via Telegram em caso de ativação do alarme de incêndio.
Dezinvolveriai
- Bruno Gonçalvesas Pereira
- João Paulo Tadeu Borges Paiva
- Juliana Guimarães Soares Buére
- Willanas Aleksandras Kondoras Asenjo
1 žingsnis: „Materiais Utilizados“
Os materiais utilizados para buildção do projeto foram:
- „WiFi“ESP8266 „NodeMcu ESP-12“modulis: ESP8266 (suderinamas „Wi-Fi“) derinio ar lustų suderinamumo platforma, 3,3 V USB sąsajos serijos e-reguliatorius. Programa, skirta naudoti „IDE do Arduino“, através da comunicação via cabo micro-usb.
- „Gás MQ-135“jutiklis „Tóxicos“dujoms: O „Gás MQ-135“modusas, skirtas aptikti dujų detoksikatoriaus tipus de gases to como amônia, dióxido de carbono, benzeno, óxido nítrico, e também fumaça ou álcool.
- Vadovavo vermeliu
- Led verde
- 2 atlaiko 200Ω
- „Protoboard“ir džemperiai, skirti bendrai ir testuojant
2 veiksmas: „Configuração Do ThingSpeak“
O „ThingSpeak“yra platforma, skirta IoT, skirta naudoti ar rekuperatoriui, naudojančiam protokolą ir protokolą HTTP ir „MQTT pela Internet“arba vietinį. „ThingSpeak“puikiai sutaria, vizualizuoja ir analizuoja duomenų srautus.
O „ThingSpeak“siūlo nemokamą paslaugų teikimo paslaugą (ne 3 milhoses de mensagens por ano ou aproximadamente 8 diasa). Para projetos maiores ou aplicações comerciais, quatro tipos diferentes de licence anual são oferecidos: Standard, Academic, Student and Home.
„ThingSpeak“kanalo konfigūracija
Após criar uma conta no ThingSpeak, é requiredário criar um canal. Os canais armazenam os dados enviados de um determinado projeto. Cada canal inclui 8 campos que podem conter qualityquer tipo de dados, more 3 campos para dados de localização and 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 laukas: Concentração de gás
- 2 laukas: aliarmas
- 3 laukas: „Comando desligar“
Yra „Privatus vaizdas“, kuriame galite pamatyti, kaip vizualizuoti vaizdus. Neste projeto, foram criados:
- 1 gráfico com os dados de koncentração de gás CO2 em função do tempo
- 1 indikatorius de led para para indicação de alarme
- 1 gráfico com os dados de comando de desligar alarme em função do tempo
Leitura ir escrita no ThingSpeak
„ThingSpeak“kanalas gali būti identifikuotas kaip naujas (kanalo ID), kuris gali būti identifikuotas ir patvirtintas. „API raktai“yra disponibilizadas as chaves para escrita (Write API Key) ir leitura (Read API Key) de dados no canal. Além disso, também são disponibilizadas as API Requests (HTTP get request) que também podem ser usadas para envio e requisição de dados.
O identifador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Taip, kaip API prašo naudotis „Android“programomis ir naudotis šiomis programomis.
3 žingsnis: „Aplicativo“- „MIT App Inventor“
Naudokite „MIT App Inventor“monitoraminę sistemą, skirtą naudoti ir naudoti MIT App Inventor. O „MIT App Inventor“yra nemokamas ir nemokamas internetinis žiniatinklio tinklalapis Masačusetso technologijos institute (MIT). Tai puiki galimybė pradėti programą, skirtą „Android“ir „iOS“programoms.
Čia yra „MIT App Inventor“, „IotProject_SmokeDetector“programa.
Dizainerio ir dizainerių siūlomas montavimas, kaip telas do aplicativo, selecionando os komponentai, būtini (botai, etiketės, vaizdai ir kt.) Nėra šoninio meniu (paletė). Para cada um dos komponentai atrenkami, jie gali būti kitaip konfigūruojami, branduoliai, tamanho, posição, entre outras no menu lateral directito (Properties).
Na tela Blocks ir feat toda a lógica de programção do aplicativo. A programação é feita através de blocos, facilitando o desenvolvimento para iniciantes.
Explicação do código
Duas variáveis locais são inicializadas: alarmData e sensorData.
A cada 1 segment (definido pelo Clock1), or applicateivo faz um request any dad no channel ThingSpeak através da URL from leitura de dados que pode ser copiada with the "API Keys". Quando os dados são retornados, o dado do sensorrespondente à koncentração de gás CO2 é mostrado na tela do aplicativo. Já o dado do alarme é testado:
- Pažiūrėkite, ar yra aliarmo estiveris (alarmData = 1), ar galite naudoti programą ir gauti pranešimą "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) ir habilitado.
- Žiūrėkite nerimą keliantį signalą (alarmData = 0), o naudodamiesi dabar galite naudoti a meniu „Não se preocupe! Sua casa não está em perigo“. e o botão de desligar alarme (Button1) ir desabilitado.
„Quando o botão de desligar alarme“(mygtukas1), skirtas „Clickado“, arba „applicativo escreverá“1 be stogo „Field3“: „comando desligar criado no ThingSpeak“, „indicando que“arba „comando de desligar alarme foi acionado“. „ThingSpeak“pateikia URL adreso escrita de dados que pode serijos kopiją ir „API raktus“.
4 žingsnis: „Montagem Do Protótipo“
O protótipo foi montado no protoboard conforme indicado na figura.
Jutiklis MQ135
- Pino AO: conectado ao pino AD0 do mode ESP8266
- Pino GND: susietas su GND do ESP8266
- Pino Vcc: conectado ao pino VIN do ESP8266
LED šviestuvas
- Conectar uma perna do rezistorius de 200Ω be pino D5 do metodo ESP8266
- „Conectar“arba „LED“(teigiamas - maior perna) ir išorinis rezistorius
- „Conectar o catodo do LED“(neigiamas - menor perna) Nr GND metodo ESP8266
LED vermelho
- Conectar uma perna doresistor de 200Ω no pino D7 do mode ESP8266.
- „Conectar“arba „LED“(teigiamas - maior perna) ir išorinis rezistorius
- „Conectar o catodo do LED“(neigiamas - menor perna) Nr GND metodo ESP8266
5 žingsnis: „Programação Do Microcontrolador“
Naudokite mikrovaldymą ESP8266 programai, skirtą naudoti IDE ar Arduino (fasadas arba atsisiuntimas).
O código fonte completeto utilizado no projeto pode ser baixado no final deste tutorial (Iot_project.ino). O código tem duas funções principais: setup e loop.
„Fluxo do“sąranka:
- Inicializa serijos portalas
- Inicializaciniai išėjimai („Pinos dos“šviesos diodai)
- „Conecta“siūlo belaidį internetą
- „Inicializa“arba „ThingSpeak“
„Fluxo do“kilpa:
- Yra jutiklis MQ135
-
Verifica se a koncentração de gás CO2 ultrapassa arba limite definido (idealus: CO2 <= 700 ppm)
- Liga arba aliarmas (LED vermelho), desliga o LED de status (verde) ir envia notificação pelo Telegram se o valor estiver acima do limite
- Signalas su signalizacija (LED vermelho) ir liga arba LED de status (verde) se o valor estiver abaixo do limite
-
Paleiskite „ThingSpeak“„comando desligar alarme“
Se o comando = 1, signalizacijos signalas (LED vermelho) ir liga o LED de status (verde)
- Envia dados do sensor, do alarme e de comando para or ThingSpeak a cada 20 segundos
Abaixo será descrita a programção de cada um dos principais modulos com or respectivo código para teste.
Sujunkite ir atnaujinkite „WiFi“
Abra ir IDE do Arduino, vá Failas-> Nuostatos ir papildomos valdybos URL URL URL
Įvairūs įrankiai-> Lentos-> Lentų tvarkytuvė digite ESP8266, clique em instalar e fechar.
Būtinas apibrėžimas 2 variantai, skirti bendrai:
- WIFI_SSID: nome da rede WiFi que você deseja conectar seu sistema
- WIFI_PASSWORD: senha da rede
Išbandykite belaidį „Wi -Fi“, nukopijuokite kodą arba pakeiskite jį, pakeiskite WIFI sąrašų įvairovę ir įkelkite be 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 client; // 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) {delay (500); Serijinis atspaudas ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Sąranka da placa void setup () {Serial.begin (115200); vėlavimas (50); // „Conecta ao wifi ConnectToWiFi“(); }
„Lendo dados do sensor MQ135“
MQ135 jutiklio aparatas, pirmasis MQ135 bibliografijos šaltinis ir parodymas MQ135.h ir IDE „Arduino“meniu meniu Skecth-> Include Library-> Add. ZIP Library.
Depois, kopija arba kodo abaixo ir fasadas upload no mode ESP8266 através do cabo micro-usb. O código realizacija ir leitura da koncentração de CO2 em ppm e imprime os valores lidos no serial monitor.
#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Sąranka da placa void setup () {Serial.begin (115200); vėlavimas (50); } // Kilpos pagrindinė tuštumos kilpa () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print („CO2 koncentracija (ppm):“); Serial.println (sensorValue); }
Escrevendo ir lendo dados daryti „ThingSpeak“
Premjeras, „ThingSpeak Biblioteca do no Arduino IDE“biblioteka. Pasirinkite „Įrankiai“-„Lentos“-„Lentų tvarkytuvė“, „ThiteSpeak“, paspauskite ir įdiekite ir įdiekite.
A versao gratuita do ThingSpeak, aceita upload de dados apenas a cada 20 segundos, por isso, no código deve-se testar se é o momento correctto de enviar os dados.
„Comingar com o ThingSpeak“yra būtinas apibrėžimas kaip įvairus 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“
Kompiuterio „ThingSpeak“testas, kopijavimas arba kodavimas abaixo, pakeitimas įvairiais būdais palyginus ir redaguojant įvairius sąrašus, kai jie yra įkelti ir nėra įkeliami 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 20000 // Intervalo de ms entre envios dados ao ThingSpeak /*********************** ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ nepasirašytas ilgas myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "tavo rašymo api raktas"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "your read api key"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; unsigned long currentTime; „WiFiClient“klientas; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root sertifikatas 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); Serijinis atspaudas ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println (WiFi.localIP ()); } // Sąranka da placa void setup () {Serial.begin (115200); vėlavimas (50); // „Conecta ao wifi ConnectToWiFi“(); // Inicializa ThingSpeak lastTime = 0; „ThingSpeak.begin“(klientas); } // Ciklo pagrindinis void ciklas () {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 (vertė); // Verifica se é o momento de enviar dados ao ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = dabartinis laikas; } uždelsimas (20000); }
„Enviando notificação pelo“telegrama
Gerbiamasis, žiūrėkite „Telegram“biblioteka Nr. Arduino IDE. Pasirinkite „Įrankiai“-„Lentos“-„Lentų tvarkytuvė“, „UniversalTelegramBot“, paspauskite ir įdiekite.
Abra o Telegram e siga as próximas etapas para criar um Bot. Pirmininkas, įsigykite botfather e clique nele. A janela a seguir deve abrir e você sera solicitado a clickar 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.
Jei norite sekti, tai yra „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.
Išbandykite pranešimo apie telegramą pranešimus, nukopijuokite arba pakeiskite, pakeiskite, kaip pakeičiamas WIFI ir parama komunikacijai. Telegrama (BOT_TOKEN ir CHAT_ID) ir fasado įkėlimas be metodo ESP8266.
#įtraukimas #įtraukimas #įtraukimas /********************* 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 do telegram # apibrėžti CHAT_ID "CHANGEYOURCHATID" // ID pokalbio telegrama X509List cert (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; „UniversalTelegramBot“robotas (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String message) {bot.sendMessage (CHAT_ID, message, ""); Serial.println (pranešimas); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Configura root sertifikatas 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); Serijinis atspaudas ("."); } Serial.println (""); Serial.println ("WiFi conectado com sucesso!"); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Sąranka da placa void setup () {Serial.begin (115200); vėlavimas (50); // „Conecta ao wifi ConnectToWiFi“(); // Testa notificação pelo telegrama SendTelegramNotification ("Testando envio de notificação."); }
Rekomenduojamas:
Vandens lygio detektorius: 7 žingsniai
Vandens lygio detektorius: ultragarso jutiklis veikia tais pačiais principais kaip ir radarų sistema. Ultragarsinis jutiklis gali paversti elektros energiją akustinėmis bangomis ir atvirkščiai. Garsusis ultragarsinis jutiklis HC SR04 generuoja 40 kHz dažnio ultragarso bangas
IOT pagrįstas dujų nuotėkio detektorius: 4 žingsniai
IOT pagrįstas dujų nuotėkio detektorius: Reikalavimai1 - Nodemcu (ESP8266) 2 - Dūmų jutiklis (MQ135)
„IoT“dujų detektorius su „Arduino“ir „Raspberry Pi“: 5 žingsniai
„IoT“dujų detektorius su „Arduino“ir „Raspberry Pi“: Šioje instrukcijoje sužinosite, kaip sukurti daiktų interneto dujų detektorių naudojant „Arduino“, „Raspberry Pi“ir MQ-5 dujų jutiklį. Be šių dalių, jums reikės trijų laidų, kad prijungtumėte „Arduino“prie dujų jutiklio. Kai tai padarysite, jūs būsite
Judesio detektorius naudojant „Thingsai.io Iot“debesies platformą: 6 žingsniai
Judesio detektorius naudojant „Thingsai.io“„Iot Cloud Platform“: šioje pamokoje aš paaiškinsiu apie judesio aptikimą naudojant PIR jutiklį ir „Esp32“kartu su IOT debesų platforma „Thingai.io“
IOT dūmų detektorius: atnaujinkite esamą dūmų detektorių naudodami IOT: 6 žingsniai (su nuotraukomis)
IOT dūmų detektorius: atnaujinkite esamą dūmų detektorių naudodami IOT: dalyvių sąrašas, išradėjas: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Vadovas: dr. Chia Kim Seng Mechatronikos ir robotų inžinerijos katedra, Elektros ir elektronikos inžinerijos fakultetas, Universiti Tun Hussein Onn Malaizija. Platinti