回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

用掌控板和mind+获取、存储和展示环境温湿度 简单

头像 珠韵 2020.07.05 4324 3

在我们的科学探究实验中,数据的获取和展示是两个重要的环节,今天我要分享的是一个关于实验数据的获取存储和展示的项目。

一、 项目的主要内容:

获取环境的温湿度,发送到服务器,电脑上用曲线图展示过去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”。

project-image

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小时发送一次。

project-image

5.为了方便查看当前的温湿度,我设置了按“A”键发送当前的温湿度,并在OLED中显示。

project-image

实物效果如下:

project-image

数据库截图如下:

project-image

6.在实验中,我有几个问题要交流一下:

A.程序写入板子的时候,软件出现冲突警告提示,意思是使用WIFI可能会导致DHT11数据读取异常,由于我手里暂时没有合适的湿度传感器,所以,我就忽略了这个提示。

B.获取板子时间出错,读取的时间为“4294967295”或者“-1”,换了几个时间服务器测试,还是经常出错,具体原因还不清楚,这几天继续琢磨。

六、在mind+实时模式中进行编程

1.设置TinyWEBDB的参数。

project-image

2.添加舞台背景2个,1个是坐标背景,一个是20px的格子背景(舞台横向是480px,24小时的话,刚好是20px一格,刚刚好)。按空格可以切换背景。

project-image

3.开始绘制曲线。 先绘制温度曲线,用红色,绘制在页面上半部分。

说明一下几个变量的用途

“shi”先用来存储当前系统时间的“时”,然后在绘制曲线时,每循环一次就变化一次。

“shi2”用来存储从24时开始到倒数计数。 例如现在是17点,我要先画出17、16、15…… 1的曲线,然后再画24、23…… 18的曲线,刚好是一天的变化。

“X”存储的是X的坐标,把读取的温度数值,转换成X坐标值。 程序不是很复杂,用两个循环,画出温度的变化。

project-image

然后绘制湿度变化曲线,用绿色,因为湿度数据的标签是25~48,所以第一组循环需要“shi”加上24。“shi2”要设置为48。

project-image

最后看一下曲线效果,从图中,我们可以看出过去24小时温度和湿度的变化。

project-image
project-image

        上面分享的仅仅是一个思路,还有好多地方是需要改进改良的。大家有好的建议,请留言。

         本范例的源程序已经上传到码云。后续还会对程序进行改进,欢迎关注本文。 

         https://gitee.com/zslqg/fenxiangyuanma2020

评论

user-avatar
  • PAINTING

    PAINTING2021.06.15

    请问为什么wifi连不上的?

    0
    • PAINTING

      PAINTING2021.06.15

      请问为什么wifi连不上的?

      0
      • 小含糊online

        小含糊online2020.07.30

        用mind+绘制图表这个想法太棒了!

        0