聚丰项目 > 基于AB32VG1的仓库温度报警系统
该项目使用AB32VG1做为核心主控板,通过板上的扩展口与外接的SSD1306显示模块,DS18B20温度传感模块,RGB状态提醒,喇叭报警进行多线程任务监控,当仓库的室内温度值大于或低于设定阀值时,RGB状态为红灯快闪,并播放预定好的音频文件,以提示用户及时处理。RT-Thread是国产实时操作系统,其IDE含有丰富的软件包与组件,可以更好更快的构建工程项目。DS18B20占用的通信接口是单总线,可以放于仓库的各个角落,便于缩小硬件接口占用资源,但是DS18B20要求的时序非常之严苛,本人尝试了使用SysTick滴答时钟制作延时函数,烧录完成后,串口打印初始化DS18B20完成,但读出的温度值都是0℃,因此阀值不好设定,RGB与音频输出控制的功能线程中可启动。
yinwuqing
分享yinwuqing
团队成员
银武青 嵌入式开发工程师
1、DS18B20模块负责仓库室内温度的实时采集,每个DS18B20都有唯一的设备ID号,通过单总线与AB32VG1主控板进行数据和时钟的半双工传输
2、SSD1306进行当前时钟与温度值的不断刷新显示
3、LED即RGB模块,喇叭设备是在温度值超过用户设定的阀值时启动
启用了RT-Thread Studio中集成的DS18B20软件包,SSD1306软件包,wavpalyer软件包等,创建多个实时监控任务,并使用了DFS、Fatfs等组件。由于目前板卡不支持使用RT-Thread Studio下载,可以在RT-Thread Studio中编译,然后进入“Downloader_v1.9.7”中下载,串口打印信息等。
经过前段时间的接触,认识到rt thread studio进行sdk的开发是一件非常有效率的事情,新建bsp工程后只需要在rt thread setting配置需要的硬件功能就可以使用rt thread提供的设备I/O管理接口对底层的soc的外设进行控制。比方说调用一个定时器:先用rt_device_find根据设备名称查找到定时器句柄、使用定时器句柄打开定时器、接着设置定时器的回调函数、配置完定时器后设置定时器的定时值后定时器启动,之后每当定时器的计数器溢出就会执行一次定时器的回调函数。一个外设的驱动调用,不需要写过多的代码,极大的降低了开发者的门槛。
基本实现OLED屏的显示,RGB灯的控制,DS18B20的温度初始化没问题,但读取温度值存在问题,需要进一步优化解决。
(6.13 MB)下载