HA端控制面板
水箱(水泵+水"位"传感器)(花盆里还有土壤湿度传感器 )
光照(灯带+光传感器)
透明塑料外壳 (动手能力差)
概述
学了micropython后一直想做个东西练练手,家里正好有一盆幸福树,就做个玩具照顾下花花草草吧。
起初是打算使用esp8266设备(因为便宜呗),esp8266设备只有一个ADC接口,所以把这个宝贵的接口留给了水位传感器,土壤湿度传感器就没有使用ADC。后来因为8266的内存实在是太弱了,总是莫名重启优化调试了几天仍然无果,咬咬牙心一横多花了10来块钱上了esp32。
功能主体由esp设备独立完成,HA方便的提供一个接入控制方式。如果依靠HA进行自动化,实现起来应该会更简便。
功能
自动浇水:由土壤湿度传感器检测干湿度,在水箱有水的情况下启动水泵抽水。
自动补光:由光照传感器检测光照强度,并定时采样累计。在允许补光的窗口时间(设定窗口时间是因为怕光污染)进行补光,提升光照强度,直到满足设定的每日光照期望值。光照每天累计,次日清零。
HA接入:配置好主题,使用mqtt自动发现。可以看到各个传感器的状态值。并可以手动控制水泵和补光灯(会退出自动模式)。
物料准备
物料数量
单价
总价
Esp32NodeMCU1
26
26
BH1750FVI数字光照传感器模块1
10.5
10.5
土壤湿度计检测模块 湿度传感器1
1.55
1.55
水位传感器 Water Sensor1
0.7
0.7
电源模块12V输入3.3V 5V 12V多路输出1
1.2
1.2
12V 5A电源适配器1
14
14
LED补光灯12V2
9.5
19
直流电机3V 卧式小潜水泵DC3W1
2.25
2.25
水泵导水管1米
0.8
0.8
2路5V继电器1
3.25
3.25
DC接口母头1
0.45
0.45
F型透明防水盒1
5.5
5.5
发光二极管2
1
2米
2米
85.2
网线分成了两部分,其一实现浇水相关功能(两个传感器+水泵至少需要6芯),其二实现补光功能(光照传感器需要4芯,剩下4芯拧成两股为LED供电)。
发光二极管一个用于显示电机工作状态,一个用于显示水箱是否有水,可选用。
对于电路知识,我完全是萌新,画的图仅限于能看懂,包括后面的焊接/接线都是乱七八糟,各位看官见笑
因为咱这是HA论坛,所以只对HA相关的内容做出说明,完成代码请移步github。
通讯完全使用mqtt实现,并且在代码里进行MQTT自动注册,所以HA里只需要开启自动发现即可。
HA的MQTT自动发现配置:
‘homeassistant/{switch}/{dev_id}/{object_id}/config’
由控制台发布,设备端订阅的主题:‘{dev_id}/+/command’
由控制台订阅,设备端发布的主题:‘{dev_id}/devstate’
自动发现:
1.土壤湿度传感器(binary_sensor)
topic:homeassistant/binary_sensor/{dev_id}/moisture/config
{"device_class": "moisture", "name": "Temperature", "state_topic": "{dev_id}/state", "payload_on": "wet","payload_off":"dry", "value_template": "{{value_json.moisture_status}}" }
2.水位传感器(sensor)
topic:homeassistant/sensor/{dev_id}/water/config
{"device_class": "illuminance", "name": "light_accumulation", "state_topic": "{dev_id}/state", "unit_of_measurement": "lx", "value_template": "{{ value_json.light_accumulation}}" }
4.LED补光灯(switch)
topic:homeassistant/switch/{dev_id}/led/config
{"name": "plant_led", "command_topic": "{dev_id}/led/command","payload_on":"on","payload_off":"off", "state_topic": "{dev_id}/state", "value_template": "{{value_json.led}}"}
5.水泵(switch)
topic:homeassistant/switch/{dev_id}/water/config
{"name": "plant_waterpump", "command_topic": "{dev_id}/water/command","payload_on":"on","payload_off":"off", "state_topic": "{dev_id}/state", "value_template": "{{value_json.water_pump}}"}
6.手工/自动模式切换(switch)
topic:homeassistant/switch/{dev_id}/mode/config
{"name": "plant_devmode", "command_topic": "{dev_id}/mode/command","payload_on":"auto","payload_off":"manual", "state_topic": "{dev_id}/state", "value_template": "{{value_json.mode}}"}
命令主题:
1.控制水泵
topic:{dev_id}/water/command
2.控制补光灯
topic:{dev_id}/led/command
3.控制设备工作模式
topic:{dev_id}/dev/command
设备状态:
moisture_status:土壤湿度,true为”干/缺水“,false为”湿润/不缺水“water_level:水位值浸入水后数值基本在500-600.400以下不敏感(esp8266)0-4095(esp32)light_level:读取值0-54613light_accum: 当天光照量统计,每10分钟记录一次light_levelled:补光灯是否工作water_pump:水泵是否工作1.设备传感器状态
topic:{dev_id}/devstate
{"dev_id":"9","dev_state":"on","mode":"atuo","moisture_status":"dry","water_level":400,"light_level":1000,"light_accum":1930,"led":"on","water_pump":"off"}
{"dev_id":"9","dev_state":"on","mode":"manual","moisture_status":"wet","water_level":400,"light_level":1000,"light_accum":1930,"led":"on","water_pump":"off"}
相关知识
基于STM32单片机远程浇花花盆GSM短信浇水补光灌溉系统
【特纳斯电子】鸡舍电子智能补光器的设计
浇花,多用这些“废水”,养分、水分都能兼顾好
庭院自动浇花的几种灌溉方式
基于STM32单片机的远程智能浇花花盆GSM短信浇水补光方案原理图程序设计
基于单片机自动智能浇花浇水控制系统设计
480【毕设课设】基于STM32单片机远程浇花花盆GSM短信浇水补光灌溉系统
自动定时“浇花神器”:任性出门玩1个月没人浇花的终极解决方案
入手NodeMCU(ESP8266)玩玩——自动浇花
51单片机——自动浇花系统(含全部代码)
网址: 《照顾好我的幸福树》自动浇花+补光——HA+micropython实现 https://m.huajiangbk.com/newsview169866.html
上一篇: 各种花土壤湿度值 土壤湿度多少时 |
下一篇: 养花的朋友应该需要这个,土壤湿度 |