在我们的科学探究实验中,数据的获取和展示是两个重要的环节,今天我要分享的是一个关于实验数据的获取存储和展示的项目。
一、 项目的主要内容:
获取环境的温湿度,发送到服务器,电脑上用曲线图展示过去24小时的温度变化。
二、 所需的主要器材:
掌控板*1
掌控扩展板*1
DHT11温湿度模块*1
三、 所涉及的知识点
1.wifi连接设置。
2.DHT11温湿度传感器的应用。
3.NTP网络时间。
4.TinyWEBDB数据存储、更新和读取。
5.实时模式中画笔的应用。
四、项目思路
掌控板连接DHT11模块,然后进行编程。定时读取DHT11的温度和湿度值,根据读取的时间把数值发送到TinyWEBDB中。Mind+在实时模式下,读取TinyWEBDB中的数值,绘制出数据变化曲线图。
五、对掌控板编程。
1.掌控板接扩展板,然后接上DHT11模块,我接在P1口。
2.Mind+选择上传模式,添加主控板“掌控板”,添加传感器“DHT11/22温湿度传感器”,添加网络服务“Wi-Fi”、“ TinyWEBDB”、“NTP”。
3.首先进行Wifi设置,然后设置TinyWEBDB数据库的相关参数。(关于TinyWEBDB数据库的玩法,我将会另外撰文介绍分享。)然后设置NTP。
4.接下来就是把温湿度的值发送到数据库中。
先判断,掌控板时钟中的“分”是不是“1”,如果是“1”,就发送温湿度数据。我预设48个TinyWEBDB标签,分别是1~48,其中1~24存储1~24时的温度数值,25~48存储的是1~24时的湿度值。所以发送湿度值的时候,我要加上24。
然后等待100秒,等100秒过去后,“分”已经变成2了,继续等待直到下一个分钟的1的出现。从而实现每1小时发送一次。
5.为了方便查看当前的温湿度,我设置了按“A”键发送当前的温湿度,并在OLED中显示。
实物效果如下:
数据库截图如下:
6.在实验中,我有几个问题要交流一下:
A.程序写入板子的时候,软件出现冲突警告提示,意思是使用WIFI可能会导致DHT11数据读取异常,由于我手里暂时没有合适的湿度传感器,所以,我就忽略了这个提示。
B.获取板子时间出错,读取的时间为“4294967295”或者“-1”,换了几个时间服务器测试,还是经常出错,具体原因还不清楚,这几天继续琢磨。
六、在mind+实时模式中进行编程
1.设置TinyWEBDB的参数。
2.添加舞台背景2个,1个是坐标背景,一个是20px的格子背景(舞台横向是480px,24小时的话,刚好是20px一格,刚刚好)。按空格可以切换背景。
3.开始绘制曲线。 先绘制温度曲线,用红色,绘制在页面上半部分。
说明一下几个变量的用途
“shi”先用来存储当前系统时间的“时”,然后在绘制曲线时,每循环一次就变化一次。
“shi2”用来存储从24时开始到倒数计数。 例如现在是17点,我要先画出17、16、15…… 1的曲线,然后再画24、23…… 18的曲线,刚好是一天的变化。
“X”存储的是X的坐标,把读取的温度数值,转换成X坐标值。
程序不是很复杂,用两个循环,画出温度的变化。
然后绘制湿度变化曲线,用绿色,因为湿度数据的标签是25~48,所以第一组循环需要“shi”加上24。“shi2”要设置为48。
最后看一下曲线效果,从图中,我们可以看出过去24小时温度和湿度的变化。
上面分享的仅仅是一个思路,还有好多地方是需要改进改良的。大家有好的建议,请留言。
本范例的源程序已经上传到码云。后续还会对程序进行改进,欢迎关注本文。
https://gitee.com/zslqg/fenxiangyuanma2020
PAINTING2021.06.15
请问为什么wifi连不上的?
PAINTING2021.06.15
请问为什么wifi连不上的?
小含糊online2020.07.30
用mind+绘制图表这个想法太棒了!