【行空板K10基础入门教程】第05课 :K10 物联网系统-智能温室

Hi,欢迎各位来到行空板 K10 的第五课!物联网技术在不断发展,在现代农业中,也逐步出现了智能温室,人们不用在农场里,就能对农场进行远程的控制。今天,我们将探索利用行空板 K10 打造一个智能温室系统,实现用 SIoT 平台存储、查看数据,并能远程控制温室,让我们一起进入今天的智能温室课堂吧!

图片

任务目标

1、智能终端采集数据,并传输到 SIoT 平台

2、使用多种移动设备进行数据远程查看与控制

图片

知识目标

1、 学习搭建物联网系统

2、 设计系统的互动反馈功能

3、掌握物联网远程控制的实现

4、了解物联网数据可视化平台

材料清单

硬件清单:

图片

软件使用:

Mind+编程软件

1.软件压缩包下载:

* 网页下载:https://download3.dfrobot.com.cn/K10/Mind%2B1.8.0_RC1.0_test_20241012.zip

* 百度网盘下载:https://pan.baidu.com/s/1M-hIPZkChjIGu8weQtsNoA?pwd=17d6 提取码: 17d6

* 夸克网盘下载:https://pan.quark.cn/s/aca3ee1434d3

2.将压缩包解压,注意解压过程中关闭杀毒软件,解压后文件夹路径不含中文,解压后文件夹路径不宜过长

3.打开解压后的文件夹,找到 Mind+.exe,双击打开

4.若编译任何代码都报错,建议在解压时将所有后台的杀毒软件退出,将解压出的文件夹放到 C 盘根目录,文件夹的名字改为"win-ia32-unpacked20241012"。文件夹中的 exe 文件,不可直接拖到桌面,要右键-发送到桌面快捷方式。

软件基础使用

1、 打开 Mind+,切换到上传模式

图片

2、 加载行空板K10

基于前面的操作,只需要点击“扩展库”,找到“官方库”下的“行空板”模块点击完成添加,点击返回后,就可以在“指令区”找到行空板K10,完成行空板K10加载。

图片

3、连接行空板K10

首先,你需要通过 USB 连接线将行空板 K10 连接到计算机

图片

然后,点击连接设备后,点击 COM7-UNIHIKER K10 进行连接。

图片

注:不同行空板 K10 的设备名称可能不同,但都是以 K10 结尾。

动手实践

接下来一起动手完成今天的课程任务吧。我们将从行空板 K10 温湿度的读取开始,逐步学习如何在行空板 K10 上设计一个智能温室系统。

任务一:数据采集传输

这一部分我们要能够利用行空板 K10 采取温湿度数据,土壤湿度、环境光强度,并将数据传输到 SIoT平台上。

任务二:远程查看与控制

这一部分我们实现能够用多种移动设备,作为移动终端,远程查看数据,并对智能终端的遮阳棚开关进行远程控制。

任务三:物联网数据可视化大屏设计

这一部分我们主要实现能够设计数据可视化大屏,将 SIoT 平台的数据实时更新在可视化大屏上,并对界面进行合理的美化设计。

任务一:数据采集传输

这一部分,我们需要用一块行空板 K10 作为温室的智能终端,进行对温室相关数据的采集,包括温度、湿度、光线强度、土壤湿度,其中,前三个参数在我们的行空板 K10 内置了相关的传感器,我们不需要外接传感器,而土壤湿度需要我们外接土壤湿度传感器读取相应的数值。

1、 硬件搭建

确认使用USB连接线将行空板K10连接到计算机。

2、 软件准备

确认已打开Mind+,在Python图形化模式下出现预设代码,成功加载行空板。接下来就可以编写项目程序了。

图片

3、 编写程序

STEP1:读取温室数据

在行空板 K10 中,内置了温湿度传感器、环境光传感器,因此,要读取温室的温度、湿度、光线强度,我们不需要外接其他的传感器,只需要使用板载传感器下的 读取温度(摄氏度℃) 、 读取湿度(%RH)和 读取环境光强度 指令,就可以读取相对应的数据,如下图所示。

