写点什么

动手实践开发一个智慧路灯控制器

  • 2023-03-24
    广东
  • 本文字数:2787 字

    阅读完需:约 9 分钟

动手实践开发一个智慧路灯控制器

本文分享自华为云社区《智慧路灯实验手册(MQTT+Wi-Fi)-完善版》,作者:华为云社区精选。

版本说明


本示例代码工程基于 IoT LINK 2.1.0 版本构建。

简介


智慧路灯是城市智能化道路上重要一环,智慧路灯的实施具有节约公共照明能耗、较少因照明引起的交通事故等多种社会意义。路灯也是大家在日常生活中可以强烈感知到的公共设施,更易理解其智能化的场景。


本实验基于 NB-IoT 和 WIFI 实现智慧路灯案例,实现实时数据的采集,实现命令下发的响应,实现端云互通。



E53_SC1 扩展板采用了 E53 标准接口,包含了一个路灯灯珠,一个 BH1750 光照强度传感器,其中路灯灯珠使用普通 GPIO 控制,BH1750 使用 IIC 接口通信。

开发前准备

环境准备


• 已注册华为云官方帐号。未注册可点击注册页面 完成注册。

• 已完成实名制认证。未完成可在华为云上点击实名认证 完成认证,否则无法使用设备接入功能。

• 已开通设备接入服务。未开通则访问设备接入服务 ,点击“免费试用”后开通该服务。

• 已下载 IDE:Huawei LiteOS Studio 1.45+(含扩展插件)

• 已下载编译烧录工具包 :包含 arm-none-eabi、build、openocd-0.10.0。

• 已下载 ST-Link 驱动包:ST-Link.zip

硬件准备


• 开发板:小熊派开发板(含 WIFI 通信扩展板、E53_SC1 案例扩展板)

环境配置


1. 硬件连接


连接好 E53_SC1 案例扩展板和 Wi-Fi 通信扩展板。将串口选择开关拨到 AT-MCU 模式,并用 USB 线将开发板与电脑连接,如图所示。



2. IDE 安装配置


1) 下载并解压HUAWEI-LiteOS-Studio.zip 


2) 双击运行 HUAWEI-LiteOS-Studio-Setup-x64-1.45.9.exe,根据提示步骤完成默认安装。



3) 启动运行 HUAWEI-LiteOS-Studio,在 IDE 活动栏中,打开扩展视图,点击更多操作...,在弹出的菜单中选择从 VSIX 安装,然后指定中文语言包 MS-CEINTL.vscode-language-pack-zh-hans-1.45.1.vsix 文件路径,即可完成安装。



4) 根据提示重启 IDE,即可切换为中文界面。


3. 编译烧录工具配置


下载并解压Tools.zip ,将解压后的 arm-none-eabi、build、openocd-0.10.0 全部拷贝到 C:\Users\xxx\.huawei-liteos-studio\tools 目录下。


注:xxx 为本地 PC 用户名,请根据实际路径进行配置。



4. 驱动安装


下载并解压ST-Link.zip ,根据操作系统类型,双击配套的执行文件进行安装。


开始使用


1. 创建产品


对于设备上报至物联网平台的数据,云端物联网平台要能够解析设备上报的数据。故需要在设备接入服务侧完成产品模型定义,编解码插件开发部署等。


产品模型是用来描述设备能力的文件,通过 JSON 的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息。


步骤 1 进入设备接入服务控制台,选择左侧导航栏“产品”进入页面。



步骤 2 单击右上角的“创建产品”,按照页面提示填写信息。


• 所属资源空间:选择默认资源空间

• 产品名称:自定义,如 MQTT_streetlight

• 协议类型:MQTT

• 数据格式:JSON

• 设备类型选择:自定义类型

• 设备类型:自定义,如 MQTT_ streetlight



步骤 3 单击“确定”,创建产品成功。



步骤 4 单击“查看详情”,进入产品详情页面。在“模型定义”页签下,单击“上传模型文件”。



步骤 5 添加产品模型文件“Smart_Light_profile.zip ”,并单击“确定”完成上传。


模型文件下载链接:Smart_Light_profile.zip



查看服务列表,属性和命令信息如下:



2. 注册设备


步骤 1 进入设备接入服务控制台,选择左侧导航栏“设备”进入设备列表页面。



步骤 2 单击右上角的“注册设备”,按照页面提示填写相关参数。


