前段时间到手了一个云雀气象仪,它能够测风速、风向、温度、湿度、气压,非常的棒,于是我想着把云雀气象仪接入行空板和mind+可视化面板对接。但是行空板可视化面板目前只支持SIot平台,SIot平台一般是内网局域网使用,这样就不能实现跨网访问,例如我气象仪装在学校里,可视化面板要在学校局域网里观看,在家里无法看到,有没有办法实现家里也能运行可视化面板呢?我想到了用Tinywebdb做中转来实现。经过测试,发现这个方法还挺好使。
步骤1 准备工作
我把家里的两个与气象和环境相关的传感器,一起接上,用到的器材有:
步骤2 硬件连接
整体接线图如上,我把SHT31模块接入SCI采集模块,,SCI采集模块再接到行空板,因为气象仪本来就有温湿度检测,这个主要是作为参考对比。云雀气象仪接在行空板的IIC接口,这样两个IIC都用了,CCS811空气质量传感器就接在扩展板上。
步骤3 物联网平台设置
本次项目用到了两个MQTT平台和一个网络微型数据库Tinywebdb。
行空板对接的是Easyiot和Tinywebdb。都是公网平台,可以跨网访问。
另外一端,运行mind+可视化面板的电脑安装电脑版SIot,从Tinywebdb中读取数据,上传到Siot,可视化面板实现数据更新显示。
在设置之前,先对多有的检测数据进行整理归类,列成表格。
然后根据表格设置Easyiot
再设置Siot
Tinywebdb不用设置,因为会通过程序写入时,自动生成。
经过上面的设置,大家也能稍微看明白一些了。
假如校园里的行空板发送气象数据到Easyiot,我可以在家里登陆Easyiot平台看接收到的数据。
校园里的行空板发送气象数据到Tinywebdb,修改标签的值,实现气象数据实时更新,我同样在家里也能看到。
然后,我在家里的电脑上运行SIot,再运行mind+编写的程序,把Tinywebdb网络微型数据库的数据发送到本机的Siot,再通过可视化面板展示。接下来,我分享程序设计部分。
步骤4 程序设计(1)行空板编程
首先是行空板部分的程序设计,我才用mind+的python模式,添加的库有:
官方库:行空板、MQTT-py、Requests
pinpong库有CCS811空气质量传感器
用户库(可以通过搜索获取):云雀气象仪、Gravity SCI采集模块。
首先是编写Tinywebdb自定义函数,因为目前行空板还有这个扩展包,只能自定义。(Tinywebdb自定义函数非本人编写,记得是来自李工)
然后编写程序初始化部分:(严格安装上面步骤中的表格进行编写)
编写数据发送到Easyiot和Tinywebdb两个平台。
本程序用到的变量有:
到目前,行空板能够顺利发送气象数据给两大平台,接下来就是转化为可视化面板部分了。
为了防止刷新太快,导致数据写入失败,我在程序中使用了等待。
步骤5 程序设计(2)电脑本机编程
本环节假设是在家里的电脑上。
我才用mind+实时模式,不需要任何其他硬件。
思路是:
安装好SIot,实时模式下连接Tinywebdb(外网)和Siot(本机),再可视化面板连接本机的Siot。
程序如下图:
可视化面板设计如下图
截取上图时,部分单位名称还没改好,后面的截图中都进行了修改。
步骤6 实践测试
我手机开热点,让行空板无线网络连接。把实验装置放在楼道口。
电脑端的网络接入的是教育网。这样行空板和可视化面板在不同的网络中。
下图为实验装置摆放。
我们可以在行空板的屏幕上看到所有的数据。
在看电脑端,mind+的可视化面板。
怎么样,可视化面板跨网数据显示是不是轻松实现了。
可能会问,行空板接入的不同网络,程序需要修改吗?
回答:是不需要修改的,我们只需浏览器10.1.2.3登陆行空板后,网络设置里面配置一下即可。只要行空板能联网,就能发送数据。
同理,电脑端mind+,无需连接任何器材,只要上网,就OK。这里要注意软件版本,
mind+为V1.8.0版本及以上。
Siot得用V2版本。
感谢阅读,有什么疑问或者建议,请在留言区留言。
hacker_2023.08.30
6