牟晓东
在进行科创实验时,将传感器数据进行可视化处理(折线图、雷达图等),既提高数据解析的可读性又让实验效果更加美观。通过Python 代码编程实现数据可视化的难度相对较大,各种函数参数的设置需要根据所引用库模块的不同以及呈现要求来进行细致的调整。借助于Mind+ 图形化编程中的SIoT(针对学校场景的开源免费MQTT 系统),可一键创建本地物联网服务器。我们可以在掌控板上轻松实现物联网数据可视化,在此以远程监测一个微型大棚系统的声音、光线和温湿度等数据为例。
1.实验器材及连接
掌控板主板(2.1.0 版)及扩展板各一块,DH11 温湿度传感器一个,HCSR04超声波传感器一个,小型面包板一块,各种颜色的杜邦线若干。
首先,连接掌控板和扩展板,通过红色和白色杜邦线将扩展板的电源正负极接入面包板;
然后,将温湿度传感器和超声波传感器的引脚插入面包板,通过两组红色和白色杜邦线将电源的正负极分别接至各自引脚的VCC 和GND端;
接着,用一根黄色杜邦线将温湿度传感器中间的DAT 信号输出端与扩展板的P0 引脚连接好,再分别用绿色和蓝色杜邦线将超声波传感器的Trig 信号发射端、Echo 信号回声端与扩展板的P1和P2 引脚连接好;
最后,通过数据线将掌控板与电脑相连,通电待用(如图1)。
2.在网页中进行Topic主题的新建
在Mind+ 官网→教程→ 1.7 数据可视化→下载siot-win 压缩包。解压后运行其中的“start SIoT.bat”启动服务,然后到浏览器中输入本机IP 及端口(比如http://192.168.1.101:8080)访问,在弹出的对话窗口中填写账号(siot)和密码(dfrobot)等信息进行登录后,点击“新建主题(Topic)”项,输入“光线数据”“声音数据”“温度数据”“湿度数据”和“超声波数据”,建立好五个主题,分别对应掌控板自带的光线传感器、麦克风、DH11 温湿度传感器以及HC-SR04 超声波传感器数据主题的订阅(如图2)。
3.在Mind+中进行图形化编程
使用Mind+(V1.8.0 RC1.0),新建“微型大棚远程监测”项目,开始图形化编程:
在点击左下角的“扩展”按钮选择“主控板”下的“掌控板”之后,再将“传感器”中的“DHT11/22 温湿度传感器”和“超声波测距传感器”两项加载,在“网络服务”中将“MQTT”协议和“Wi-Fi”项加载;
接着,在主界面中就会出现“ESP32 主程序”模块,从左侧“网络服务”-“Wi-Fi”中选择“Wi-Fi 连接到热点:"" 密码:‘"”模块,将当前所使用的Wi-Fi 名称(zyyz108)和密码(zyyz0108)填写好;
再将“Wi-Fi 连接成功?”模块嵌入至“等待直到”模块,并且通过“屏幕显示文字‘ WiFi连接成功! " 在第2 行”模块,控制掌控板的OLED 显示屏的文字信息提示;
接着, 从“ 网络服务”-“MQTT” 中选择“MQTT 初始化参数”模块,点击右侧的小齿轮图标进行各个参数的详细设置——物联网平台:SIoT,服务器地址:192.168.1.101(与之前在浏览器中的访问IP 地址相同),账号和密码与新建主题时相同(siot/dfrobot),点击Topic 主题的加号直至出现0-4 共五个主题参数,分别将“siot/ 光线数据”“siot/声音数据”和“siot/ 超声波数据”等依次设置好。
然后,选择“MQTT 发起连接”模块,同样再通过“屏幕显示文字" MQTT 连接成功! " 在第3 行”模块,控制掌控板OLED 显示屏的文字信息提示;
建立“循环执行”结构,通过左侧的“变量”-“新建字符串类型变量”建立“光线值”“声音值”“温度值”“湿度值”和“超声波值”五个变量,并且分别将其值设置为:“读取环境光强度”“读取麦克风声音强度”“读取引脚P0 DHT11 温度(℃)”“读取引脚P0 DHT11湿度(%rh)”和“读取超声波传感器距离单位(厘米)trig 为P1 echo 为P2”;
等待1 秒钟之后,执行一组消息发送操作,均是通过MQTT 发送消息,分别将这五个变量所获取的数据(字符串型)发送至Topic_0-Topic_4,并保存至数据库。
保存好程序后,點击左上角的“连接设备”项,再点击右上角的“上传至设备”项将程序上传至掌控板(如图3)。
4. 在Mind+ 中进行数据可视化
此时,虽然掌控板已经开始监测产生并有数据发送,但还未进行可视化处理。点击“可视化面板”项,在弹出的“Mind+ 数据可视化”窗口中进行基础组件、显示组件以及图表组件等的设置:
选择“文字”组件,将“组件标题”设置为“微型大棚远程监测”,再将“内容”设置为“光线数据、温度数据、湿度数据、声音数据、超声波数据”,字号和颜色均可自定义;
再选择“进度仪表盘”,将“组件标题”设置为“超声波数据”,主题Topic 选择对应的“siot/ 超声波数据”,“组件单位”设置为“厘米”;
其余四个主题分别选择设置为:湿度数据“水波图”、温度数据“等级仪表盘”、光线数据“迷你面积图”、声音数据“折线图”,并且分别将对应的主题Topic、数据单位、组件的宽度与高度以及当前显示数据的数量等设置好,展示出数据可视化的实时效果(如图4)。
此时,不管是掌控板的板载光线与麦克风传感器,还是通过扩展板连接的温湿度传感器与超声波传感器,它们监测获取的数据通过绑定的对应Topic 主题进行发送与接收,最终在Mind+ 的可视化面板上动态呈现出来。在掌控板的OLED 显示屏有“Wi-Fi 连接成功!”“MQTT 连接成功!”的实时工作提示信息;
同时在浏览器的“数据管理”页面中,五个订阅的主题也分别显示有接收和发送的数据总数、最新数据以及对应的时间,可根据情况点击“查看详情”“清空数据”或“删除”项进行对应的操作(如图5)。