Оглавление:

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 шагов
Видео: Detecção de incêndio - Como instalar os dispositivos periféricos (Detectores, acionadores e sirenes) 2024, Декабрь
Anonim
Projeto IoT - Sistema Detector De Fumaça
Projeto IoT - Sistema Detector De Fumaça

Введение

Системный детектор Fumaça состоит из решения IoT с целью разрешения или мониторинга аварийных сигналов, связанных с приложениями Android. Этот проект является базовым для микроконтроллера, который поддерживает связь с новым Wi-Fi, и поддерживает обнаружение с помощью сенсора Fumaça. O proprietário da restência congue monitorar o sistema através de um aplicativo e Recebe notificações через Telegram em caso de ativação do alarme de incêndio.

Desenvolvedores

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

Шаг 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: Плата за преобразование в комбинацию микросхемы ESP8266 (коммуникационный WiFi), интерфейс USB-последовательный порт и напряжение 3,3 В. Программа позволяет использовать IDE для Arduino, обеспечивая связь через кабель micro-usb.
  • Датчик газа MQ-135 для токсичных газов: Датчик газа MQ-135 - это устройство, способное обнаруживать различные типы газов, токсичных для амонии, диоксидо-де-карбоно, бензо, оксидо-нитрико и т.д.
  • Led vermelho
  • Led Verde
  • 2 резистора 200 Ом
  • Протоборд и прыгуны для испытаний и испытаний

Шаг 2. Настройка Do ThingSpeak

Конфигурация Do ThingSpeak
Конфигурация Do ThingSpeak
Конфигурация Do ThingSpeak
Конфигурация Do ThingSpeak
Конфигурация Do ThingSpeak
Конфигурация Do ThingSpeak

O ThingSpeak - это сервис платформы IoT для использования и восстановления данных или протокола HTTP и MQTT в Интернете или на локальном уровне. ThingSpeak позволяет просматривать, визуализировать и анализировать потоки данных на новом уровне.

O ThingSpeak предоставляет бесплатную услугу для pequenos projetos não comerciais (menos de 3 milhões de mensagens por ano ou aproximadamente 8000 mensagens por dia). Para projetos maiores or aplicações comerciais, quatro tipos Diferentes de licença anual são oferecidos: Standard, Academic, Student и Home.

Configuração de um canal no ThingSpeak

Após criar uma conta no ThingSpeak, это необходимо для канала. Os canais armazenam os dados enviados de umterminado projeto. Канал Cada включает 8 кампусов, которые проходят через квалификационные типы дадосов, в основном 3 зоны для локализационных дадов и 1 по статусам. Depois de coletar dados em um canal, voiceê pode usar os aplicativos ThingSpeak для анализа и визуализации.

Для этого проекта, для доступа к каналу com nome IoTProject-SmokeDetector и 3 объектам для окружающей среды:

  • Поле 1: Concentração de gás
  • Поле 2: Тревога
  • Поле 3: Командо дезлигар

Na aba "Private View" - это возможно, как визуализация кадра ум душ кампос криадос. Neste projeto, foram criados:

  • 1 график с концентрацией CO2 в темпе
  • 1 световой индикатор для индикации тревоги
  • 1 график комм. Os dados de comando de desligar alarme em função do tempo

Leitura e escrita no ThingSpeak

Канал делает ThingSpeak - это критический код для универсального идентификатора (идентификатор канала), который можно использовать для идентификации для окружающей среды и лекций. «Ключи API» не используются в качестве ключей для ключей («Запись ключа API») и лекций («Чтение ключа API») без доступа к каналу. Все, что вам нужно, это использовать как запросы API (HTTP-запросы на получение), которые используются для запросов и запросов.

O Identificador do canal e as chaves serão usadas posteriormente no código do microcontrolador. Já as API-запросы используются в приложениях для Android.

Шаг 3. Aplicativo - изобретатель приложений MIT

Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT
Aplicativo - изобретатель приложений MIT

Это приложение для мониторинга системы, используемой в MIT App Inventor. MIT App Inventor - это бесплатный веб-сайт с открытым кодом для интеграции прикладных программ Массачусетского технологического института (MIT). Позвольте этой программе работать с приложениями для Android и iOS.

Для удобства, если вы не используете MIT App Inventor, этот проект работает с IotProject_SmokeDetector.

