军训的时候听见有同学和他爸打电话,说他在鱼塘这里。eing!那个不是鱼塘,它是有名字的嘞!人家北大没有名字都要叫个“未名湖”,我们这个叫学海噻。
——张春和
众所周知,学海是师附圣地,是师附灵魂所在。每每周测炸了,我们都习惯到学海边走一走,喂一喂锦鲤,期望能看见神龟(然而传说能带来周测buff的神龟已经归西了,现在只有debuff的神鳖)。就这样借着学海为周测祈祷(然而还是总炸)。
所以我的心也和学海紧密地联系在了一起,我分分秒秒都想知道它是什么状态。它冷吗?它压力大吗?它还好吗?
于是,学海水温侦测系统诞生了。
基本架构
物
主控芯片:nodemcu
nodemcu
基于ESP8266
芯片,通过lua
语言编程,具有较高的性能,也方便数据上报。但是功耗方面并没有很优秀。成本十多元。
水温:ds18b20
非常常见的温度侦测模块,封装在不锈钢里做了胶封,然后引线出来,可以防水。精度可以到小数点后一位,非常不错了。2m的价格4元。
气温湿度:dht11
非常常见的气温湿度侦测模块,但是气温精度只有整数,湿度数据倒是不错。价格在三四块左右。
气温气压:bmp180
模块就指甲盖一样,但是气温气压精度都很高。两三块就能买到。
移动网络数据上报:GA6-B
本来买了一张移动的物联网卡,准备用这个来上报数据。但是后来发现只用wifi
也是可以的,更主要的问题是…这个模块被我炸了。
联网
nodemcu
连接学生会的wifi
,然后通过TCP
给阿里云跑着SU-Ours
的主机上报数据。
服务器上实际上是在screen
后台跑着一个单线程的python
脚本,监听着2333
端口,收到上报信息之后通过文件读写写写到一个data.js
文件里,然后前端就可以直接显示了。
前端使用了Echarts
进行图表显示,效果还是不错的,还支持交互的动态显示。
开发过程
先别急着下水
一开始只用了dht11
模块,后面加上了bmp180
,就用usb连着供电,摆在学生会办公室里面。这样运行是很稳定的。学生会办公室又照不到太阳,所以数据也非常平滑。
这三个传感器模块都可以在nodemcu
上通过加包的方式直接使用,啊nodemcu
上的轮子还是挺多的,用起来也非常爽!稍微改一下就能直接用了。
下水!
当然首先得解决供电问题,我用三节18650
串连,得到一个12V
的电池组。因为刨到的一个小学买的太阳能电池板是6V
的,直接变压成5V
压差太小,索性直接升到12V
。用电的时候用一个小模块把12V
转换成5V
就行。只是电流比较小的时候实际上转换效率是不高的。
直接摆在了“学海水深”那个牌子那里,但是经过测试完全没办法工作。后来放到了学海小亭子旁边倒是可以了。还是不大行…可能还得上移动物联网卡。
BOOM
一个周末。我接连炸了一堆东西。
首先是GA6-B
移动网络模块。转5V
的变压模块IN
和OUT
我接反了,这模块也没有个反接保护,我另外一边是12V
的铅酸电池,接上瞬间,一道明亮的火花就窜了出来,还真有点好看。想起了伊朗唐马儒23333。总之这个模块还没用过,就算是废了。
接着是nodemcu
和dht11
。本来放到阳台上测试了一段时间,应该是拿回来的时候ds18b20
的不锈钢探头甩来甩去不小心碰到针脚给短路烧了。有点魔幻。
还好我有冗余的,给换了,但是移动网络是没了,就只能再试试wifi
了。
为了减少功耗,使用了nodemcu
中的node.dsleep()
,可以进入深度睡眠,到时间自动重启。
二次下水
某个大课间,去拍完省一的照,和奇奇到学海附近找地方,最后选在了温室临海的这边,正对着办公室,wifi
信号应该还行。
很玄学,稳定运行一段时间以后,上报数据就开始不规律了。后来推测应该是wifi
信号不好+太阳能电池板供电不行双重原因。
2020年第一天,我又带着电脑来到学校,重新搞了搞。把天线和温室的金属外壳接到一起,又调整了朝向。终究是能稳定上报数据了,但是电源的问题仍然存在。中途没电也没有充电器,就从电脑机箱里拉出线来,找了个12V
的直接充。电脑电源真香!
三节电池大概能支持30个小时。虽然测算的待机电流应该是10+mAh
,但是wifi
搜索过程可以达到100mAh
,如果一下子信号没那么好,搜索时间比较长那么就比较糟糕了。
电!电!电!
买了个6V 18W
的太阳能板,三十多元。
又拜访了dd,嫖了一个他组装的15节18650电池组。这是他去捡垃圾捡来的,平均下来好像每节才1.5元。但是平均也就是800mAh
这样子。要啥自行车?
太阳能板到了,还是挺大的,半米见方的亚子。
学考考完第一科,中午拿到学校组装测试。给12.2V
的电池组充电,仍然是先转换到12.6V
,太阳能板输出电流可以到2A
,12.6V
那里输出可以到0.5A
,只是升压模块发热很严重,查了下参数应该是最高输出2A
,所以大概也还行,只要有太阳功率肯定是够了,就算没有撑个半个一个星期大概也没问题的。
有问题,查了半天nodemcu
的错误,结果是服务端炸了,估计是数据发送到一半被我手动重启,服务端就报错了。
现在看来运行是很稳定了,等着吧~
某一天可能是wifi
没连接好,和奇奇去调试的时候我不知怎么又碰了一下短接了…转5V
的模块十分简单,没有任何的保护措施,就炸了…
另外又买了一个功率更大一点的升压模块,准备换上去。
那个大的升压模块超级糟糕,发热严重,效率低下。还是用原来那种,加了个小散热片在底面上。
期末考第一天考完语文去部署了一下,还是只能等着看稳定性。
它不再不稳定了
已经放到了github上面。
期末考结束,听了物理讲座,就把它搬回家了。烧了GA6-B
,买了电容,从老家回来才发来,换上竟然都奇迹般的好了。物联网卡用不了了,又弄了张电话卡。
今天是20200315。还没开学。它不再不稳定了,但是却并未在学海边上了。
引脚备忘
水温:Pin 5
气温气压:SCL:Pin 1
、 SDA:Pin 2
温度湿度:Pin 6
短接RST
和Pin 0
获得深度睡眠唤醒能力。