智能火情监测仪

2020-05-272823
AI 快速预览详细 收起
智能火情监测仪是一个基于古德微树莓派图形化平台的项目,使用火焰传感器监测火情并通过数模转换器将模拟值转化为音量大小。该项目通过OLED显示屏动态显示火情值,并根据火情大小动态调整报警音量。适用于STEM教育场景,帮助学生理解传感器应用和编程逻辑。
智能火情监测仪是利用古德微树莓派图形化平台制作一个小作品。该作品用火焰传感器监测火焰的大小,通过数模转换器将其转化为模拟值,根据模拟值的大小动态改变火警音乐音量的大小,实现不同火情,警示不同范围居民的实际效果。
一、主程序
智能火情监测仪图1
二、OLED初始化
智能火情监测仪图2
1、初始化OLED显示屏
2、新建OLED图片
3、从树莓派中加载图片
这幅图片,是提前做好放到树莓派中供程序调用的。提前做一张图片是为了解决OLED显示比较单调的问题。
4、将火情图片调整尺寸
适应OLED显示屏的分辨率要求。
5、将火情图片粘贴到OLED图片上。
6、显示OLED图片
三、设置音频输出设备
智能火情监测仪图3
本例中,为获取火焰传感器的模拟值,我们使用数模转换器,同时程序中我们还需要输出火灾报警音频,因此,我们使用了USB声卡,对音频设置进行了相应的设置。
四、火情监测
智能火情监测仪图4
1、获取模拟信号并赋值给变量火焰值
2、输出火焰值
3、将火焰值进行折算
采用映射的方法将0-32767的值折算为99-0。为什么是99-0,而不是0-99?因为当没有火焰的时候,火焰传感器的输出值为32767,而不是我们想象中的0。
4、将折算值赋值给音量
现在,我们想通过火情监测这个子线程,动态的监测火情的大小,动态改变音乐播报的音量。
5、输出折算值
6、等待0.1秒
子线程火情监测每隔0.1秒检测一次火情值,每隔0.1秒改变一次音量值。
五、OLED显示
智能火情监测仪图5
1、在OLED图片上添加火情值
根据火情监测子线程获取的火焰值,动态添加到OLED图片上
2、动态更新OLED图片
3、等待0.1秒
六、主程序
智能火情监测仪图6
1、主程序重复循环
2、如果折算值大于10
执行播放树莓派存储的火灾报警音乐。
3、等待30秒
音乐时长共30秒,等待30秒,可完成一个循环。
4、如果折算值小于10,播放空音乐
如果折算值太小,说明火警非常微小,甚至是没有火情,可直接忽略,不予报警。如果程序开始折算值小于10,程序正常执行,但是如果火情是从大于10的时候变为小于10的,那么,刚才还在播放的音乐如何让它停下来,采用播放空音乐的方法是一个切实可行的方法。
5、等待0.1秒
每隔0.1秒监测一次。
最后,再上一遍主程序
智能火情监测仪图7
对照主程序,进一步思考:为什么我们要将火情监测和OLED显示做成两个子线程?为什么要在条件不满足的情况下播放空音乐?除了本例中的方法,你还想到了什么解决办法?

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -