0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于OpenHarmony的华为云IoT智慧路灯实现

福州市凌睿智捷电子有限公司 ? 2022-06-14 11:04 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、智慧路灯简介

我们平时看到的传统路灯基本是通过定时开启、定时关闭来控制路灯亮灭,在夏天白昼时间长,路灯过早开启,造成能源浪费;在冬天白昼时间短,往往经常是天已经黑了,路灯却未开启,给人们的出行带来了诸多不便;也有的路灯通过专人手动开启关闭,这种方式虽较定时方式灵活,但也存在需要人为操作的局限性。随着社会的发展进步,智慧路灯应运而生,智慧路灯通过自身携带的光线传感器,通过传感器采集的的光线数据判断天黑情况,可以根据预置的阈值来实现路灯开启关闭;同时智慧路灯的光线数据也可以同步上传云端,通过云端可以查询到智慧路灯的光线数据、路灯开启关闭状态,同时也可以设置智慧路灯开启关闭的阈值,实现云管理。

前面的文章介绍了基于OpenHarmony的智慧路灯实现,本文将在前面文章的基础上,添加华为云IoT功能,实现基于OpenHarmony系统的IoT智慧路灯。小凌派RK2206开发板内置WIFI模块,外部接口丰富,使用小凌派RK2206开发板搭载智慧路灯模块,能够轻松实现华为云IoT智慧路灯。智慧路灯模块本身自带光线传感器,通过传感器采集的光线数据判断天黑情况,根据预设的阈值来实现路灯的开关,同时将光线数据上传到华为云平台,实现华为云平台管理智慧路灯。

二、硬件电路设计

智慧路灯模块硬件电路如图1所示,电路中包含了E53接口连接器、EEPROM存储器、光线传感器BH1750、大功率LED驱动电路。本文主要使用光线传感器BH1750和LED灯驱动电路,其中光线传感器为数字接口芯片,使用I2C总线控制;LED灯驱动电路通过PWD_LED口控制LED灯开启、关闭,PWD_LED输出高电平点亮LED灯,PWD_LED输出低电平熄灭LED灯。模块硬件电路简单,这里就不对此进行多余的说明。

51a22a02-e737-11ec-a2f4-dac502259ad0.png

图1智慧路灯模块硬件电路图

小凌派RK2206开发板与智慧路灯模块均带有防呆设计,能够很容易区分安装方向,直接将模块插入到小凌派RK2206开发板的E53母座接口上即可,安装如图2所示.

5221d8ba-e737-11ec-a2f4-dac502259ad0.png

图2 硬件连接图


一、软件设计

1、主程序设计

小凌派RK2206开发板上电后,OpenHarmony系统开始运行,LiteOS系统初始化后,通过LOS_QueueCreate函数创建一个消息队列,用于线程间传递信息;通过LOS_TaskCreate创建e53_isl_thread和iot_cloud_isl_thread两个任务。其中,e53_isl_thread任务周期获取智慧路灯模块采集的信息;iot_cloud_isl_thread任务处理消息队列里的信息,将智慧路灯模块采集的信息上报华为云。

{ unsigned int ret = LOS_OK; unsigned int thread_id1; unsigned int thread_id2; TSK_INIT_PARAM_S task1 = {0};TSK_INIT_PARAM_S task2 = {0};
/*创建消息队列*/ ret = LOS_QueueCreate("queue", MSG_QUEUE_LENGTH, &m_isl_msg_queue, 0, BUFFER_LEN); if (ret != LOS_OK) { printf("Falied to create Message Queue ret:0x%x\n", ret); return; }
/*创建智慧路灯信息获取任务*/ task1.pfnTaskEntry = (TSK_ENTRY_FUNC)iot_cloud_isl_thread; task1.uwStackSize = 10240; task1.pcName = "iot_cloud_isl_thread"; task1.usTaskPrio = 24; ret = LOS_TaskCreate(&thread_id1, &task1); if (ret != LOS_OK) { printf("Falied to create iot_cloud_isl_thread ret:0x%x\n", ret); return; }
/*创建华为云IoT任务*/ task2.pfnTaskEntry = (TSK_ENTRY_FUNC)e53_isl_tread; task2.uwStackSize = 2048; task2.pcName = "e53_isl_tread"; task2.usTaskPrio = 25; ret = LOS_TaskCreate(&thread_id2, &task2); if (ret != LOS_OK) { printf("Falied to create e53_isl_tread ret:0x%x\n", ret); return; }}

