智慧农业案例开发例程

智慧农业案例开发实验

目录

  • 作者介绍
  • 场景概述
  • 实验准备
  • 硬件连接
  • 整体流程
  • 创建项目
  • 创建产品
  • Profile 定义
  • 编解码插件开发
  • 设备开发
    • IoT Link 工程创建
    • IoT Link 程序编译及烧录
  • 应用开发
    • 开发应用
    • 编辑应用
  • 业务调试
    • 观察监控参数
    • 手动控制
    • 设置自动开关灯规则
  • 往期回顾

作者介绍

刘懿宵,男,西安工程大学电子信息学院,2017级本科生。
专业:通信工程
电子邮件:yixiao_liu1999@163.com

场景概述

智慧农业是智慧经济的重要内容,是依托物联网、云计算以及 3S 技术等现代信息技术与农业生产相融合的产物,可以通过对农业生产环境的智能感知和数据分析,实现农业生产精准化管理和可视化诊断。
在该文档中,将基于华为一站式开发工具平台—开发中心,从设备、平台、应用 端到端构建一款智慧农业解决方案样例,如图 1- 1 所示,带您体验十分钟快速上云。
在这里插入图片描述

实验准备

  • 开发板:小熊派开发板(含 NB 卡、NB35-A 通信扩展板、E53_IA1 案例扩展板等)
  • IDE:在 VScode 上安装 IoT- Link
  • 平台:华为云账号(需完成实名认证)

硬件连接

连接好 E53_IA1 案例扩展板和 NB35-A 通信扩展板,NB35-A 通信扩展板需要安装 SIM卡,并注意卡的缺口朝外插入。将串口选择开关拨到 MCU 模式,并用 USB 线将开发板与电脑连接,如图 3- 1 所示。
在这里插入图片描述

整体流程

智慧农业案例的开发整体流程如图 4- 1 所示。
在这里插入图片描述

创建项目

在进行开发之前,开发者需要基于行业属性,创建一个独立的资源空间。在资源空间
内,开发者可以开发相应的物联网产品和应用。
步骤 1 使用华为云账号,登录物联网应用构建器,如图 5- 1 所示。
在这里插入图片描述
步骤 2 选择右下角的“新建项目”,填写“创建项目”,单击“确定”,如图 5- 2 所示。
配置示例:

  • 项目名称:BearPi-IoT
    在这里插入图片描述
    步骤 3 创建完成后会生成自己建好的项目之后单击“进入开发”,如图 5-3 所示
    在这里插入图片描述
    步骤 4 进入“IoT Studio”界面下单击“创建应用”填写参数后,单击“确认”
    如图 5-4 所示。配置示例:
  • 应用名称:Agriculture
    在这里插入图片描述

创建产品

某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)、插件、测试报告等资源。
步骤 1 使用华为云账号,登录设备接入,选择页面左侧的产品,单击右上角下拉框,选择新建产品所属的资源空间(@创建项目)。如图 6- 1 所示。
在这里插入图片描述
步骤 2 单击右上角的“创建产品”,创建一个基于 CoAP 协议的产品,填写参数后,单击“立即创建”,如图 6- 2 所示。
在这里插入图片描述

基本信息
所属资源空间选择自己创建的资源空间。
产品名称自定义,如“BearPi_Agriculture”
协议类型选择“CoAP” 数据格式 选择“二进制码流”
厂商名称自定义,如“BearPi”
功能定义
选择模型物联网平台提供了三种创建模型的方法,此处选择“自定义功能”
所属行业智慧农业
设备类型Agriculture
步骤 3 建完后可以发现“产品”里多了“Bearpi_Agriculture”如 6-3 所示,单击“详情”
在这里插入图片描述

Profile 定义

在“功能定义”页面下,单击“自定义功能”,配置产品的服务。如图 7- 1 所示。

在这里插入图片描述
Profile 设计思路
设备服务列表:

服务描述服务名称(Service ID)
实时检测农业状态Agriculture
服务能力:
Agriculture
能力描述属性名称
-------------
属性列表Temperature
属性列表Humidity
属性列表luminance
Light 命令列表
能力描述命令名称
-------------
命令列表Agriculture_Control_Light
命令列表Agriculture_Control_Light
Motor 命令列表
能力描述命令名称
-------------
命令列表Agriculture_Control_Motor
命令列表Agriculture_Control_Motor
步骤 1 进入“新增服务”,填写相关信息后,单击“确认”用来管理农业的功能。如图 7- 2所示。配置示例:
  • 服务名称:Agriculture
    在这里插入图片描述
    步骤 2 在“Agriculture”的下拉菜单下点击“添加属性”填写相关信息“Temperature”,“Humidity”,“luminance”分别如图 7- 3,图 7- 4,图 7- 5 所示,单击“确认”。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    步骤 3 在“Agriculture”的下拉菜单下点击“添加命令”填写相关信息,如图 7- 6 所示:
    在这里插入图片描述
    步骤 4 在“新增命令”里点击“新增输入参数”填写相关信息如图 7- 7,再单击“确定”,同样在“新增命令”里点击“新增输出参数”填写相关信息如图 7- 8 所示,再单击“确认”,最后在“新增命令”里点“确认”。
    在这里插入图片描述
    在这里插入图片描述
    步骤 5 在“Agriculture”的下拉菜单下点击“添加命令”填写相关信息,如图 7- 9 所示:
    新增命令 Agriculture_Control_Motor
    步骤 6 在“新增命令”里点击“新增输入参数”填写相关信息如图 7- 10,再单击“确定”,同样在“新增命令”里点击“新增输出参数”填写相关信息如图 7- 11 所示,再单击“确认”,最后在“新增命令”里点“确认”。
    在这里插入图片描述
    在这里插入图片描述

编解码插件开发

编解码插件设计思路
消息列表:

消息名消息类型messageid
1Agriculture数据上报00
2Agriculture_Control_Light命令下发01
2Agriculture_Control_Light响应02
3Agriculture_Control_Motor命令下发03
3Agriculture_Control_Motor响应04

Agriculture:

码流序号1234
参数名messageidTemperatureHumidityLuminance
数据类型int8uint8uint8uint16u
长度1112
默认值00///
偏移值0-11-22-33-5
Agriculture_Control_Light 命令下发:
码流序号123
-----------------------
参数名messageidmidLight
数据类型int8uint16uString
长度123
默认值01//
偏移值0-11-33-6
Agriculture_Control_Light 命令响应:
码流序号1234
----------------------------
参数名messageidmiderrcodeLight_state
数据类型int8uint16uint8uInt8u
长度1211
默认值02//
偏移值0-11-33-44-5
Agriculture_Control_Motor 命令下发:
码流序号123
-----------------------
参数名messageidmidMotor
数据类型int8uint16uString
长度123
默认值03//
偏移值0-11-33-6
Agriculture_Control_Motor 命令响应:
码流序号1234
----------------------------
参数名messageidmiderrcodeMotor_state
数据类型int8uint16uint8uint8u
长度1211
默认值04///
偏移值0-11-33-44-5
步骤 1 在产品详情插件开发页面,选择“在线开发插件”,单击“在线开发插件”,如图8- 1 所示。
在这里插入图片描述
步骤 2 在“在线开发插件”区域,单击“新增消息”,如图 8- 2 所示。
在这里插入图片描述
步骤 3 新增消息 Agriculture 如图 8-3 所示。
配置示例:
  • 消息名:Agriculture
  • 消息类型:数据上报

