聚丰项目 > 基于AB32VG1的空气质量检测设计

基于AB32VG1的空气质量检测设计

该项目是基于AB32VG1作为主板,通过串口通讯获取CO2、CH2O、TVOC三合一的空气质量检测,并将检测结果实时用OLED屏进行显示。

jf_88110289 jf_88110289

分享
0 喜欢这个项目
团队介绍

jf_88110289 jf_88110289

团队成员

叶俊杰 架构师

分享
项目简介
该项目是基于AB32VG1作为主板,通过串口通讯获取CO2、CH2O、TVOC三合一的空气质量检测,并将检测结果实时用OLED屏进行显示。
硬件说明

硬件:

1)主板AB32VG1, 作为主控端。

2)SSD1306 OLED屏,用于显示当前空气质量相关的值以及当前日期以及时间。

3)空气质量检测传感器(CO2、CH2O、TVOC三合一),这款传感器通过串口给主控传输相关数据。

软件说明

软件上创建了四个静态线程,led灯线程、按键线程、OLED屏显示线程以及串口获取传感器数据线程。

    // 创建LED静态线程
    tmp_result1 = rt_thread_init(&led_thread,                 //线程控制块
                               "led_blink",                 //线程名字,在shell里面可以看到
                               Led_ThreadEntry,            //线程入口函数
                               RT_NULL,                      //线程入口函数参数
                               &rt_led_thread_stack[0],     //线程栈起始地址
                               sizeof(rt_led_thread_stack), //线程栈大小
                               LED_Priority,                //线程的优先级
                               LED_TimeSlices);             //线程时间片
    // 创建OLED静态线程
    tmp_result2 = rt_thread_init(&oled_thread,                //线程控制块
                               "oled_display",               //线程名字,在shell里面可以看到
                               OLED_ThreadEntry,             //线程入口函数
                               RT_NULL,                      //线程入口函数参数
                               &rt_oled_thread_stack[0],     //线程栈起始地址
                               sizeof(rt_oled_thread_stack), //线程栈大小
                               OLED_Priority,                //线程的优先级
                               OLED_TimeSlices);             //线程时间片

    // 创建KEY静态线程
    tmp_result3 = rt_thread_init(&key_thread,                //线程控制块
                               "key_control",               //线程名字,在shell里面可以看到
                               Key_ThreadEntry,             //线程入口函数
                               RT_NULL,                      //线程入口函数参数
                               &rt_key_thread_stack[0],     //线程栈起始地址
                               sizeof(rt_key_thread_stack), //线程栈大小
                               KEY_Priority,                //线程的优先级
                               KEY_TimeSlices);             //线程时间片

    tmp_result4 = rt_thread_init(&uart_thread,                //线程控制块
                               "usart1_task",               //线程名字,在shell里面可以看到
                               usart1_task_entry,             //线程入口函数
                               RT_NULL,                      //线程入口函数参数
                               &rt_uart_thread_stack[0],     //线程栈起始地址
                               sizeof(rt_uart_thread_stack), //线程栈大小
                               10,                //线程的优先级
                               10);             //线程时间片


演示效果

演示效果如附件中图片

022524d37e32f1cd2f6fc2736da37f4.jpg

OLED屏会将从空气质量检测传感器中获取的数据显示在OLED屏上,方便用户快速的了解到当前所处环境的空气质量情况。

附件

(0.14 MB)下载

评论区(0 )