大家好,我是喜欢瞎折腾的非主流程序员大胖。
绝大多数人包括我媳妇和父母,其实都很难理解码农程序员之类到底是干啥的,极容易和宽带装维师傅修电脑的混为一谈。而我作为一个后端程序员每天关注的都是数据的流动和变化,我的能力或者工作相关的一切除了工资之外也没有对我们的家产生其他影响。
我想尝试用技术改变我们的生活,四处找哪个方向能应用到我的技能。
我家的阳台壁挂太阳能
然后我盯上了我们家的阳台壁挂太阳能,它长这个样子,我们打了个柜子把它包了起来:
这个太阳能算是完美的履行了它的职责,注入循环介质后,阳台外面的太阳能板吸收太阳辐射,加热内筒的水。我们家楼层高一点没多少遮挡,冬天能干到 80 多度,夏天太阳能板角度的原因温度低一点,只要有太阳也能维持在 60 度左右。
让我盯上它的原因只有一点,它不够方便。每次家里有人洗澡都要重复一套动作,跑到阳台,打开柜门,查看温度,温度不够的话还要点一下加热,关上柜门。等待加热的话还要重复几次这个动作,查看温度是否足够。
尝试改造一番,让它变得更智能,更方便。这次改造我想尝试一下最低能多少成本搞定这个事情,所以原来自带的能复用就复用。
拆看看看
拆开看一下太阳能的内部结构:
可以看到分为了两部分,电源板和控制板,两者之间用排线连接。还有红色的插针是温度传感器。
本着最小成本原则,决定复用这个电源板和温度传感器。用万用表测量了下各个模式下的数值。猜了一下线序。
最终找到了电源引脚和加热继电器的控制脚,让我能无损的完成改造。
把它的脑子换了
接下来就是要重新实现一遍这个太阳能控制板的逻辑。
我选的芯片是 ESP32C3,它内置 WiFi,方便网络控制,不用再外挂一个 WiFi 芯片。嵌入式开发还是和应用开发有很大的不同的,这个芯片只有单核 160 MHz 的主频和 384 KB 的存储和 400 KB 的内存,其中蓝牙和 WiFi 协议栈还要占掉一部分。
在我重新实现了控制逻辑把新的固件写入开发板,替换原来太阳能的控制板后。
它是这样的,可以通过手机 App 控制加热开关,可以用手机看到当前温度和历史温度曲线,可以设定目标温度值。
你以为这样就结束了,并没有。我还把开关和传感器数据通过 MQTT 协议连接到了巴法云,接入了各个智能音响,可以使用小爱同学天猫精灵等查询温度,查询控制加热开关状态。
还没有结束,我还扩展了下自动化功能,获取第二天的天气和我家的用水习惯训练 AI 学习历史温度曲线自动化加热策略。
代码和控制逻辑都是我写的,以后扩展就方便多了。
还没结束
核心的逻辑就是读取温度传感器,控制加热开关继电器。所有逻辑必须单片机内部实现,做好边界条件控制,毕竟是一个加热压力容器,还是挺危险的。
剩下的就是实现 LED 控制,太阳能原来有 2 个 LED,继续复用。实现了当温度低于设定温度时亮蓝灯,高于设定温度时亮红灯,加热开关打开时红灯以 1s 的频率闪烁。
加了一个蜂鸣器,当加热开关开关时响一声,出现异常时一直响。有一点人机交互反馈。让家里人用的安心点。
成本
最后算一下总成本,ESP32C3 开发板 20 CNY,100K 欧姆分压电阻 0.05 CNY,有源蜂鸣器 0.2 RMB,最后加起来也不到 21 CNY。
总结一下
仓库在:https://github.com/butterfly-communtiy/water-heater 和技术相关的分享会放在仓库里。欢迎大家抄作业。
技术改变生活,Just for Fun!
评论列表(3条)
太厉害了,请大神帮我也改造一下
Cool.
虽然我看不懂,但不影响我哇塞。膜拜下