数码之家

 找回密码
 立即注册
搜索
查看: 8203|回复: 101

[Arduino] 使用 433M 数传搭建无线温度监控系统,为阳台囤菜保驾护航(原创)

    [复制链接]
发表于 2021-12-23 09:33:00 | 显示全部楼层 |阅读模式
哈尔滨的冬天比较寒冷,从11月初就开始零下,整个冬天最冷能到 -30~-40℃.
既然冷的无处可逃,索性就好好利用一下:整个冬天的阳台就是个免费冰库,可以储藏各种冷冻食品。

今年随着疫情的影响,哈尔滨从十月就一波波的封 锁管控,甚至还出现一次冻雨导致大面积停电停水。
为了对抗这些极端的情况,今年早早就囤足了各种蔬菜肉类,因而也早早期待着阳台能有低温出现。

然而刚深秋气温不是很稳定,时常会在白天升至零上,给储藏的冻货带来不利影响。
既然手头有材料,索性搭建一套温度监控系统,随时观察阳台冷冻情况,以便及时抢救。


【原理】
由于室内外温差高达 40-50℃,因而阳台需要密封+保暖性能非常棒的门来隔离。这样一来基本排除了有线方案,需要上无线数传。

在频点上,特意避开已经用烂的 2.4G,从根源上避免与室内众多wifi、蓝牙、微波炉起冲突。
手头有 315M 和 433M 两种模块,考虑到小体积天线,最终选择了 433M ASK,自定义协议实现无线数传。

阳台安置发射节点 ThermTX ,定期广播当前温度数据;室内放置多个接收节点 ThermRX 以便查看。




【发射节点】

发射结点功能不多:定期读取 DS18B20,驱动 433M-ASK 广播温度数据,要求可以承受 -30℃ 低温。

结构上采用 Arduino + 搭棚版方式实现:





之后整机塞入纸箱防尘,对外引出 DS18B20 探头置于储藏区域,供电由 DC9V 路由器电源完成:



传输协议使用简单的引导+同步+数据+校验格式,由于没啥敏感数据也就未作加扰/加密处理:




【接收节点#1】

接收节点就是个接收+数码管显示系统。由于需要长期使用,为降低对 Arduino 主板的消耗,这里用了自焊的精简版:



Arduino 扩展板上预留了蜂鸣器,原本预备温度异常时报警提示。
结果看我这最弱的睡眠,也就没去写滴滴乱响的代码了,运行起来直接显示阳台温度:



为降低对 433M 频段的占用比例,传输使用了较为简单的脉冲协议,因而有着一定的误码率。
实际 433M 接收端使用了类似于卡尔曼滤波的方式,确保显示稳定、正确。


【接收节点#2】

有了首个接收节点,理论上已可以随时监控阳台温度,但实际使用起来依旧存在漏洞:
阳台可能只在某个时间段出现冰点以上温度,单看当前温度,可能并不知道已出现解冻的事实。

因而需要一个带历史数据/温度曲线的接收端,可以回溯一段时间内的阳台冷冻历史,确保食材不解冻。

正巧手头有某二手的点阵屏,前阵子刚研究通驱动。屏幕整体非常新,店家因为没有资料而当二手处理:



背后的两团牛屎实则是 KS0108 *2,使用并口驱动很容易点亮,随手封装进 U8g2 类库,128x48 分辨率:



由于要长期使用,一直占用着排线并不好,索性搞块扩展板转接下。使用 16V8 作连线切换,使用 HC164 作串并转换:



最终插上芯片的样子:



ATF16V8 便宜又好用,可以灵活切换 Arduino 到液晶的连线,避免与其他模块(例如SPI-SD)冲突。
编译好的 jed 可直接用 Proteus 仿真,基本上不需要怎么调试:



先写个简单的巨幅数字将就显示下,确定接收+显示硬件没问题:




【温度曲线】

使用点阵液晶初衷就是回溯温度曲线,因而使用 Arduino+U8G2 环境折腾之。全嵌入式的系统,可省去电脑查看。
接收端在基础解码(含类卡尔曼滤波)基础上,添加一个顺序队列,回溯等间隔的 128 个温度样本:



实际选取样本间隔为 10min,即屏幕上 1px=10min,1div=6px=1h,阳台温度掉落冰点的效果:



阳台全天零下时,20h 内温度波动如下。早晨 7:00 日出后开始升温,下午 14:00 阳光直射造成短时间阶跃:



冬至当前哈尔滨大降温,从前一天夜里 22:00 开始连续掉了约 8℃,一直到上午 10:00 才消停:



看多了这曲线,唯有大片的零下黑块,才能安抚我对食材保存的焦虑,这大概与仓鼠无异.....


