基于CC2530无线火灾报警系统的设计

注:展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。

  1. 系统硬件设计

3.1主控模块

在基于CC2530无线火灾报警系统的设计中,在系统协调器以及终端节点模块电路设计中均采用CC2530作为主控核心,实现模块功能控制。CC2530是低功耗无线SoC芯片,CC2530拥有良好的RF(Radio Frequency,射频)收发性能,在2.4GHz频率下工作。支持IEEE 802.15.4/ZigBee协议,并集成了一个8051微控制器,可以实现低功耗、高可靠性的无线通信。CC2530单片机包括电源引脚、晶体振荡器配置引脚、复位引脚、I/O端口输入输出引脚等。CC2530模块支持常见的嵌入式开发环境,可以方便地进行开发和调试。同时模块提供了丰富的开发资源和示例代码,可以帮助开发人员快速入门和开发。

如图3-1所示为CC2530单片机的最小系统图,CC2530的引脚功能非常丰富,包括数字输入输出、模拟输入引脚、计时器、串行通信发送接收引脚、时钟引脚、复位输入引脚、电源输入引脚、调试数据输出引脚等。CC2530芯片组网简单,系统功耗较低。同时在系统设计中,网络信号强,适用于远距离范围内的信号传输工作。在CC2530芯片中将ZigBee协议栈相关的处理器进行集成,能够较少芯片资源的利用,整体提高系统接收以及处理数据的工作效率。

3.2温度检测模块

在基于CC2530无线火灾报警系统设计中,使用的传感器是DS18B20数字温度传感器。DS18B20数字型芯片实现环境温度检测要求,避免温度过高引发火灾的发生。DS18B20数字温度传感器是单总线器件,具有线路简单,体积小的特点,使用起来方便,DS18B20的温度输出信号是数字信号, 无需模数转换电路信号, 可直接被单片机识别,并且DS18B20温度芯片检测范围非常广,从零下55到正125都可以检测,且精度达到0.01度,满足本次设计的需求。对于SOP封装的DS18B20,其有效引脚数依旧只有3个,其余都是NC空引脚。对于该温度传感器,其内部除了温度检测元件外,通过集成有数字IC将其转换为数字信号给主控制器,同时配备了存储器用于储存数据。其还用于温度报警功能,可以通过主控制器预置写入相应的报警预置到DS18B20芯片中,当其检测到的实际温度大于阈值时,便会输出相应的信号,以便控制器及时作出响应。如图3-2所示为温度检测电路图。

3.3烟雾检测模块

在系统设计中,需要对环境中的烟雾浓度进行检测,避免烟雾浓度异常造成的危险情况的发生。系统采用MQ-2气体传感器实现烟雾检测的设计要求,MQ-2烟雾传感器是比较常用的离子型烟雾探测器,该传感器具有非常高的灵敏性,当这种烟雾传感器遇到一定浓度的烟雾时其内部的导电性能就会发生变化,并且这种变化的效果会根据烟雾的浓度而改变,烟雾越浓则导电性能变化的越明显,而导电性能的变化就引起了电路中电压的变化,因此如果单片机检测该点的电压值,那么就可以得到烟雾的浓度含量,并且其内部含有比较电路,所以单片机只需要检测高低电平就可以判断烟雾含量是否超标,其具体电路如图3-3所示。

3.4报警模块

在系统设计中,当终端节点检测到的温度或烟雾浓度超出阈值设定范围时,控制蜂鸣器进行报警提示。在报警电路设计中,选择有源蜂鸣器实现报警电路的设计。有源蜂鸣器像其他的传感器节点一样,其作用就是等待上位机下发的命令,然后报警。蜂鸣器的内部电路是由振荡器模块所构成的,模块之间是由高速通信总线所连接。蜂鸣器是在高低电平的驱动下实现报警信号的产生,实现报警的设计要求。有源蜂鸣器在实际应用中能够实现蜂鸣信号的快速播报。在报警电路设计中,着重需要考虑的是驱动电路的架构设计。有源蜂鸣器内部集成性能优越,包含丰富的功能模块。实际工作过程中根据线圈来带动振膜以此实现声音的输出要求,报警电路如图3-4所示。

4.3协调器程序设计

在系统协调器模块设计中,采用CC2530作为系统控制器,可以实现与终端节点检测的数据传输,检测数据通过WiFi模块实现与PC端的无线传输,程序流程如图4-3所示。

4.4温度检测程序设计

