首先非常感谢腾讯云IoT团队给到的体验资格,没想到毕业以后,我还以有机会玩单片机。最近刚搬家不久,刚好新的出租屋有一个辅助照明的需求,而我拿到了E53_SC1模块,注定这个需求要由我亲自操刀,既能省钱,又能装X。
由于客厅的电灯开关只在门口有一个,所以晚上当我们要熄灯休息的时候,就不得不摸黑走过客厅和走廊。而人眼在关灯时有一个暗适应的过程,大于需要1分钟,所以这段路我们不得不和黑暗斗志斗勇,避免撞到客厅的家具,尤其是转角处的风扇,现在深圳的天气,风扇可比我们的小命还珍贵呢。
通过TOS获取环境光的强度,一阶运算得到变化值,当变化值大于云平台下发的阈值时,点亮LED,为环境提供6秒的照明。其他的暗光声明下,如果仍需照明,则需触发光电开关。整体的系统架构如图:
为了兼顾实时性与准确度,共取20组检测数据:
#define STORAGE_NUM 20
static int szBH1750Brightness[STORAGE_NUM]={0};
static int iIndex = 0;
void environment_light_detect(void)
{
g_iBH1750 = (int)Convert_BH1750();
if(g_iBH1750>100)return; // 环境光大于100肯定是干扰
if(iIndex<STORAGE_NUM)
{
szBH1750Brightness[iIndex++]=g_iBH1750;
}
else
{
for(int i=0;i<STORAGE_NUM-1;i++)
{
szBH1750Brightness[i]=szBH1750Brightness[i+1];
}
szBH1750Brightness[STORAGE_NUM-1]=g_iBH1750;
}
}
检测过程中,基准值取前15次检测结果的平均值,而最近5次的均值做为当前的环境光强。基准值减去当前的光强大于阈值10(适用于我家的客厅,该阈值在云平台下发,以适应不同的场景),则命中辅助照明策略。去噪的方法是,当光强大于100时,认为受到了包括但不限于卧室灯、手电、系统的LED灯的光线干扰,不会记录数据。
云平台是一个天然的日志系统,当需要根据数据来调参时,推荐在云平台查看历史数据。
正常情况下,6秒钟足够我们从客厅走到卧室门口。但是反过来,当我们夜里起来到客厅喝水时,环境光的变化并不会命中辅助照明策略。此时由光电开关发挥作用,当环境光强低于30时,只要我们路过光电开关,就会自动打开15秒的照明。光电开关模块是E18-D80NK,ADC通道1采集光电转换数据,TOS tiny已经支持了ADC1初始化。这里贴上采集的代码:
int Convert_E18D80NK(void)
{
unsigned int iADC1Value = 0;
/* 启动AD转换 */
HAL_ADC_Start(&hadc1);
/* 等待AD转换结束 */
HAL_ADC_PollForConversion(&hadc1, 50);
/* 检查常转换是否完成 */
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
{
/* 获取AD转换值 */
iADC1Value = HAL_ADC_GetValue(&hadc1);
iADC1Value = iADC1Value*3300/4096; // 转换成电压
//printf("HAL_ADC_GetValue : %d\r\n",nADC1Value);
}
return iADC1Value;
}
整个系统将安装在客厅转角处,实物图如下:
实际的应用效果:
在TOS的框架下,搭建整个应用非常方便快速,和硬件打打交道即可搭建自己的应用。云平台的接入和使用也没有遇到什么难度,比我在学校使用的某物联平台方便很多。系统使用几天后,家里的小伙伴们已经从新鲜就成习惯,希望IOT团队早日推出高性价比、稳定安全的IOT服务,让平台为更多的人带来便利。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有