|
哈尔滨的冬天比较寒冷,从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
打赏
-
查看全部打赏
|