气体传感器

已有 445125个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:ZigBee

    分    享:

    文档简介

    ZigBee应用

    1) 通过实验掌握CC2530 芯片GPIO 的配置方法

    2) 学会在协议栈中使用MQ-2 气体传感器

    3) 通过串口和LCD 输出显示相关信息

    文档预览

    8.气体传感器 1.实验目的 1) 通过实验掌握 CC2530 芯片 GPIO 的配置方法 2) 学会在协议栈中使用 MQ-2 气体传感器 3) 通过串口和 LCD 输出显示相关信息 2.实验设备 硬件:PC 机一台 ZB2530(底板、核心板、仿真器、USB 线) 一套 DHT11 一个 软件:2000/XP/win7 系统,IAR 8.10 集成开发环境、串口助手 3.实验相关电路图 接线方式: 1)、VCC:接电源正极(5V) 2)、GND:接电源负极 3)、DO:TTL 开关信号输出 4)、AO:模拟信号输出(悬空没有使用) 4.实验相关寄存器 实验中使用 P0_5 做为检测引脚,当浓度高于设定值时,P0_5 为低电平,平时正常状态时为高 电平。DO 输出电平和厂家有关,具体信息请参考模块的参数。配置 P0_5 的方法: P0SEL &= ~0x20; P0DIR &= ~0x20; 1 //设置 P0.5 为普通 IO 口 //P0.5 定义为输入口 技术工程师: QQ 2357481431 公司网站:http://www.csgsm.com 店铺:http://520ic.taobao.com/ 创造奇迹 思索未来 科技共赢! 实验详解: 气体传感器只需读取与之相连 IO 口电平,来判断是否检测到有害气体。所以在协议栈增加气 体传感器检测程序比较简单,我们只需要配置好 IO 口,然后周期性检测、输出显示,上传给协调 器即可。 打开《zigbee 开发板\代码及其教程\3.高级篇-zigbee 协议栈应用与组网\8.气体传感器\ZStackCC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp.eww》 工程。 1. 配置气体传感器用到的 IO 引脚 2. 读取检测引脚电平,并输出显示,上传给协调器。 void SampleApp_Send_P2P_Message( void ) { byte state; if(DATA_PIN == 1) { state = 0x31; //高电平时说明没有检测到气体 HalUARTWrite(0,"security\n", 9); //串口显示 HalLcdWriteString( "security", HAL_LCD_LINE_3 ); //LCD 显示 } else { MicroWait (10000); // Wait 10ms if(DATA_PIN == 0) { state = 0x30; //当输出低电平时信号灯亮,检测到气体 HalUARTWrite(0,"Got bad Air\n",12); //串口显示 HalLcdWriteString( "Got bad Air", HAL_LCD_LINE_3 ); //LCD 显示 } 2 技术工程师: QQ 2357481431 公司网站:http://www.csgsm.com 店铺:http://520ic.taobao.com/ 创造奇迹 思索未来 科技共赢! } if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,SAMPLEAPP_P2P_CLUSTERID, 1, &state, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) { } else { // Error occurred in request to send. } } 3. 接收数据 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) { uint16 flashTime; switch ( pkt->clusterId ) { case SAMPLEAPP_P2P_CLUSTERID: HalUARTWrite(0, "MQ2:", 4); //提示接收到数据 HalUARTWrite(0, pkt->cm d.Data, pkt->cmd.DataLength); //输出接收到的数据 HalUARTWrite(0, "\n", 1); // 回车换行 break; case SAMPLEAPP_PERIODIC_CLUSTERID: break; case SAMPLEAPP_FLASH_CLUSTERID: flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] ); HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) ); break; } } 4. 再利用周期性点播的定时器,间隔 1 秒定时采集、输出显示,将采集到的信息发送给协调器, 协调器通过串口调试助手显示,有 LCD 的朋友可以在协调器接收处加上 LCD 显示。应该很简单 吧,不会就参考终端 LCD 显示调用吧。如果前面的实验掌握了,看这些代码应该毫无压力,其实 只要你完全搞懂一个 TI 协议栈 3 技术工程师: QQ 2357481431 公司网站:http://www.csgsm.com 店铺:http://520ic.taobao.com/ 创造奇迹 思索未来 科技共赢! 例子和传感器的实验,其它都差不多,万变不离其宗。 实验步骤 1.选择 CoodinatorEB-Pro, 下载到开发板 A;作为协调器 2.选择 EndDeviceEB-Pro, 下载到开发板 B;作为终端设备无线发送数据给协调器,并接上 MQ-2 模 块 3.给两块开发板上电,打开串口调试助手,设为:9600 8N1 并打开串口串口请选择自己的端口号。 终端连网成功后会向协调器发数据,没有 LCD 请使用调试助手观察实验结果,可用打火机测试, 如下图所示。 实现结果: 4 技术工程师: QQ 2357481431 公司网站:http://www.csgsm.com 店铺:http://520ic.taobao.com/ 创造奇迹 思索未来 科技共赢! 由不健康的气体 到健康的气体实现传感器报警感应。 5 技术工程师: QQ 2357481431 公司网站:http://www.csgsm.com 店铺:http://520ic.taobao.com/ 创造奇迹 思索未来 科技共赢!

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。