Открытая платформа для создания заботливой квартиры

Датчик влажности почвы самое простое, но и очень полезное устройство, с которого вы можете начать знакомство с домашней автоматизацией. Умный датчик влажности в составе умной квартиры напомнит о необходимости полить растение, с учетом его влаголюбивости или засухоустойчивости, например, отправив сообщение на телефон.

Итак, компоненты умного датчика влажности почвы:

Название Назначение Цена, руб.
BLE CC41-A Радиомодуль Bluetooth LE 150
Arduino Pro Mini 3V Микроконтроллер для считывания уровня влажности почвы и отправки значения в Home Assistant 135
YL-38 Датчик влажности почвы 40

Используйте свободные 3D-модели, чтобы напечатать забавный корпус для вашего датчика, например, такой как этот:

Умный датчик влажности почвы

Все компоненты устройства легко могут разместиться внутри такой лягушки:

Умный датчик влажности почвы по частям

В режиме ожидания устройство потребляет около 100 мкА, что достигается удалением светодиодов и стабилизатора с платы микроконтроллера. В режиме считывания показаний и конфигурирования BLE-модуля, устройство потребляет 6 мА, в течение 1 сек и затем опять переходит в режим с низким энергопотреблением.

Программирование

О том как настроить Arduino IDE и подключить микроконтроллер к ПК читайте в этой коротенькой инструкции. Для компиляции программы необходимо загрузить библиотеки и добавить их в Arduino IDE через меню Sketch - Install library:

#include <cc41a.h>
#include <LowPower.h>

#define SENSOR_PIN A1
#define SENSOR_VCC 6
#define WAIT_SECONDS 3600

CC41A ble(11, 7, 10); // RX, TX, Reset
int secondsPassed = WAIT_SECONDS;
int lastValue = 0;

void setup() {
  ble.configure("Frog-1");
}

void loop() 
{
  if ( secondsPassed >= WAIT_SECONDS ) 
  {
    secondsPassed = 0;
    pinMode(SENSOR_VCC, OUTPUT);
    pinMode(SENSOR_PIN, INPUT);
    digitalWrite(SENSOR_VCC, HIGH);
    delay(200);
    int sensorValue = analogRead(SENSOR_PIN);
    digitalWrite(SENSOR_VCC, LOW);
    pinMode(SENSOR_PIN, OUTPUT);

    if ( lastValue != sensorValue ) {
        lastValue = sensorValue;
        ble.major(sensorValue);
    }
  }

  // fall a sleep
  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  secondsPassed += 8;
}

Схема устройства

Схема датчика влажности почвы

Настройка HASS

Файл: /config/configuration.yaml

sensor:
  - platform: cutecare
    mac: <укажите тут адрес вашего BLE-модуля>
    scan_interval: 3600
    monitored_conditions:
      - moisture
    name: plant1

Файл: /config/customize.yaml

sensor.plant1_moisture:
  entity_picture: http://www.plantsguru.com/image/cache/catalog/foliage%20plants/pg-ficus-elastica-600x548.jpg
  friendly_name: Маленький фикус

Файл: /config/groups.yaml

default_view:
  view: yes
  icon: mdi:home 
  entities:
    - group.hall
hall:
  name: Большая комната
  entities:
    - sensor.plant1_moisture

После перезагрузки HASS, со временем, вы получите примерно такой график:

Автоматизация

Самый простой способ отправить уведомление о необходимости полить растение - отправить письмо на электронный адрес. Есть масса других вариантов, например, push-уведомления на телефоне, но в этом случае потребуется установить доп. ПО на телефон.

Файл: /config/configuration.yaml

binary_sensor:
  - platform: template
    sensors:
      moisture_low:
        value_template: '{{ states.sensor.plant1_moisture.state|int < 20 }}'
        friendly_name: 'Необходимо полить растение'
notify:
  - name: email
    platform: smtp
    server: smtp.gmail.com
    port: 587
    timeout: 15
    sender: youremail@gmail.com
    encryption: starttls
    username: youremail@gmail.com
    password: *********
    recipient:
      - youremail@gmail.com
    sender_name: Умная квартира
alert:
  low_moisture:
    name: "Нужно полить растение"
    entity_id: binary_sensor.moisture_low
    repeat: 180
    notifiers:
      - email

Этими настройками мы создаем бинарный сенсор, который реагирует на достижение порогового значения влажности, измеряемого умным сенсором plant1_moisture. Также создаем канал уведомлений по почте с названием email. Правило "low_moisture" срабатывает при уровне влажности почвы < 20% и отправляет об этом уведомление на почту.