Na tela de Designer - возможный вид, как элементы, делающие aplicativo, выбор необходимых компонентов (боты, этикетки, изображения и т. Д.) No menu lateral esquerdo (Палитра). Para cada um dos components selecionados, é possible alterar configurações de cores, tamanho, posição, entre outras no menu lateral direito (Свойства).

Na tela Blocks - это приложение для логической программы. A programação é feita através de blocos, fastenando o desenvolvimento para iniciantes.

Explicação do código

Другие варианты местоположения são inicializadas: alarmData e sensorData.

Один шаг (определение Clock1), или приложение, которое используется для запроса данных без канала ThingSpeak, содержит URL-адрес данных, которые вы использовали для копирования на «API-ключи». Quando os dados são retornados, o dado do sensor corredente à concentration de gás CO2 is 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. Если тревога не действует (alarmData = 0), или приложение использует сообщение «Нет предварительной записи! e o botão de desligar alarme (Button1) é desabilitado.

Quando o botão de desligar alarme (Button1) для кликадо, o aplicativo escreverá 1 no campo Field3: comando desligar criado no ThingSpeak, indicando que o commando 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 conorme indicado na figura.

Датчик MQ135

  • Pino AO: conectado ao pino AD0 do módulo ESP8266
  • Pino GND: соединение и GND с модулем ESP8266
  • 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) на outra perna do резистор
  • Conectar o catodo do LED (negativo - menor perna) no GND do módulo ESP8266

LED vermelho

  • Conectar имеет дорезистор 200 Ом без подключения D7 к модулю ESP8266.
  • Conectar o anodo do LED (positivo - maior perna) на outra perna do резистор
  • Conectar o catodo do LED (negativo - menor perna) no GND do módulo ESP8266

Шаг 5: Программирование микроконтроладора

Микроконтроллер делает модуль ESP8266 для программы, использующей IDE для Arduino (доступ к загрузке).

Полное руководство по использованию проекта без окончательного учебного пособия (Iot_project.ino). Основные принципы работы: настройка и петля.

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

  • Инициализация серийного порта
  • Выходы inicializa os (светодиоды pinos dos)
  • Conecta à rede WiFi
  • Инициализация о ThingSpeak

