ZigBee与GPRS的远程数据采集系统设计
由于现场数据采集部分的GPRS模块与数据中心的GPRS模块功能有所区别,可通过设定全局标志位GPRS_Module_Role为0或1来指定GPRS模块为现场数据采集GPRS模块还是数据中心(即接收端)的GPRS模块。现场数据采集GPRS模块为了保持连接还需在空闲时间发送心跳包。与远程IP建立连接的相关任务全部由GPRS模块中的STM32F103C8完成,并将配置信息写入SPIFlash中,外部数据可直接通过GPRS模块的串口发送。
若与数据中心IP连接出现连续3次错误(错误次数可设定),现场数据采集GPRS模块将通过固定内容短信的方式告知数据中心的GPRS模块,数据中心的GPRS模块通过回应固定内容的短信对远程控制单元实现紧急处理。
嵌入式Web Server部分主要负责将数据通过串口转发至GPRS模块或者上位机,并实现现场监控计算机可通过浏览器对监控网页进行访问和在LCD端显示数据采集信息,嵌入式Web Server主要通过公共网关接口CGI以及服务器端嵌入标签SSI Tag实现对外网页表单数据的更新与获取。同时,监控计算机进入系统配置更改前,需通过串口发送字符“authenticated_id_l00p”(也可自定义为其他)到LM3S9D92串口1,特定字符串检测主要是通过函数strstr(pstr,“authenticated_id_loop”)实现,其中pstr为待检测字符串地址,检测到目标字符串后返回该位
置的指针,否则返回空指针。LM3S9D92串口接收中断流程中检测到目标字符串后,将循环执行PN532读卡函数PN532_readPassiveTargetID(PN532_MIFARE_ISO14443A,uid[0],uidLength)3次,当读取到特定ID后跳出该循环,并将变量Authenticated_ID_OK置1,表明通过IC卡认证流程,可继续执行系统配置。
4 测试结果
通过对4个ZigBee终端节点I/O口P1.0控制的LED状态进行了采集和控制,并在嵌入式Web Server端及其LCD上显示其开关状态,可通过网页中的复选框对I/O状态实现控饼,具体如图4所示。嵌入式Web Server端还分别在Windows以及Ubuntu/Linux操作系统下使用系统自带浏览器进行了测试,均可正常使用,现场监控计算机接入系统十分方便。另外,测试了修改系统关键信息时的安全性,更改数据采集端的GPRS模块短信报警号码时,系统进行了身份认证,通过读取卡号识别到程序内已存的管理员1、2的信息,通过串口输出调试信息。本文引用地址:https://www.eepw.com.cn/article/153618.htm
结语
本设计以ZigBee网络和GPRS模块为中心,结合ZigBee以及GPRS无线通信技术,使得远程数据采集与控制更易实现。经实际测试,采集和控制各个ZigBee节点CC2530 P1.0引脚输出状态,运行结果能够到达预期效果。另外,本系统还可根据实际情况在各个ZigBee终端节点添加其他数据采集电路,实现更加强大的功能或拓展网络结构,因此,本文设计的远程数据采集系统具有较高的实用参考价值。
评论