在系统温度检测程序设计中,采用DS18B20温度传感器实现温度检测,单片机在读取温度时首先需要将数据线拉到480us以上以复位DS18B20,然后去读取DS18B20序列号以判定是否能检测到DS18B20芯片,然后向其寄存器进行写入配置数据,将采样分辨率设置为9bit,接着开始读取其高8位和低8位的实时温度数据,并将其进行整合从而得到温度值,具体流程如图4-4所示。 

5.2软件调试

在基于CC2530无线火灾报警系统软件功能调试过程中,需要对开发工具进行熟练运用,可以极大的增加设计人员的工作效率,避免很多未知的问题和错误,如程序的语法错误,标点符号写法错误等等,这些细微的错误都可以通过编译器进行检查出来,以便及时修改。在程序开发过程中,首先需要在IAR开发平台上进行项目的新建,并对系统中各个功能模块进行详细编程设计,在此过程中,需要注意逻辑顺序,尤其是关于功能设计、无线通信模块的设计,有助于后期的调试工作顺利进行。在完成软件编写之后,需要是对程序进行编译,并根据系统提示进行错误的修改,直至没有错误提示。随后将编译好的文件进行下载,首次下载过程中,可以通过下载简单程序进行判断,然后逐步增加程序下载量,实现系统功能设计的增加,直至完成软件下载要求。如图5-1所示为软件调试页面。

在系统程序下载完成后,需要进行模块的功能调试,一般是通过在线调试系统对主控制器内部的寄存器状态进行观测,找到问题点并进行针对性地解决。在此过程中还可以通过页面的工具栏中的的调试选项访问页面,在软件调试后就可以实现程序的下载。

5.3实物测试

(1)环境温度检测:将DS18B20温度传感器连接到CC2530终端节点,检测温度传感器是否能够正常工作,并通过ZigBee协议将温度数据传输到协调器节点。在协调器节点的PC端界面上可以看到温度数据的实时变化,通过统计数据的变化,验证温度传感器和ZigBee协议的传输功能是否正常。如图5-2所示。

图5-6 数据异常图

通过以上详细的用例测试,可以充分验证基于CC2530无线火灾报警系统的终端节点设计的性能和可靠性。同时,测试也可以发现可能存在的问题,并及时进行调整和优化,为系统的实际应用提供更加可靠和有效的技术保障。

为了进一步确认结果的准确性,在宿舍进行了测试:将实物设备连接并摆放好位置之后,连接WiFi,观察显示在PC端的数值。分别在早中晚三个时间段进行了环境中温度以及烟雾浓度的检测,PC端显示的温度值与实际温度进行比较,确认DS18B20温度传感器是否能够准确检测到环境中的温度,并用手捏住温度传感器之后,观察PC端显示温度数据是否显示异常发生报警。PC端显示的烟雾浓度与点燃打火机之后的烟雾浓度相比较,确认MQ-2烟雾传感器是否能够准确检测到环境中的烟雾浓度并且数据是否显示异常发生报警。

表5-1  环境温度检测表

序号

时间

PC端温度(℃)

室内温度(℃)

之后PC端温度(℃)

阈值(℃)

数据是否显示异常发生报警

1

8:00

23

23

27

30

2

9:00

23

23

31

30

3

13:00

27

27

32

30

4

14:00

27

27

29

30

5

18:00

22

22

33

30

6

19:00

22

22

30

30

表5-2  烟雾浓度检测表

序号

PC端烟雾浓度(ppm)

打火机点燃之后烟雾浓度(ppm)

阈值(ppm)

数据是否显示异常发生报警

1

8

108

105

2

7

120

105

3

8

98

105

4

9

110

105

5

7

105

105

6

8

100

105

经过测试结果分析,可以得到以下结论:

环境温度检测:DS18B20温度传感器能够准确监测环境温度,并将数据通过ZigBee协议传输到协调器节点。通过与实际温度的对比,系统可以达到较高的准确度。

烟雾浓度检测:MQ-2传感器能够准确监测环境中的烟雾浓度,并将数据通过ZigBee协议传输到协调器节点。系统可以及时检测到异常情况并发送报警提示,保障了安全性。

数据传输稳定性:通过测试,ZigBee协议传输稳定可靠,数据能够准确传输至协调器节点。同时,WiFi通信模块能够与PC端建立无线通信,数据也能够准确传输至PC端,用户可以及时查看监测的数据以及异常信息的报警提示。

故障检测和报警功能:通过测试,系统能够及时检测到异常情况并发送报警提示,保障了安全性。

