Оглавление:
- Запасы
- Шаг 1. Подготовьте среду Arduino для ESP8266
- Шаг 2. Включите необходимые библиотеки
- Шаг 3. Настройте стандартный пример эскиза
- Шаг 4. Загрузите веб-интерфейс
- Шаг 5: Добавьте датчик BME680
- Шаг 6: Добавьте датчик PMS5003
- Шаг 7: Добавление некоторых сетевых функций
- Шаг 8: добавление журналов
- Шаг 9: Действия
- Шаг 10: изображения и файлы конфигурации
Видео: Создание внутреннего датчика качества воздуха для Интернета вещей без облака: 10 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Качество воздуха в помещении или на улице зависит от многих источников загрязнения, а также от погоды.
Это устройство фиксирует некоторые общие и некоторые из наиболее интересных параметров с помощью 2 сенсорных чипов.
- Температура
- Влажность
- Давление
- Органический газ
- Микрочастицы
Здесь используются датчики BME680 для измерения температуры, влажности, давления и значений органических газов и PMS5003 для определения плотности микрочастиц.
Используя библиотеку HomeDing, легко создать устройство, которое подключено только к вашей домашней сети и может быть доступно и управляться любым браузером в сети. Он поставляется с набором элементов, которые позволяют использовать наиболее распространенные сенсорные чипы, устройства и другие сервисы.
Он также предлагает комплексное решение для размещения веб-части внутри устройства вместо использования облачного решения для отображения данных датчика и взаимодействия с устройством.
Запасы
Все, что вам нужно для создания этого проекта, - это плата на базе ESP8266, такая как плата nodemcu, и набор датчиков для измерения качества воздуха. Библиотека HomeDing, используемая в этом проекте, поддерживает некоторые из распространенных чипов датчиков температуры, влажности, давления и качества. Здесь используется микросхема BMP680.
- Разъем USB и кабель micro-USB для питания.
- 1 плата nodemcu с процессором ESP8266.
- 1 плата подключения датчика BME680.
- 1 лазерный датчик частиц воздуха PM2.5 типа PMS5003
Датчик BME680 легко заменить датчиком DHT22, поскольку они также поддерживаются библиотекой среди многих других.
Шаг 1. Подготовьте среду Arduino для ESP8266
- Установите последнюю версию Arduino IDE (текущая версия 1.8.2).
- Используйте Board Manager для установки поддержки esp8266. Подробную инструкцию можно найти здесь:
- Настройте параметры платы для NodeMCU 1.0 с файловой системой SPIFFS 1 МБ, как показано на снимке экрана.
Шаг 2. Включите необходимые библиотеки
Библиотека HomeDing полагается на некоторые общие дополнительные библиотеки для работы датчиков и дисплеев.
Когда вы устанавливаете библиотеку HomeDing, вы увидите всплывающее окно с этими необходимыми библиотеками, которые можно установить автоматически, как показано на рисунке, и их все легко установить.
Иногда (по неизвестным причинам) установка библиотек не выполняется, поэтому все необходимые библиотеки необходимо установить вручную.
Более подробную информацию о необходимых библиотеках можно найти на веб-сайте документации по адресу
Это список текущих необходимых библиотек:
- Адафрут NeoPixel
- LiquidCrystal_PCF8574.h
- Драйвер Oled ESP8266 и ESP32 для дисплея SSD1306
- RotaryEncoder
- Библиотека датчиков DHT для ESPx
- OneWire
Лазерный датчик частиц в воздухе PMS5003 обменивается данными с помощью последовательного линейного сигнала со скоростью 9600 бод. Этот сигнал фиксируется с помощью библиотеки SoftwareSerial, которая поставляется с установкой инструментов ESP8266. Убедитесь, что старая версия не установлена в качестве библиотеки.
Шаг 3. Настройте стандартный пример эскиза
Стандартный пример уже включает некоторые из наиболее распространенных датчиков в качестве элементов, поэтому потребуется лишь некоторая конфигурация.
Это относится к датчику BME680, который поддерживается элементом BME680.
Датчик PMS5003 встречается реже, и его необходимо активировать путем включения элемента PMS в прошивку. Это делается путем определения #define HOMEDING_INCLUDE_PMS в разделе реестра элементов скетча.
#define HOMEDING_INCLUDE_BME680 # define HOMEDING_INCLUDE_PMS
Для простоты добавления нового устройства в сеть вы можете добавить SSID и кодовую фразу вашего домашнего Wi-Fi в файл secrets.h рядом с файлом эскиза standard.ino. Но вы также можете использовать встроенный WiFi Manager, чтобы добавить устройство в сеть без этой жестко заданной конфигурации.
Теперь все, что касается реализации скетча, сделано, прошивку можно скомпилировать и загрузить.
Шаг 4. Загрузите веб-интерфейс
Стандартный пример поставляется с папкой данных, содержащей все файлы для веб-интерфейса.
Перед загрузкой этих файлов вы можете добавить файлы env.json и config.json, которые вы можете найти в этой статье, потому что это упростит задачу.
Именно содержание этих файлов делает IoT-устройство особенным и выполняет функцию датчика качества воздуха. Подробно это объясняется в этой истории.
Используйте утилиту загрузки файлов ESP8266 и загрузите все файлы. Для активации конфигурации требуется перезагрузка.
Шаг 5: Добавьте датчик BME680
Датчик BME680 обменивается данными с платой по шине I2C.
Поскольку это, возможно, совместно с другими расширениями, такими как другие датчики или дисплеи, настраивается на уровне устройства в env.json вместе с сетевым именем устройства. Вот извлеченный образец устройства и настроек I2C:
"устройство": {
"0": {"name": "airding", "description": "Датчик качества воздуха",… "i2c-scl": "D2", "i2c-sda": "D1"}}
На макетной плате видны соединительные кабели к датчику: 3,3 В = красный, GND = черный, SCL = желтый, SDA = синий
Конфигурацию для BME680 можно использовать в config.json:
"bme680": {
"bd": {"address": "0x77", "readtime": "10s"}}
Мы добавим действия позже.
Чтобы проверить настройку, просто используйте браузер и откройте https://airding/board.htm, и вы увидите фактические значения отображаемого датчика, и они будут обновляться каждые 10 секунд:
Шаг 6: Добавьте датчик PMS5003
У меня не было датчика с разъемом, совместимым с макетной платой, поэтому мне пришлось отрезать один из разъемов на кабеле, используя паяльник, чтобы напрямую прикрепить его к плате nodemcu. Вы все еще можете увидеть это на финальных фотографиях.
Питание для этого датчика должно поступать от Vin, который обычно питается от шины USB. GND то же самое, но также доступно рядом с выводом Vin.
Данные с датчика передаются в стандартном последовательном формате 9600 бод, поэтому необходимо настроить контакты rx и tx и время считывания:
"pms": {
"pm25": {"description": "датчик частиц pm25", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}
Мы добавим действия позже.
Чтобы снова проверить настройку, просто перезагрузите устройство, используйте браузер и откройте https://airding/board.htm, и вы увидите фактическое значение pm35 показанного датчика, и они будут обновляться каждые 10 секунд, но обычно это значение не меняется часто.
Вы можете получить более высокие значения, поместив свечу рядом с датчиком, так как свеча производит большую часть этих частиц.
Теперь вы можете разместить все в красивом корпусе, потому что все остальные конфигурации и даже обновления программного обеспечения можно выполнять удаленно.
Шаг 7: Добавление некоторых сетевых функций
Следующий фрагмент конфигурации в env.json включает
- обновление прошивки по воздуху
- позволяет обнаруживать сеть с помощью сетевого протокола SSDP и получать текущее время с сервера ntp.
{
… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Слушать" беспроводные "обновления OTA"}}, "ssdp": {"0 ": {" Производитель ":" ваше имя "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}
Вы должны настроить часовой пояс в соответствии с вашим местоположением. Если вы сомневаетесь, вы можете использовать веб-сайт https://www.timeanddate.com/, чтобы получить смещение от UTC / GMT. «2» подходит для Германии летом.
Вы также можете изменить пароль ota после прочтения инструкций относительно режима сохранения в документации по адресу
После перезапуска вы можете найти устройство для ретрансляции в сети, и после получения ответа от ntp-сервера будет доступно местное время.
Шаг 8: добавление журналов
Просто фактических значений может быть недостаточно, поэтому можно использовать еще несколько элементов.
В этой истории элемент Log и элемент NPTTime используются для записи истории значений датчиков в файл журнала, а карта веб-интерфейса для этого элемента может отображать его в виде графика.
Следующая конфигурация создает 2 элемента журнала для газа и частиц:
{
"log": {"pm": {"description": "Журнал pm25", "filename": "/pmlog.txt", "sizes": "10000"}, "aq": {"description": " Журнал качества газа "," имя файла ":" /aqlog.txt "," размер файла ":" 10000 "}}}
Шаг 9: Действия
Теперь нам нужно передать фактические значения в элементы журнала с помощью действий. Действия используют нотацию URL-адреса для передачи kay и значения целевому элементу. Многие элементы поддерживают отправку действий при определенных событиях, которые происходят, например, при получении нового значения датчика.
Действия настраиваются на элементе, который испускает действия, требуется 2 записи:
- Событие pms / p25 onvalue отправляет фактическое значение элементу log / pm с помощью действия значения.
- Событие bme680 / bd ongas отправляет фактическое значение элементу log / pm с помощью действия значения.
{
"pms": {"pm25": {… "onvalue": "log / pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log / aq? value = $ v "}}}
Теперь все элементы настроены.
Шаг 10: изображения и файлы конфигурации
Вот фотография моего последнего датчика качества воздуха IoT.
Файлы конфигурации для загрузки перед загрузкой необходимо переименовать в *.json (без.txt).
Ссылки и ссылки
- Репозиторий исходного кода HomeDing:
- Документация:
- Стандартный пример:
- Элемент BME680:
- Элемент PMS:
- Элемент журнала:
- Элемент NtpTime:
Рекомендуемые:
Основы Интернета вещей: подключение Интернета вещей к облаку с помощью ОС Mongoose: 5 шагов
Основы IoT: подключение вашего IoT к облаку с помощью Mongoose OS: если вы человек, который занимается мастерингом и электроникой, чаще всего вы встретите термин Интернет вещей, обычно сокращенно IoT, и что он относится к набору устройств, которые могут подключаться к Интернету! Быть таким человеком
Недорогой монитор качества воздуха для Интернета вещей на основе RaspberryPi 4:15 шагов (с изображениями)
Недорогой IoT-монитор качества воздуха на основе RaspberryPi 4: Сантьяго, Чили, во время зимней чрезвычайной экологической ситуации, имеют привилегию жить в одной из самых красивых стран мира, но, к сожалению, это не все розы. Зимой Чили сильно страдает от загрязнения воздуха, май
Проект Интернета вещей RFID + датчика цвета: 7 шагов
Проект RFID + Color Sensor IoT: идея этого проекта состоит в том, чтобы вознаградить людей, пьющих из кофейных чашек, и правильно их утилизировать. Возьмем, к примеру, такую компанию, как Тим Хортонс; в 2014 году они ежегодно подавали 2 миллиарда чашек кофе. Хотя их чашки можно переработать
Создание домашних устройств для Интернета вещей или домашней автоматизации: 7 шагов (с изображениями)
Создание домашних устройств для Интернета вещей или домашней автоматизации: это руководство является частью моей серии «Домашняя автоматизация своими руками», ознакомьтесь с основной статьей «Планирование системы домашней автоматизации своими руками». Если вы еще не знаете, что такое Homie, взгляните на homie-esp8266 + homie от Марвина Роджера. Их много, много сен
Нулевой охладитель / подставка для ноутбука (без клея, без сверления, без гаек и болтов, без винтов): 3 шага
Охладитель / подставка для ноутбука с нулевой стоимостью (без клея, без сверления, без гаек и болтов, без винтов): ОБНОВЛЕНИЕ: ПОЖАЛУЙСТА, ПРОГОЛОСОВАЙТЕ ЗА МОЙ ИНСТРУКЦИЮ, СПАСИБО ^ _ ^ ВЫ МОЖЕТЕ ПОПРОБОВАТЬ ЗАПИСЬ НА www.instructables.com/id/Zero-Cost-Aluminium-Furnace-No-Propane-No-Glue-/ ИЛИ МОЖЕТ БЫТЬ ГОЛОСОВАТЬ ЗА ЛУЧШЕГО ДРУГА