在这里插入图片描述
a) 在“新增消息”界面,单击“添加字段”。
b) 在“添加字段”界面,勾选“标记为地址域”,然后单击“确认”,添加地址域字段 messageId,如图 8- 4 所示。
在这里插入图片描述
c) 在“新增消息”界面,单击“添加字段”,填写相关信息,然后单击“确认”,如图 8- 5 所示。
配置示例:

  • 名字:Temperature
    在这里插入图片描述
    d) 在“新增消息”界面,单击“添加字段”,填写相关信息,然后单击“确认”,如图 8- 6 所示。
    配置示例:
  • 名字:Humidity
    在这里插入图片描述
    e) 在“新增消息”界面,单击“添加字段”,填写相关信息,然后单击“确认”,如图 8- 7 所示。
    配置示例:
  • 名字:Luminance
  • 数据类型:int16u(16 位无符号整型)
    在这里插入图片描述
    f) 在“新增消息”界面,单击“确认”,完成消息 Agriculture 的配置。
    步骤 4 新增消息 Agriculture_Control_Light 如图 8- 8 所示。
    配置示例:
  • 消息名:Agriculture_Control_Light
  • 消息类型:命令下发
  • 添加响应字段:是
  • 在这里插入图片描述
    a) 在“新增消息”界面,单击“添加字段”,在“添加字段”界面,勾选“标记为地址域”,然后单击“确认”,添加地址域字段 messageId,如图 8- 9 所示。
    在这里插入图片描述
    b) 在“新增消息”界面,单击“添加字段”,在“添加字段”界面,勾选“标记响应标识字段”,然后单击“确认”,添加响应标识字段 mid,如图 8- 10 所示。
    在这里插入图片描述
    c) 在“新增消息”界面,单击“添加字段”,填写相关信息,然后单击“确认”,如图 8- 11所示。
    配置示例:
  • 名字:Light
  • 数据类型:string
  • 长度:3
    在这里插入图片描述
    d) 在“新增消息”界面,单击“添加响应字段”,在“添加字段”界面,勾选“标记为地址域”,然后单击“确认”,添加地址域字段 messageId,如图 8- 12 所示。
    在这里插入图片描述
    e) 在“新增消息”界面,单击“添加响应字段”,在“添加字段”界面,勾选“标记响应标识字段”,然后单击“确认”,添加响应标识字段 mid,如图 8- 13 所示。
    在这里插入图片描述
    f) 在“新增消息”界面,单击“添加响应字段”,在“添加字段”界面,勾选“标记命令执行状态字段”,然后单击“确认”,添加命令执行状态字段 errcode,如图 8- 14 所示。
    在这里插入图片描述
    g) 在“新增消息”界面,单击“添加响应字段”,填写相关信息,然后单击“确认”,如图 8- 15 所示。
    配置示例:
  • 名字:Light_State

    f) 在“新增消息”界面,单击“确认”,完成消息 Agriculture_Control_Light 的配置。步骤 5 新增消息 Agriculture_Control_Motor 如图 8- 16 所示。
    配置示例:
  • 消息名:Agriculture_Control_Motor
  • 消息类型:命令下发
  • 添加响应字段:是
    在这里插入图片描述
    a) 在“新增消息”界面,单击“添加字段”,在“添加字段”界面,勾选“标记为地址域”,然后单击“确认”,添加地址域字段 messageId,如图 8- 17 所示。
    在这里插入图片描述
    b) 在“新增消息”界面,单击“添加字段”,在“添加字段”界面,勾选“标记响应标识字段”,然后单击“确认”,添加响应标识字段 mid,如图 8- 18 所示。
    在这里插入图片描述
    c) 在“新增消息”界面,单击“添加字段”,填写相关信息,然后单击“确认”,如图 8- 19所示。
    配置示例:
  • 名字:Motor
  • 数据类型:string
  • 长度:3
    -
    d) 在“新增消息”界面,单击“添加响应字段”,在“添加字段”界面,勾选“标记为地址域”,然后单击“确认”,添加地址域字段 messageId,如图 8- 20 所示。
    在这里插入图片描述
    e) 在“新增消息”界面,单击“添加响应字段”,在“添加字段”界面,勾选“标记响应标识字段”,然后单击“确认”,添加响应标识字段 mid,如图 8- 21 所示。
    在这里插入图片描述
    f) 在“新增消息”界面,单击“添加响应字段”,在“添加字段”界面,勾选“标记命令执行状态字段”,然后单击“确认”,添加命令执行状态字段 errcode,如图 8- 22 所示。
    在这里插入图片描述
    g) 在“新增消息”界面,单击“添加响应字段”,填写相关信息,然后单击“确认”,如图 8- 23 所示。
    配置示例:
  • 名字:Motor_State
    -
    f) 在“新增消息”界面,单击“确认”,完成消息Agriculture_Control_Motor 的配置。
    步骤 6 拖动右侧“设备模型”区域的属性字段、命令字段和响应字段,与数据上报消息、命令下发消息和命令响应消息的相应字段建立映射关系,如图 8- 24 所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    步骤 7 单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台,如图 8- 25 所示。
    在这里插入图片描述
    步骤 8 在“在线调试”下单击“新增调试设备”填写相关信息,列如图 8- 26 所示。
    配置示例:
  • 设备名称:TEST(自定义即可)
  • 设备标识码:该设备的 IMEI 号,可在设备上查看,如图 8- 27 所示:
    -
    在这里插入图片描述
    在这里插入图片描述

