设备接入 IoTDA设备接入 IoTDA

计算
弹性云服务器 ECS
裸金属服务器 BMS
云手机 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器 HECS
VR云渲游平台 CVR
特惠算力专区
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属企业存储服务
云存储网关 CSG
专属分布式存储服务 DSS
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘小站 IES
智能边缘平台 IEF
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
园区智能体 CampusGo
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
视频分析服务 VAS
语音交互服务 SIS
知识图谱 KG
人证核身服务 IVS
IoT物联网
设备接入 IoTDA
设备管理 IoTDM(联通用户专用)
全球SIM联接 GSL
IoT数据分析
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
开发与运维
软件开发平台 DevCloud
项目管理 ProjectMan
代码托管 CodeHub
流水线 CloudPipeline
代码检查 CodeCheck
编译构建 CloudBuild
部署 CloudDeploy
云测 CloudTest
发布 CloudRelease
移动应用测试 MobileAPPTest
CloudIDE
Classroom
开源镜像站 Mirrors
应用魔方 AppCube
云性能测试服务 CPTS
应用管理与运维平台 ServiceStage
云应用引擎 CAE
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
资源管理服务 RMS
应用身份管理服务 OneAccess
区块链
区块链服务 BCS
可信跨链服务 TCS
可信分布式身份服务
智能协作
IdeaHub
开发者工具
SDK开发指南
API签名指南
DevStar
HCloud CLI
Terraform
Ansible
云生态
云市场
合作伙伴中心
华为云培训中心
其他
管理控制台
消息中心
产品价格详情
系统权限
我的凭证
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
应用编排服务 AOS
多云容器平台 MCP
基因容器 GCS
容器洞察引擎 CIE
云原生服务中心 OSC
容器批量计算 BCE
容器交付流水线 ContainerOps
应用服务网格 ASM
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB (for openGauss)
云数据库 GaussDB(for MySQL)
云数据库 GaussDB NoSQL
数据管理服务 DAS
数据库和应用迁移 UGO
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据湖治理中心 DGC
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
API网关 APIG
分布式缓存服务 DCS
分布式消息服务RocketMQ版
企业应用
域名注册服务 Domains
云解析服务 DNS
云速建站 CloudSite
网站备案
商标注册
华为云WeLink
会议
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMAExchange
API全生命周期管理 ROMA API
安全与合规
安全技术与应用
DDoS防护 ADS
Web应用防火墙 WAF
云防火墙 CFW
应用信任中心 ATC
企业主机安全 HSS
容器安全服务 CGS
云堡垒机 CBH
数据库安全服务 DBSS
数据加密服务 DEW
数据安全中心 DSC
云证书管理服务 CCM
SSL证书管理 SCM
漏洞扫描服务 VSS
态势感知 SA
威胁检测服务 MTD
管理检测与响应 MDR
安全治理云图 Compass
认证测试中心 CTC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
专属云
专属计算集群 DCC
解决方案
高性能计算 HPC
SAP
混合云灾备
华为工业云平台 IMC
价格
成本优化最佳实践
专属云商业逻辑
用户服务
帐号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
文档首页> 设备接入 IoTDA> 最佳实践> 设备接入> 基于NB-IoT小熊派的智慧烟感
更新时间:2021-10-12 GMT+08:00
分享

基于NB-IoT小熊派的智慧烟感

场景说明

近年来,火灾频发,造成很大的人员及财产损失,国家高度重视,陆续出台相关文件,明确相关要求,落实消防安全责任。同时,人民消防意识逐渐提高,独立烟感得到一定程度的普及,在防火减灾方面起到一定的作用。但由于独立烟感产品存在一定的局限,例如人不在场收不到报警信息,工作状态不能实时掌握,独立烟感没有完全解决这些问题。

NB-IoT智慧烟感解决了传统烟感器布线难、电池使用周期短、维护成本高、无法与业主及消防机构交互等缺点。智慧烟感采用无线通信,具备即插即用、无需布线、易于安装等特点。

在该文档中,我们基于华为一站式开发工具平台(VS code工具IoTlink插件),从设备(小熊派开发套件)、平台(IoTDA华为物联网平台)、端到端构建一款智慧烟感解决方案样例,带您体验十分钟快速上云。实现智慧烟感检测并上报烟雾浓度值,显示在IoTDA控制台,并在IoTDA控制台远程控制蜂鸣器开关的功能。

开发环境

  • 开发板:小熊派BearPi-IoT开发套件(包含NB卡、NB模组、智慧烟感功能模块、USB数据线等),您可以前往华为云市场购买。
  • 软件:VScode,IoT Link插件、华为云(已开通设备接入服务)、win7及以上版本的64位操作系统(本文以windows 10 64-bit系统调试)。

整体流程

硬件连接

  1. 将NB卡插入到NB-IoT扩展板的SIM卡卡槽,确保插卡的时候卡的缺口朝外插入,如图1所示。

  2. 将烟雾浓度采集控制板和NB-IoT扩展板插入到开发板上,注意安装方向,然后用USB数据线将小熊派开发板与电脑连接起来。显示屏有显示,电源灯被点亮,说明开发板通电成功。

安装IoT Link Studio插件

IoT Link Studio是针对IoT物联网端侧开发的IDE环境,提供了编译、烧录、调试等一站式开发体验,支持 C、 C++、汇编等多种开发语言,让您快速、高效地进行物联网开发。

  1. 以win10为例,获取电脑的系统配置:在运行窗口中输入pc,然后单击“属性”,查看系统配置,因为后续安装软件要选择操作系统。

  2. 访问 这里 ,根据您电脑系统配置,下载匹配的Visual Studio Code并安装。(本文以windows 10 64-bit系统Visual Studio Code为例。请下载1.49版本,其他版本不支持IoT Link)。

    注:Visual Studio Code不支持苹果Mac系统。

  3. 安装成功后,打开VSCode 插件应用商店,搜索 IoT Link 找到IoT Link,然后单击安装。

  4. 首次启动配置。

    IoT Link Studio 首次启动时会自动从网络下载最新的SDK包以及gcc依赖环境,请确保您的网络可用。安装过程中请不要关闭窗口,耐心等待。安装完成后重启VSCode使插件生效。

    若您的网络需要配置代理,请在VSCode主页,选择左下角-设置-应用程序-代理服务器,在Proxy Support下拉框中选择“on”,对扩展使用代理支持。

    如果仍然无法访问网络导致自动下载SDK失败,可从手动下载SDK,下载完成后解压至默认安装路径 C:\Users\用户名\.iotlink\sdk,(如果安装路径有更改,请找到VS Code的安装路径,把手动下载的“IoT_LINK”解压后拷贝到\.iotlink\sdk下)。

配置IoT link Studio工程

  1. 单击VSCode底部工具栏的“Home”。

    • Home用来管理IoT Link工程;
    • Serial用来输入AT指令检查开发板状态;
    • Build用来编译示例代码(创建工程后显示);
    • Download用来把编译后的代码烧录到MCU(创建工程后显示)。

  2. 在弹出界面中单击“创建 IoT 工程”,输入工程名称,工程目录,并选择开发板的硬件平台和示例工程模板。

    • 工程名称:自定义,如Smoke。
    • 工程目录:可以使用工具安装的默认路径,也可以选择系统盘以外的其他盘,如D:\。
    • 硬件平台:当前提供的demo只适配STM32L431_BearPI硬件平台,请选择STM32L431_BearPI。
    • 示例工程:本示例中,我们以智慧烟感为例,请选择oc_smoke_template demo,否则烧录的demo样例和在控制台定义的产品模型不匹配,无法上报数据。单击“确定”,导入完成。

编译并烧录代码

由于提供的demo样例中已配置好和华为云物联网平台的对接信息,您可以直接编译(代码不用做任何修改),并烧录到小熊派开发板MCU,节省开发时间。

  1. 单击VSCode底部工具栏的“Build”,等待系统编译完成。编译成功后,界面显示“编译成功”

  2. 使用USB数据线,将小熊派开发与电脑连接,开发板右上角的拨测开关拨到右侧“AT-MCU模式”
  3. 单击VSCode底部工具栏的“Download”,等待系统烧录完成。烧录成功后,界面显示“烧录成功”

    如果显示烧录失败,可能是开发板没有驱动导致与电脑无法串口通信,请参考步骤2检查ST-Link驱动是否安装成功,如果驱动未安装,则参考这里下载并安装ST-Link驱动。

  4. (可选)安装ST-Link驱动。

    1. 访问ST官网,下载ST-Link驱动,或者直接使用提供的驱动.zip包。双击stlink_winusb_install.bat文件进行自动安装。(本文以Windows10-64bit ST-Link 2.0.1为例)。

      注:您也可以使用适配您系统版本的exe文件进行安装。

    2. 打开PC设备管理器可查看对应的驱动是否安装成功。若下图所示,表明驱动安装成功。

