491| 0
|
[K10教程] 【行空板K10入门教程】第05课:K10物联网系统-智能温室 |
本帖最后由 zoey不种土豆 于 2024-12-13 09:43 编辑 Hi,欢迎各位来到行空板K10的第五课!物联网技术在不断发展,在现代农业中,也逐步出现了智能温室,人们不用在农场里,就能对农场进行远程的控制。今天,我们将探索利用行空板K10打造一个智能温室系统,实现用 SIoT 平台存储、查看数据,并能远程控制温室,让我们一起进入今天的智能温室课堂吧! 任务目标 1、智能终端采集数据,并传输到 SIoT 平台 2、使用多种移动设备进行数据远程查看与控制 知识目标 1、 学习搭建物联网系统 2、 设计系统的互动反馈功能 3、掌握物联网远程控制的实现 4、了解物联网数据可视化平台 材料清单 硬件清单: 软件使用: Mind+编程软件 1.软件压缩包下载: * 网页下载:https://download3.dfrobot.com.cn ... 0_test_20241012.zip * 百度网盘下载:https://pan.baidu.com 提取码: 17d6 * 夸克网盘下载 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.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),即可相互沟通。 本文程序和相关素材下载:第五课 智能温室.rar 延伸阅读: |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed