Բովանդակություն:
- Քայլ 1: Materiais Utilizados
- Քայլ 2. Կարգավորեք Do ThingSpeak- ը
- Քայլ 3. Aplicativo - MIT հավելվածի գյուտարար
- Քայլ 4: Montagem Do Protótipo
- Քայլ 5. Programação Do Microcontrolador
Video: Projeto IoT - Sistema Detector De Fumaça: 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Ներածություն
O Sistema Detector de Fumaça- ն բաղկացած է IoT- ի լուծումից, որը թույլ է տալիս թույլատրել կամ օգտագործել ահազանգերը ՝ ներառելով Android- ի կիրառման մնացորդները: Մենք կարող ենք օգտագործել միկրոկառավարիչ, որն ապահովում է միացում, որը թույլ է տալիս օգտագործել WiFi- ն, ինչպես նաև հայտնաբերել է մեր ֆունկցիոնալ տվիչը: O proprietário da residência consegue monitorar or sistema através de um aplicativo e Recebe notaçações via Telegram em caso de ativação do alarme de incéndio.
Desenvolvedores
- Բրունո Գոնսալվես Պերեյրա
- Ãոաո Պաուլո Թադեու Բորխես Պայվա
- Julուլիանա Գիմարիես Սոարես Բուերե
- Վիլան Ալեքսանդր Կոնդոր Ասենջո
Քայլ 1: Materiais Utilizados
Os materiais utilizados para construção do projeto foram:
- Módulo WiFi ESP8266 NodeMcu ESP-12: Տեղադրման վահանակի միացում կամ միացում ESP8266 (WiFi կապ), ինտերֆեյսի usb- սերիալ և արագության 3.3V արագություն: A programação pode ser feita usando a IDE do Arduino, através da comunicação միջոցով cabo micro-usb:
- Sensor de Gás MQ-135 para Gokes Tóxicos:
- Led vermelho
- Առաջնորդվելով verde
- 2 դիմադրություն 200Ω
- Protoboard e jumpers para conexão e teste do protótipo
Քայլ 2. Կարգավորեք Do ThingSpeak- ը
O ThingSpeak é um serviço de plataforma IoT para armazenar e recuperar dados usando o Proto HTTP e MQTT pela Internet ou por meio de uma rede local. ThingSpeak permite agregar, visualizar e analisar fluxos de dados na nuvem:
O ThingSpeak is disponível como um serviço gratuito for pequenos projetos não comerciais (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 menagens por dia): Կիրառվում են կոմերցիոն ծառայություններ, որոնք տարբեր տարիների տարբեր թույլտվություններ են տալիս ստանդարտ, ակադեմիական, ուսանողական և տնային:
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 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
«Անձնական դիտում» -ի դեպքում հնարավոր է արատավորել, քանի որ մենք պատկերացնում ենք, թե ինչպես պետք է կատարվեն արատներ: 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 ri criado com um identificador único (Channel ID) que possibilita sua identificação para envio e leitura de dados: Na APA «API Keys» - ը կարող է անհասանելի լինել որպես escrita (Write API Key) և 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 identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador- ի միջոցով: JI as API- ն խնդրում է օգտագործել Android- ի ծրագրային ապահովումը:
Քայլ 3. Aplicativo - MIT հավելվածի գյուտարար
Կիրառական մոնիտորինգի համակարգի կիրառման համար անհրաժեշտ է օգտագործել MIT App Inventor- ը: O MIT հավելվածի գյուտարարը մենք ունենք անվճար համացանց և հնարավորություն ենք տալիս օգտագործել Մասաչուսեթսի տեխնոլոգիական ինստիտուտի (MIT) ինտեգրված ծրագրերը: Android- ի և iOS- ի համար թույլատրված ծրագրային ապահովման թույլտվություն ունի:
Նախկինում անհրաժեշտ է օգտագործել MIT հավելվածի գյուտարարի, ինչպես նաև IotProject_SmokeDetector- ի բոլոր հնարավորությունները:
Դիզայներները կարող են ունենալ վանք, քանի որ դրանք կիրառելի են, ընտրում են անհրաժեշտ բաղադրիչներ (բոտեր, պիտակներ, պատկերներ և այլն) ոչ մի կողային ճաշացանկ (ներկապնակ): Համապատասխանաբար, մենք ընտրում ենք տարբեր բաղադրիչներ, որոնք կարող են ունենալ միջուկների այլընտրանքային կարգավորումներ, լրացնել, տեղադրել, առանց կողմնակի ուղեցույցների (հատկություններ):
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), կամ կիրառել այն, երբ պահանջվում է պահանջել ոչ մի ջրանցք ThingSpeak at URLs- ից, որը թույլ է տալիս օգտագործել «API բանալիներ» կոդերի պատճենը: Quando os dados são retornados, o dado do sensor համապատասխանող և կենտրոնացված de gás CO2 և ամենաարդյունավետ գործածումը: Já o dado do alarme é testado:
- Se o alarme estiver acionado (alarmData = 1), o aplicativo mostra ao usuário a menusagem "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) é habilitado.
- 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.
Quando o botão de desligar alarme (Button1) կտտացման համար, կամ կիրառեք escreverá 1 no campo Field3- ը: 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 conforme indicado na figura.
Սենսոր MQ135
- Pino AO: conectado ao pino AD0 do módulo ESP8266
- Pino GND
- 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 (positivo - maior perna) և արտաքին perna do resistor
- Conectar o catodo do LED (բացասական - 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) և արտաքին perna do resistor
- Conectar o catodo do LED (բացասական - menor perna) no GND do módulo ESP8266
Քայլ 5. Programação Do Microcontrolador
O microcontrolador do módulo ESP8266 ծրագիրը կօգտագործի IDE do Arduino- ն (faça o download aqui):
Կիրառեք ամբողջական օգտագործման ունակությունը, որը թույլ չի տալիս մուտքագրել ոչ մի վերջնական ձեռնարկ (Iot_project.ino): O código tem duas funções principais: setup e loop:
Fluxo do setup:
- Inicializa a porta սերիալ
- Inicializa os ելքեր (pinos dos leds)
- Conecta à rede WiFi
- 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) և 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) և 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- ներ ՝
Մենք օգտագործում ենք գործիքներ-> Տախտակներ-> Տախտակներ Կառավարիչ digite ESP8266, սեղմեք մեր տեղադրման և այլնի վրա:
É needário definir 2 variáveis para conexão na rede:
- 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 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 and biblioteca MQ135.h եւ 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. O CODIGO իրականացնում է մի արագություն, որը կենտրոնացնում է CO2- ը ppm- ում և թույլ է տալիս, որ սերիական մոնիտոր չլինի:
#ներառել «MQ135.h» #սահմանել SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Setup da placa void setup () {Serial.begin (115200); ուշացում (50); } // Loop principal 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 of a Biblioteca do ThingSpeak no Arduino IDE: Տե՛ս Գործիքներ-> Տախտակներ-> Տախտակների կառավարիչ փնտրեք ThingSpeak, սեղմեք մեր տեղադրման և այլնի վրա:
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, copy of 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.
#ներառել #ներառել /********************** 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 em 000 ms // Intervalo 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 հաճախորդ; // Funchã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.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 (հաճախորդ); } // Loop principal 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 = ընթացիկ ժամանակ; } ուշացում (20000); }
Enviando notificação pelo Telegram
Primeiro, adicione a Biblioteca do Telegram no Arduino IDE. Տե՛ս Գործիքներ-> Տախտակներ-> Տախտակների մենեջեր UniversiteTelegramBot, ընտրեք և տեղադրեք մեր տվյալները:
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 հղումը 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 և Telegram (BOT_TOKEN և 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" // ID- ով զրուցել հեռագրով 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.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»); }
Խորհուրդ ենք տալիս:
Pequeno Projeto De Uma Casa Inteligente: 5 քայլ
Pequeno Projeto De Uma Casa Inteligente. O projeto que faremos é de uma casa inteligente: Possui basicamente dois grupos de funcionalidades: · De monitoramento de iluminação e temperatura dos cômodos. · De monitoramente de lista de alimentos e nível de água filtrada na geladeira.Não escrever
Projeto CoCoa: Um Colete De Comunicação Alternativa: 8 քայլ
Projeto CoCoa: Um Colete De Comunicação Alternativa. CoCoA նախագիծը ինտերնետին միացված կրելի ժիլետ է, որը թույլ է տալիս զուգակցել այլընտրանքային հաղորդակցության շոշափելի խորհրդանիշները `օգնելու խոսքի կամ ոչ բանավոր արատներով մարդկանց: O Colete de Comunicação Alternativa (CoCoA) consi
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: 5 քայլ
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino. Ստուգեք, թե որն է ամենից շատ հայտնաբերված դետեկտորը, որը թույլ է տալիս հայտնաբերել մեր բորբոքման արագությունը: Acesse meu último artigo: Arduino: tudo o que você precisa saber [Guia Completo]: O sensor de gás MQ-2O sensor de fumaça MQ-2 é sensível à fu
Projeto Fila Fácil: 7 քայլ
Projeto Fila Fácil: Em nosso dia a dia vamos diversas vezes em locais onde é անհրաժեշտ á ria uma gest ã o de senhas de clientes para organizar e agilizar atendimentos. Em alguns estabelecimentos podemos demorar alguns minutos ou at é mesmo horas esp
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017. 4 քայլ (նկարներով)
Tutorial Do Projeto Final Do Curso IoT Aplicada a Smart Home Inatel / Novembro 2017. Ոչ մի ծրագիր, որը թույլ է տալիս օգտագործել մեր պլատֆորմը, անհրաժեշտ է օգտագործել Android- ի կամ iOS- ի համար նախատեսված պլատֆորմների անհրաժեշտությունը: Foi utilizado um computador tipo notebook com windows 10. Essa plataforma chama-se Ionic, q