【固件打包】

附上前文涉及的固件包:

a. 公共发射端:
b. 接收端#1-数码管:
c. 接收端#2-点阵屏:
d. 接收端#2-16V8:

---------------------------------------------------------------------------------------------------------------------------------

以上,使用 Arduino 实现了一套无线温度监控系统,随时监控过去 20h 内阳台冷冻情况,为抗疫囤菜保驾护航。

最后祝大家远离新冠,生活愉快!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 22家元 +1453 收起 理由
8500k + 50 優秀文章
pdsczg + 10
亚历山大 + 20
mydigit + 1000 恭喜获得原创文章热度奖励1000M.
vaoxxx + 60 優秀文章
kkdkj + 20 謝謝分享
moontree + 20 謝謝分享
hzw6834 + 20 原創內容
2n3055 + 20 謝謝分享
snowrose2000 + 20 高科技囤菜啊!

查看全部打赏

发表于 2021-12-23 10:04:49 | 显示全部楼层
牛皮普拉斯,这个很实用!!!
回复 支持 反对

使用道具 举报

发表于 2021-12-23 10:23:10 | 显示全部楼层
厉害了我的哥,对于软硬件通吃的表示膜拜
回复 支持 2 反对 0

使用道具 举报

发表于 2021-12-23 10:24:32 来自手机浏览器 | 显示全部楼层
打赏,点赞,收藏(三连)
回复 支持 反对

使用道具 举报

发表于 2021-12-23 10:27:49 | 显示全部楼层
半个小时不到,骚版下手太快了
以前没见过这么快的骚版
回复 支持 反对

使用道具 举报

发表于 2021-12-23 10:43:48 | 显示全部楼层
恭喜楼主,膜拜一下
回复 支持 反对

使用道具 举报

发表于 2021-12-23 11:34:03 | 显示全部楼层
能玩单片机的都很厉害
回复 支持 1 反对 0

使用道具 举报

发表于 2021-12-23 12:08:11 来自手机浏览器 | 显示全部楼层
这东西非常实用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 15:52:28 | 显示全部楼层
感谢大家的肯定与支持!
回复 支持 1 反对 0

使用道具 举报

发表于 2021-12-23 16:20:44 | 显示全部楼层
我家冰箱里都没这么冷
回复 支持 1 反对 0

使用道具 举报

发表于 2021-12-23 16:45:22 | 显示全部楼层
这个东西太棒了!
屏幕的连接不知道能不能分享一下,也去掏几块回来玩玩。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 17:05:09 | 显示全部楼层
daphon 发表于 2021-12-23 10:23
厉害了我的哥,对于软硬件通吃的表示膜拜

上 Arduino 就可以这么任性
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 17:05:30 | 显示全部楼层
solarshen666 发表于 2021-12-23 11:34
能玩单片机的都很厉害

欢迎一起来折腾 arduino
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 17:06:43 | 显示全部楼层
zhkrid 发表于 2021-12-23 16:20
我家冰箱里都没这么冷

又到了冰箱冷冻室都比户外暖和的季节。 今天哈尔滨最低 -27℃
回复 支持 1 反对 0

使用道具 举报

发表于 2021-12-23 17:07:37 | 显示全部楼层
如果是我住哈尔滨,就做一个晚上开门白天关门的保温箱,也不知道动作机构会不会被冻住
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 17:07:51 | 显示全部楼层
confessor 发表于 2021-12-23 16:45
这个东西太棒了!
屏幕的连接不知道能不能分享一下,也去掏几块回来玩玩。
...


屏幕已经卖光了,若朋友有幸淘到,我再来具体分享接线

所以源码里给的是 u8g2 的驱动,换个差不多的 12864 也能直接驱动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-23 17:12:41 | 显示全部楼层
kpj001 发表于 2021-12-23 17:07
如果是我住哈尔滨,就做一个晚上开门白天关门的保温箱,也不知道动作机构会不会被冻住 ...

阳台有不少泡沫箱,盖严盖子照样能把内容物冻成石头。这种冷,是泡沫箱都挡不住的物理攻击。

我一般在箱内放上冰块蓄冷,可以短时间(1-2天)抵抗零上气温,确保食材不解冻。
回复 支持 反对

使用道具 举报

发表于 2021-12-23 17:42:53 | 显示全部楼层
t3486784401 发表于 2021-12-23 17:07
屏幕已经卖光了,若朋友有幸淘到,我再来具体分享接线

所以源码里给的是 u8g2 的驱动,换个差不多的 128 ...

看 你调处来的显示效果,感觉这个屏幕很有意思。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 20:57 , Processed in 0.171600 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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