设备开发

基于 IoT Link 工程创建,将程序样例烧录进小熊派开发板。

IoT Link 工程创建

步骤 1 打开 VScode 软件,在首页左下角单击”Home”按钮,打开 IoT Link,如图 9- 1 所示。
在这里插入图片描述

步骤 2 在首页上单击“创建 IoT Studio 工程”,如图 9- 2 所示。
在这里插入图片描述
步骤 3 在弹出导入界面,填写工程名称→选择工程储存目录→选择“STML431_BearPi”硬件平台→选择“oc_Agriculturet_template”,单击“完成”按钮导入相应工程,如图9- 3 所示。
在这里插入图片描述

IoT Link 程序编译及烧录

步骤 1 单击工具栏中的在这里插入图片描述
,对当前工程进行编译。编译成功后,在控制台输出面板中显示“编译成功”,如图 9- 6 所示。
在这里插入图片描述
步骤 2 连接好开发板,单击工具栏中的 在这里插入图片描述
,即可将已编译好的程序烧录至开发板,如图 9- 7 所示。

在这里插入图片描述

应用开发

回到华为“IoT Studio”里的“web 在线开发”单击之前创建好的应用,进入,如图 10- 1所示。
在这里插入图片描述

开发应用

步骤 1 在“开发应用”界面,点击“开发应用”,如图 10- 2 所示。
在这里插入图片描述

编辑应用

步骤 1 将鼠标移至“自定义页面 1”上,在弹出的列表中选择“修改”,修改页面信息。在弹出的窗口中,修改“菜单名称”为“农业管理”,其他保持默认,然后点击“确定”,如图 10-3 所示。
在这里插入图片描述
步骤 2 选择“农业管理”页面,设计页面组件布局。

  1. 拖动 1 个“选择设备”组件、6 个“监控”组件和 2 个“命令下发”组件至页面中,并按图 10-4 所示的布局进行摆放。
    在这里插入图片描述

  2. 分别单击页面中的“监控”组件,在右侧“配置面板→样式”中设置组件的样式。

标题显示类型样式
温度监控简易保持默认
温度变化图表保持默认
湿度监控简易保持默认
湿度变化图表保持默认
光强监控简易保持默认
光强变化图表保持默认
  1. 分别单击页面中的“监控”组件,在右侧“配置面板→数据”中设置组件的数据源。此处以监控温度为例讲解,湿度和光强同样操作。因为 2 个温度的“监控”组件都是用于监控环境的温度,只是显示方式不同,所以“数据”页面参数设置一样,如图 10- 5 所示
  • 产品:选择创建产品中已创建的产品“Bearpi_Agriculture”
  • 服务:Agriculture
  • 属性:Temperature
    在这里插入图片描述
  1. 分别单击页面中的“命令下发”组件,修改各自的标题分别为“补光灯控制”,“电机控制”在它们的右侧“配置面板”设置对应功能的属性参数,则“补光灯控制”如图 10-6 所示;再“电机控制”如图 10-7 所示:
    在这里插入图片描述
    在这里插入图片描述
    步骤 3 路灯管理页面构建完成,点击右上角“保存”,然后点击“预览”查看应用页面效
    果,如图 10- 3 所示。
    在这里插入图片描述

