JIAJIA 发表于 2023-4-13 18:38:19

【行空板】用Python玩转开源硬件-第10课:IoT校园物联网大...

本帖最后由 JIAJIA 于 2023-4-13 18:38 编辑

IoT校园物联网大屏系统
通过第八课和第九课的学习,我们已经对行空板物联网服务的应用有了一定的理解。今天我们将尝试使用多块行空板搭建一个监控大棚环境数据的物联网系统,同时你可以通过电脑将这些数据可视化的显示出来,并投影在校园的电子屏幕上,方便同学们查看和分析数据。


任务目标

IoT校园物联网大屏系统中智能终端负责获得植物园当前土壤湿度、环境温湿度等数据,并将数据传输给SIoT平台;服务器端负责开启SIoT服务,存储数据;移动终端分为行空板和电脑上的Mind+可视化平台,用于远程显示土壤湿度、环境温湿度等信息和控制通风窗的开关。

https://www.bilibili.com/video/BV1cN411A7k7/?share_source=copy_web&vd_source=98de4a48f0ea2e3d30571e3541e90d99

知识点

1. 掌握舵机的使用方法
2. 掌握多行空板组建物联网的方法
3. 掌握Mind+可视化面板的使用方法

材料清单

硬件清单:


软件使用:Mind+编程软件(V1.8.0及以上版本) x1

注意:由于本节课要使用Mind+可视化面板,需要将行空板SIoT服务升级为2.0版本。对应版本的Mind+和SIoT2.0升级文件,都可以进入下面链接下载:

https://mindplus.dfrobot.com.cn/dashboard_kit0194


动手实践

校园物联网大屏系统由获取数据的智能终端、存储数据的服务器以及远程查看和控制的移动终端构成。为了更清晰的呈现和分析数据,我们还将可视化它们并显示在计算机屏幕上。准备好了吗,接下来,我们就来制作吧。

任务一:数据收集与通风窗控制

在此任务中,我们将利用温湿度传感器和土壤湿度传感器实现所需数据的收集和显示,同时学习控制舵机开关通风窗。

任务二:搭建校园物联网系统

基于任务一的效果,我们将拆分出智能终端、服务器端以及移动终端功能,并使用三块行空板搭建校园物联网系统。

任务三:大屏显示器设计

结合移动终端的功能,我们将学习Mind+数据可视化面板,在电脑上设计一个可以用于查看、分析、操作的大屏显示窗口。

任务一:数据收集与通风窗控制

1. 硬件连接

校园物联网系统中要监测校园大棚中环境中的温湿度、土壤湿度等数据,并通过控制舵机的转动实现开启/关闭通风窗,因此,需要给行空板接入土壤湿度传感器、温湿度传感器以及舵机,你可以按照下图接入它们。


2. 软件准备

打开Mind+,按照下面图示完成软件准备工作。


3. 编写程序

在本任务中,我们先来完成校园物联网系统中智能终端的基础任务,即传感器数据收集以及控制舵机完成开关通风窗。

(1)传感器数据收集

首先我们需要先确定要获取的数据内容有:环境温度、空气湿度、光线强度以及土壤湿度,然后将它们显示在合适的位置并添加对应的提示文字。为了更方便的显示内容,我们已经将提示文字放在了“背景.png”图片中,你只需将它拖进“项目中的文件”即可。


接下来我们就可以直接根据接线情况初始化温湿度传感器,建立对应的数据 显示对象 ,完成初始化。


实时获取传感器数据,需要在循环执行里放入 更新对应对象的文本信息 指令,土壤湿度状态也根据填写阈值进行判断。


(2)控制舵机

要用舵机实现开关通风窗,在“扩展库”里的“Pingpong库”中找到“舵机”指令库,点击加载,找到相关指令。


然后,我们就可以使用 舵机 初始化引脚 和 行空板引脚23 来完成舵机引脚初始化,同时,设定舵机初始角度(关窗角度),即 舵机 转动90。

注意:项目使用的舵机为180°舵机,角度范围在0~180°,初始角度与实际应用相关,有关舵机的介绍,参见“知识园地”。


而开窗可以通过舵机设置不同的角度来实现,当然我们可以加入开关窗按钮,来实现对于舵机的控制,完整参考代码如下:


4. 程序运行

点击运行,行空板屏幕显示温度、空气湿度、光线强度等数据,点击“开”窗,舵机转动;点击“关”窗,舵机转回到初始位置。


