Съдържание:

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 стъпки
Видео: The September 26th Project - 2022 Symposium 2024, Ноември
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

Въведение

O Sistema Detector de Fumaça се състои от решението на IoT com за обективиране на разрешително или за наблюдение на аларми за включване на остатъци в апликации за приложение на Android. O projeto é baseado em um microcontrolador que se comunica com a nuvem pela rede WiFi, enviando os sinais detectados por um sensor de fumaça. O proprietário da rezência conguegue мониторинг на системата através de um aplicativo e recebe notificações чрез Telegram em caso de ativação do alarme de incêndio.

Десенволведори

  • Бруно Гонсалвес Перейра
  • Жоао Пауло Тадеу Борхес Пайва
  • Джулиана Гимарайнш Соарес Буере
  • Уилън Александър Кондор Асенхо

Стъпка 1: Използвайте материалите

Материали за използване
Материали за използване
Материали за използване
Материали за използване
Материали за използване
Материали за използване
Материали за използване
Материали за използване

Os materiais utilizados para construção do projeto foram:

  • Модулен WiFi ESP8266 NodeMcu ESP-12: Платформата за десенволвинге в комбинация от чип ESP8266 (комуникационен WiFi), интерфейс за интерфейс usb-сериен и регулатор на напрежение 3.3V. Програма за настройка на услугата, използваща IDE до Arduino, която позволява комуникация чрез микро-USB кабел.
  • Sensor de Gás MQ-135 para Gazes Tóxicos: O Sensor de Gás MQ-135 é um módulo capaz de detectar vários tipos de gazes tóxicos como amônia, dióxido de carbono, benzeno, óxido nítrico, e também fumaço ou
  • Led vermelho
  • Led verde
  • 2 Резистори 200Ω
  • Protoboard e jumpers para conexão e teste do protótipo

Стъпка 2: Конфигурирайте Do ThingSpeak

Конфигурирайте Do ThingSpeak
Конфигурирайте Do ThingSpeak
Конфигурирайте Do ThingSpeak
Конфигурирайте Do ThingSpeak
Конфигурирайте Do ThingSpeak
Конфигурирайте Do ThingSpeak

O ThingSpeak е услуга за платаформа на IoT за армазарна и рекуператорна операция, използваща протокол HTTP и MQTT за интернет или за локално управление. ThingSpeak разрешителен агрегат, визуализирайте и анализирайте потоците от дадосите в света.

O ThingSpeak está disponível como um serviço gratuito para pequenos projetos não comerciais (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 mensagens por dia). Para projetos maiores или aplicações comerciais, quatro tipos diferentes de licença anual são oferecidos: Стандартни, Академични, Студентски и Домашни.

Конфигурация на канала без ThingSpeak

Após criar uma conta no ThingSpeak, é needário criar um channel. Os canais armazenam os dados enviados de um determinado projeto. Cada channel включва 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 channel, você pode usar os aplicativos ThingSpeak para analisá-los e visualizá-los.

Para este projeto, foi criado um channel com nome IoTProject-SmokeDetector e 3 campos para envio de dados:

  • Поле 1: Concentração de gás
  • Поле 2: Аларма
  • Поле 3: Comando desligar

На „Private View“можете да видите и визуализация на cada um dos campos criados. Neste projeto, foram criados:

  • 1 графика com os dados de koncentração de gás CO2 em função do tempo
  • 1 индикатор за индикатор за индикация за аларма
  • 1 графика com os dados de comando de desligar alarme em função do tempo

Leitura e escrita no ThingSpeak

За канал до ThingSpeak é criado com um identificador único (Channel ID) que възможно да се идентифицира за envio e leitura de dados. Освен това „API ключове“не са достъпни като части за escrita (Write API Key) и leitura (Read API Key) без канал. Освен това, трябва да се депонибилизирате като API заявки (заявки за получаване на HTTP), които се намират в доклада на сървърите за envio e requisição de dados.

O identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. JA като API изисква използване на приложения за програмиране за Android.

Стъпка 3: Aplicativo - MIT App Inventor

Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor
Aplicativo - MIT App Inventor

Относно приложението за мониторинг на системата за десенволвидо използване на MIT App Inventor. O MIT App Inventor е амбициозен уеб безплатен уебсайт и деклариращ аберто за десенволвименто интеграция на апликативното петило в Масачузетския технологичен институт (MIT). Ele permite que iniciantes в програмата criem aplicativos за Android и iOS.

За да дойдете, нямате достъп до MIT App Inventor, criou-se um projeto com o nome IotProject_SmokeDetector.

Na tela de Designer е възможно да се инсталира, като се прилагат приложения, избирате компоненти, необходими (ботове, етикети, изображения и т.н.) без странично меню (палитра). За да изберете компоненти за избор, можете да промените конфигурацията на ядра, таманхо, позиции, да влезете извън менюто странично управление (Свойства).

Na tela Blocks é feita toda a lógica de programção do aplicativo. A programçã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 segundo (определено пело Clock1), или прилагане faz um заявка за дадос без канал ThingSpeak através to URL de leitura de dados que pode ser copiada at aba "API Keys". Quando os dados são retornados, o dado do sensor korespondente à koncentração de gás CO2 é mostrado na tela do aplicativo. Já o dado do alarme é testado:

  1. Вижте аларменото действие (alarmData = 1), за да приложите моста или да използвате меню "Atenção! Sua casa está em perigo!" e o botão de desligar alarme (Button1) é habilitado.
  2. Вижте алармата, която не е настъпила (alarmData = 0), или приложете най -много ао, използвайте менюто „Не се преокупирайте! Sua casa não está em perigo.“e o botão de desligar alarme (Button1) é desabilitado.

Quando o botão de desligar alarmme (Button1) for clicado, or applicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o comando de desligar alarme foi acionado. О да добавите околната среда към ThingSpeak, за да адресирате URL адреса, за да го направите, за да настроите копирането на „API ключове“.

Стъпка 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 до módulo ESP8266
  • Pino GND: свързване или GND до модела ESP8266
  • Pino Vcc: conectado ao pino VIN do módulo ESP8266

LED лампа

  • Свържете резистора с резистор от 200 Ω без пино D5 до модула ESP8266
  • Съединител или анод до LED (позитивно - по -голяма перна) на външен резистор от перна до
  • Conectar или catodo do LED (отрицателно - първоначално меню) без GND до модуло ESP8266

LED светкавица

  • Донезистор от 200 Ω без пино D7 до модул ESP8266.
  • Съединител или анод до LED (позитивно - по -голяма перна) на външен резистор от перна до
  • Conectar или catodo do LED (отрицателно - първоначално меню) без GND до модуло ESP8266

Стъпка 5: Програмирайте микроконтроладора

Микроконтролаторът, който управлява ESP8266 за програмиране, използва IDE до Arduino (фаза или изтегляне на aqui).

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: настройка e цикъл.

Настройка на Fluxo do:

  • Inicializa a porta сериал
  • Inicializa os изходи (pinos dos LED)
  • Conecta à rede WiFi
  • Inicializa o ThingSpeak

Fluxo do цикъл:

  • Да се направи сензор MQ135
  • Проверете концентрацията на CO2 ултрапаса или ограничено определение (идеално: CO2 <= 700 ppm)

    • 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 alarmme (LED vermelho) e liga o LED de status (verde) se o valor estiver abaixo do limite
  • Открийте "Comando desligar alarme" до ThingSpeak

    Se o comando = 1, desliga o alarme (LED vermelho) e liga o LED de status (verde)

  • Envia dados do sensor, do alarmme e de comando para or ThingSpeak a cada 20 segundos

Abaixo será descrita a programção de cada um dos principais módulos com o respectivo código para teste.

Свържете се с WiFi

Абра IDE до Arduino, във Файл-> Предпочитания eadicione em Допълнителни URL адреси на мениджъра на борда URL адрес

Изтеглете, изберете инструменти-> Табла-> Диспечер на табла цифров ESP8266, кликнете върху него и го поставете.

É needário definir 2 variáveis para conexão na rede:

  • WIFI_SSID: име за възстановяване на WiFi que você deseja връзка на системата
  • WIFI_PASSWORD: сенха да реде

За да тествате Wi -Fi, да го използвате или да го направите, променете като вариант за съвместен WIFI списък, който е анимация и факулиране, без да качвате ESP8266.