业务调试

使用已经烧录程序的开发板和构建完成的应用系统,进行智慧农业业务功能的调试。

观察监控参数

点击“预览”进入查看设备的参数,把设备切换到不同的环境下,观察其参数变化,如图11- 1 所示。
在这里插入图片描述

手动控制

步骤 1 选择“农业管理 →补光灯控制”,点击“设置参数”,“Light”选择“ON”,单击“发送命令”,如图 11- 2 所示。
在这里插入图片描述
此时扩展板的补光灯为打开状态,如图 11- 3 所示。
在这里插入图片描述
关灯命令与开灯命令操作步骤一样,差别是“Light”选择“OFF”。
步骤 2 选择“农业管理 →电机控制”,点击“设置参数”,“Motor”选择“ON”,单击“发送命令”,如图 11- 4 所示。
在这里插入图片描述
此时扩展板的电机开始转动,关电机命令与开电机命令操作步骤一样,差别是“Motor”选择“OFF”。

设置自动开关灯规则

步骤 1 新建两条规则,分别用于控制照明灯在不同条件下的开和关。 选择“规则”,单击“创建规则组”,如图 11- 5 所示。
在这里插入图片描述
步骤 2 在“创建规则组”里填写名称(自定义),例如 Light,如图 11- 6 所示:创好后可以发现所有规则里多了一个 Light 组,之后点亮 Light 前的框,在点击右上角的“创建规则”选择“设备联动规则”如图 11- 7 所示:
在这里插入图片描述
在这里插入图片描述
步骤 3 在“创建规则”界面,分别填写开、关灯规则信息。

参数
规则名称Light_ONLight_OFF
条件
条件类型设备类型
选择设备模型选择创建产品中已创建的产品
服务类型Agriculture
属性名字luminance
操作<>
50500
动作
动作类型设备
选择设备模型选择创建产品中已创建的产品
点击选择设备选择注册设备中新增的设备
服务类型Agriculture
命令名称Agriculture_Control_Light
参数Light
ONOFF
命令状态启用
描述光强小于 50 时,补光灯开启。光强大于 500 时,补光灯关闭。
参照上述表格,填写开灯的规则信息。
  1. 填写规则名称:Light_ON,规则组选择“Light”如图 11- 8 所示。
    在这里插入图片描述
  2. 设置开灯规则的条件信息。在“条件”模块,点击“设备行为”所在行右侧的 “添加”,如图 11- 9 所示。
    在这里插入图片描述
  3. 按照参数表中开灯规则的条件参数填写条件信息,如图 11- 10 所示。
    在这里插入图片描述
  4. 设置开灯规则的动作。在“动作”模块,点击“设备行动”所在行右侧的“添加”,如图 11- 11 所示。
    在这里插入图片描述
  5. 按照参数表中开灯规则的动作参数填写动作信息,如图 11- 12 所示。在这里插入图片描述
  6. 然后单击右上角的“提交”,开灯规则创建完成。关灯规则的创建操作和开灯的一样,只是规则名称、条件的取值和动作执行不同。

步骤 4 测试自动开关灯。

  1. 遮住光强传感器(E53_IA1),使开发板处于黑暗环境中(亮度<50),查看“农业管理”中光强监控数值如图 11- 13 所示和扩展板的补光灯如图 11- 14 所示:扩展板的补光灯应该自动打开。
    在这里插入图片描述

在这里插入图片描述
2 移除遮挡物,使开发板处于明亮环境中(亮度>500),查看“农业管理”中光强监控数值如图 11- 15 所示和扩展板的补光灯如图 11- 16 所示:扩展板的补光灯应该自动关闭。
在这里插入图片描述
在这里插入图片描述
步骤 5也可自行创建其他规则,例如当温度或者湿度达到一定阈值后,自动控制电机模拟
通风加湿等操作。

往期回顾

2021物联网开发学习自学历程记录汇总


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部