ESP8266制作天气预报海藻球微景观生态缸记录(一)

自从迷上电子制作之后,淘宝就疯狂向我推荐各种所谓的“治愈系小玩意”,不知道大数据是怎么认为喜欢电子制作的就一定会喜欢那些小东西~~但是,好吧,他们赢了。

于是就淘宝了个如下图的“海藻球微景观生态缸”。

当然,之所以入手这东西,很大程度上还是想要过过手瘾对其改装。

没有什么特别详细的计划,初步的构想是用保留缸顶原有的白光LED,增加WS2812彩灯,用ESP8266单片机获取天气预报,然后控制WS2812彩灯根据未来天气呈现不同颜色(比如雨天蓝色,晴天白色),达到美观又实用的效果。

当没有人在附近活动的时候,自动关灯——虽然也不费多少电,但傻亮着总觉得不妥【好吧,我知道海藻球需要足量光照,希望“海藻球保护协会”的朋友不要告我虐待~~】。

后续的话,如果要养鱼,就增加水泵;如果想要更精细地养球,就增加半导体制冷模块(海藻球喜冷怕热)。走一步算一步。

家里有一块ESP01S模组,经过测试最多4个io口可用,应该差不多够用,暂时就它了。

目前初步计划的制作顺序是:

1、探测人体活动,无人活动时关闭顶灯【人体活动传感器占用一个io,顶灯驱动占用一个io】

2、增加WS2812彩灯,根据未来天气变化彩灯颜色【彩灯模块占用一个io】

3、增加网页控制页面,实现自动天气控制彩灯颜色和手动调光控制切换。

4、后续暂无计划,除非有一天突然想养鱼或把海藻球养到极致,那么这个ESP01S模组就不够用了。

而需要的材料大致是:

  • ESP8266——接收天气预报并根据预报结果控制彩灯颜色,以及根据人体感应控制灯光开关(ch340之类的下载器也是必须的)
  • ULN2003——负责驱动大功率5vLED灯(额外需要上拉电阻)
  • 人体传感器——红外热释电型
  • WS2812彩灯模块(8位)——彩色光源输出
  • 5v手机充电器
  • 5v转3.3v模块,ldo线性稳压就行了,因为这个东西是插电运行的,所以不需要考虑省电问题。
  • 一个micrcousb母座转dip模块——充电器插到上面供电(如果直接把充电线剪断,焊在电路板上,就不需要)
  • 一个usb2.0母座转dip模块——5vLED灯供电(如果直接把那个灯的线剪断,焊在电路板上,就不需要)
  • 一个3pin的2.54接线端子和母座——为了插入WS2812模块,如果想直接焊在电路板上,这个也不需要

目前这个景观缸还在运输中,兵马未动,粮草先行,现在就开始搞。


第一步,实现人体感应开关顶灯——人体感应传感器根据人体活动输出电平信号(1为有人,0为无人),ESP8266接收到这个信号后,控制顶灯亮灭【注:人体传感器只能探测到活动信号,如果一直坐着不动会判定无人,所以ESP8266需要进行延时处理】。

虽然没有到货,但了解到那个缸顶LED是这个样子的:

预计工作电流不会小,而且要求5V电压。

ESP8266单片机是3.3V电压,直接驱动这个LED灯不光电压不够,而且电流驱动力也估计够呛。所以准备把家里的闲置ULN2003驱动芯片用上。【三极管放大电路也可以,因为预计未来可能还要有更多东西要驱动,怕元件太多麻烦,就直接 用ULN2003了。这东西也就2毛钱,很实在。】

ULN2003的原理就是自身可以接高电压大电流电源,这个电源不会作用于单片机,而是会在接收到单片机传来的信号后导通,直接用自己的电源驱动目标元件,工作电流可达500ma,驱动一般的LED灯和电机都够了。

ESP8266和ULN2003之间的接线关系如下(注意ULN2003是反向的,需要输入1,它才会输出0让负载工作。):

 注意,上拉电阻要加,1k和10k的都可以,否则不工作。

有了这个电路,就可以大大方方地驱动LED顶灯了,未来如果要加电机,可以把ULN2003的其他引脚也用上,方便扩展。

接下来,就是人体传感器模块了。

人体传感器模块有好多种,有超声波的,有红外热释电的。除了几百元的那种,都无法探测人体活动。如果坐着不动,就会认为不存在(莫名地觉得有点发慌)。超声波会有超声波发出,为了身体健康,还是不要选那种。我就选红外热释电型的,因为那是被动探测。

红外人体传感器可以看到很多款式,别看款式繁多,价格不一,核心功能都是一样的(不好用),贵一点的会有光线补偿提高精度,或者是延时可调。那些功能都是针对单独使用的情况下的,如果配合单片机使用,单片机本身就可以用算法来调延时,也可以外接光线传感器模块来做光线补偿,所以只要买最便宜的就行,比如这个:

红外人体传感器的用法很简单,有人经过时输出1,没人时输出0.

因为不能探测静止人体,所以如果不动,它也会输出0。

所以需要写程序来处理这个事情。

程序算法可简单可复杂,最简单的算法就是计时15分钟,如果15分钟内传感器一直输出0,就关闭LED灯。如果15分钟内有输出1,则保持LED灯开启,并重新计时。

一般来说,人不会15分钟都保持不动,这个延时足够用了。偶尔会出现误关的情况,挥挥手它就亮了。


所以这样就实现了人体感应LED灯的开关,因为货还没有到,就先在面包板上试一下效果。

那个白光LED就代表了将来要接入的缸灯。

等景观缸到货后,应该只要把usb母座装上,应该就可以直接生效了。

等待景观缸到货中……

 

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩编程的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值