2、智慧路灯信息获取任务程序设计

智慧路灯信息获取任务,进入主程序先初始化智慧路灯模块,程序进入主循环,2秒获取一次光线传感器BH1750的光线强度值,当光线强度值小于20时,打开LED路灯;当光线强度值大于等于20时,关闭LED路灯。同时,将获取到的光线强度值写入消息队列中,等待华为云IoT处理。智慧路灯信息获取任务使用的接口在基于OpenHarmony的智慧路灯实现文章中已经详细说明,这里不再赘述。

{ float lum = 0; isl_msg_t *app_msg = NULL;
/*智慧路灯模块初始化*/ e53_isl_init();
while (1){ /*获取智慧路灯模块数据*/ lum = e53_isl_read_data();
printf("luminance value is %.2f\n", lum);
/*光线强度值小于20,点亮LED灯;否则,熄灭LED灯*/ if (lum < 20) { isl_light_set_status(ON); } else { isl_light_set_status(OFF); }
/*光线强度值写入消息队列中*/ app_msg = malloc(sizeof(isl_msg_t)); if (app_msg != NULL) { app_msg->msg_type = en_msg_report; app_msg->report.lum = (int)lum; if (LOS_QueueWrite(m_isl_msg_queue, (void *)app_msg, sizeof(isl_msg_t), LOS_WAIT_FOREVER) != LOS_OK) { printf("%s LOS_QueueWrite fail\n", __func__); free(app_msg); } } LOS_Msleep(2000); }}

3、华为云IoT任务程序设计

华为云IoT任务主要处理消息队列里的信息。任务启动后,通过SetWifiModeOn连接WIFI;WIFI连接成功后,初始化MQTT协议栈,连接到华为云IoT服务器;成功连接华为云IoT服务器后,线程开始处理消息队列里的消息。消息队列里只有一种消息格式,智慧路灯信息获取任务传输过来的智慧路灯模块的数据,线程直接通过MQTT协议传输到华为云IoT平台上,此时平台上可以查看到最新上报的智慧路灯模块的亮度数据。

{ isl_msg_t *app_msg = NULL; unsigned int addr; int ret;
/*WIFI连接网络,通过网络*/ SetWifiModeOn();
/*初始化MQTT用户名和密匙*/ device_info_init(CLIENT_ID, USERNAME, PASSWORD); ret = oc_mqtt_init(); if (ret != LOS_OK) { printf("oc_mqtt_init fail ret:%d\n", ret); }
while (1){ /*从队列中获取数据*/ ret = LOS_QueueRead(m_isl_msg_queue, (void *)&addr, BUFFER_LEN, LOS_WAIT_FOREVER); if (ret == LOS_OK) { app_msg = addr; switch (app_msg->msg_type) { case en_msg_report: /*将光线强度值上报到华为云平台*/ isl_deal_report_msg(&app_msg->report); break; default: break; } free(app_msg); app_msg = NULL; } else { LOS_Msleep(100); } }}isl_deal_report_msg函数将光线强度值按照华为云平台的数据结构填充,将光线强度值上报到华为云平台。void isl_deal_report_msg(isl_report_t *report){ oc_mqtt_profile_service_t service; oc_mqtt_profile_kv_t Lum;
service.event_time = NULL; service.service_id = "智慧路灯"; service.service_property = &Lum; service.nxt = NULL;
Lum.key = "亮度"; Lum.value = &report->lum; Lum.type = EN_OC_MQTT_PROFILE_VALUE_INT; Lum.nxt = NULL;
oc_mqtt_profile_propertyreport(USERNAME, &service); return;}

一、编译测试

1、登录华为云IoT平台

设备连接华为云前,需要做一些准备工作,请在华为云平台注册个人用户账号,并且需要实名认证后才可以正常使用。如图3所示,为华为云IotDM地址:https://www.huaweicloud.com/product/iotdm.html。

5275f328-e737-11ec-a2f4-dac502259ad0.png

图3 华为云IoT网址

2、创建产品

点击立即使用,进入设备接入页面,选择侧边栏产品页面,点击右上角创建产品,添加智慧路灯产品,如图4所示,按照要求填写产品类型。

52c691d4-e737-11ec-a2f4-dac502259ad0.png

图4 创建产品

点击进入创建的产品,点击添加服务,服务ID填入智慧路灯,如图5所示。

53063b86-e737-11ec-a2f4-dac502259ad0.png

图5 添加服务

选择智慧路灯服务,点击添加属性,添加亮度属性,如图6所示。

53428e42-e737-11ec-a2f4-dac502259ad0.png

图6 添加属性

3、注册设备

创建产品成功后,侧边栏选择设备,点击右上角注册设备,按照要求填写设备信息,保存密匙信息,如图7所示。

53b00c24-e737-11ec-a2f4-dac502259ad0.png

图7 注册设备

设备创建成功后,点击进入设备详情页面,可以查看设备详细详细,保存设备ID信息,如图8所示。

53effb5e-e737-11ec-a2f4-dac502259ad0.png

图8 设备详情

在连接华为云前需要获取CLIENT_ID、USERNAME、PASSWORD,访问华为云iot工具https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/;填写注册设备时生成的设备ID和设备密钥,生成连接信息(ClientId、Username、Password),如图9所示。

54305cb2-e737-11ec-a2f4-dac502259ad0.png

图9 生成账号、密匙

对应修改代码中对应的CLIENT_ID、USERNAME、PASSWORD。

#defineCLIENT_ID "61c69349078a93029b83ceff_E53_ISL_0_0_2021122504"

#define USERNAME "61c69349078a93029b83ceff_E53_ISL"

#define PASSWORD "82933df2133618cad436234d88fde06a196dd8ebc0d5c8cf2ee065968a469546"

4、测试结果

程序编译烧写到小凌派RK2206开发板后,按下开发板的RESET按键,通过串口软件查看日志如下所示;通过遮挡智慧路灯模块上的光线传感器,从而来改变光线强度值,当光线强度值小于20时,LED灯打开;当光线强度值大于20时,LED灯关闭。

luminance value is 45.83light offluminance value is 4.17light on

同时,在华为云平台上,可以看到设备上报上来的光线强度,如图10所示。

549d7234-e737-11ec-a2f4-dac502259ad0.png

图10 华为云数据显示

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 智慧路灯
    +关注

    关注

    3

    文章

    908

    浏览量

    17759
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    浅说路灯智慧盒网关

    浅说路灯智慧盒网关
    的头像 发表于 04-08 08:37 ?286次阅读
    浅说<b class='flag-5'>路灯</b><b class='flag-5'>智慧</b><b class='flag-5'>云</b>盒网关

    基于NB-IoT单灯控制器的智慧路灯应用案例及效果分析

    基于NB-IoT单灯控制器的智慧路灯应用案例及效果分析
    的头像 发表于 04-07 15:16 ?429次阅读
    基于NB-<b class='flag-5'>IoT</b>单灯控制器的<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>应用案例及效果分析

    智慧路灯如何实现节能

    和功能,成为城市降低能源消耗、实现可持续发展的重要力量。然而,叁仟智慧路灯实现节能并非一蹴而就,其背后涉及一系列复杂且精妙的技术手段和管理策略,深入探究这些方法,对于推动城市照明节能工
    的头像 发表于 03-24 16:57 ?487次阅读

    什么是物联网智慧路灯智慧路灯有哪些组成部分?

    什么是物联网智慧路灯智慧路灯有哪些组成部分?
    的头像 发表于 03-20 13:07 ?704次阅读
    什么是物联网<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>?<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>有哪些组成部分?

    智慧路灯如何实现远程控制?

    引言 在智慧城市建设的进程中,叁仟智慧路灯作为重要的基础设施,其远程控制功能发挥着关键作用。远程控制使得叁仟智慧路灯能够摆脱地域限制,
    的头像 发表于 03-18 12:27 ?362次阅读
    <b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>如何<b class='flag-5'>实现</b>远程控制?

    智慧路灯的照明效果如何?

    先进技术,在照明性能上实现了显著提升。深入了解叁仟智慧路灯的照明效果,对于评估其在智慧城市照明系统中的价值具有重要意义。接下来,让我们一同探究叁仟
    的头像 发表于 03-16 16:10 ?341次阅读

    智慧路灯如何实现安防联动

    智慧路灯如何实现安防联动 嘿,你知道不?叁仟智慧路灯那可老厉害了,它靠着集成一堆超牛的技术,成功实现
    的头像 发表于 03-05 08:44 ?490次阅读
    <b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>如何<b class='flag-5'>实现</b>安防联动

    智慧路灯照亮城市之光

    辅助工具。它依托先进的技术集成,实现了多种功能的有机融合与协同运作。 二、照明功能的智能化升级 照明功能作为叁仟智慧路灯的基础功能,在技术革新的推动下实现了质的提升。借助智能控制系统,
    发表于 02-28 20:17

    什么是物联网智能路灯智慧路灯是什么?什么样的智慧路灯更满足现代需求

    什么是物联网智能路灯智慧路灯是什么?什么样的智慧路灯更满足现代需求
    的头像 发表于 02-18 10:19 ?572次阅读
    什么是物联网智能<b class='flag-5'>路灯</b>? <b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>是什么?什么样的<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>更满足现代需求

    10米综合杆路灯 高新区智慧路灯物联网智慧路灯应用方案

    新区智慧路灯 开发区智慧路灯 高新区智慧路灯 10米智慧
    的头像 发表于 01-09 09:32 ?547次阅读
    10米综合杆<b class='flag-5'>路灯</b> 高新区<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>物联网<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>应用方案

    2024年智慧路灯国内外应用案例(节选)智慧路灯案例

    2024年智慧路灯国内外应用案例(节选)智慧路灯案例
    的头像 发表于 01-03 10:06 ?770次阅读
    2024年<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>国内外应用案例(节选)<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>案例

    智慧路灯“照亮”城市夜空——晋中市城区4万盏路灯实现节能化智慧化改造

    智慧路灯“照亮”城市夜空——晋中市城区4万盏路灯实现节能化智慧化改造
    的头像 发表于 12-31 14:55 ?554次阅读
    <b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>“照亮”城市夜空——晋中市城区4万盏<b class='flag-5'>路灯</b><b class='flag-5'>实现</b>节能化<b class='flag-5'>智慧</b>化改造

    “小路灯”蕴含“大民生”为路灯装上“智慧大脑”智慧路灯解决方案

    “小路灯”蕴含“大民生”为路灯装上“智慧大脑”智慧路灯解决方案
    的头像 发表于 10-12 10:14 ?619次阅读
    “小<b class='flag-5'>路灯</b>”蕴含“大民生”为<b class='flag-5'>路灯</b>装上“<b class='flag-5'>智慧</b>大脑”<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>解决方案

    什么是智慧路灯解决方案?智慧路灯功能和应用

    智慧路灯作为智慧城市建设的重要组成部分,不仅能够提供基本的照明功能,还能通过智能化技术实现能源节约、环境
    的头像 发表于 10-10 11:15 ?890次阅读
    什么是<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>解决方案?<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b>功能和应用

    路灯升级“智慧大脑” 点亮独山子的夜空智慧路灯路灯智能路灯

    路灯升级“智慧大脑” 点亮独山子的夜空智慧路灯路灯智能路灯
    的头像 发表于 10-09 13:36 ?504次阅读
    <b class='flag-5'>路灯</b>升级“<b class='flag-5'>智慧</b>大脑” 点亮独山子的夜空<b class='flag-5'>智慧</b><b class='flag-5'>路灯</b><b class='flag-5'>路灯</b>智能<b class='flag-5'>路灯</b>