图片

要读取土壤湿度,需要在引脚 P1 外接土壤湿度传感器,连接如下图。

图片

接着,我们需要读取土壤湿度的数值,土壤湿度传感器是模拟信号,直接读取的数值是一个在 0 至4095 的值,而在日常中,湿度通常是用百分比的形式呈现,因此,我们需要使用映射对这个数值进行处理,让土壤湿度的值显示在 0-100 之间。

我们需要使用 映射()从[0,4095]到[0,10000] 指令,再将映射结果四舍五入后再除 100,就可

以得到[0,100]的值,相关程序指令如下。

图片

注:在读取完数据之后,我们创建相对应的变量,将数据存储到变量中,相关程序如下所示。

图片

最后,我们将温室的数据显示在我们的智能终端上,我们先加载背景图片,然后将对应的变量数据呈现出来,具体操作指令如下图所示。

图片

STEP2:网络连接

为了能够进行数据的传输,我们需要先进行网络连接,应用我们的电脑当服务器搭建物联网,需要确保所以设备都连接在同一个网络中,这样,我们才可以使用 MQTT 协议进行消息的订阅与发送。

图片

注:关于 MQTT 通信协议、物联网组成的更多知识,详见知识园地。

先在扩展库中添加网络服务的 MQTT 通讯与 Wi-Fi 模块,如下图所示:

图片

我们先对行空板 K10 智能终端的 WIFI 进行设置,我们使用 Wi-Fi 连接到热点()密码() 指令,连接 WIFI,要注意,行空板连接的 WIFI 要与我们的电脑 WIFI 保持一致。相关的连接指令如下

图片

在我们的电脑,我们需要先下载 win 版本的 SIoT_V2 解压,双击 start SloT.bat 即可启动 SIoT,启动之后会弹出小黑窗启动服务器。

图片

注:关于 SIoT_V2 的下载与安装,详见 https://mindplus.dfrobot.com.cn/dashboard

将电脑的 SIoT.bat 启动之后,对我们的 MQTT 进行初始化参数设置,IP 地址为我们本地电脑的 IP 地址,账号为 SIoT,密码为 dfrobot,当连接成功时,清除行空板 K10 屏幕上的内容。我们将进行 WIFI 连接和 MQTT 初始化的指令添加一个函数“网络连接”来完成。详细操作如下图所示。

图片

MQTT 连接成功后,我们在电脑浏览器访问 192.168.9.216:8080 网址,在打开的网页中,账号输入 SIoT,密码输入 dfrobot,即可进入 SIoT 物联网平台。

图片

STEP3:创建主题并传输数据

进入 SIoT 平台后,我们点击新建主题,新建“温度”、“湿度”、“环境光强度”、“土壤湿度”四个主题,操作如下图所示。

图片

接着,我们使用 MQTT 发送消息()至(topic/a)并存数据库(SIoT V2) 指令,将我们的温室数据传输到对应的主题当中,要注意,在填主题的时候,直接在浏览器主题的地方双击复制,这样可以避免因为输入发生的错误。

图片

数据采集传输的模块完整代码如下图:

图片

 4、 程序执行

STEP1:检查并保证行空板K10已连接Mind+,即在“菜单栏”部分显示IP;

图片

STEP2:点击界面右上方的上传到设备按钮;

图片

STEP3:运行程序之后,在行空板 K10 可以看到相关参数显示在屏幕上,同时,在 SIoT 平台上,可以看到数据在不断的传输。

图片

任务二:远程查看与控制

1、 添加遮阳棚

在温室中,一般都会有遮阳棚,对植物进行保护。因此,我们添加一个舵机,模拟温室的遮阳棚。在P0 引脚处,外接舵机,如下图所示。

图片

