侵权投诉
当前位置:

OFweek智能家居网

应用软件

正文

基于LabVIEW的智能家居报警系统

导读: 用LabVIEW做了一个智能家居报警系统的上位机软件,挺好玩的,虽然功能不多、结构也简单,但是,所用到的技术对于学习LabVIEW的人来说很重要。

  用LabVIEW做了一个智能家居报警系统的上位机软件,挺好玩的,虽然功能不多、结构也简单,但是,所用到的技术对于学习LabVIEW的人来说很重要。

  首先,贴出前面板的图片来。单片机向上位机发送的帧格式为:0x0A+3字节的温度数据+0x0B+4字节的烟雾浓度数据+0x0C+1字节的开关门信号(总共11个字节),发送的波特率为9600,发送周期为200ms。上位机采集软件每隔10ms(就是前面板上的队列循环周期)从串口缓存区里读取11个字节的数据,然后将其进行解析和显示。

基于LabVIEW的智能家居报警系统

图1 软件的前面板截图(点击图片查看大图)

  然后,再把程序框图一一给大家亮出来。

基于LabVIEW的智能家居报警系统

图2 串口配置和串口收/发的程序图(点击图片查看大图)

  如图2所示,VISA每隔10ms从串口缓存区读取11个字节的数据,然后将数据送入串口接收数据队列中。这里采用的是生产者-消费者模型的循环结构,读串口采用的是生产者循环结构,解析数据采用的是消费者循环结构。

基于LabVIEW的智能家居报警系统

图3 数据解析和数据显示部分的程序图(点击图片查看大图)

  如图3所示,消费者循环用于解析数据,根据0x0A、0x0B、0x0C三个属性字节分别对温度值、烟雾浓度值以及开关门信号进行解析和显示,波形显示采用的是波形图表,温度值可通过温度计显示,烟雾浓度可通过指针式仪表盘显示,显示效果直观、大方。

基于LabVIEW的智能家居报警系统

图4 声音报警部分的程序图(点击图片查看大图)

  如图4所示是声音报警部分的程序图,上半部分是温度报警程序,报警声音持续时间为2秒钟,报警声频率为3KHz;下半部分是烟雾浓度报警程序,报警声音持续时间为1秒钟,报警声频率为1KHz。由于声音报警持续的时间为1~2秒钟,如果将报警程序放在解析数据的那个大循环里,则会导致大循环的执行被延迟1~2秒钟,因此,必须将报警程序提出来单独写,从而使之变成了两个独立运行的线程。

  以上就是对本软件的介绍,本软件依然存在一些小BUG,比如说:有时候第一次启动这个软件后,串口读到的数据帧并不是0x0A+3字节的温度数据+0x0B+4字节的烟雾浓度数据+0x0C+1字节的开关门信号,通过探针我看到的是1字节的开关门信号+0x0A+3字节的温度数据+0x0B+4字节的烟雾浓度数据+0x0C,开关门信号跑到帧首去了,出现了断帧的现象。这个结果是由设置串口每次读取11个字节引起的,当串口缓存区里的字节数大于11时就会出现这种结局,因此,需要在开启软件之后对串口缓存区进行清除操作,并且要求读串口的速率大于单片机发送数据的速率。 

声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

  • 智能家居
  • 猎头职位
更多
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号