学海水温侦测系统


军训的时候听见有同学和他爸打电话,说他在鱼塘这里。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的变压模块INOUT我接反了,这模块也没有个反接保护,我另外一边是12V的铅酸电池,接上瞬间,一道明亮的火花就窜了出来,还真有点好看。想起了伊朗唐马儒23333。总之这个模块还没用过,就算是废了。

接着是nodemcudht11。本来放到阳台上测试了一段时间,应该是拿回来的时候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,太阳能板输出电流可以到2A12.6V那里输出可以到0.5A,只是升压模块发热很严重,查了下参数应该是最高输出2A,所以大概也还行,只要有太阳功率肯定是够了,就算没有撑个半个一个星期大概也没问题的。

有问题,查了半天nodemcu的错误,结果是服务端炸了,估计是数据发送到一半被我手动重启,服务端就报错了。

现在看来运行是很稳定了,等着吧~

某一天可能是wifi没连接好,和奇奇去调试的时候我不知怎么又碰了一下短接了…转5V的模块十分简单,没有任何的保护措施,就炸了…

另外又买了一个功率更大一点的升压模块,准备换上去。

那个大的升压模块超级糟糕,发热严重,效率低下。还是用原来那种,加了个小散热片在底面上。

期末考第一天考完语文去部署了一下,还是只能等着看稳定性。

它不再不稳定了

已经放到了github上面。

期末考结束,听了物理讲座,就把它搬回家了。烧了GA6-B,买了电容,从老家回来才发来,换上竟然都奇迹般的好了。物联网卡用不了了,又弄了张电话卡。

今天是20200315。还没开学。它不再不稳定了,但是却并未在学海边上了。

引脚备忘

水温:Pin 5
气温气压:SCL:Pin 1SDA:Pin 2
温度湿度:Pin 6
短接RSTPin 0获得深度睡眠唤醒能力。


文章作者: 卯婴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 卯婴 !
评论
  目录