舵机的转动角度为 0-180°,当遮阳棚状态为打开的时候,舵机的转动角度为 90°,当遮阳棚状态为关闭的时候,舵机的转动角度为 0°。

2、编写程序

STEP1:添加接收指令

我们需要先在 SIoT 平台添加 遮阳棚开关 遮阳棚角度 的主题,接着在移动终端,发送特定消息,智能终端如果订阅了这个主题,就能够收到消息,并做出相对应的动作。

图片

我们需要先使用 订阅 topic/a 指令,在 topic 中复制粘贴对应的主题,订阅两个主题,具体操作如下

图片

接着使用 当接收到 topic_0 的 MQTT 消息 指令,让智能终端接受来自 SIoT 平台对应主题的消息内容,并让舵机根据消息内容设定对应的反馈动作。相关操作如下:

图片

注:MQTT 消息后面的判定条件,要加英文双引号,引起文字。同时,MQTT 消息是字符串类型的数据,而舵机指令只能接收整数型指令,因此我们需要将 MQTT 消息转换成整数类型。

这样,我们就实现了接受指令的编写,温室智能终端完整的程序指令如下图所示:

图片

STEP2:用移动设备远程查看和控制

我们可以使用到我们的电脑或者手机等移动设备,对温室的数据及逆行查看和控制。需要先确保所有设备连接在同一个网络下。

接着,我们要访问开 SIoT 服务的电脑的 8080 端口,以我为例,我是用 IP 为 192.168.31.147 的电脑运行的 SIoT 服务,因此,我要在移动设备浏览器中输入 192.168.31.147:8080 网址进行访问,账号为 SIoT,密码为 dfrobot。

图片

进入页面之后,就可以点击详情,查看相对应传感器的数据,或者是发送指令,对终端进行控制,演示如下。

图片

这样,我们就实现了用电脑远程查看数据和控制智能终端,手机、平板等其他移动设备也是同样的操作。

STEP3:用另一块行空板 K10 作为移动终端

除了可以用手机、电脑等移动设备远程查看和控制之外,我们也可以使用另一块行空板 K10 作为移动终端,进行远程查看和控制。

第一步我们先进行网路的连接,WIFI 跟 MQTT 的连接配置跟前面智能终端演示的操作一样,要注意IP 地址也是填开 SIoT 服务的电脑的 IP 地址,连接完成之后,我们需要订阅“温度”、“湿度”、“环境光强度”、“遮阳棚开关”、“土壤湿度”主题,相关程序指令如下所示。

图片

第二步,我们需要接收不同主题的消息,并将消息赋值给对应的变量,相关程序如下。

图片

第三步,将温室的相关数据进行实时显示,并对遮阳棚不同的状态,显示不同的图片,相关程序设置如下。

图片

最后一步,设置控制条件。我们用行空板 K10 上的按键 A,来控制遮阳棚的开关,当按下按钮 A 时,遮阳棚如果关闭,就切换为打开状态,角度为 30°;如果打开,则切换为关闭状态,角度为 0°,相关程序指令如下图所示:

图片

移动终端的完整代码如下图所示。

图片

 3、 程序运行

STEP1:连接行空板 K10

STEP2:点击界面右上方的“上传到设备”按钮

STEP3:在移动端行空板 K10 界面,可以看到温室数据的显示,同时,按下按键 A 键,遮阳棚状态会发生改变,智能终端的遮阳棚会做出相对应的动作反馈。

图片

任务三:物联网数据可视化大屏设计

Mind+从 1.8.0 版本开始增加数据可视化面板,可以直观的呈现物联网数据(当前仅支持 SIoT V2)。Mind+的数据可视化面板基础教程可参考网址 https://mindplus.dfrobot.com.cn/dashboard 进行查看。

图片

1、 完成连接

STEP1:打开可视化面板

单击 Mind+左上方的“打开可视化面板”按钮,打开可视化面板,如下图所示。

图片

SETP2:新建项目

打开可视化面板之后,我们可以单击“新建项目”,输入名称,创建可视化面板项目。

