Проект «Wifi-School-Station» представляет собой систему мониторинга окружающей среды, для школы которая собирает данные с датчиков и передает их на сервер для дальнейшей обработки и хранения. Пользователь может запросить актуальные данные или историю показателей через Telegram-бота. Проект разработан на базе микроконтроллера NodeMCU ESP8266 с использованием OLED-дисплея, датчиков MQ-5 и DHT-22. Программная часть включает в себя код для микроконтроллера, написанный на C++ в Arduino IDE, и серверную часть, реализованную с использованием Python, SQLite и библиотеки aiogram для Telegram-бота.
- Микроконтроллер: NodeMCU ESP8266
- Датчики:
- MQ-5: Датчик газа (определяет концентрацию углеводородов, водорода, метана и других газов).
- DHT-22: Датчик температуры и влажности.
- Дисплей: OLED-дисплей для отображения текущих показаний датчиков.
- Связь: Wi-Fi модуль ESP8266 для передачи данных на сервер.
- Микроконтроллер: Программа написана на C++ в среде Arduino IDE. Используются библиотеки для работы с OLED-дисплеем, датчиками MQ-5 и DHT-22, а также для подключения к Wi-Fi и отправки данных на сервер. Сервер — Серверная часть написана на Python. Используются библиотеки: Aiogram — Для создания Telegram-бота. sqlite3 — Для работы с базой данных SQLite. Requests — Для обработки HTTP-запросов. SQLite — для хранения истории показаний датчиков. Socket и asyncio — для работы с сетью в Python. ESP8266WiFi.h, WiFiClient.h — для подключения к Wi-Fi и создания TCP-клиентов на ESP8266. MQUnifiedsensor.h — для работы с датчиками газа. Wire.h — для взаимодействия с устройствами по I2C. Adafruit_GFX.h и Adafruit_SSD1306.h — для управления OLED-дисплеями.
Проект может быть использован для мониторинга окружающей среды в учебных заведениях, офисах, домах или других помещениях. Основные функции:
- Отображение данных: Текущие показания датчиков отображаются на OLED-дисплее.
- Передача данных: Данные передаются на сервер для хранения и обработки.
- Запрос данных через Telegram-бота: Пользователь может запросить актуальные данные или историю показаний через Telegram-бота.
Ответ:
- MQ-5: Подключите аналоговый выход датчика к аналоговому входу NodeMCU (например, A0).
- DHT-22: Подключите выход датчика к цифровому пину NodeMCU (например, D4).
Ответ: В коде для NodeMCU укажите SSID и пароль от вашей Wi-Fi сети в переменных ssid
и password
.
Ответ: Отправьте команду пришли данные
в Telegram-боте, чтобы получить актуальные данные, или посмотреть прошлые данные
, чтобы получить историю показаний.
Ответ: Скачайте файлы проекта с https://github.com/zeniafiat/Wifi-School-Station. Далее откройте файл main.py в файлах Telegram-бота. После этого подключите устройство через провод Type-C к источнику питания 5В. Откройте телеграмм бота токен которого надо ввести в main.py .
- Назначение: Определение концентрации газов (углеводороды, водород, метан и др.).
- Подключение: Аналоговый выход датчика подключается к аналоговому входу NodeMCU.
- Особенности: Требуется калибровка для точного определения концентрации газов.
- Назначение: Измерение температуры и влажности.
- Подключение: Цифровой выход датчика подключается к цифровому пину NodeMCU.
- Особенности: Высокая точность измерений, но может быть задержка в получении данных.
- Микроконтроллер: ESP8266 с интегрированным Wi-Fi модулем.
- Порты: Аналоговые и цифровые порты для подключения датчиков и других устройств.
- Питание: 3.3V, но может работать от 5V через встроенный регулятор напряжения.
- Работа с Wi-Fi: Настройка стабильного Wi-Fi соединения может быть сложной, особенно в условиях слабого сигнала.
- Калибровка датчиков: Датчик MQ-5 требует калибровки для точного измерения концентрации газов. Но в загруженной программе калибровка происходит автоматически.
- Обработка данных на сервере: Необходимо учитывать возможные задержки в передаче данных и обрабатывать ошибки соединения. При неправильном подключении.
Проект «Wifi-School-Station» представляет собой эффективное решение для мониторинга окружающей среды с использованием современных технологий. Он сочетает в себе аппаратную часть на базе NodeMCU ESP8266 и программную часть, реализованную на Python. Проект может быть расширен за счет добавления новых датчиков и функциональности. В будущем планируется улучшение стабильности работы, добавление новых функций и оптимизация кода. Себестоимость устройства ≈40 BYN
Для дальнейшего развития проекта планируется:
- Улучшить обработку ошибок и стабильность соединения.
- Добавить поддержку новых датчиков.
- Оптимизировать код для повышения производительности.
- Cоздать сайт для администрации школьного заведения(для просмотра последних данных с классов учебного заведения)
- Новый способ подключения устройств к Telegram-бота по их токену
- Более компактная сборка устройста на печтаной плате личного производства(в процессе)
Ссылка на проект: Wifi-School-Station Ссылка на телеграмм бота: https://t.me/Coyrstestbot Переходник на github проекта: Вопросы разработчику можно задать тут: [email protected]