虎年新活动——把智慧路灯改成小夜灯
过年在家收拾地下室,发现了吃灰的开发板,so计划让它散发光芒照亮黑暗的地下环境。
其他的活动我也无心参加,安安静静的写完这篇就很满意。
左边的鸿蒙不太会,就搞右边的经典小熊派吧。
第一步,下载开发环境,因为穷,需要经常恢复系统,这次依旧熟练的安装开发环境。
这就是下载地址,(本文以windows 10 64-bit系统Visual Studio Code为例。请下载1.49版本,其他版本不支持IoT Link)。最新版不支持,请注意,
https://code.visualstudio.com/updates/v1_49
最新版不支持,请注意,
下载完,就是安装,为什么用vs ,不直接用iot studio ,因为这个还有更新,那个,,,,
我这个之前汉化过,所以安装完成就是中文版,安装很简单,应用商店搜索就行,汉化包一样的道理,IoT link ,
安装过程报错,c++环境和 鸿蒙开发环境冲突 ,果断卸
Iot link 1.3.0
然后 粘贴一段代码过来 ,很清楚 有注释,编译 ,烧录 就变成了夜灯。
#include <osal.h>
#include "lcd.h"
#include "E53_SC1.h"
/* 存放E53_SC1扩展板传感器数据,可在E53_SC1.h中查看定义 */
E53_SC1_Data_TypeDef E53_SC1_Data;
/* 用于数据采集和数据处理任务间同步的信号量 */
osal_semp_t sync_semp;
/* 数据采集任务-低优先级 */
static int data_collect_task_entry()
{
/* 初始化扩展板 */
Init_E53_SC1();
while (1)
{
/* 读取扩展板板载数据,存到数据结构体E53_SC1_Data中 */
E53_SC1_Read_Data();
/* 数据读取完毕,释放信号量,唤醒数据处理任务 */
osal_semp_post(sync_semp);
/* 任务睡眠2s */
osal_task_sleep(2*1000);
}
}
/* 数据处理任务-高优先级 */
static int data_deal_task_entry()
{
/* lux- 当次数据,old-lux-上次数据 */
int lux = 0, old_lux = 0;
/* LCD清屏,防止干扰显示 */
LCD_Clear(WHITE);
while (1)
{
/* 等待信号量,未等到说明数据还未采集,阻塞等待 */
osal_semp_pend(sync_semp, cn_osal_timeout_forever);
/* 信号量等待,被唤醒,开始处理数据 */
old_lux = lux;
lux = (int)E53_SC1_Data.Lux;
printf("BH1750 Value is %d\r\n", lux);
LCD_ShowString(10, 100, 200, 16, 16, "BH1750 Value is:");
LCD_ShowNum(140, 100, lux, 5, 16);
/* 阈值为1000,自动点亮或者熄灭路灯 */
if(old_lux < 1000 && lux > 1000)
{
HAL_GPIO_WritePin(SC1_Light_GPIO_Port, SC1_Light_Pin, GPIO_PIN_RESET);
printf("Street Light OFF!\r\n");
}
else if(old_lux > 1000 && lux < 1000)
{
HAL_GPIO_WritePin(SC1_Light_GPIO_Port, SC1_Light_Pin, GPIO_PIN_SET);
printf("Street Light ON!\r\n");
}
}
}
/* 标准demo启动函数,函数名不要修改,否则会影响下一步实验 */
int standard_app_demo_main()
{
/* 数据处理任务的优先级应高于数据采集任务 */
osal_task_create("data_collect",data_collect_task_entry,NULL,0x400,NULL,3);
osal_task_create("data_deal",data_deal_task_entry,NULL,0x400,NULL,2);
return 0;
}
缺点是 这个扩展板没有人体感应, 在无网的环境,只能靠亮度变化来点亮,
当环境光线达到设定值会自动开启,但是在无人的情况也不会关闭,
希望通过一段代码也许可以实现,光触发,
实现效果:在黑暗的地下室,无人情况是不亮的,当有一束光照到光感上,激活设备状态,下次光线变暗后 开启照明,延时半分钟,
- 点赞
- 收藏
- 关注作者
评论(0)