瑞芯微Rockchip开发者社区
直播中

王静

8年用户 1627经验值
私信 关注
[经验]

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

硬件资源

EEPROM 24C02的设备地址为:0x1010001* ;

硬件接口说明

引脚名称开发者可在硬件资源图中查看,也可在智慧路灯模块背面查看。

引脚名称 功能描述
PWM_LED LED控制线,高电平有效
I2C_SCL I2C时钟信号线
I2C-SDA I2C数据信号线
GND 电源地引脚
3V3 3.3V电源输入引脚
GND 电源地引脚
5V 5V电源输入引脚

硬件设计

模块整体硬件电路如上图所示,电路中包含了E53接口连接器,EEPROM存储器、光线传感器, 大功率LED灯驱动电路,其中EEPROM存储器、光线传感器为数字接口芯片,直接使用I2C总线控制,电路简单,本文不再过多说明。

本文主要介绍大功率LED灯驱动原理,这边采用PT4211E23E芯片作为LED灯的驱动芯片,其是一款连续导通型的电感降压转换器,可以用于驱动单个或者多个串联的LED灯,输出电流高达350mA,输出电流可通过电阻R6进行调整,也可通过DIM引脚调整输出平均电流 从而达到调整LED灯的亮度。

根据案例场景应用,我们这边仅是模拟IOT物联网中的智能路灯案例, LED灯无需太亮,过亮的灯光可能对眼睛造成一定程度的影响,影响开发者进行功能调试,故这边通过电阻R6将LED灯的驱动电流限制的很小,同时有个问题,驱动器输出的是5V的驱动电压,但LED灯是3.3V标准的大功率LED灯,故我们在设计时也不能将驱动器输出功率设置的太大,否则容易影响LED灯的寿命。

硬件连接

小凌派开发板与模块均带有防呆设计,故很容易区分安装方向,直接将模块插入到开发板的E53母座接口上即可,

程序设计

API分析

头文件:

/vendor/lockzhiner/lingpi/samples/e53_intelligent_street_lamp/include/e53_intelligent_street_lamp.h

e53_isl_init()

void e53_isl_init();

描述:

智慧路灯模块初始化,包括初始化I2C0、路灯控制GPIO;初始化BH1750传感器。

参数:

返回值:

e53_isl_read_data()

float e53_isl_read_data();

描述:

智慧路灯模块读取传感器数据,得到亮度值。

参数:

返回值:

传感器返回的亮度值。

isl_light_set_status()

void isl_light_set_status(SWITCH_STATUS_ENUM status);

描述:

智慧路灯模块控制路灯开关。

参数:

名字 描述
status 路灯状态,ON:开;OFF:关

返回值:

BH1750传感器指令集

init_bh1750()

void init_bh1750();

描述:

智慧路灯模块初始化bh1750传感器,通过I2C总线下发通电指令集。

参数:

返回值:

start_bh1750()

void start_bh1750();

描述:

智慧路灯模块使能bh1750传感器开启测量,通过I2C总线下发连续H分辨率模式指令集。

参数:

返回值:

主要代码分析

在e53_isl_thread函数中,每2s读取一次传感器数据并打印亮度数据。当亮度小于20时,打开路灯,否则关闭路灯。

void e53_isl_thread()
{
    float lum = 0;

    e53_isl_init();

    while (1)
    {
        lum = e53_isl_read_data();

        printf("luminance value is %.2f\n", lum);

        if (lum < 20)
        {
            isl_light_set_status(ON);
            printf("light on\n");
        }
        else
        {
            isl_light_set_status(OFF);
            printf("light off\n");
        }

        LOS_Msleep(2000);
    }
}

编译调试

修改 BUILD.gn 文件

修改 vendor/lockzhiner/lingpi/sample 路径下 BUILD.gn 文件,指定 c3_e53_intelligent_street_lamp 参与编译。

"c3_e53_intelligent_street_lamp",

在主目录下输入编译命令。

hb build -f

运行结果

例程代码编译烧写到开发板后,按下开发板的RESET按键,通过串口软件查看日志,串口会打印光照强度信息;用手遮挡传感器,使亮度值小于20时,路灯亮起;移开遮挡,亮度值大于20时,路灯关闭。

luminance value is 45.83
light off
luminance value is 4.17
light on

原作者:王小彬 Gitee

更多回帖

发帖
×
20
完善资料,
赚取积分