ZigBee无线传感网技术与应用 课件 项目四任务二 厨房火灾报警系统_第1页
ZigBee无线传感网技术与应用 课件 项目四任务二 厨房火灾报警系统_第2页
ZigBee无线传感网技术与应用 课件 项目四任务二 厨房火灾报警系统_第3页
ZigBee无线传感网技术与应用 课件 项目四任务二 厨房火灾报警系统_第4页
ZigBee无线传感网技术与应用 课件 项目四任务二 厨房火灾报警系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Zigbee无线传感网技术与应用厨房监控系统0401了解串口通信原理03掌握温湿度传感器数据的获取05掌握单片机输出PWM信号的方法04了解AD采样方法02掌握串口使能方法学习目标Learningobjectives任务二:厨房火灾报警系统任务要求要求读者查看火焰传感器模块资料,实现CC2530单片机系统对数字量信号的采集,掌握接收PC串口信号的方法。任务目标Missionobjectives01了解火焰传感器模块的结构03掌握接收串口信号的方法02掌握厨房火灾报警系统的调试储备知识开关量输出是实现传感器将感应到的模拟或数字信号转换成一个开关量信号,再继而输出的一个功能。一般的开关量输出通过继电器实现,如单掷单刀,单掷双刀,双掷双刀等。该物理量只有两种状态,如开关的导通和断开的状态,继电器的闭合和打开,电磁阀的通和断,等等。开关量传感器发出的信号是数字信号,有断开和闭合两种状态,比如液位传感器开关就是一种常见的开关量传感器。当液位传感器低于设定值时,液位传感器开关断开(或闭合);当液位传感器高于设定值时,开关闭合(或断开)。对控制系统来说,由于CPU是二进制的,数据的每位有“0”和“1”两种状态,因此,开关量只要用CPU内部的一位即可表示,比如,用“0”表示开,用“1”表示关。1.什么是开关量储备知识ZigBee火焰传感器模块由红外接收二极管及比较器电路构成,该模块只有4个接口引脚,分别为VCC、GND、DOUT、AOUT,其中VCC、GND为电路的供电端,DOUT为模块开关量输出端,输出高低电平信号,对应是否检测到火焰;AOUT为模拟量输出,输出的电压值会根据接收到的火焰强度而发生变化。2.ZigBee火焰传感器模块图:火焰模块储备知识由电路图可知火焰传感器的Dout连接至P0.0的IO口,火焰传感器为数字量传感器代码与按钮类似。3.火焰传感器电路图4.厨房火灾报警系统本任务所需软件已安装至电脑可直接使用。本任务所需硬件:下载器、ZigBee开发板、火焰传感器模块、5V电源适配器、USB下载线。环境准备任务实施任务实施

获取厨房火焰传感器数据

如果有火焰则持续发送报警信息

当电脑发送0x01时停止报警任务要求编写代码步骤1:新建工程->工程名称为“厨房火焰报警系统”->保存->新建源程序.c文件名称为“main.c”->设置Opion->编写最简单的代码,代码如下所示。(新建工程具体步骤,不再重复介绍)4.厨房火灾报警系统#include"iocc2530.h"voidmain(){

while(1){

}}任务实施步骤2:编写火焰传感器I/O宏定义,代码如下所示。4.厨房火灾报警系统步骤3:编写获取火焰传感器的状态代码并设置发送串口标志,根据电路图设置I/O口P0.0为输入。代码如下所示。//宏定义

火焰传感器I/O口#defineflameP0_0#include"iocc2530.h"#defineflameP0_0voidmain(){

charflag=0;//声明标志P0DIR&=~(0x01);

while(1){

if(flame==0)//如果有火焰{flag=1;//设置标志,便于发送串口循环}}}代码小贴士:代码:charflag=0;说明:程序设计时长用一个变量标示一些标志,flag表示一个标志,判断当标志为1时则不断执行所需代码。任务实施步骤4:编写获取串口接收、发送与初始化数据代码,代码与任务一类似,在U0CSR开启接收使能,URX0IE=1开启中断使能,代码如右所示。4.厨房火灾报警系统voidsend(unsigned

chars){U0DBUF=s;//发送a

while(!UTX0IF);UTX0IF=0;}voidsendstr(unsigned

char*s,unsigned

charlen){

intcount=0;

while(--len){send(*(s+count));count++;}}voidUartInit(){P0SEL|=0x0c;//设置外设PERCFG=0x00;//设置I/O位置U0CSR|=0xc0;//设置UART模式

使能接收U0BAUD=59;//设置波特率为9600

U0GCR=9;//设置波特率为9600;

URX0IE=1;//开启串口接收中断EA=1;//开启总中断}任务实施步骤5:编写串口中断函数,声明接收数据变量Command,代码如下所示。4.厨房火灾报警系统…charCommand;…#pragmavector=URX0_VECTOR__interruptvoidUART(){Command=U0DBUF;//接收缓存数据到dataURX0IF=0;//清中断标志}任务实施步骤6:编写发送串口代码,当有火焰时不断每秒发送报警数据,代码如下所示。4.厨房火灾报警系统voidmain(){

charflag=0;UartInit();

while(1){

if(flame==0)//如果有火焰{flag=1;//设置标志,便于发送串口循环}

if(flag){sendstr("火焰报警",8);}}}任务实施步骤7:在while循环中编写判断停止报警信号代码,代码如下所示。4.厨房火灾报警系统voidmain(){

charflag=0;UartInit();

while(1){

if(flame==0)//如果有火焰{flag=1;//设置标志,便于发送串口循环}

if(flag){sendstr("火焰报警",8);}

if(Command==0x01){Command=0;//清空数据接收flag=0;//清空发送标志}}}代码小贴士:代码:if(flag){}说明:在条件内容可以简写flag大于1则条件满足为0则不满足,与代码if(flag==1)相同任务实施步骤8:打开串口调试助手,设置发送发送为“16进制发送”。4.厨房火灾报警系统图:设置16进制发送任务实施步骤9:在串口接收中断函数中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论