В этом проекте мы узнаем о мониторинге уровня газа через сеть Интернет с помощью NodeMCU ESP8266 и модуля датчика газа MQ135. Мы будем измерять количество газа в процентах и отправлять его через Интернет на сервер thingspeak. С помощью этой системы данные можно отслеживать удаленно, находясь в любой точке мира. Нам просто нужен датчик газа/дыма/LPG, такой как MQ2/MQ3/MQ5/MQ7/MQ135, который напрямую подключен к модулю Nodemcu ESP8266-12E. Все проекты на нашем сайте с использованием датчика газа MQ135 вы можете посмотреть по этой ссылке.
ThingSpeak — это приложение Интернета вещей (IoT) с открытым исходным кодом и API для хранения и извлечения данных из вещей с использованием протокола HTTP через Интернет или через локальную сеть. На нашем сайте вы можете посмотреть все проекты с использованием сервиса ThingSpeak.
Необходимые компоненты
- NodeMCU ESP8266 (купить на AliExpress).
- Датчик качества воздуха MQ-135 (купить на AliExpress).
- Макетная плата.
- Соединительные провода.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Датчик газа/дыма MQ135
Описание
Газовый датчик MQ-135 обнаруживает такие газы, как аммиак, азот, кислород, спирты, ароматические соединения, сульфид и дым. В атмосфере мы можем обнаружить загрязняющие газы, но проводимость газового датчика увеличивается по мере увеличения концентрации загрязняющего газа. Газовый датчик MQ-135 может быть реализован для обнаружения дыма, бензола, пара и других вредных газов. Он имеет потенциал для обнаружения различных вредных газов. Он имеет низкую стоимость и особенно подходит для приложений мониторинга качества воздуха.
Датчик MQ135 имеет два выхода: аналоговый выход и выход TTL. Выход TTL представляет собой слабый цифровой сигнал, доступ к которому можно получить через порты ввода-вывода на микроконтроллере. Аналоговый выход отображает измеренную концентрацию газа, т.е. увеличение напряжения на нем прямо пропорционально увеличению концентрации газа. Этот датчик также имеет длительный срок службы и хорошую стабильность.
Функции и особенности
• Высокая чувствительность.
• Высокая чувствительность к аммиаку, сульфиду и бензолу.
• Стабильный и длительный срок службы.
• Диапазон обнаружения: 10–300 частей на миллион NH3, 10–1000 частей на миллион бензола, 10–300 частей на миллион спирта.
• Напряжение нагревателя: 5,0 В.
• Размеры: диаметр 18 мм, высота 17 мм без учета штифтов, штифты – высота 6 мм.
• Длительный срок службы и низкая стоимость.
Схема проекта
Схема подключения датчика газа MQ-135 к NodeMCU ESP8266 представлена на следующем рисунке.
Выполните подключение согласно представленной схемы. Подключите вывод VCC MQ135 к Vin NodeMCU и GND к GND. Подключите аналоговый вывод A0 MQ135 к аналоговому выводу A0 NodeMCU.
Настройка Thingspeak и получение ключа API
1. Перейдите на https://thingspeak.com/ и создайте учетную запись, если у вас ее нет. Войдите в свою учетную запись.
2. Создайте новый канал, нажав на кнопку. Введите основные данные канала. Затем прокрутите вниз и сохраните канал. Вы можете следовать видеоруководству ниже.
3. Затем перейдите в API keys, скопируйте и вставьте этот ключ в отдельный файл блокнота. Он вам понадобится позже при программировании.
Исходный код программы
Вот программа для мониторинга уровня газа в Интернете с использованием ESP8266 и датчика газа MQ135. Скопируйте этот код и загрузите его в Nodemcu.
Измените SSID Wi-Fi, пароль и ключ API Thingspeak.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#include <ESP8266WiFi.h> String apiKey = "SKP9YQY2CFVNK919"; // Enter your Write API key from ThingSpeak const char *ssid = "Alexahome"; // replace with your wifi ssid and wpa2 key const char *pass = "hngzhowxiantan"; const char* server = "api.thingspeak.com"; WiFiClient client; void setup() { Serial.begin(115200); delay(10); Serial.println("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void loop() { float h = analogRead(A0); if (isnan(h)) { Serial.println("Failed to read from MQ-5 sensor!"); return; } if (client.connect(server, 80)) // "184.106.153.149" or api.thingspeak.com { String postStr = apiKey; postStr += "&field1="; postStr += String(h/1023*100); postStr += "r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); Serial.print("Gas Level: "); Serial.println(h/1023*100); Serial.println("Data Send to Thingspeak"); } delay(500); client.stop(); Serial.println("Waiting..."); // thingspeak needs minimum 15 sec delay between updates. delay(1500); } |
Мониторинг уровня газа через Интернет с использованием ESP8266 и датчика газа
После сборки схемы на макетной плате необходимо загрузить код в плату.
После завершения загрузки кода откройте последовательный монитор, чтобы увидеть, подключен ли Wi-Fi. Убедитесь, что скорость передачи данных составляет 115200. Если Wi-Fi подключен, вы можете увидеть уровень газа, отображаемый в процентах, и данные будут отправлены на thingspeak.
Откройте канал thingspeak и выберите публичный/приватный просмотр. Здесь вы можете увидеть данные, загруженные с интервалом в 15 секунд.