#include /************************ ПРОМЕНИ КАТО ОПРЕДЕЛЯ ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Име за rede wifi #define WIFI_PASSWORD "ВАШАТА WIFI ПАРОЛА" // Senha да 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 ()); } // Настройка да плака void setup () {Serial.begin (115200); забавяне (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados прави сензор MQ135

За да можете да използвате сензора MQ135, можете да го направите и да добавите библиотека MQ135.h и да добавите IDE към Arduino в менюто Skecth-> Include Library-> Add. ZIP Library.

Depois, copie o código abaixo e faça upload no módulo ESP8266 através do cabo micro-usb. O código реализиране на концентрация на CO2 em ppm e imprime os valores lidos без сериен монитор.

#include "MQ135.h" #deteine SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Настройка да плака void setup () {Serial.begin (115200); забавяне (50); } // 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

Пример, добавете към Библиотеката за нещата Говорете без Arduino IDE. В Инструменти-> Табла-> Управител на табла цифрово ThingSpeak, кликване на инсталацията и подаването.

A versão gratuita do ThingSpeak, aceita upload 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 é needário definir като variáveis abaixo:

  • myChannelNumber: номер на канал за криация без ThingSpeak
  • myWriteAPIKey: chave de escrita do channel 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 upload no módulo ESP8266.

#include #include /************************ ПРОМЕНИ КАТО ОПРЕДЕЛЯ ABAIXO ***************** *********/ #define WIFI_SSID "YOUR WIFI SSID" // Име за rede wifi #define WIFI_PASSWORD "ВАШАТА WIFI ПАРОЛА" // Senha да rede wifi #define THINGSPEAK_WRITE_INTERVAL 20000 // Intervalo em ms entre envios de dados ao ThingSpeak /************************ ALTERE AS VARIÁVEIS ABAIXO ****************** ********/ unsigned long myChannelNumber = 0000000; // Нулиране на канал за ThingSpeak const char * myWriteAPIKey = "вашият api ключ за запис"; // Chave de escrita do channel do ThingSpeak const char * myReadAPIKey = "вашият api ключ за четене"; // Chave de leitura do canal do ThingSpeak unsigned long lastTime; unsigned long currentTime; Клиент WiFiClient; // Функциониране на фаза на 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 à 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 ()); } // Настройка да плака void setup () {Serial.begin (115200); забавяне (50); // Conecta ao wifi ConnectToWiFi (); // Inicializa ThingSpeak lastTime = 0; ThingSpeak.begin (клиент); } // Loop главен void loop () {currentTime = millis (); // настройка на темпото актуално // За да направите ThingSpeak int value = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Dado no campo 1 do ThingSpeak:"); Serial.println (стойност); // Проверете дали е налице моментът, в който да се обърнете към ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = currentTime; } забавяне (20000); }

Enviando notificação pelo Telegram

Primeiro, добавена в Библиотеката за Telegram без Arduino IDE. В Инструменти-> Табла-> Диспечер на табла цифрова UniversalTelegramBot, кликнете върху инсталацията и файла.

Abra o Telegram e siga as próximas etapas para criar um Bot. Primeiro, закупете 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 като инструкции за criar seu бот. 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.

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

#include #include #include /********************* ALTERAR DEFINIÇÕES ABAIXO ******************* *******/ #define WIFI_SSID "YOUR WIFI SSID" // Име за rede wifi #define WIFI_PASSWORD "ВАШАТА WIFI ПАРОЛА" // Senha да rede wifi #дефиниране BOT_TOKEN "CHANGEYOURTOKEN" // Токен за бот до телеграма # дефинирайте CHAT_ID "CHANGEYOURCHATID" // ID за чат до телеграма X509List сертификат (TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure clientSecure; UniversalTelegramBot бот (BOT_TOKEN, clientSecure); // Envia notificação ao Telegram void SendTelegramNotification (String message) {bot.sendMessage (CHAT_ID, message, ""); Serial.println (съобщение); } // Функциониране на фаза на 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 à 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 ()); } // Настройка да плака void setup () {Serial.begin (115200); забавяне (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }

Препоръчано: