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

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

3天内不再提示

智慧路灯模块硬件和软件电路设计

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:HarmonyOS官方合作社 2022-04-28 08:58 次阅读

一、智慧路灯简介

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

本文基于OpenHarmony系统,使用小凌派RK2206开发板搭载智慧路灯模块,模拟实现智慧路灯应用,智慧路灯模块本身自带光线传感器,通过传感器采集的光线数据判断天黑情况,根据预设的阈值来实现路灯的开关;搭载OpenHarmony系统的小凌派RK2206开发板支持连接华为云服务器,后续文章将更新智慧路灯在华为云的应用实现。

二、硬件电路设计

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

3235a07a-c68c-11ec-bce3-dac502259ad0.png

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

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

3259bcf8-c68c-11ec-bce3-dac502259ad0.png

图2 硬件连接图

三、软件设计

1、主程序设计

小凌派RK2206开发板上电后,OpenHarmony系统开始运行,LiteOS系统初始化后,创建一个线程用于实现智慧路灯主程序。进入主程序先初始化智慧路灯模块,程序进入主循环,2秒获取一次光线传感器BH1750的光线强度值,当光线强度值小于20时,打开LED路灯;当光线强度值大于20时,关闭LED路灯。

  void e53_isl_thread(){    float lum = 0;
    e53_isl_init();
    while (1)    {      lum = e53_isl_read_data();
      printf("luminance value is %.2f
", lum);
      if (lum < 20)      {        isl_light_set_status(ON);        printf("light on
");      }      else      {        isl_light_set_status(OFF);        printf("light off
");      }
      LOS_Msleep(2000);    }

(左右移动查看全部内容)

2、智慧路灯初始化程序设计

智慧路灯初始化程序主要分为硬件IO初始化和BH1750传感器的初始化两部分。

{  e53_isl_io_init();  init_bh1750();}

(左右移动查看全部内容)

硬件IO初始化程序主要配置GPIO0_PA5为输出模式,作为LED灯控制IO;初始化I2C0用于读写BH1750传感器,配置I2C时钟频率400K。

{  LzGpioInit(GPIO0_PA5);  LzGpioSetDir(GPIO0_PA5, LZGPIO_DIR_OUT);  if (I2cIoInit(m_isl_i2c0m2) != LZ_HARDWARE_SUCCESS)  {    printf("init I2C I2C0 io failed
");  }  if (LzI2cInit(ISL_I2C0, 400000) != LZ_HARDWARE_SUCCESS)  {    printf("init I2C I2C0 failed
");  }}

(左右移动查看全部内容)

BH1750传感器初始化程序通过I2C0向BH1750传感器写入通电命令0x1,开始等待测量命令,如图3为BH1750传感器的命令集。

327e126a-c68c-11ec-bce3-dac502259ad0.png

图3 BH1750指令

{  uint8_t send_data[1] = {0x01};  uint32_t send_len = 1;
  LzI2cWrite(ISL_I2C0, BH1750_ADDR, send_data, send_len);}

(左右移动查看全部内容)

3、获取传感器数据程序设计

获取传感器数据程序通过I2C下发命令开始测量,延时一定时间后,开始读取BH1750传感器的寄存器值,读取两个字节数据,其中第一个字节数据为高8位,第二字节数据为低8位数据,亮度值为高8位和低8位数据合并为16字节数据除以1.2。

{  float lum = 0;    start_bh1750();  LOS_Msleep(180);
  uint8_t recv_data[2] = {0};  uint32_t receive_len = 2;  LzI2cRead(ISL_I2C0, BH1750_ADDR, recv_data, receive_len);  lum = (float)(((recv_data[0]<<8) + recv_data[1])/1.2);    return lum;}

(左右移动查看全部内容)

程序通过I2C0向BH1750传感器写入连续H分辨率模式命令0x10,开始测量命令,测量时间一般为120ms。

{  uint8_t send_data[1] = {0x10};  uint32_t send_len = 1;
  LzI2cWrite(ISL_I2C0, BH1750_ADDR, send_data, send_len);}

(左右移动查看全部内容)

四、测试结果

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

luminance value is 45.83light offluminance value is 4.17light on

(左右移动查看全部内容)

原文标题:基于 OpenHarmony 的智慧路灯实现

文章出处:【微信公众号:HarmonyOS官方合作社区】欢迎添加关注!文章转载请注明出处。

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

    关注

    6664

    文章

    2426

    浏览量

    203203
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97159
  • 智慧路灯
    +关注

    关注

    2

    文章

    744

    浏览量

    17056
  • OpenHarmony
    +关注

    关注

    25

    文章

    3657

    浏览量

    16129

原文标题:基于 OpenHarmony 的智慧路灯实现

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    硬件工程师电路设计的九大模块电路

    硬件电路设计总结主要包括以下几个主要的模块:电源模块,存储模块,显示模块,和对外接口
    发表于 02-21 14:52 1523次阅读
    <b class='flag-5'>硬件</b>工程师<b class='flag-5'>电路设计</b>的九大<b class='flag-5'>模块</b><b class='flag-5'>电路</b>

    灯光控制模块硬件电路设计

    本帖最后由 gk320830 于 2015-3-5 13:46 编辑 求一个“灯光控制模块硬件电路设计电路图,使用18F25K80,控制八
    发表于 05-10 17:01

    基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇2:硬件开发)精选资料分享

    目录1、设备选型1.1、主控制器1.2、NB-IoT无线通信模块和GPS模块1.3、光照检测模块1.4、输出控制模块1.5、电能检测模块2、
    发表于 07-30 07:46

    谈谈智慧路灯的定义及其功能

    1、智慧路灯定义智慧路灯​是指在路灯上搭载各种传感器及感知设备,如充电桩、LED信息发布屏、高清摄像头、应急报警、5G基站搭载网络、无线WI
    发表于 09-15 09:08

    基于OpenHarmony的智慧路灯实现

    的开关;搭载OpenHarmony系统的小凌派RK2206开发板支持连接华为云服务器,后续文章将更新智慧路灯在华为云的应用实现。二、硬件电路设计智慧
    发表于 04-22 13:43

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

    光线数据上传到华为云平台,实现华为云平台管理智慧路灯。二、硬件电路设计智慧路灯
    发表于 05-10 09:36

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

    光线数据上传到华为云平台,实现华为云平台管理智慧路灯。二、硬件电路设计智慧路灯
    发表于 05-11 10:06

    求一种基于RK2206开发板的智慧路灯设计案例

    硬件资源EEPROM 24C02的设备地址为:0x1010001* ;硬件接口说明引脚名称开发者可在硬件资源图中查看,也可在智慧路灯
    发表于 08-16 16:38

    太阳能LED路灯硬件电路设计

    面板的设计、太阳能电池与蓄电池的选择,同时详细分析和讨论了路灯各部分的电路设计及工作原理,并应用Protues和keil软件对LED路灯的充电电路
    发表于 10-25 10:25 57次下载
    太阳能LED<b class='flag-5'>路灯</b><b class='flag-5'>硬件</b><b class='flag-5'>电路设计</b>

    太阳能路灯电路设计与仿真

    太阳能LED路灯发光面板的设计、太阳能电池与蓄电池的选择,同时详细分析和讨论了路灯各部分的电路设计及工作原理,并应用Protues和keil软件对LED
    发表于 02-02 14:37 1.4w次阅读
    太阳能<b class='flag-5'>路灯</b><b class='flag-5'>电路设计</b>与仿真

    WiFi模块助力智慧路灯的无线覆盖和视频传输

    、LED显示、汽车充电还有环境监测等。本篇SKYLAB君主要为大家介绍满足智慧路灯无线覆盖和监控安防视频传输需求的WiFi模块智慧路灯
    的头像 发表于 07-11 12:22 4267次阅读

    硬件软件一起完成的集成电路设计

    集成电路设计的流程一般先要进行软硬件划分,将设计基本分为两部分:芯片硬件设计和软件协同设计。
    的头像 发表于 09-08 16:37 2050次阅读

    LoRa模块智慧路灯通信的应用

    的基础部分,它可以融合多种城市功能,是智慧城市的重要载体。具有长距离传输,功耗低,已于搭建各类接口设备的LoRa模块技术,可以满足智慧路灯需要连接各类传感器采集数据的需求。
    的头像 发表于 11-01 11:29 1015次阅读

    基于LPC2131的的CAN接口模块硬件电路设计

    电子发烧友网站提供《基于LPC2131的的CAN接口模块硬件电路设计.rar》资料免费下载
    发表于 11-10 10:46 0次下载
    基于LPC2131的的CAN接口<b class='flag-5'>模块</b><b class='flag-5'>硬件</b><b class='flag-5'>电路设计</b>

    LED路灯驱动电路设计方案

    电子发烧友网站提供《LED路灯驱动电路设计方案.doc》资料免费下载
    发表于 11-14 11:31 2次下载
    LED<b class='flag-5'>路灯</b>驱动<b class='flag-5'>电路设计</b>方案