任务二:搭建校园物联网系统

1. 任务分析

校园物联网系统中包含三块行空板,分别是负责收集数据和控制执行器的智能终端、负责存储和传输数据的服务器端以及负责查看数据和远程控制的移动终端。


分析完三块行空板在物联网系统中的作用之后,需要做好行空板配置网络、开启SIoT服务等准备工作,才能开始编程,实现大棚数据的传输。

2. 准备工作

(1) 连接网络

首先我们要做的是将三块行空板和计算机连入同一无线网络下,并查看三块行空板的“网络信息”中的“无线连接”IP,如果前三段数字一致,即成功连入同一无线网络。

注意:多行空板连接入同一网络、查看网络信息等操作方法,可以参考网址中的教程描述(https://mc.dfrobot.com.cn/thread-314805-1-1.html)。


(2) 开启SIoT2.0服务

浏览器输入服务器端IP,进入行空板设置界面,进入应用开关,然后点击“打开页面”,进入SIoT2.0服务平台登录页面。登录账号:siot,密码:dfrobot。


登录成功后,会进入SIoT数据管理页面。此时,你就可以新建所需主题。点击“新建主题(Topic)”,并在弹出窗口中,填写“主题名称”,“确定”后,页面会显示对应主题标签。

注意:如果打开还是SIoT1.0页面,可以按CTRL+F5强制刷新页面缓存。


本项目中一共需要建立“环境温度”、“环境湿度”、“环境光线”、“土壤湿度”、“土壤湿度状态”、“通风窗”共六个主题。


现在,你可以新建另外两个Mind+文件,分别远程连接智能终端和移动终端的行空板,我们就可以开始编程了。

3. 编写程序

准备工作已完成,接下来就可以编程实现数据传输的任务了。

(1)服务器端

服务器端负责存储传输数据,实际上SIoT服务是内置在行空板上的,现在服务器端无需其他操作,上电就可以直接使用,当然你也可以在屏幕上设计显示简单的提示信息。


(2)智能终端

智能终端负责收集数据,并接收移动终端控制执行器。首先完成 服务器连接设置 和 主题订阅 。

注意:填写的主题需要按照SIoT“数据管理”页面标签上的“主题”一致。


接收通风窗开启/关闭信息,判断接收消息内容“on”为开启,“off”为关闭。


向服务器对应主题发布数据,SIoT2.0中我们可以使用 MQTT发布到主题 和 MQTT发布到主题并存数据库 指令,两者都可以实现数据传输,但前者不会将数据保存在服务器数据库中,而后者会保存。为了可以在SIoT平台上查看数据,我们使用后者。


界面显示和传感器部分,可以借用“书包”复制、修改任务一代码来完成。这里为了方便后面传感器数据的传输,建立变量储存数据。完整智能终端代码如下图所示:


(3)移动终端

移动终端负责接收显示数据,按下按钮远程控制通风窗。首先完成 服务器连接设置 和 主题订阅 。然后判断对应接收消息,更新显示内容 。


界面显示部分我们可以继续复制、修改任务一的代码,同时加入 发布消息并储存 指令。完整移动终端代码如下:


4. 程序运行

分别运行三块行空板程序,分别观察智能终端和移动终端屏幕,实现对大棚环境和土壤数据的获取和查看,点击移动终端通风窗状态处的“开”/“关”按钮,远程控制舵机转动。

注意:如果提示“网络受限”,请重新运行程序;当提示“publish_save”不存在,需要断开重连行空板,然后,在终端输入pip install -U siot,更新siot。


任务三:大屏显示器设计

1. 编写程序

校园物联网系统的搭建基本完成,为了更好的呈现数据,让更多的学生可以方便的观察数据,可以使用Mind+的“可视化面板”设计一个大屏显示器,连接物联网平台后它就是系统的可视化移动终端。

注意:有关Mind+“可视化面板”的区域介绍,参见“知识园地”。

(1)新建项目

点击Mind+上方的“可视化面板”按钮,开启“Mind+数据可视化”窗口。


鼠标移至“新建项目”处,点击“新建空白项目”;在弹出窗口中填写好项目名称,点击“确定”项目管理页面就会出现新建项目标签。


(2)连接SIoT

新建好项目后,点击对应标签上的“编辑”,进入编辑页面,然后我们可以在页面上方的“菜单栏”,点击“未设置”,选择“数据源设置”,在弹出的窗口中填写要连接的物联网平台信息。“完成”后,显示订阅成功。


(3)设计可视化界面

在可视化编辑页面中,先在右侧的“设置栏”设置画布尺寸、主题和封面。


现在,我们就可以根据需求,在左侧的“组件区”寻找并添加组件,完成搭建和设计。接下来,我们将以下图示例中使用的组件为例,学习如何搭建和设置。


添加标题文字,首先在“组件区”“装饰组件”分类下找到“文字”,像拖拽图形化指令一样拖出文字组件(删除拖回“组件区”即可)。然后,你可以拖动调整组件位置,在“设置栏”设置组件和显示字体的属性。


需要说明的是,这里的“组件底色”表示组件的外框,通常会显示组件标题。


添加数据“显示组件”,用于显示传感器当前数据,需要关联SIoT主题。以“图片文字”为例,在“设置栏”找到“Topic”点击右侧空处,在下拉菜单中选择要关联的主题,数据即可显示。设置完数据内容后,当然,你也可以继续其它设置。


添加“图表组件”,用于显示传感器历史数据,分析数据之间的规律,也需要关联SIoT主题,方法与“显示组件”类似。关联后可以选择显示数据的数量。另外,图表组件的尺寸修改,可以通过“设置栏”填写或者组件右下角拖动两种方式。


添加开关组件,属于“基础组件”,也需要关联SIoT主题和开关对应的消息内容。本项目使用了两种开关,“开关”和“自定义开关”,这两种开关既可以接收主题消息,又可以发送。另外,当两组件出现图层问题,在组件上右键,会出现图层调整选项。

注意:“开启/关闭发送”消息需要和程序 MQTT发布到主题并存数据库 填写内容保持一致。

现在,添加其它组件并在整个画面中添加一个白色色块,完成可视化界面设计。完整组件如下:


2. 程序运行

点击项目名称下拉菜单中的“保存”,然后“全屏”查看整个可视化界面。点击通风窗开关,远程控制舵机转动。



退回“编辑”按钮,在全屏模式下默认隐藏,将鼠标放到原菜单栏位置自动出现。


知识园地

1. 认识舵机

舵机是一种能控制物体转至指定位置(角度)的执行器,常见的舵机有 180°和 360°两种,本项目使用的是 180°舵机。


2. 多行空板组建物联网

本节课我们已经学习了多个行空板搭建物联网系统,整个系统中一般包含智能终端、服务器和移动终端。智能终端处的行空板一般会接入各类传感器和执行器,负责收集数据、控制执行器,一个物联网系统中可以有多个智能终端;移动终端一般用来查看数据、远程控制执行器,一个物联网系统中可以有多个智能终端,它的种类多样可以是行空板、电脑、手机等;服务器端处的行空板负责存储收发数据,只要开启它自带的SIoT服务,同时上电即可。


多行空板组建物联网的一般步骤为:配置网络,将所有物联网系统中的设备连入同一网段;开启服务器端SIoT服务;SIoT连接设置,订阅主题,收发数据。当然,如果你使用的是SIoT2.0,要优先新建主题,才能成功订阅主题。


3. Mind+可视化面板介绍

Mind+可视化面板,是专门用于将SIoT接收到的数据以更方便、更直观的方式呈现出来的界面设计工具,你可以通过拖拽组件,用它来设计想要的数据展示和控制界面。在刚才的项目中,我们已经了解过Mind+可视化面板的组成和操作,接下来详细学习一下界面中各个区域的功能吧。



4. 指令学习


挑战自我

通过本节课的学习相信你已经对Mind+可视化界面有一定了解了,现在你不妨自己研究丰富一下自己的可视化界面,尝试增加温度、空气湿度、光线强度等更多信息。当然,你也可以参考下图丰富完成自己的“大屏显示器”。



附件下载

实践起来2024 发表于 2024-5-16 11:26:51

打卡学习               

瞌睡帽 发表于 2024-6-16 22:37:45

相当赞!{:5_116:}

海之翼 发表于 2024-12-9 09:37:54

实践起来2024 发表于 2024-5-16 11:26
打卡学习

如果学校环境有限制,可以做一个生态缸,然后模拟湿度环境进行
页: [1]
查看完整版本: 【行空板】用Python玩转开源硬件-第10课:IoT校园物联网大...