liao 发表于 2022-9-30 14:25:17

【精选项目】基于数据可视化的物联网风速监测仪

本帖最后由 Doughnut 于 2022-9-30 14:38 编辑

基于数据可视化的物联网风速监测仪

活动背景
[*]背景一
2022年7月2日,台风“暹芭”袭击广东阳江。受台风影响,阳江当地种植村民都受到不同程度损失。阳江晚熟的荔枝吹落了一大半,估计上万斤不止,一棵树收成有百十来斤,平均80%的荔枝果都被吹到地上,打落在地上的荔枝进水破皮,不能再食用售卖,给种植户带来了严重的经济损失。






[*]背景二
从中央气象台历史统计数据来看,夏台风登陆广东最频繁。1949年至2021年,共有122个台风登陆广东。从登陆地点来看,广东沿海从东到西都有台风登陆过。广东之所以台风比较多,主要是因为广东的位置太过靠近于赤道,全世界台风高发区域主要就是集中在赤道南北纬30度之内,而广东省所处的纬度为北纬20度~25度之间,正好处在全球台风频率最高的区域。
作为一个广东人,基本上每年都要经受台风的洗礼,也深知台风给种植户带来的危害,虽然每次都有天气预报,但是基本上都是一个大的区域的,对于自己所在的位置,能否有更精确的数据监测?


[*]背景三
刚好,今年颁布了2022年义务教育阶段新的《科学课程标准》,课程标准中学生必做探究实践活动包括学生在学习过程中进行的观察、实验、记录、测量、制作、调查等。在小学3~4年级,有使用仪器测量和记录气温、风力风向、降雨量等气象数据的要求。

几年来一直想要做一款能监测风速的产品,但一直没有一个较好的方向,直到今年手上拿到了行空板,在体验了行空板强大的物联网和数据可视化功能之后,决定结合风速传感器,制作一个基于数据可视化的物联网风速测速仪。

任务目标

1. 利用JL-FS2风速传感器监测周边的风速,把监测到的风速值在行空板上显示出来。

2. 利用“matplotlib”库把反馈回来的数值进行数据可视化显示。

3. 运用行空板自带的SIoT服务和热点模式的物联网功能,开启SIoT物联网系统,将数据同步传输到物联网平台以便进行查看,做好数据存储和监测。

知识点

1. JL-FS2风速传感器应用。

2. 加载并使用“matplotlib”库,把数据进行图形化。

3. 能够开启SIoT服务和热点模式的物联网功能。

4. 能运用物联网功能向物联网平台发送消息并进行查看。

材料清单

1. 硬件清单

主控器为行空板(点击购买)。

传感器为JL-FS2风速传感器(点击购买)。

其他模块包括12V电池、电源接线端子母头、Type-C&Micro二合一USB线等。



2. 软件清单

Mind+编程软件x1

3.其他

激光切割的底座

知识储备

1. 什么是matplotlib图表库

Matplotlib的主要作用是用来生成绘图,饼图,功率谱,条形图,错误图,散点图等。
它是一个Python的2D绘图库,以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

2. Mind+(基于Scratch3.0)图形化编程


[*]下载及安装软件。下载地址:http://www.mindplus.cc




[*]切换到“python模式”。




[*]加载matplotlib图表库,“扩展”中选择“用户库”:

直接复制该链接https://gitee.com/chenqi1233/ext-matplotlib




[*]查看使用matplotlib图表库



3. 行空板SIoT服务和热点模式的物联网功能

[*]物联网功能
物联网(Internet of Things,简称IoT)是借助互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。行空板自带有SIoT服务和热点模式,利用这个可以快速搭建物联网应用。


[*]行空板热点模式
行空板自带有热点模式,启用该模式,我们就可以把电脑连接到行空板上,登录服务器就可以查看到上传到服务器上面的数据。开启热点模式之后,输入账号连接热点就可以进行登录。






[*]SIoT服务
SIoT是一个为教育定制的跨平台的开源MQTT服务器程序,S指科学(science)、简单(simple)的意思。SIoT支持Win10、Win7、Mac、Linux等操作系统,一键启动,无需用户注册或者系统设置即可使用。
SIoT也是为了帮助中小学生理解物联网原理,并且能够基于物联网技术开发各种创意应用。因为其重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。使用时,开启SIoT服务的行空板我们就可以当作一台服务器,连接传感器以检测数据的行空板(设备)我们可以当作客户端。



如果在同一块板子上既开启SIoT服务,又连接传感器来检测数据,那么它既是客户端又是服务器。



(1) 连接行空板,登录siot服务器界面。输入网址:http://10.1.2.3/pc/application-switch



(2) 打开页面,查看服务器数据




动手实践

1.硬件搭建
把风速测速仪连接到行空板上,该部分连接最难的地方在于风速测速仪供电电压为“DC12-24V ”,行空板的工作电压为3.3V,因此不能直接由行空板为其供电,需要连接到外部的直流电源,因此这里需再额外增加一个供电电源。外接电源的正极直接接到风速传感器,负极与行空板的负极和电源负极共同连接,黄色信号线直接连接到行空板的信号线,蓝色线留空即可。



硬件设计原理图



硬件实际连接图

2. 制作监测仪底座。


[*]利用激光切割软件绘制图形,并进行切割。




[*]拼装,并完成硬件的安装。



3.程序编写

[*]打开mind+软件,切换到python模式,在扩展中加载行空板和matplotlib图表库。




[*]初始化MQTT,添加服务器设备。






[*]添加matplotlib相关模块,并根据需要进行窗口的设置。




[*]在屏幕增加风速等级的显示。




[*]把获得的电压转换成风速。



4. 完整程序参考



5.运行测试程序


[*]开启无线热点。








[*]点击程序的右上角“运行”,运行程序。




[*]查看测试结果。



在屏幕上面可以看到当前的风速,以及风速变化产生的曲线



在SIOT服务器上面也可以实时查看到风速变化的值

点击自动刷新,数据会实时进行变化



点击显示图表,对数据可视化





可以看到该图形与行空板上面显示的图形是一致的

6. 程序上传至行空板

因为目前Mind+没有在模块化的界面一键上传到行空板的功能,行空板也无法运行(****.sb3)格式的文件,因此需要先将代码复制到python文件中,生成新的(****.py)文件再上传到行空板。



在代码区全选代码,并进行复制



回到代码界面,并在行空板中新建文件、命名



在文件上面点击右键,选择在编辑区打开



把复制的文件粘贴到代码区。关闭、保存,完成程序的上传

7. 操作行空板进行最终测试







切换运行程序,选择对应的程序运行

查看运行结果

实地检测


图为作者在操场监测风速的过程

拓展
   
目前只是完成了风速的测试,同学们可以根据掌握到的知识,加入更多的传感器,如温湿度传感器、空气质量传感器等,对校园或者种植园环境进行更多相关数据的监测。

演示视频https://www.bilibili.com/video/BV11P411n7YH/?vd_source=27fedd3ac40d3e58da0788477833f7ac

https://www.bilibili.com/video/BV1T24y1d7GZ/?vd_source=27fedd3ac40d3e58da0788477833f7ac

JOVI 发表于 2023-11-29 04:18:44

学习

许培享 发表于 2023-12-7 08:38:30

不错呀
页: [1]
查看完整版本: 【精选项目】基于数据可视化的物联网风速监测仪