综上所述,基于CC2530无线火灾报警系统的终端节点设计能够准确、稳定地监测环境温度和烟雾浓度,实现了数据传输的稳定可靠和异常情况的及时报警提示。整个系统的设计具有重要的应用价值,可以广泛应用于各种需要监测温度和烟雾浓度的场合,如工业厂房、居民区、商场等。

目    录

1 绪论

1.1研究背景及意义

1.2国内外研究现状

1.3主要内容

2 系统设计

2.1系统功能设计

2.2系统方案设计

2.3本章小结

3 系统硬件设计

3.1主控模块

3.2温度检测模块

3.3烟雾检测模块

3.4报警模块

3.5 WiFi无线通信模块

3.6本章小结

4 系统软件设计

4.1 IAR开发环境

4.2终端节点程序设计

4.3协调器程序设计

4.4温度检测程序设计

4.5烟雾检测程序设计

4.6报警程序设计

4.7无线通信程序设计

4.8本章小结

5 系统调试

5.1硬件调试

5.2软件调试

5.3实物测试

5.4本章小结

6总结与展望

6.1总结

6.2展望

参考文献

致  谢

附录

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
将小星星曲谱转换成cc2530单片机代码需要经过以下几个步骤: 1. 将小星星曲谱转换成数字音符序列,每个音符对应一个数字。 2. 编写cc2530单片机代码,定义每个数字对应的音符频率值。 3. 在cc2530单片机代码中使用PWM(脉冲宽度调制)输出对应频率的方波信号。 4. 根据小星星曲谱的节拍信息,编写延时程序,控制每个音符的持续时间。 以下是一个简单的示例代码,可以输出小星星的前两句歌词: ``` c #include <cc2530.h> // 定义每个数字对应的频率值 #define C4 262 #define D4 294 #define E4 330 #define F4 349 #define G4 392 #define A4 440 #define B4 494 // 定义每个数字对应的延时时间(单位:毫秒) #define WHOLE 2000 #define HALF 1000 #define QUARTER 500 #define EIGHTH 250 // 小星星数字音符序列 const uint8_t melody[] = {3, 3, 4, 4, 5, 5, 4, 3, 2, 2, 1, 1, 5, 4, 3, 2, 5, 4, 3, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 2, 1, 1, 5, 4, 3, 2, 0, 0, 0}; // 小星星节拍信息 const uint8_t rhythm[] = {QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, HALF, QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, HALF, QUARTER, QUARTER, QUARTER, HALF, QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, HALF, QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, HALF, QUARTER, QUARTER, QUARTER, QUARTER, QUARTER, HALF, QUARTER, QUARTER, QUARTER, WHOLE}; void init_pwm(void) { // P1.2配置为定时器1 PWM输出端口 PERCFG |= 0x02; P1SEL |= 0x04; P1SEL2 &= ~0x04; // 定时器1配置 T1CTL = 0x02; // 选择ACLK作为时钟源,分频系数为1 T1CCTL1 = 0x24; // 置位输出,比较模式 T1CC0H = 0x00; // 计数器最大值高8位 T1CC0L = 0x00; // 计数器最大值低8位 T1CC1H = 0x00; // 比较值高8位 T1CC1L = 0x00; // 比较值低8位 } void play_melody(void) { uint8_t i; for (i = 0; melody[i] != 0; i++) { // 设置PWM输出频率 switch (melody[i]) { case 1: T1CC1H = (F_CPU / C4) >> 8; T1CC1L = (F_CPU / C4) & 0xFF; break; case 2: T1CC1H = (F_CPU / D4) >> 8; T1CC1L = (F_CPU / D4) & 0xFF; break; case 3: T1CC1H = (F_CPU / E4) >> 8; T1CC1L = (F_CPU / E4) & 0xFF; break; case 4: T1CC1H = (F_CPU / F4) >> 8; T1CC1L = (F_CPU / F4) & 0xFF; break; case 5: T1CC1H = (F_CPU / G4) >> 8; T1CC1L = (F_CPU / G4) & 0xFF; break; case 6: T1CC1H = (F_CPU / A4) >> 8; T1CC1L = (F_CPU / A4) & 0xFF; break; case 7: T1CC1H = (F_CPU / B4) >> 8; T1CC1L = (F_CPU / B4) & 0xFF; break; } // 延时 uint16_t delay = rhythm[i] * 2; while (delay--) { asm("nop"); } } } void main(void) { init_pwm(); play_melody(); while (1); } ``` 以上代码仅供参考,实际应用时需要根据具体需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值