创建产品

某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)、插件等资源。

  1. 访问设备接入服务,单击“立即使用”进入设备接入控制台。
  2. 选择左侧导航栏的“产品”,单击右上角下拉框,选择新建产品所属的资源空间。
  3. 单击右上角的“创建产品”,创建一个基于LwM2M/CoAP协议的产品,填写参数后,单击“立即创建”

    基本信息

    所属资源空间

    选择您需要归属到的资源空间

    产品名称

    自定义,如“BearPi_Smoke”

    协议类型

    选择“LwM2M/CoAP”

    数据格式

    选择“二进制码流”

    厂商名称

    自定义,如“BearPi”

    所属行业

    设备类型

    Smoke

  4. 产品创建成功后,单击产品进入产品界面,进行后面操作。

定义产品模型

在产品详情,“模型定义”页面,单击“自定义模型”,配置产品的服务。

产品模型设计思路:

表1 设备服务列表

服务类型(ServiceID)

服务描述

Smoke

实时检测烟雾状况

服务能力如表2表3所示。

表2 Smoke

能力描述

属性名称

数据类型

数据范围

属性列表

Smoke value

int

0 ~ 65535

表3 Smoke命令列表

能力描述

命令名称

命令字段

字段名称

类型

数据长度

枚举

命令列表

Smoke control beep

下发命令

beep

string

3

ON、OFF

响应命令

beep_state

int

/

/

新增服务类型Smoke
  1. 进入“新增服务”页面,填写“服务ID”“服务类型”“服务描述”,单击“确认”。
    • “服务ID”:Smoke
    • “服务类型”:建议和服务ID保持一致
    • “服务描述”:实时检测烟雾状况
  2. 在“Smoke”的下拉菜单下单击“添加属性”,填写相关信息,单击“确认”。
    • 属性名称:Smoke_Value
    • “数据类型”:int(整型)
    • “访问权限”:可读、可写
    • “取值范围”:0~65535
    • “步长”:0
    • “单位”:不填写
  3. 在“Smoke”的下拉菜单下单击“添加命令”,填写命令名称“Smoke_Control_Beep”
    图1 新增命令
  4. 在“新增命令”弹框,分别单击“新增输入参数”“新增响应参数”,填写相关信息后,单击“确认”。
    图2 新增参数
    图3 新增参数

编解码插件开发

  1. 在产品详情插件开发页面,选择“图形化开发”,单击“图形化开发”。
  2. 在“在线开发插件”区域,单击“新增消息”。

    请按照本文档提供的操作开发编解码插件,确保添加字段的顺序和本文档提供的顺序保持一致。

  3. 新增Smoke消息,配置示例如下:

    • 消息名:Smoke
    • 消息类型:数据上报

    1. 在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。

    2. 单击“添加字段”,添加Smoke_Value字段,填写相关信息后,单击“确认”。
      • 名字:Smoke_Value
      • 数据类型:int16s

    3. 在“新增消息”页面,单击“确认”,完成Smoke_Value的配置。

  4. 新增Smoke_Control_Beep消息,配置示例如下:

    • 消息名:Smoke_Control_Beep
    • 消息类型:命令下发
    • 添加响应字段:是

    1. 在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,默认值填0x9,然后单击“确认”。

    2. 单击“添加字段”,勾选“标记为响应字段标识”,添加响应标识字段mid,然后单击“确认”。

    3. 单击“添加字段”,添加“Beep”字段,然后单击“确认”。
      • 名字:Beep
      • 数据类型:string
      • 长度:3

    4. 在“新增消息”页面,单击“添加响应字段”,勾选“标记为地址域”,添加地址域字段 messageId,默认值填0xa,然后单击“确认”。

    5. 单击“添加响应字段”,勾选“标记为响应标识字段”,添加响应标识字段mid,然后单击“确认”。

    6. 单击“添加响应字段”,勾选“标记为命令执行状态字段”,添加命令执行状态字段 errcode,然后单击“确认”。

    7. 单击“添加响应字段”,添加Beep_State响应字段,填写相关信息,单击“确认”。
      • 名字:Beep_State
      • 数据类型:int8u
      • 长度:1

    8. 完成消息 Smoke_Control_Beep的配置后,单击“确认”。

  5. 拖动右侧“设备模型”区域的属性字段、命令字段和响应字段,与数据上报消息、命令下发消息和命令响应消息的相应字段建立映射关系。

  6. 单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。

