首页 > 分享 > 《照顾好我的幸福树》自动浇花+补光——HA+micropython实现

《照顾好我的幸福树》自动浇花+补光——HA+micropython实现

本帖最后由 zld_555 于 2020-6-12 23:24 编辑 先来几个图

HA端控制面板

水箱(水泵+水"位"传感器)(花盆里还有土壤湿度传感器 )


光照(灯带+光传感器)

透明塑料外壳 (动手能力差)

概述

学了micropython后一直想做个东西练练手,家里正好有一盆幸福树,就做个玩具照顾下花花草草吧。

起初是打算使用esp8266设备(因为便宜呗),esp8266设备只有一个ADC接口,所以把这个宝贵的接口留给了水位传感器,土壤湿度传感器就没有使用ADC。后来因为8266的内存实在是太弱了,总是莫名重启优化调试了几天仍然无果,咬咬牙心一横多花了10来块钱上了esp32。

功能主体由esp设备独立完成,HA方便的提供一个接入控制方式。如果依靠HA进行自动化,实现起来应该会更简便。

功能

自动浇水:由土壤湿度传感器检测干湿度,在水箱有水的情况下启动水泵抽水。

自动补光:由光照传感器检测光照强度,并定时采样累计。在允许补光的窗口时间(设定窗口时间是因为怕光污染)进行补光,提升光照强度,直到满足设定的每日光照期望值。光照每天累计,次日清零。

HA接入:配置好主题,使用mqtt自动发现。可以看到各个传感器的状态值。并可以手动控制水泵和补光灯(会退出自动模式)。

物料准备

  物料  

数量

单价

总价

  Esp32NodeMCU  

1

26

26

  BH1750FVI数字光照传感器模块  

1

10.5

10.5

  土壤湿度计检测模块 湿度传感器  

1

1.55

1.55

  水位传感器 Water Sensor  

1

0.7

0.7

  电源模块12V输入3.3V 5V  12V多路输出  

1

1.2

1.2

  12V 5A电源适配器  

1

14

14

  LED补光灯12V  

2

9.5

19

  直流电机3V 卧式小潜水泵DC3W   

1

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



  600Ω电阻  

1



  网线  

2米



  电源线双芯12V  

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

所属分类:花卉
上一篇: 各种花土壤湿度值 土壤湿度多少时
下一篇: 养花的朋友应该需要这个,土壤湿度