Интеграция датчика освещенности гидропонной установки в Home Assistant — различия между версиями

Материал из ЭНЭ
Перейти к: навигация, поиск
(Собрать датчик по схеме)
Строка 9: Строка 9:
 
(Фото 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 КОм.'''  
  
Три фоторезистора нам нужны, чтобы производить замеры в трех разных диапазонах освещенности, в вечрнее время, днем и при ярком солнечном свете.
+
Три фоторезистора нам нужны, чтобы производить замеры в трех разных диапазонах освещенности, в вечернее время, днем и при ярком солнечном свете.
  
 
=== Загрузить в Arduino программный код ===
 
=== Загрузить в Arduino программный код ===

Версия 16:00, 7 июля 2023

(Фото 1) Датчик освещенности, люксометр

Интеграция датчика освещенности гидропонной установки в 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)

(Фото 2) Люксометр схема
(Фото 3) Замер освещенности на улице
(Фото 4) Замер освещености в гроубоксе
(Фото 5) Пересчет освещенности экспонента
(Фото 6) История освещенности на моб
(Фото 7) История освещенности в ПК
(Фото 8) История освещенности в Gnuplot