Цикл Fluxo do:

  • Lê os dados do сенсор MQ135
  • Проверьте концентрацию сверхвысокого уровня CO2 или определенную границу (идеальный вариант: 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 limit
    • Desliga o alarme (LED vermelho) и liga o LED de status (verde) se o valor estiver abaixo do limit
  • 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.

Conectando na rede WiFi

Откройте IDE для Arduino, а затем выберите File-> Preferences eadicione em Additional Board Manager URLs a URL

Выберите один из следующих инструментов: Инструменты-> Платы-> Диспетчер плат, цифровой ESP8266, нажмите кнопку, чтобы установить и загрузить.

Необходимо определить 2 варианта для одновременного использования:

  • WIFI_SSID: нет доступа к Wi-Fi, подключенному к другой системе.
  • WIFI_PASSWORD: senha da rede

Для тестирования подключения к Wi-Fi, копирования или подключения к сети, а также для других вариантов подключения к Wi-Fi списки подключенных и загружаемых фасадов без модуля ESP8266.

#include / *********************** ИЗМЕНИТЬ, КАК ОПРЕДЕЛЕНИЕ ABAIXO ******************* ******* / #define WIFI_SSID "ВАШ WIFI SSID" // Nome da rede wifi #define WIFI_PASSWORD "YOUR WIFI PASSWORD" // Senha da rede wifi WiFiClient client; // Функция подключения к Wi-Fi void ConnectToWiFi (void) {// Подключение к Wi-Fi Serial.println ("Подключение к Wi-Fi"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); } Serial.println (""); Serial.println («Wi-Fi conectado com sucesso!»); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Настраиваем пустую настройку () {Serial.begin (115200); задержка (50); // Conecta ao wifi ConnectToWiFi (); }

Lendo dados do сенсор MQ135

Для того, чтобы сделать датчик MQ135, нужно создать новую библиотеку MQ135.h и добавить IDE для Arduino, сделав меню Skecth-> Include Library-> Add. ZIP Library.

Депо, копирование или запись на компьютере и на фасаде не загружайте модуль ESP8266, который можно подключить к кабелю micro-usb. Если вы хотите получить концентрацию CO2 в миллионных долях и не использовать серийный монитор.

#include "MQ135.h" #define SMOKE_SENSOR A0 // IO do sensor de fumaça float sensorValue; // Настраиваем пустую настройку () {Serial.begin (115200); задержка (50); } // Основной цикл void loop () {// Faz leitura do sensor MQ135 gasSensor = MQ135 (SMOKE_SENSOR); sensorValue = gasSensor.getPPM (); Serial.print («Концентрация CO2 (ppm):»); Serial.println (sensorValue); }

Escrevendo e lendo dados do ThingSpeak

Примейро, создатель библиотеки, делающей ThingSpeak без Arduino IDE. Используйте Инструменты-> Доски-> Менеджер плат Digite ThingSpeak, нажмите их, чтобы установить и загрузить.

Бесплатная версия для ThingSpeak, загружает данные, полученные в течение 20 секунд, пор иссо, не содержит кодов, используемых для тестирования, в настоящее время или в момент, когда они используются.

Для общения с ThingSpeak необходимо определить как различные варианты:

  • 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 o código abaixo, altere as different para conexão na rede e as different listadas acima e faça upload 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 / *********************** ИЗМЕНИТЬ, КАК ВАРИАВЕЙС АБАЙСО ****************** ******** / unsigned long myChannelNumber = 0000000; // Número do canal do ThingSpeak const char * myWriteAPIKey = "ваш ключ api записи"; // Chave de escrita do canal do ThingSpeak const char * myReadAPIKey = "ваш ключ API чтения"; // Легенда канала делает ThingSpeak unsigned long lastTime; unsigned long currentTime; Клиент WiFiClient; // Função que faz a conexão wifi void ConnectToWiFi (void) {// Настроить корневой сертификат для api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Подключение к Wi-Fi Serial.println («Подключить Wi-Fi»); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); } Serial.println (""); Serial.println («Wi-Fi conectado com sucesso!»); Serial.println (WiFi.localIP ()); } // Настраиваем пустую настройку () {Serial.begin (115200); задержка (50); // Conecta ao wifi ConnectToWiFi (); // Инициализация ThingSpeak lastTime = 0; ThingSpeak.begin (клиент); } // Основной цикл цикла void loop () {currentTime = millis (); // настройка темпа // Lê dados do ThingSpeak int value = ThingSpeak.readIntField (myChannelNumber, 1, myReadAPIKey); Serial.println ("Дадо но кампо 1 делать ThingSpeak:"); Serial.println (значение); // Проверяем данные, полученные при помощи данных о ThingSpeak if ((currentTime - lastTime> THINGSPEAK_WRITE_INTERVAL)) {ThingSpeak.setField (1, 100); ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey); lastTime = currentTime; } задержка (20000); }

Уведомление об изменениях в Telegram

Примейро, создатель библиотеки Telegram без Arduino IDE. Используйте Инструменты-> Доски-> Диспетчер плат, цифровой UniversalTelegramBot, нажмите и установите и загрузите.

Abra o Telegram e siga as próximas etapas for crear um Bot. Примейро, достань отца-отца и клику Неле. A janela seguir deve abrir e voiceê será solicitado clicar no botão Iniciar. Digite / newbot e siga как инструкции для своего бота. Dê a element nome e nome de usuário. Seo seu bot for criado com sucesso, voiceêreceberá uma mensagem com um link for acessar or bot e or token do bot. Salve o token, Porque Você Precisará Dele Para Que o ESP8266 Possa Enviar notificações.

Следите за тем, чтобы продолжить работу с Telegram, используйте IDBot. Inicie Uma Conversa com esse bot e digite / getid. Você recberá 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.

#include #include #include / ********************* АЛЬТЕРНЫЕ ОПРЕДЕЛЕНИЯ 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" // Токен для отправки телеграммы # define CHAT_ID "CHANGEYOURCHATID" // ID для чата в телеграмме X509List cert (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 (сообщение); } // Função que faz a conexão wifi void ConnectToWiFi (void) {// Настроить корневой сертификат для api.telegram.org configTime (0, 0, "pool.ntp.org"); clientSecure.setTrustAnchors (& cert); // Подключение к Wi-Fi Serial.println («Подключить Wi-Fi»); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); } Serial.println (""); Serial.println («Wi-Fi conectado com sucesso!»); Serial.println ("IP obtido:"); Serial.println (WiFi.localIP ()); } // Настраиваем пустую настройку () {Serial.begin (115200); задержка (50); // Conecta ao wifi ConnectToWiFi (); // Testa notificação pelo telegram SendTelegramNotification ("Testando envio de notificação."); }

Рекомендуемые: