Легкая автоматизация на основе ESP8266

Проект "Собачья будка"


Показатели

  • Температура контроллера
  • Температура воздуха в будке
  • Влажность воздуха в будке
  • Температура обогревателя
  • Уровень воды в миске
  • Освещенность

Устройства

  • Охлаждение контроллера
  • Обогреватель
  • Светильник
  • Подача воды
  • Подача корма


Материалы проекта

В основе проекта лежит контроллер типа Arduino, но более компактный и функциональный. Рекомендуемый вариант платы - Wemos D1 mini,  где используется чип ESP8266. В проекте определены:

  • SelfTemp - датчик температуры DS18B20 для контроля температуры устройства. Используется 1-Wire подключение.
  • AirHum, AirTemp - модуль BME280 для замеров температуры и влажности воздуха внутри будки. Подключается по I2С-шине.
  • HeatTemp - датчик температуры DS18B20 для контроля температуры обогревателя или подстилки в будке. Использует 1-Wire подключение.
  • SunLight - модуль BH1750 для измерения мощности светового потока. Подключается по I2С-шине.
  • WaterLevel (WaterLevelRaw, WaterLevelPct) - любой аналоговый датчик для измерения уровня воды в миске. Например, датчик уровня или измеритель влажности почвы.
  • SelfFan - управление вентилятором (U=5V, Imax=200mA) для охлаждения контроллера.
  • AirHeat - управление обогревателем. 
  • FoodBowl - управление устройством подачи корма.
  • WaterBowl - управления насосом подачи воды.
  • LampPower - управление освещением.

Внимание! Предложенная схема является типовой и может быть модернизирована согласно Ваших предпочтений и требований. Вам необязательно использовать все компоненты указанные в схеме и подключать их! Аналогично, Вы можете использовать этот проект не по прямому назначению, заменяя устройства и компоненты на какие-либо другие. 

Схема предусматривает подачу питания PwrSens для датчика WaterLevel, только в момент измерений. Это сделано для того, чтобы снизить коррозионный эффект деградации датчика.

Для определения уровня воды в миске используется датчик WaterLevel с аналоговым выходом. Датчик калибруется после загрузки микропрограммы в контроллер на странице "Option". Для этого выставляются минимальные и максимальные значения, когда он полностью мокрый и сухой. На основе этих значений будет сформировано результирующее показание от 0 до 100%. Проверить показания можно на странице "Report", где также отображается текущее аналоговое значение WaterLevelRaw.

Перечень компонентов проекта
# Обозначение Кол-во Тип Модель Описание
U1 1 шт Модуль WeMos D1 mini WiFi board with 4MB flash based on ESP-8266EX
BME2801 штМодульBME280 I2CTemperature Humidity Pressure Sensor
BH17501 штМодульBH1750 I2CLight Intensity Sensor BH1750
SelfTemp,
HeatTemp
2 штДатчикDS18B201-wire digital temperature sensor, TO-92
WaterLevel
(Вариант 1)
1 штДатчикT1592Water Level Sensor Module T1592 for Arduino 
WaterLevel
(Вариант 2)
1 штДатчикV1.2Capacitive Soil Moisture Sensor
D1, D2, D3, D4, D55 штДиод1N40071000V 1A General Purpose Rectifier Diode, DO-41
Q1, Q2, Q3, Q4, Q5, Q6 6 шт Транзистор 2N3904 0.2A Ic, 40V Vce, Small Signal NPN Transistor, TO-92
R2 1 шт Резистор 4K7 Resistor 0.25W, THT, DIN 0207
R1, R3, R4, R5, R6, R76 штРезистор1KResistor 0.25W, THT, DIN 0207
K1, K2, K3, K44 штРелеSRD-05VDC-SL-C10A Relay SPDT SANYOU SRD Series Form C
J11 штРазъемMKDS 1,5/2-5.08
KF301-2P
Way Screw Terminal Block 17.5A 5.08mm
J12, J13, J14, J154 штРазъемMKDS 1,5/3-5.08
KF301-3P
Way Screw Terminal Block 17.5A 5.08mm
J161 штКоннекторB2B-XH-A(LF)(SN)JST XH Series P2.5 mm
J5, J3, J43 штКоннекторB3B-XH-A(LF)(SN)JST XH Series P2.5 mm
J2, J62 штКоннекторB4B-XH-A(LF)(SN)JST XH Series P2.5 mm
опционально?РелеSSR-40 DAТвердотельное и бесшумное реле
Pwr5V?Блок питанияHLK-PM01AC-DC 220V to 5V 
SelfFan?ВентиляторMX-3010Радиальный вентилятор 30x30x10мм, 5В 150мА


Опасно! Напряжение 220В опасно для жизни и может вызвать пожар! 

Универсально! Разработанная схема предусматривает как размещение на плату элементов, так и отказ от них. Например, Вы можете использовать только прямой цифровой вывод для соответствующего устройства или датчика и самостоятельно собрать исполнительную схему, либо же, Вы можете разместить на плате предложенные компоненты - блок реле, оптроны, транзисторы и т.п. и таким образом получить полностью готовый проект. Кроме прямых цифровых выводов, на плату добавлены дополнительные разъемы 5V, 3.3V, GND для питания внешних модулей. 

Датчик контроля температуры модуля SelfTemp, может быть размещен прямо на плате без подключения через разъем.

Печатная плата допускает подключение высоковольтной нагрузки, но все же обратите внимание: 

  • чтобы уменьшить сопротивление, коммутируемые дорожки идущие к реле должны быть дополнительно хорошо залужены
  • со временем, коммутация цепи с большим током приведёт к подгоранию контактов, поэтому лучше использовать SSR-реле, как бесшумное и износостойкое.

Корпус для контроллера

Корпус для платы контроллера, блока питания и вентилятора.

Скачать STL-модель 
Корпус для BME280

Защитный корпус для датчика температуры и влажности BME280.

Скачать STL-модель 


Примеры реализации



Обсуждения, отзывы, вопросы