图片

SETP3:连接网络

完成新建项目后,我们依次进行数据源设置、填写服务器地址,这样就可以完成我们的连接任务了。

图片

可以看到可视化面板的界面由多个区域组成,如下图所示。

图片

2、 界面设计

一个较为完善的物联网数据可视化大屏通常有标题文字、数据显示组件、图表、开关等多个组件共同构成,如下图所示,是这次温室的物联网数据可视化大屏图片。

图片

接下来,我们将对每一个组件的使用方法进行讲解。

SETP1:标题文字

在装饰组件中,找到文字组件,新增,在右边的属性栏中,改变相关属性,美化标题。

图片

STEP2:数据显示

在显示组件中,找到图片文字,用于显示传感器当前数据,需要关联 SIoT 主题,同时,可以设置标题、组件描述、组件图片等,如下图所示。

图片

STEP3:图表

添加“图表组件’,用于显示传感器历史数据,分析数据之间的规律,需要关联 SIoT 主题,如下图所示。

图片

STEP4:开关

添加“开关”和“自定义开关”组件,这两种开关可以接收、发送主题消息。

在可视化面板中,我们给遮阳棚设置了两种开关组件:自定义开关组件和开关组件。

自定义开关组件可以关联 topic,同时设置图片,当点击图片的时候,会切换图片状态,同时发送对应的消息。开关组件也可以关联 topic,按下开关的时候,样式发生改变,发送消息到关联的 topic 中。

图片

下面以自定义开关组件为例,演示自定义开关组件的使用方法:

图片

开关组件的设置可以参考自定义开关组件的设置。

STEP5:滑动条

在基础组件中,找到滑动条,可以设置相应的标题、最小值、最大值和步长,同时关联相关的 topic,这样就能将数据消息传送对应的 topic,智能终端收到消息,就能做出动作反馈了。

图片

接下来就请大家,利用学习到的组件,设计一个自己的温室智能大屏吧!

图片

知识园地

1、 物联网组成

物联网,就是万物互联。通过信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。物联网组成的关系可看下图。

图片

智能终端

在物联网系统中,用于外接传感器或执行器的智能设备称为智能终端,如行空板,Arduino 等通过智能终端进行传感器感知或执行器反馈。在我们这一课的学习当中,我们使用了一块行空板 K10 作为温室的智能终端。

图片

服务器

服务器是提供计算服务、管理计算资源的的计算机,包括硬件和软件两个部分,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。在我们这一节课中,我们使用本地电脑的 SIoT 平台,作为我们的服务器端。

图片

图片

物联网平台

在物联网系统中,物联网平台是用于接收数据和控制设备的平台。在我们这节课的案例中,我们就使用了 SIoT 物联网平台进行数据的接收和发送。

图片

移动终端

在物联网系统中,用于远程访问物联网平台的移动设备,称为移动终端。通过移动终端查看物联网数据或发送控制指令。

在我们这一节课中,我们除了可以使用行空板 K10 作为移动终端,还可以使用手机、电脑等移动设备

作为移动终端。

图片

2、MQTT 通信协议

目前应用最为广泛的是 MQTT 协议。MQTT 是一个基于客户端——服务器的消息发布/订阅传输协协议。

服务器通常被称为“代理(Broker)”,客户端可以是信息发布者(Publish)或订阅者(Subscribe)。控制端(信息发布者)和被控制端(信息订阅者)彼此之间并没有建立直接的联系,而是通过服务器进行中转沟通。只要他们发送和订阅的是同一个主题(TopicID),即可相互沟通。

图片

在我们这个智能温室中,有一块行空板 K10 作为温室智能终端,负责进行温室数据的采集,接着将消息传输到服务器中,另一块行空板 K10 作为移动终端,订阅主题后可以接收相应的消息数据,要注意,如果没有两块行空板,用电脑或者手机等移动设备也能完成这一功能。

图片

本转载内容仅供学习,学习素材包,请至原文下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值