聚丰项目 > 基于AB32VG1的空气质量检测设计
该项目是基于AB32VG1作为主板,通过串口通讯获取CO2、CH2O、TVOC三合一的空气质量检测,并将检测结果实时用OLED屏进行显示。
jf_88110289
分享jf_88110289
团队成员
叶俊杰 架构师
硬件:
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); //线程时间片
演示效果如附件中图片
OLED屏会将从空气质量检测传感器中获取的数据显示在OLED屏上,方便用户快速的了解到当前所处环境的空气质量情况。
(0.14 MB)下载