『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 38379|回复: 21

[经验分享] 《照顾好我的幸福树》自动浇花+补光——HA+micropython实现

[复制链接]

2

主题

75

帖子

314

积分

论坛分享达人

积分
314
金钱
234
HASS币
20
发表于 2020-6-12 23:04:39 | 显示全部楼层 |阅读模式
本帖最后由 zld_555 于 2020-6-12 23:24 编辑

先来几个图
微信截图_20200612230339.png

HA端控制面板


微信图片_20200612230154.jpg

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

微信图片_20200612230201.jpg

光照(灯带+光传感器)

微信图片_20200612230213.jpg


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


概述

学了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供电)。
发光二极管一个用于显示电机工作状态,一个用于显示水箱是否有水,可选用。
  接入设计

Schematic_补光浇花esp32.png
对于电路知识,我完全是萌新,画的图仅限于能看懂,包括后面的焊接/接线都是乱七八糟,各位看官见笑
代码实
      因为咱这是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
"on"  |   "off"

2.控制补光灯
      topic:{dev_id}/led/command
"on"  |   "off"

3.控制设备工作模式
      topic:{dev_id}/dev/command
"auto"  |  "manual"




设备状态:

  • 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"}






评分

参与人数 2金钱 +32 HASS币 +20 收起 理由
咸味土豆 + 12 论坛有你更精彩!
+ 20 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

6

主题

243

帖子

1864

积分

金牌会员

Rank: 6Rank: 6

积分
1864
金钱
1621
HASS币
0
发表于 2020-6-13 07:14:54 | 显示全部楼层
牛人,赞1个。
回复

使用道具 举报

21

主题

463

帖子

2867

积分

金牌会员

Rank: 6Rank: 6

积分
2867
金钱
2404
HASS币
0
发表于 2020-6-13 08:33:38 | 显示全部楼层
厉害!厉害!
回复

使用道具 举报

4

主题

162

帖子

765

积分

高级会员

Rank: 4

积分
765
金钱
603
HASS币
10
发表于 2020-6-13 13:00:52 | 显示全部楼层
厉害了 大佬
回复

使用道具 举报

27

主题

2143

帖子

8930

积分

论坛元老

Rank: 8Rank: 8

积分
8930
金钱
6782
HASS币
30

论坛元老

发表于 2020-6-13 16:12:09 | 显示全部楼层
反正我不会,我就觉得附带原理图的都牛逼

评分

参与人数 1金钱 +12 收起 理由
咸味土豆 + 12 大佬说的非常有道理。

查看全部评分

回复

使用道具 举报

23

主题

125

帖子

2053

积分

金牌会员

Rank: 6Rank: 6

积分
2053
金钱
1928
HASS币
10
发表于 2020-6-13 22:20:05 | 显示全部楼层
来看看
回复

使用道具 举报

9

主题

111

帖子

359

积分

中级会员

Rank: 3Rank: 3

积分
359
金钱
247
HASS币
0
发表于 2020-6-15 21:11:29 | 显示全部楼层
牛啊,看这应该是不会啊!!!
回复

使用道具 举报

12

主题

351

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
821
HASS币
0
发表于 2020-6-27 21:51:35 | 显示全部楼层
要是再详细些就更好了,能盖更高的楼
回复

使用道具 举报

6

主题

352

帖子

1333

积分

金牌会员

Rank: 6Rank: 6

积分
1333
金钱
981
HASS币
0
发表于 2020-6-28 15:38:48 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

0

主题

15

帖子

90

积分

注册会员

Rank: 2

积分
90
金钱
75
HASS币
0
发表于 2020-7-5 14:38:34 | 显示全部楼层
楼主利用这套装备做个自浇水花盆吧  应该是这个名称,英语角self watering planter
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 05:20 , Processed in 0.409519 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表