关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 物联网智能机房系统设计与实现

物联网智能机房系统设计与实现

作者: 时间:2013-01-14 来源:网络 收藏

如果不满足以上条件,中继模块应放弃处理该条命令。命令字符串的形式为:(acb)。其中“abc”是命令信息,是某条英文指令的缩写,例如打开灯1,英文为“open light 1”,缩写为“oll”,如果想关闭灯1,则发送字符串“(cl1)”。如果缩写后的命令不足3个字符,则用字符“0”补全。所有控制命令及含义如表2所示。

本文引用地址:https://www.eepw.com.cn/article/159558.htm

h.JPG


3.1.2 模块闻通信协议
由于使用的是透明传输模块,一个模块发送给另一个模块的信息是可以被其他所有模块接收到的,所以应该在信息中加入地址机制,每个模块都有自己的地址。在某个模块接收到数据时,应首先判断数据中接收地址是否与自己的地址一致,如果一致,则继续处理该数据,反之则放弃该数据。
考虑到模块间通信的多种情况,将模块间通信信息归纳为2种:命令和状态信息,则对应协议也为2种。
1)中继模块或遥控终端模块发送命令
以字符串的形式发送命令,该命令字符串应满足以下两个条件:
①字符串长度为7;
②字符串以“(”开头,以“)”结尾。
若其它模块接收到的命令字符串不满足以上两个条件,则放弃处理该命令。命令字符串的形式为:(xyabc),其中“x”表示接收模块的地址,“y”表示发送模块的地址,“abc为要执行的命令缩写,同表2中“发送命令”项括号内字符串。模块地址的约定,见表3。表中通信中继模块和遥控终端模块的地址是一样的,这样就可以同时处理接收到其他模块发送的信息数据了。

i.JPG


2)中继模块和遥控终端模块接收状态信息
由于其它模块向中继模块和遥控终端模块发送状态信息的长度不一,所以以最长的状态信息为准,也就是以温湿度及人体检测模块的状态信息长度为准,其它模块状态信息位的长度不足的以字符“0”补全。该命令字符串应满足以下2个条件:
①字符串长度为9;
②字符串以“(”开头,以“)”结尾。
若通信中继模块和遥控终端模块接收到的命令字符串不满足以上两个条件,则放弃处理该信息。信息字符串的形式为:(xyabcde),其中“x”表示接收模块的地址,这里应该为“0x11”,“Y”表示发送模块的地址。“ahede”则表示发送模块的状态信息。
针对温湿度及人体检测模块,“ah”以ASCII码形式表示温度,“cd”以ASCII码形式表示湿度,“a”和“c”表示十位,“b”和“d”表示个位。“e”的前半字节表示人体检测是否开启,后半字节表示是否认有人进入检测范围。针对电灯控制模块,“a”的前半字节表示灯1的开关状态,后半字节表示灯2的开关状态。针对无线遥控小车,“a”的前半字节表示小车前灯的开关状态,后半字节表示摄像头的开关状态。
3.2 通信中继模块
通信中继模块主要处理两件事:1)接收上位机的命令,并根据命令的内容,按照协议发送给对应模块;2)接收每个模块的信息,按照协议发送给上位机。
3.3 温湿度及人体入侵检测模块
该模块主要实现两大功能:1)温湿度和人体入侵检测,并将检测信息传送给中继模块和遥控终端,以实现实时显示;2)处理中继模块转发的控制命令。程序中通过两个标志位区别是上传检测信息还是处理控制命令。当判断是控制命令时,再具体分析是何命令并执行该命令,执行完毕,将新的状态信息返回给中继模块和遥控终端模块,然后等待下一条命令。
3.4 电灯控制模块
电灯控制模块实现控制电灯1、2的开启和关闭操作。程序中通过一个标志位判断接收信息是否为控制命令,若是则判断具体命令并执行,执行完毕按照协议更新状态信息,并按照协议把状态信息返回给中继模块和遥控终端模块,然后等待下一条命令。
3.5 无线遥控小车
无线遥控小车模块实现两大功能:小车运动控制;小车前灯和摄像头的打开和关闭控制。程序中通过一个标志位判断接收信息是否为控制命令,若是则判断具体命令,如果是运动命令,则执行相应的运行命令,延时600 ms后,停止运动,然后等待下一条命令;如果不是运动命令,则执行该命令后,按照协议更新状态信息,并按照协议把状态信息返回给中继模块和遥控终端模块,然后等待下一条命令。
3.6 遥控终端模块
遥控终端模块实现三大功能:在字符液晶屏上显示系统状态信息;按键检测及发送命令;启动和关闭蜂鸣器。程序启动后一直判断是否有按键按下,如果有按键按下,则检测按键,并将按键对应的命令按照协议传输给其它模块,然后延时500 ms,等待下一次按键。若没有按键,则检测标志位Flag是否等于1。若Flag等于1,表示接收到了其它模块的状态信息,然后按照信息的内容更新液晶屏对应的内容,如果来自温湿度及人体检测模块的信息中有检测到人体进入检测区的信息,则打开蜂鸣器2 s。

4 系统测试
系统测试分3部分:1)以通信中继模块为主:从上位机下发送正常合法的命令,观察现象;之后再发送不合法的命令,观察现象。2)以遥控终端模块为主:依次按键,观察现象。3)以人体感应模块为主:测试人体检测功能。测试时为方便起见,将通信中继模块用串口线直接连到PC上,通过串口调试助手操作并观察。
4.1 通信中继模块测设
发送字符串“(g00)”:小车前进了一小段距离。
发送字符串“(ol1)”:电灯1打开。
发送字符串“(cl2)”:电灯2关闭。
发送字符串“(mmm)j”:系统不做任何动作。
4.2 遥控终端模块测设
按“前进”按键,小车前进一小段距离。一直按住“左转”按键,小车原地向左转圈。
按“开灯1”按键,电灯1打开,同时液晶屏上的对应信息也随之改变。
4.3 人体检测模块测设
用手在该模块上方划过,终端模块的蜂鸣器响起,同时液晶屏提示有人进入该范围。串口调试助手也收到“0x28 0Xf0 0x32 0x33 0x34 0x30 0x00 0xff 0x29”十六进制的字符串,根据协议可得知第8个字节表示人体检测的状态信息,前半字节表示该功能是否开启,后半字节表示是否有人进入检测范围,所以,“0xff”表示检测到了人体进入检测范围。

5 结束语
该系统以最常用也最可靠的电灯开关控制、温湿度检测和人体入侵检测为主要切入点,同时加入了可扩展的移动平台——无线遥控小车,考虑到系统的独立性与完美性,又加入了遥控终端模块,这样使得整个系统可以在不依赖上位机的情况下执行各种操作。
系统难点是各模块间通信协议的设计,经过反复的研究和查找资料,最终参考了以太网数据帧的形式,将每个模块指定一个地址,在传输数据的开头将目标模块地址和发送模块地址写入,这样接收的模块就能根据该地址去判断该如何处理该数据。经过反复的调试与修改,本系统最终实现了预期的所有功能。

物联网相关文章:物联网是什么



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