原创 【RT-Thread软件包+w601评测】②光敏联动LED灯光

2019-12-4 23:34 16679 20 5 分类: MCU/ 嵌入式
接《【RT-Thread软件包+w601评测】①开箱测评》
第一个想到的是光敏开关控制摄像头模组的日夜模式,并开启补光灯,但是搜了一下貌似这个板子不支持原子的摄像头模组,所以现在改成光敏开启LED补光灯。

不得不说RT-Thread对没有RT OS和LIUNX经验的人来说很不友好,虽然有完整开发教程和例程,入手起来仍有须努力,裸板的程序虽然繁琐但是很好理解也很好做,RT Thread需要熟悉API,程序据了解的同事说是LINUX风格。开发板的资料下载链接:https://pan.baidu.com/s/1UwbrQBbNt3Vnf9DGoETymg 提取码:q6dc)。


开发板资料目录


使用官方推荐的串口助手烧写.FLS格式文件(文件路径尽量不要有中文,我使用时候烧写失败过,放根目录下就好了)。



运行结果


本来想做个接近报警并联动阿里云,但是RT Thread还是不太熟悉。听说TR Thread有线下培训活动,希望有机会可以参加。


附源码

  • #include <rtthread.h>
  • #include <rtdevice.h>
  • #include "board.h"
  • #define DBG_TAG "main"
  • #define DBG_LVL DBG_LOG
  • #include <rtdbg.h>
  • #include "sensor_lsc_ap3216c.h"
  • #define DBG_TAG "main"
  • #define DBG_LVL DBG_LOG
  • #include <rtdbg.h>
  • #define ALS_DEV "li_ap321"
  • #define PS_DEV "pr_ap321"
  • /* 配置 LED 灯引脚 */
  • #define LED_PIN PIN_LED_R
  • int main(void)
  • {
  • /* 设置 LED 引脚为输出模式 */
  • rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
  • int count = 0;
  • rt_device_t als_dev, ps_dev;
  • struct rt_sensor_data als_dev_data, ps_dev_data;
  • LOG_D("Als Ps Sensor Testing Start...");
  • /* 查找并打开光强传感器 */
  • als_dev = rt_device_find(ALS_DEV);
  • if (als_dev == RT_NULL)
  • {
  • LOG_E("can not find ALS device: %s", ALS_DEV);
  • return -RT_ERROR;
  • }
  • else
  • {
  • if (rt_device_open(als_dev, RT_DEVICE_FLAG_RDONLY) != RT_EOK)
  • {
  • LOG_E("open ALS device failed!");
  • return -RT_ERROR;
  • }
  • }
  • /* 查找并打开接近传感器 */
  • ps_dev = rt_device_find(PS_DEV);
  • if (ps_dev == RT_NULL)
  • {
  • LOG_E("can not find PS device: %s", PS_DEV);
  • return -RT_ERROR;
  • }
  • else
  • {
  • if (rt_device_open(ps_dev, RT_DEVICE_FLAG_RDONLY) != RT_EOK)
  • {
  • LOG_E("open PS device failed!");
  • return -RT_ERROR;
  • }
  • }
  • /* 开始读取传感器数据 */
  • while (count <1000)
  • {
  • rt_device_read(als_dev, 0, &als_dev_data, 1);
  • LOG_D("current brightness: %d.%d(lux).", (int)(als_dev_data.data.light / 10), (int)(als_dev_data.data.light % 10));
  • rt_device_read(ps_dev, 0, &ps_dev_data, 1);
  • if (als_dev_data.data.proximity < 10)
  • {
  • rt_pin_write(LED_PIN, PIN_LOW);
  • LOG_D("led on, count: %d", count);
  • }
  • else
  • {
  • rt_pin_write(LED_PIN, PIN_HIGH);
  • LOG_D("led off");
  • }
  • rt_thread_mdelay(100);
  • }
  • rt_device_close(als_dev);
  • rt_device_close(ps_dev);
  • LOG_D("Als Ps Sensor Testing Ended.");
  • return RT_EOK;
  • }
  • 复制代码

    作者: DrouSherry, 来源:面包板社区

    链接: https://mbb.eet-china.com/blog/uid-me-1715169.html

    版权声明:本文为博主原创,未经本人允许,禁止转载!

    PARTNER CONTENT

    文章评论3条评论)

    登录后参与讨论

    用户3925113 2020-7-30 09:55

    您好,网盘分享的链接被封了,能重新分享一下吗

    curton 2019-12-7 19:34

    厉害!

    7sms 2019-12-6 14:02

    厉害!
    相关推荐阅读
    DrouSherry 2024-12-19 20:00
    《高速PCB设计经验规则应用实践》+新手的进阶最佳帮手
            不卖关子先说感受,真本书真是相见恨晚啊。字面意思,见到太晚了,我刚毕业或者刚做电子行业就应该接触到这本书的。我自己跌跌撞撞那么多年走了多少弯路,...
    DrouSherry 2024-06-25 22:56
    《芯片封测从入门到精通》封测行业的入门手册
               我所修主科是 PVD磁控溅射镀膜,是封测上一道工序。对于封测有粗略了解。目前封测行业头部企业大部分是台韩日企...
    DrouSherry 2024-01-07 22:42
    《 MATLAB科学计算从入门到精通》+入门实践
    MATLAB是美国Math Works 公司开发的大型数学计算软件,它具有强大的矩阵处理功能和绘图功能,已经广泛地应用于科学研究和工程技术的各个领域。 MATLAB的主要功能具体包括:一般数...
    DrouSherry 2023-11-07 09:10
    《深入浅出SSD》+SSD行业的百宝书
    清晨的第一缕阳光开启了打工人搬砖的又一天。 图一 《深入浅出SSD》+1.8寸SATA盘+江波龙SSD 自拿到这本书后,就被这本深深地吸引力,这里面几乎有我现在想知道的关于SSD的所有疑问。 ...
    DrouSherry 2019-12-01 22:13
    【RT-Thread软件包+w601评测】①开箱测评
    收到快递很久了,一直想把软件包整好了一块发。才发现RT-Thread好难搞。裸板程序毫无压力,RT-Thread如果没有搞过的话,会很有压力。废话不多说,上开箱图:鲜有的配套盒子,一般会只有个防静电袋...
    我要评论
    3
    20
    关闭 站长推荐上一条 /3 下一条