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

2019-12-4 23:34 16641 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有线下培训活动,希望有机会可以参加。


附源码

  1. #include <rtthread.h>
  2. #include <rtdevice.h>
  3. #include "board.h"
  4. #define DBG_TAG "main"
  5. #define DBG_LVL DBG_LOG
  6. #include <rtdbg.h>
  7. #include "sensor_lsc_ap3216c.h"
  8. #define DBG_TAG "main"
  9. #define DBG_LVL DBG_LOG
  10. #include <rtdbg.h>
  11. #define ALS_DEV "li_ap321"
  12. #define PS_DEV "pr_ap321"
  13. /* 配置 LED 灯引脚 */
  14. #define LED_PIN PIN_LED_R
  15. int main(void)
  16. {
  17. /* 设置 LED 引脚为输出模式 */
  18. rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
  19. int count = 0;
  20. rt_device_t als_dev, ps_dev;
  21. struct rt_sensor_data als_dev_data, ps_dev_data;
  22. LOG_D("Als Ps Sensor Testing Start...");
  23. /* 查找并打开光强传感器 */
  24. als_dev = rt_device_find(ALS_DEV);
  25. if (als_dev == RT_NULL)
  26. {
  27. LOG_E("can not find ALS device: %s", ALS_DEV);
  28. return -RT_ERROR;
  29. }
  30. else
  31. {
  32. if (rt_device_open(als_dev, RT_DEVICE_FLAG_RDONLY) != RT_EOK)
  33. {
  34. LOG_E("open ALS device failed!");
  35. return -RT_ERROR;
  36. }
  37. }
  38. /* 查找并打开接近传感器 */
  39. ps_dev = rt_device_find(PS_DEV);
  40. if (ps_dev == RT_NULL)
  41. {
  42. LOG_E("can not find PS device: %s", PS_DEV);
  43. return -RT_ERROR;
  44. }
  45. else
  46. {
  47. if (rt_device_open(ps_dev, RT_DEVICE_FLAG_RDONLY) != RT_EOK)
  48. {
  49. LOG_E("open PS device failed!");
  50. return -RT_ERROR;
  51. }
  52. }
  53. /* 开始读取传感器数据 */
  54. while (count <1000)
  55. {
  56. rt_device_read(als_dev, 0, &als_dev_data, 1);
  57. LOG_D("current brightness: %d.%d(lux).", (int)(als_dev_data.data.light / 10), (int)(als_dev_data.data.light % 10));
  58. rt_device_read(ps_dev, 0, &ps_dev_data, 1);
  59. if (als_dev_data.data.proximity < 10)
  60. {
  61. rt_pin_write(LED_PIN, PIN_LOW);
  62. LOG_D("led on, count: %d", count);
  63. }
  64. else
  65. {
  66. rt_pin_write(LED_PIN, PIN_HIGH);
  67. LOG_D("led off");
  68. }
  69. rt_thread_mdelay(100);
  70. }
  71. rt_device_close(als_dev);
  72. rt_device_close(ps_dev);
  73. LOG_D("Als Ps Sensor Testing Ended.");
  74. return RT_EOK;
  75. }

作者: 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如果没有搞过的话,会很有压力。废话不多说,上开箱图:鲜有的配套盒子,一般会只有个防静电袋...
EE直播间
更多
我要评论
3
20
关闭 站长推荐上一条 /3 下一条