Облачный умный дом. часть 1: контроллер и датчики
Содержание:
Принцип действия
Основными компонентами датчика NDIR являются инфракрасный источник (лампа), камера для образцов или световая трубка, светофильтр и инфракрасный детектор. Инфракрасный свет направляется через камеру для образцов к детектору. Параллельно имеется еще одна камера с закрытым эталонным газом, обычно азотом.
Газ в камере образца вызывает поглощение определенных длин волн в соответствии с законом Бера-Ламберта, и затухание этих длин волн измеряется детектором для определения концентрации газа. Перед детектором установлен оптический фильтр, который устраняет весь свет, кроме длины волны, которую могут поглощать выбранные молекулы газа.
Особенности конструкции
Корпус сенсора изготовлен из нетоксичного негорючего твердого пластика, обеспечивающего устойчивость изделия к случайным внешним воздействиям. При необходимости прибор может поставляться в модификации с дисплеем, что позволяет наглядно визуализировать уровень концентрации углекислоты в помещении и оперативно принять меры, если концентрация слишком большая. Вместе с тем, датчик GS23 это вполне индустриальный продукт, предназначенный для использования как элемент управления вентиляцией общественных и промышленных зданий в автоматическом режиме. Стандартный аналоговый сигнал позволяет интегрировать датчик СО2 с любым контроллером. Помимо аналогового есть также цифровой интерфейс RS-485 с протоколом Modbus RTU, который обеспечивает интеграцию преобразователя CO2 с современными контроллерами. Монтаж прибора очень простой — настенное крепление при помощи 4-х винтов, идущих в комплекте. При поставке прилагается инструкция по эксплуатации датчика СО2 и монтажу в помещении на стену.
Экономьте здоровье и энергию с CO 2 датчиками
При дыхании люди и животные увеличивают концентрацию СО 2 в выдыхаемом воздухе. Это нормальный биологический процесс. Для атмосферы, на открытом воздухе это не проблема, так как растения потребляют CO 2. Но все-таки сжигание ископаемого топлива увеличивает внешние уровни CO 2, и растения не когут, они просто не успевают обрабатывать такие огромные количества, которые создают очень негативные последствия для нашей спасительной оболочки вокруг планеты, но это не то, о чем мы сегодня поговорим.
В закрытых жилых помещениях без достаточной вентиляции уровень CO 2 может значительно возрасти от начальных наружных уровней нормы а 400 промилле до внутренних уровней 2000-3000 промилле. Это высокая концентрация CO.
Особенно подверженны содержанию СО современные здания без хорошо спроектированной системы. Поэтому плотность СО, превышающий 1000 частей на миллион, могут приводить к сонливости, плохой концентрации внимания, потере внимания или увеличению частоты сердечных сокращений.
Современная система вентиляции с регулированием кислорода и CO 2 может регулировать количество подачи свежего воздуха в здании в зависимости от количества людей и их активности. Люди являются основным источником CO2 в здании. Если их количество в комнате удвоится, уровень CO 2 соответственно удвоится.
Большие здания, такие как школы и офисы, имеют огромные вентиляционные системы, которые используют большое количество электроэнергии только для того, чтобы гарантировать, что внутренний воздух охлаждается или нагревается и заменяется в течение определенного промежутка времени, чтобы обеспечить хорошее качество внутреннего воздуха 24 / 7.
Много энергии можно сэкономить, управляя такой системой на основе стратегически размещенного CO 2.
О MH-Z19 CO 2 датчике
Датчик MH-Z19 изготовлен в Китае компанией Winsen Lt. Используемый метод измерения основан на принципе недисперсионного инфракрасного излучения (NDIR) для обнаружения присутствия CO 2 в воздухе.
Основные характеристики по заявлению производителя:
- хорошая чувствительность;
- не зависит от кислорода;
- долгая жизнь;
- встроенная температурная компенсация;
- Последовательный интерфейс UART и выход широтно-импульсной модуляции (ШИМ).
Недисперсный инфракрасный датчик (или датчик NDIR) представляет собой относительно простой спектроскопический датчик, часто используемый в качестве детектора газа. Он является недисперсионным в смысле оптического рассеяния, поскольку инфракрасная энергия может проходить через атмосферную камеру для отбора проб без деформации.
Как оно работает
Обычно устройства BLE умеют работать в 2-х режимах. Назовем их широковещательный (discover mode) и подключенный (connection mode). В широковещательном режиме устройство может рассылать пакеты, позволяющие другим Bluetooth устройствам обнаружить его и установить соединение при необходимости. При дальнейшем установлении соединения устройства могут обмениваться данными и командами. Некоторые устройства упаковывают какие-то данные о себе прямо в широковещательные пакеты. Это некоторым образом упрощает взамодействие с устройством, а также в числе прочих средств позволяет экономить энергию.
Сенсор Xiaomi умеет работать в двух режимах, и в Интернетах можно найти примеры работы как с широковещательными пакетами так и в режиме соединения. В найденном ранее руководстве используется вариант подслушивания широковещательных пакетов. Достаточно просто чтобы можно было быстро разобраться. Осталось только выяснить, что же не так.
Автоматическая калибровка
Автоматическая калибровка основана на том факте, что в обычных условиях уровень CO 2 возвращается к норме (400 ppm CO2) периодически, по крайней мере, каждые несколько дней. Начиная с этого момента, вы можете заставить свое измерительное программное обеспечение постоянно контролировать самый низкий наблюдаемый уровень CO2 в течение нескольких дней. Если эти самые низкие значения отклоняются от нормы, программное обеспечение датчика может постепенно вносить поправки, чтобы компенсировать это изменение.
Это эффективный и надежный метод для типичной среды, где уровень CO2 возвращается к нормальному, когда в течение нескольких часов не производится CO2.
Arduino
Так что все-таки сломалось?
Код примера работает достаточно просто. При старте устройства инициализируется процесс сканирования устройств и устанавливается класс, функции которого будут вызываться при получении пакетов от устройств (advertising пакеты).
Пакеты от устройств обрабатываются в этой функции:
Очевидно, проблема где-то здесь.
Основное действие в этом коде происходит в конструкции switch, где проверяется значение 11го байта в service data массиве. Проблема только в том, что в моем случае массив данных был меньше 11 байт. Осталось выяснить почему.
Каждый advertising пакет помимо информации о возможности соединения с устройством может содержать пакет данных (payload). Этот пакет содержит расширенные данные об устройстве, также данные о сервисах, которые поддерживает устройство. В одном пакете может быть информация о нескольких сервисах. Типичный payload моих устройств выглядит так (это отдельные байты в шестнадцатиричной системе счисления):
Нас больше всего интересют блоки с типом 0x16, которые отвеают за service data, т.е. за данные, описывающие отдельные функции устройства. В нашем примере таких блоков 2:
Если присмотреться поближе, то можно заметить, что 11й байт в первом блоке очень похож, на тот, что ожидает наш switch (0x0A). А второй блок как раз похож на тот, слишком короткий блок, на который мы ссылались в начале. Похоже здесь и порылась собака. Похоже, что наш код ожидает видеть первый блок, а получает второй.
Как это работает?
Данные о температуре и влажности можно получать на свой смартфон, для этого необходимо установить приложение Mi Home. Xiaomi MiJia Bluetooth Hygrothermograph 2 использует для беспроводной связи Bluetooth 4.2, которые потребляет минимум энергии для передачи данных. Питание обеспечивает батарейка CR2032, её хватит надолго благодаря использованию ЖК монитора с низким энергопотреблением, а в случае снижения уровня заряда, на мониторе отобразиться специальная иконка. Для замены батарейки необходимо снять заднюю крышку. Само устройство закрепляется на любой ровной поверхности с помощью двухстороннего скотча.
В приложении для смартфонов у вас будет возможность связать работу датчика с кондиционером или обогревателем чтобы обстановка в квартире всегда была оптимальной.
Зачем калибровать?
В недисперсионных инфракрасных (NDIR) датчиках диоксида углерода используются инфракрасный источник света и детектор для измерения количества молекул CO 2 в пробном газе между ними. В течение многих лет и источник света, и детектор изнашиваются, что приводит к немного более низкому содержанию CO 2 молекул.
Чтобы бороться с неточными показаниями датчика, во время калибровки датчик нужно скажем так, подвергнуть воздействию известного источника газа, в последствии чего снимаются несколько показаний, вычисляется среднее значение, а разница между новым показанием и исходным показанием, когда датчик был первоначально откалиброван на заводе, сохраняется в Память EPROM.
Это значение «смещения» затем автоматически добавляется или вычитается из любых последующих показаний, полученных датчиком во время использования.
Вывод
Вся проделанная работа в очередной раз показыает, что не всегда код из Интернета хорошо работает. Будь-то пример для ESP32 или кусок кода со StackOverflow, крайне желательно все же понимать как оно работает. Всегда могут появиться не самые стандартные случаи, которые заставят код развалиться. Хорошо, когда это происходит в хобби-проектах, но, очевидно, никому не хотелось бы наталкиваться на подобные случаи в боевом коде. Давайте будем осторожны с использованием чужого кода, ну или по крайней мере попытаемся в нем разбираться.
Как-то длинновато получилось, но надеюсь, что кому-то это будет полезно. Со своей же стороны, надеюсь, что этому эксперименту будет продолжение, и данные температуры все же будут отправлены дальше.
UPD: Продолжение экспериментов тут
Итог
Стоит понимать различия между «Умным» и «автоматическим». Если хозяин дома включает ночник в своей комнате, послав команду со смартфона из любой точки — это одно. А вот если этот ночник включается, когда владелец заходит в ту комнату, и выключается, когда он выходит — это уже признак «Умного» прибора.
Не дайте себя обмануть при покупке такой техники, если решите оснастить свое жилье смарт-устройствами.
Пока такие системы являются довольно редкими в домах и квартирах, по сути представляя из себя признак достатка и высокого материального положения владельцев. Со временем, это изменится в сторону популяризации, все больше производителей работают в этом направлении. А, как известно, широкое предложение приводит к демократичным ценам и доступности.
Умный Дом Xiaomi является ярким тому примером, ведь средняя цена базового комплекта составляет менее пяти тысяч рублей.
YouTube responded with an error: The provided API key has an IP address restriction. The originating IP address of the call (87.236.20.136) violates this restriction.