Интеграция датчика освещенности гидропонной установки в Home Assistant — различия между версиями
Woronin (обсуждение | вклад) (→Получить «сырые» данные при разных уровнях) |
Woronin (обсуждение | вклад) |
||
Строка 7: | Строка 7: | ||
Сначала нам надо собрать принципиальную схему нашего датчика. | Сначала нам надо собрать принципиальную схему нашего датчика. | ||
− | (Фото 2) Для этого используем три фоторезистора: 90мВт, 2-6кОм, 540нм, Монтаж: THT, 100ВDC, dLED: 5мм и резисторы сопротивлением: 1, 10, 100 КОм. | + | (Фото 2) Для этого используем три фоторезистора: '''90мВт, 2-6кОм, 540нм, Монтаж: THT, 100ВDC, dLED: 5мм''' и резисторы сопротивлением: '''1, 10, 100 КОм.''' |
Три фоторезистора нам нужны, чтобы производить замеры в трех разных диапазонах освещенности, в вечрнее время, днем и при ярком солнечном свете. | Три фоторезистора нам нужны, чтобы производить замеры в трех разных диапазонах освещенности, в вечрнее время, днем и при ярком солнечном свете. | ||
Строка 73: | Строка 73: | ||
'''Y=259* EXP(0,00741* Х)''' | '''Y=259* EXP(0,00741* Х)''' | ||
− | + | Теперь можно приступать к настройке постоянных замеров освещенности. | |
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
== Настроить интеграцию с Home Assistant == | == Настроить интеграцию с Home Assistant == | ||
− | Настраиваем интеграцию через [https://www.home-assistant.io/integrations/firmata Firmata] | + | Настраиваем интеграцию через [https://www.home-assistant.io/integrations/firmata Firmata] Для этого присоединим по USB плату Arduino к HA и в конфигурационном фале , который находится например в путях ''/config/configuration.yaml'' добавляем несколько строчек. После этого перегружаем НА. |
− | (Фото 6) | + | <syntaxhighlight lang="C"> |
+ | firmata: | ||
+ | - serial_port: /dev/ttyUSB0 | ||
+ | serial_baud_rate: 57600 | ||
+ | sampling_interval: 1000 | ||
+ | sensors: | ||
+ | - name: raw_light0 | ||
+ | pin: A0 | ||
+ | pin_mode: ANALOG | ||
+ | differential: 80 | ||
+ | - name: raw_light1 | ||
+ | pin: A1 | ||
+ | pin_mode: ANALOG | ||
+ | differential: 20 | ||
+ | - name: raw_light2 | ||
+ | pin: A2 | ||
+ | pin_mode: ANALOG | ||
+ | differential: 20 | ||
+ | </syntaxhighlight> | ||
+ | Если все сделано без ошибок, то мы сможем увидеть новые объекты в меню: Настройки>>Устройства и службы>>Объекты . У них будут ID объекта: sensor.raw_light0, sensor.raw_light1, sensor.raw_light2, а Интеграция: firmata. | ||
+ | |||
+ | Но это пока еще сырые данные - в вольтах. Для того чтобы пересчитать их в люксы, с использованием наших поправочных коэффициентов, необходимо внести в этот же файл конфигурации ''/config/configuration.yaml'' еще один раздел: | ||
+ | <syntaxhighlight lang="C"> | ||
+ | sensor: | ||
+ | - platform: template | ||
+ | sensors: | ||
+ | light_01: | ||
+ | friendly_name: "освещенность в яркий день" | ||
+ | unit_of_measurement: lk | ||
+ | value_template: "{{ 259 * (e**(0,00741*states('sensor.raw_light0' )))| int }}" | ||
+ | |||
+ | light_02: | ||
+ | friendly_name: "освещенность в пасмурную погоду" | ||
+ | unit_of_measurement: lk | ||
+ | value_template: "{{ 259 * (e**(0,00741*states('sensor.raw_light1' )))| int }}" | ||
+ | |||
+ | light_03: | ||
+ | friendly_name: "освещенность вечером" | ||
+ | unit_of_measurement: lk | ||
+ | value_template: "{{ 259 * (e**(0,00741*states('sensor.raw_light2' )))| int }}" | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | И перезагрузить НА. | ||
+ | |||
+ | Теперь у нас в Объектах добавятся: sensors.light_01, sensors.light_02, sensors.light_03, их мы можем выводить на панель НА. Для этого заведем новую карточку на панели | ||
+ | graph: line | ||
+ | hours_to_show: 24 | ||
+ | type: sensor | ||
+ | entity: sensors.light_01 | ||
+ | unit: lk | ||
+ | detail: 1 | ||
+ | name: Освещенность | ||
+ | |||
+ | Результат представлен на (Фото 6), (Фото 7), (Фото 8) | ||
− | |||
− | |||
=== Добавить на панель график с историей === | === Добавить на панель график с историей === | ||
Строка 99: | Строка 146: | ||
| [[Файл:Замер освещенности на улице.png|link=http://wiki.laser.ru/images/6/60/Замер_освещенности_на_улице.png |thumb|280px| (Фото 3) Замер освещенности на улице]] | | [[Файл:Замер освещенности на улице.png|link=http://wiki.laser.ru/images/6/60/Замер_освещенности_на_улице.png |thumb|280px| (Фото 3) Замер освещенности на улице]] | ||
| [[Файл:Замер освещености в гроубоксе.png |link=http://wiki.laser.ru/images/a/a1/Замер_освещености_в_гроубоксе.png |thumb|160px| (Фото 4) Замер освещености в гроубоксе]] | | [[Файл:Замер освещености в гроубоксе.png |link=http://wiki.laser.ru/images/a/a1/Замер_освещености_в_гроубоксе.png |thumb|160px| (Фото 4) Замер освещености в гроубоксе]] | ||
− | |||
| [[Файл:Пересчет освещенности экспонента.png |link=http://wiki.laser.ru/images/3/31/Пересчет_освещенности_экспонента.png |thumb|280px| (Фото 5) Пересчет освещенности экспонента]] | | [[Файл:Пересчет освещенности экспонента.png |link=http://wiki.laser.ru/images/3/31/Пересчет_освещенности_экспонента.png |thumb|280px| (Фото 5) Пересчет освещенности экспонента]] | ||
− | | [[Файл:История освещенности.png|link=http://wiki.laser.ru/images/1/1c/История_освещенности.png |thumb|160px| (Фото | + | |+ |
− | + | | [[Файл:История освещенности.png|link=http://wiki.laser.ru/images/1/1c/История_освещенности.png |thumb|160px| (Фото 6) История освещенности на моб]] | |
+ | | [[Файл:История освещенности.png|link=http://wiki.laser.ru/images/1/1c/История_освещенности.png |thumb|160px| (Фото 7) История освещенности в ПК]] | ||
+ | | [[Файл:История освещенности.png|link=http://wiki.laser.ru/images/1/1c/История_освещенности.png |thumb|160px| (Фото 8) История освещенности в Gnuplot]] | ||
|+ | |+ |
Версия 16:00, 7 июля 2023
Интеграция датчика освещенности гидропонной установки в Home Assistant
Для того чтобы растения нормально росли и развивались в гроубоксе, в теплице, в оранжереи или в какой то гидропонной установке, как известно, им нужно достаточно света для фотосинтеза. Следить за изменением освещенности можно изготовив самостоятельно датчик освещенности (люксометр), например прямо на макетной плате. Далее загружать данные в автоматическом режиме в Home Assistant, осуществляя сбор данных через контроллер Ардуино. Можно воспользоваться готовым решением, купить датчик освещенности на Алиэкспресс . Но можно собрать самостоятельно (Фото 1), для этого необходимо:
Содержание
Собрать датчик по схеме
Сначала нам надо собрать принципиальную схему нашего датчика.
(Фото 2) Для этого используем три фоторезистора: 90мВт, 2-6кОм, 540нм, Монтаж: THT, 100ВDC, dLED: 5мм и резисторы сопротивлением: 1, 10, 100 КОм.
Три фоторезистора нам нужны, чтобы производить замеры в трех разных диапазонах освещенности, в вечрнее время, днем и при ярком солнечном свете.
Загрузить в Arduino программный код
Загружаем в контроллер Arduino или ESP8266, или ESP32 программный код для отображение данных в COM порту. И проводим несколько замеров при разной освещенности на улице — в солнечную погоду и при облаках, а так же в помещении. (Фото 3), (Фото 4)
////////////////////////////////////////////// // 2023.07.06 woronin, umkiedu@gmail.com // Датчик освещености — люксометр // Robot UMKI controller K6_3 ////////////////////////////////////////////// int light0 = 0; int light1 = 0; int light2 = 0; void setup() { Serial.begin(9600); pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); } void loop() { light0 = analogRead(A0); Serial.println(light0); light1 = analogRead(A1); Serial.println(light1); light2 = analogRead(A2); Serial.println(light2); delay(10); // Delay a little bit to improve simulation performance }
Откалибровать полученные данные
Получаем набор «сырых» данных в вольтах, на основе которых будем производить калибровку для пересчета в люксы. Сводим полученные данные в таблицу.
Для заполнения столбца люксов, будем использовать технологию фотографирования белого листа цифровым фотоаппаратом или смартфоном. Калибровка освещенности с телефона производим по калькулятору c сайта www.gidroponika.su
Значение люксы HA(V) Lx 274 2400 350 2800 479 8900 498 9900 609 23700 620 26000 634 30000 735 61000
После заполнения таблицы измеренными значениями в вольтах и в люксах, строим график в любом табличном процессоре. Например в LibreOffice Calc, используя опцию: Построение линии тренда, показать формулу.
(Фото 5)
Вывод, в нашем случае коэффициенты пересчета получаются такие:
Y=259* EXP(0,00741* Х)
Теперь можно приступать к настройке постоянных замеров освещенности.
Настроить интеграцию с Home Assistant
Настраиваем интеграцию через Firmata Для этого присоединим по USB плату Arduino к HA и в конфигурационном фале , который находится например в путях /config/configuration.yaml добавляем несколько строчек. После этого перегружаем НА.
firmata: - serial_port: /dev/ttyUSB0 serial_baud_rate: 57600 sampling_interval: 1000 sensors: - name: raw_light0 pin: A0 pin_mode: ANALOG differential: 80 - name: raw_light1 pin: A1 pin_mode: ANALOG differential: 20 - name: raw_light2 pin: A2 pin_mode: ANALOG differential: 20
Если все сделано без ошибок, то мы сможем увидеть новые объекты в меню: Настройки>>Устройства и службы>>Объекты . У них будут ID объекта: sensor.raw_light0, sensor.raw_light1, sensor.raw_light2, а Интеграция: firmata.
Но это пока еще сырые данные - в вольтах. Для того чтобы пересчитать их в люксы, с использованием наших поправочных коэффициентов, необходимо внести в этот же файл конфигурации /config/configuration.yaml еще один раздел:
sensor: - platform: template sensors: light_01: friendly_name: "освещенность в яркий день" unit_of_measurement: lk value_template: "{{ 259 * (e**(0,00741*states('sensor.raw_light0' )))| int }}" light_02: friendly_name: "освещенность в пасмурную погоду" unit_of_measurement: lk value_template: "{{ 259 * (e**(0,00741*states('sensor.raw_light1' )))| int }}" light_03: friendly_name: "освещенность вечером" unit_of_measurement: lk value_template: "{{ 259 * (e**(0,00741*states('sensor.raw_light2' )))| int }}"
И перезагрузить НА.
Теперь у нас в Объектах добавятся: sensors.light_01, sensors.light_02, sensors.light_03, их мы можем выводить на панель НА. Для этого заведем новую карточку на панели
graph: line hours_to_show: 24 type: sensor entity: sensors.light_01 unit: lk detail: 1 name: Освещенность
Результат представлен на (Фото 6), (Фото 7), (Фото 8)
Добавить на панель график с историей
Рассчитываем интегральную составляющую освещенности за день, за месяц, за весь период выращивания растений. Что составляет:…
(Фото 8)