注册设备

本文介绍集成NB模组设备的注册方法。

  1. 在产品详情页面,选择“在线调试”,单击“新增测试设备”,此处新增的是非安全的NB-IoT设备。
  2. 在新增测试设备页面,选择“真实设备”,并填写设备名称,设备标识码。

    • 设备名称:Test(自定义即可);
    • 设备标识码:设备的IMEI号,用于设备在接入物联网平台时携带该标识信息完成接入鉴权,可在NB模组上查看。您也可以将拨测开关拨到AT-PC模式,选择STM的端口,波特率设置为9600,输入指令“AT+CGSN=1”获取IMEI号。可参考下图将IMEI号复制至控制台。

      注:获取IMEI注册完设备后,需要将开发板的拨测开关拨到“AT-MCU”模式,因为开发板在MCU模式下才会通过NB卡连接网络。

    • 设备注册方式:选择不加密。

数据上报

平台和开发板建立连接后,上报烟雾浓度值。

  1. 登录设备接入服务控制台,选择 设备 > 所有设备
  2. 选择这里注册的设备,单击“查看”进入设备详情,查看上报到平台的数据。

命令下发

  1. 登录设备接入服务控制台,选择此处创建的产品,单击产品进入产品详情页。
  2. 选择“在线调试”,单击注册的设备进入调试页面。
  3. 设置命令参数后,单击“立即发送”,烟雾报警器鸣叫,下发OFF命令后,关闭蜂鸣器。

(可选)配置设备联动规则

  1. 选择左侧导航栏的规则 > 设备联动,单击页面右上角的“创建规则”
  2. 参考下表参数说明,创建设备联动规则。

    参数名称

    说明

    规则名称

    创建的规则名称,例如“Smoke_Beep”。

    立即触发

    勾选“立即触发”

    生效时间

    选择“一直生效”。

    描述

    对该规则的描述,如“烟雾浓度高于600时蜂鸣器鸣叫”。

    触发条件

    1. 单击“添加条件”;
    2. 在下拉框中选择“指定设备触发”,选择2中添加的设备;
    3. “服务类型”选择“smoke”,“属性”选择“Smoke_Value”,“操作”选择“>”,“值”填写“600”,单击“触发机制”,“无效触发抑制选择”选择“需要”,数据时效”填写“300”,然后单击“确认”。

    执行动作

    1. 单击“添加动作;
    2. “动作类型”选择“下发命令”,下发设备选择2创建的设备;
    3. “服务类型”选择“smoke”,“命令”选择“Smoke_Control_Beep”,单击“参数配置”,“Beap”的值选择“ON”,然后单击“确认”。

(可选)验证操作

将降温剂喷在烟雾传感器周围,模拟烟雾浓度。当烟雾浓度大于600时,蜂鸣器鸣叫。

使用AT指令定位模组通信问题

IoT Link在与物联网平台连接使用时,可使用AT指令快速定位模组与云端连通性问题,提高开发效率。本节将以“小熊派开发板”为例,介绍如何使用AT指令检测通信模组常见问题,如设备无法上线,数据上报不成功等。

  1. 小熊派开发板和电脑已正常连接(确保驱动已安装),并将开发板右上角的拨测开关切换到AT-PC模式。
  2. 单击VSCode底部工具栏的“Serial”。

  3. 选择2中查看的端口号,波特率设置为9600,然后单击“打开”。

  4. 输入“AT+CGATT?”,然后单击“发送”,若返回“+CGATT:1”,表示网络附着成功(附着成功代表NB-IoT联网正常),返回“+CGATT:0”表示网络附着失败(附着失败代表NB-IoT联网异常),请查看SIM卡是否插入正确,或联系运营商检查网络状态。

    使用AT指令检测完模组通信后,请将拨测开关拨到AT-MCU模式,以便完成控制台的开发后,将采集到的传感器数据通过通信模组发送到平台。

    PC模式是开发板与电脑串口通信,AT指令读写开发板的状态等数据;MCU模式是开发板通过模组上插的SIM连接网络,实现NB-IoT通信。

分享:

    相关文档

    相关产品

关闭导读