• 所属资源空间:选择上一步创建产品时选择的资源空间

• 所示产品:选择刚创建的产品,如 MQTT_streetlight

• 设备标识码:自定义,如 streetlight012345

• 设备名称:自定义,如 streetlight_01

• 设备认证类型:选择“密钥”

• 密钥/确认密钥:自定义,如 12345678



步骤 3 单击“确定”,添加设备成功,请保存好设备 ID 和密钥,用于设备接入平台认证。



3. 导入代码工程


步骤 1 获取项目工程代码包 并解压(注:路径不要包含中文、空格)。


获取项目工程:MQTT_StreetLight_Demo.rar


步骤 2 启动 HUAWEI LiteOS Studio 工具,单击“Open Project”,打开项目工程。



项目工程预览如下:



4. 配置项目工程



步骤 3 单击



打开工程配置,目标板选择 STM32L431RC,并“确认”。



步骤 4 填写编译器配置选项后,单击“确认”。


• 编译器类型:arm-none-eabi

• 编译器目录:请根据实际路径配置,例如 c:\Users\xxx\.huawei-liteos-studio\tools\arm-none-eabi\bin

• Make 构建器:请根据实际路径配置,例如 c:\Users\xxx\.huawei-liteos-studio\tools\build\bin\make.exe

• Make 脚本:请根据打开的项目工程进行配置,例如 targets\STM32L431_BearPi\GCC\Makefile



步骤 5 填写烧录器配置选项后,单击“确认”。


• 烧录方式:选择 OpenOCD

• 端口:选择 USB

• 烧录器配置:请根据实际路径配置,例如.\tools\openocd-0.10.0\bin-x64

• Interface 文件:默认值

• Target 文件:默认值

• 烧录文件:无需配置,待项目工程编译成功后会自动填充,例如.\targets\STM32L431_BearPi\GCC\build\Huawei_LiteOS.bin



5. 修改配置参数


步骤 1 在代码中修改设备信息。


1) 打开文件:*\targets\STM32L431_BearPi\iot_config.h


2) 修改 CN_EP_DEVICEID 为在物联网平台注册设备时生成的设备 ID,修改 CN_EP_PASSWD 为在物联网平台注册设备时填写的密钥。


3) 修改完成,请按 Ctrl+S 保存修改。



步骤 2 配置 WIFI 用户名和密码。


此处只能使用用户名密码加密方式认证的 WIFI,不能使用其他加密方式的 WIFI。(可以使用手机开启 WIFI 热点,数据量不大不会占用太多个人流量)


开发板 Wifi 模块仅支持 2.4GHz 频段的热点,暂不支持 5GHz 频段。


1) 打开文件:*\targets\STM32L431_BearPi\.config


2) 修改 CONFIG_ESP8266_SSID 为热点设备名称,修改 WIFI_ESP8266_PWD 为热点密码。


3) 修改完成,请按 Ctrl+S 保存修改。



4) 打开文件:*\targets\STM32L431_BearPi\iot_config.h


5) 修改 CONFIG_ESP8266_SSID 为热点设备名称,修改 WIFI_ESP8266_PWD 为热点密码。


6) 修改完成,请按 Ctrl+S 保存修改。



6. 编译烧录



步骤 1 单击



进行编译,单击



进行烧录。


如果修改了.config 文件和 iot_config.h 文件,请单击



全量重新编译,否则修改点可能不会生效。


步骤 2 单击



打开串口终端,选择端口,设置波特率 115200,开启串口,可以在接收区查看到打印的日志信息。



步骤 3 在 LCD 屏上,可以看到实时数据显示。


7. 调试运行


步骤 1 在物联网平台中,可以看到设备实时上报属性数据。



步骤 2 在物联网平台中下发控制命令(开启路灯),查看命令下发结果及开发板的响应。



注:当前 MQTT 设备仅支持同步命令下发,NB 设备仅支持异步命令下发。

示例代码


案例程序文件:

"targets\STM32L431_BearPi\Demos\oc_streetlight_template\oc_streetlight_template.c"

参考


详细了解 IoT 设备接入服务,请参考IoTD 帮助文档 

修订记录



点击关注,第一时间了解华为云新鲜技术~

发布于: 2023-03-24阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
动手实践开发一个智慧路灯控制器_后端_华为云开发者联盟_InfoQ写作社区