物联网实验报告.docx
《物联网实验报告.docx》由会员分享,可在线阅读,更多相关《物联网实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
物联网实验报告
实验名称:
RFID开发实验
一、实验环境
硬件:
UP-MobNet-II型嵌入式综合实验平台,PC机
软件:
VmwareWorkstation+Ubuntu12.04+MiniCom/Xshell+ARM-LINUX交叉编译开发环境Rfid_900M模块QT测试程序
二、实验内容
1、了解UHF的基本概念、国际标准、协议内容
2、了解UHF的标准接口
3、了解UHF的应用范围及领域
4、掌握对功率和功放相关命令的操作
三、实验原理
超高频射频识别系统的协议目前有很多种,主要可以分为两大协议制定者:
一是ISO(国际标准化组织);二是EPCGlobal。
ISO组织目前针对UHF(超高频)频段制定了射频识别协议ISO18000-6,而EPCGlobal组织则制定了针对产品电子编码(ElectronicProductCode)超高频射频识别系统的标准。
目前,超高频射频识别系统中的两大标准化组织有融合的趋势,EPCClass1Generation2标准可能会变成ISO18000-6标准的Typec。
本文主要讨论的是针对ISO18000-6
标准的射频识别系统,本节讨论的是ISO18000-6协议中与系统架构相关的物理层参数。
ISO18000-6目前定义了两种类型:
TypeA和TypeB。
下面对这两种类型标准在物理接口、协议和命令机制方面进行分析和比较。
1.物理接口
ISO18000-6标准定义了两种类型的协议—TypeA和TypeB。
标准规定:
读写器需要同时支持两种类型,它能够在两种类型之间切换,电子标签至少支持一种类型。
(1)TypeA的物理接口
TypeA协议的通信机制是一种“读写器先发言”的机制,即基于读写器的命令与电子标签的应答之间交替发送的机制。
整个通信中的数据信号定义为以下四种:
“0”,“1”,“SOF”,“EOF”。
通信中的数据信号的编码和调制方法定义为:
①读写器到电子标签的数据传输
读写器发送的数据采用ASK调制,调制指数为30%(误码不超过3%)。
数据编码采用脉冲间隔编码,即通过定义下降沿之间的不同宽度来表示不同的数据信号。
②电子标签到读写器的数据传输
电子标签通过反向散射给读写器传输信息,数据速率为40kbits。
数据采用双相间隔码来进行编
码,是在一个位窗内采用电平变化来表示逻辑,如果电平从位窗的起始处翻转,则表示逻辑“1”;如果电平除了在位窗的起始处翻转,还在位窗的中间翻转,则表示逻辑“0”。
(2)TypeB的物理接口
TypeB的传输机制也是基于“读写器先发言”的,即基于读写器命令与电子标签的应答之间交换的机制。
①读写器到电子标签的数据传输
采用ASK调制,调制指数为11%或99%,位速率规定为10kbits或40kbits,由曼彻斯特编码来完成。
具体来说就是一种on-offkey格式,射频场存在代表“1”,射频场不存在代表“0”。
曼彻斯特编码是在一个位窗内采用电平变化来表示逻辑“1”(下降沿)和逻辑“0”(上升沿)的。
②电子标签到读写器的数据传输
同TypeA一样,通过调制入射并反向散射给读写器来传输信息,数据速率为40kbits,同TypeA采用一样的编码。
四、实验步骤
1、将\UP-MobNet-II型移动互联网实验产品光盘V2.1(linux-3.0.15(CC2530))V2.1@20150510\\RFID实验部分\Exp\Rfid_900M\Rfid_900M_install.tar.gz压缩包通过Samba服务器或其它共享方式拷贝到虚拟机下。
2、在虚拟机下打开终端,进入Rfid_900M目录
[root@localhostRfid_900M]#lsinputMakefileRfid_900Mttywidget.cppwidget.uimain.cpppublicRfid_900M.prouhf900mwidget.h
3、重新生成.pro文件和Makefile
[root@localhostRfid_900M]#
/home/uptech/QT4/for_arm/qt-everywhere-opensource-src-4.8.5/bin/qmakeproject
[root@localhostRfid_900M]#
/home/uptech/QT4/for_arm/qt-everywhere-opensource-src-4.8.5/bin/qmake
4、Make编译程序,生成可执行文件,并拷贝到/tftpboot目录
[root@localhostRfid_900M]#make。
。
。
[root@localhostRfid_900M]#lsRfid_900M
Rfid_900M
[root@localhostRfid_900M]#cpRfid_900M/tftpboot/
5、打开超级终端或XShell,登陆控制器终端,将上一步编译生成的Rfid_900M文件通过tftp下载到开发板
[root@UP-TECHup_rfid_t]#tftp-grRfid_900M192.168.12.134
修改可执行权限
[root@UP-TECHup_rfid_t]#chmod777Rfid_900M
6、复制export4arm.sh脚本,并改名为module.sh
[root@UP-TECHyaffs]#cd/mnt/yaffs/up_rfid_t/
[root@UP-TECHup_rfid_t]#cpexport4arm.shmodule.sh
7、修改module.sh文件为如下内容,并保存退出
insmodcpld_ctrl.koexport
QTDIR=$PWDexport
LD_LIBRARY_PATH=$PWD/libexport
TSLIB_TSDEVICE=/dev/event1export
TSLIB_PLUGINDIR=$PWD/lib/tsexport
QT_QWS_FONTDIR=$PWD/lib/fontsexport
TSLIB_CONSOLEDEVICE=noneexport
TSLIB_CONFFILE=$PWD/etc/ts.confexport
POINTERCAL_FILE=$PWD/etc/ts-calib.confexport
QWS_MOUSE_PROTO=tslib:
/dev/event1export
TSLIB_CALIBFILE=$PWD/etc/ts-calib.confexport
LANG=zh_CNexport
QWS_DISPLAY="LinuxFb:
mmWidth200:
mmHeight130:
0"export
QT_PLUGIN_PATH=$PWD/plugins/echo"begintostart"$1
#fortslibif[!
-f$PWD/etc/ts-calib.conf];then
$PWD/bin/ts_calibratefi
#./RfidDemo-qws-fontwenquanyi
./Rfid_900M-qws-fontwenquanyi
8、运行module.sh脚本
[root@UP-TECHup_rfid_t]#./module.sh
五、实验结果
六、实验心得体会:
通过这次实验,使我大开眼界。
因为这次实验是需要用到软件的,并且用电脑显示输出,可以说是半自动化的。
因此在实验过程中我受益匪浅,它让我深刻体会到试验前的理论知识准备,也要事先了解将要做的实验的有关资料。
虽然做实验时,指导老师会讲解一下实验步骤和注意的问题,但也要有一定的了解并按步骤做下去,才会掌握其中的技巧。
实验名称:
无线传感器实验
一、实验目的
1.掌握温湿度传感器数据采数及数据处理的方法
2.掌握LINUX与QT界面编程
3.了解LINUXSocket编程基础
二、实验内容
1.创建客户端,与server进行通信。
2.创建接口,获取传感器数据,更新UI界面
3.将温度信息友好的展示到UI界面
三、实验环境
硬件:
UP-MOBNET-A9-II型移动互联网实验平台,PC机Pentium500以上,硬盘80GB以上,内存大于2GB
软件:
VmwareWorkstation+Fedora14+MiniCom/Xshell+ARM-LINUX交叉编译开发环境+QT/E
四、实验原理
SOF1
SOF2
LEN
CMD1
CMD2
DAT
EOF
SOF
M-TYPE
F-LEN
F-TYPE
C-TYPE
C-ID
MOD
/RET
GID
SID
EOF
0xFE
0x0A
[SOF1]:
帧起始字节1,固定值0xFE,标记一帧数据的开始
[SOF2]:
帧起始字节2,标记模块类型,定义如下
宏定义
值
描述
MODULE_TYPE_ZIGBEE_CC2530
0xE0
硬件:
CC2530软件:
Stack2007
MODULE_TYPE_TINYOS_CC2530
0xE1
硬件:
CC2530软件:
TinyOS
MODULE_TYPE_IPV6_CC2530
0xE2
硬件:
CC2530软件:
Contiki-IPv6
MODULE_TYPE_IPV6_STM32
0xE3
硬件:
STM32W108CB软件:
Contiki-IPv6
MODULE_TYPE_BLE_CC2540
0xE4
硬件:
CC2540软件:
BLE4.0
MODULE_TYPE_WIFI_STM32
0xE5
硬件:
STM32+WIFI
MODULE_TYPE_ALL
0xEF
[LEN]:
帧长度字节
[CMD1]:
帧命令字节1
位
名称
描述
Bit[7]
RSP_FLAG
请求帧/响应帧标记位
=0为请求帧,=1为响应帧
Bit[6]
NWK_FLAG
本地帧/网络帧标记位
=0为本地帧,帧数据在本地节点进行处理
=1为网络帧,帧数据被透传到网络目标节点进行处理
Bit[5-4]
NWK_MODE
网络发送方式
=00:
NC
=01:
单播发送,需要在EOF前指定单播地址
=10:
组播发送,需要在EOF前指定组播地址
=11:
广播发送,需要在EOF前指定广播地址
Bit[3]
RSP_NEED
是否需要响应标记位
=0:
处理帧后不发送响应帧
=1:
处理帧后发送响应帧
Bit[2-0]
NC
NC
[CMD2]:
帧命令字节2
位
名称
描述
Bit[7-4]
CMD_TYPE
帧命令类型
=0x5:
节点配置命令,例如对节点的ID,信道,PANID进行配置等
=0x6:
节点信息命令,例如获得节点的类型,软件版本,地址信息等
=0x7:
节点驱动命令,例如获得传感器数据及设置模块状态
Bit[3-0]
CMD_ID
帧命令ID
=0x0:
控制节点模式命令,例如在CMD_TYPE=0x7时,控制节点数据上报方式为中断上报,定时上报,定时上报时间间隔等
=0x1:
读节点命令,例如在CMD_TYPE=0x7时,用于读取传感器的状态
[DAT]:
长度n字节,帧有效数据
[MOD/RET]:
数据域标记
当为请求帧时,为MOD模式字节,保留
当为响应帧时,为RET模式字节,定义如下
位
名称
描述
Bit[7]
RESULT
请求帧处理结果
=0:
表示正确,可以对DAT域数据进行处理
=1:
表示错误,抛弃DAT域数据
Bit[6-0]
ERR_ID
错误ID
[GID]:
节点组ID
长度1字节,用于标记不同的传感器
[SID]:
节点子ID
长度1字节,用于标记同种传感器,例如一个ZigBee网络中用了5个SHT11温湿度传感器,我们需要通用SID来给它们编号,以便区分它们
[EOF]:
帧结束字节,固定值为0x0A,标记一帧数据的结束
温湿度数据:
DAT[0]
DAT[1]
DAT[2]
DAT[3]
HUMI_H
HUMI_L
TEMP_H
TEMP_L
Uint16humi_val=BUILD_UINT16(HUMI_L,HUMI_H);
Uint16temp_val=BUILD_UINT16(TEMP_L,TEMP_H);
Doublehumi=-4+0.0405*humi_val-2.8*pow(10,-6)*pow(humi_val,2);[单位%]
Doubletemp=-39.6+0.01*temp_val;[单位℃]
+说明:
[humi]:
湿度[temp]:
温度
五、实验结果
六、实验心得体会:
在这次试验中,我学到了很多东西,加强了我的动手能力,并且培养了我的独立思考能力。
对于这次的无线传感器实验我的记忆尤其深刻,因为在试验过程中我出现了很多问题,指导老师总会给我们详细解释出现问题的原因和这些问题应该怎样解决。
在实验过程中我受益匪浅,它让我深刻体会到试验前的理论知识准备,也要事先了解将要做的实验的有关资料。
实验名称:
基于ZigBee智能家居综合实验
一、实验目的
1.掌握红外对射传感器、温湿度传感器、LED蜂鸣器、广谱气体传感器的数据采数及数据处理的方法
2.掌握LINUXSocket编程基础,掌握Server数据格式
二、实验内容
1.基于嵌入式网关系统,进行基于Zigbee无线传感器网络的智能家居的简单图形界面显示设计
2.基于嵌入式网关系统,了解掌握Linux系统下socket编程
3.创建客户端,与server进行通信。
4.将传感器信息友好的展示到UI界面
三、实验环境
硬件:
UP-MOBNET-A9-II型移动互联网实验平台,PC机Pentium500以上,硬盘80GB以上,内存大于2GB
软件:
VmwareWorkstation+Fedora14+MiniCom/Xshell+ARM-LINUX交叉编译开发环境+QT/E
四、实验原理
标准帧定义:
SOF1
SOF2
LEN
CMD1
CMD2
DAT
EOF
SOF
M-TYPE
F-LEN
F-TYPE
C-TYPE
C-ID
MOD
/RET
GID
SID
EOF
0xFE
0x0A
[SOF1]:
帧起始字节1,固定值0xFE,标记一帧数据的开始
[SOF2]:
帧起始字节2,标记模块类型,定义如下
宏定义
值
描述
MODULE_TYPE_ZIGBEE_CC2530
0xE0
硬件:
CC2530软件:
Stack2007
MODULE_TYPE_TINYOS_CC2530
0xE1
硬件:
CC2530软件:
TinyOS
MODULE_TYPE_IPV6_CC2530
0xE2
硬件:
CC2530软件:
Contiki-IPv6
MODULE_TYPE_IPV6_STM32
0xE3
硬件:
STM32W108CB软件:
Contiki-IPv6
MODULE_TYPE_BLE_CC2540
0xE4
硬件:
CC2540软件:
BLE4.0
MODULE_TYPE_WIFI_STM32
0xE5
硬件:
STM32+WIFI
MODULE_TYPE_ALL
0xEF
[LEN]:
帧长度字节
[CMD1]:
帧命令字节1
位
名称
描述
Bit[7]
RSP_FLAG
请求帧/响应帧标记位
=0为请求帧,=1为响应帧
Bit[6]
NWK_FLAG
本地帧/网络帧标记位
=0为本地帧,帧数据在本地节点进行处理
=1为网络帧,帧数据被透传到网络目标节点进行处理
Bit[5-4]
NWK_MODE
网络发送方式
=00:
NC
=01:
单播发送,需要在EOF前指定单播地址
=10:
组播发送,需要在EOF前指定组播地址
=11:
广播发送,需要在EOF前指定广播地址
Bit[3]
RSP_NEED
是否需要响应标记位
=0:
处理帧后不发送响应帧
=1:
处理帧后发送响应帧
Bit[2-0]
NC
NC
[CMD2]:
帧命令字节2
位
名称
描述
Bit[7-4]
CMD_TYPE
帧命令类型
=0x5:
节点配置命令,例如对节点的ID,信道,PANID进行配置等
=0x6:
节点信息命令,例如获得节点的类型,软件版本,地址信息等
=0x7:
节点驱动命令,例如获得传感器数据及设置模块状态
Bit[3-0]
CMD_ID
帧命令ID
=0x0:
控制节点模式命令,例如在CMD_TYPE=0x7时,控制节点数据上报方式为中断上报,定时上报,定时上报时间间隔等
=0x1:
读节点命令,例如在CMD_TYPE=0x7时,用于读取传感器的状态
[DAT]:
长度n字节,帧有效数据
[MOD/RET]:
数据域标记
当为请求帧时,为MOD模式字节,保留
当为响应帧时,为RET模式字节,定义如下
位
名称
描述
Bit[7]
RESULT
请求帧处理结果
=0:
表示正确,可以对DAT域数据进行处理
=1:
表示错误,抛弃DAT域数据
Bit[6-0]
ERR_ID
错误ID
[GID]:
节点组ID
长度1字节,用于标记不同的传感器
[SID]:
节点子ID
长度1字节,用于标记同种传感器,例如一个ZigBee网络中用了5个SHT11温湿度传感器,我们需要通用SID来给它们编号,以便区分它们
[EOF]:
帧结束字节,固定值为0x0A,标记一帧数据的结束
获取所有zigbee指令如下:
SOF1
SOF2
LEN
CMD1
CMD2
DAT
EOF
SOF
M-TYPE
F-LEN
F-TYPE
C-TYPE
C-ID
MOD
GID
SID
EOF
FE
E0
09
78
71
00
FF
FF
0A
五、实验结果:
六、实验心得体会:
经过这次实验使我想起了:
以前做实验时,大部分都是照本宣科,很少动脑筋去思考实验的前因后果,对指导老师的讲解也都是一知半解的混着。
但是,这次实验着实让我费了一番脑子,实验操作的机理,仪器的使用方法,同时让我认识到自己以前的迷糊与不负责任,也让我体会到全身心的投入到一件事中,是如此快乐和满足,也得到了好多在课堂上永远无法获得的知识。
实验名称:
物联网综合实验
一、实验目的
1.掌握实验箱配套传感器数据采集与处理的方法
2.掌握LINUXSocket编程,UI布局等相关技术
二、实验内容
1.学习LINUXSocket编程
2.学习友好的UI设计与开发
三、实验环境
硬件:
UP-MOBNET-A9-II型移动互联网实验平台,PC机Pentium500以上,硬盘80GB以上,内存大于2GB
软件:
VmwareWorkstation+Fedora14+MiniCom/Xshell+ARM-LINUX交叉编译开发环境+QT/E
四、实验原理
标准帧定义:
SOF1
SOF2
LEN
CMD1
CMD2
DAT
EOF
SOF
M-TYPE
F-LEN
F-TYPE
C-TYPE
C-ID
MOD
/RET
GID
SID
EOF
0xFE
0x0A
[SOF1]:
帧起始字节1,固定值0xFE,标记一帧数据的开始
[SOF2]:
帧起始字节2,标记模块类型,定义如下
宏定义
值
描述
MODULE_TYPE_ZIGBEE_CC2530
0xE0
硬件:
CC2530软件:
Stack2007
MODULE_TYPE_TINYOS_CC2530
0xE1
硬件:
CC2530软件:
TinyOS
MODULE_TYPE_IPV6_CC2530
0xE2
硬件:
CC2530软件:
Contiki-IPv6
MODULE_TYPE_IPV6_STM32
0xE3
硬件:
STM32W108CB软件:
Contiki-IPv6
MODULE_TYPE_BLE_CC2540
0xE4
硬件:
CC2540软件:
BLE4.0
MODULE_TYPE_WIFI_STM32
0xE5
硬件:
STM32+WIFI
MODULE_TYPE_ALL
0xEF
[LEN]:
帧长度字节
[CMD1]:
帧命令字节1
位
名称
描述
Bit[7]
RSP_FLAG
请求帧/响应帧标记位
=0为请求帧,=1为响应帧
Bit[6]
NWK_FLAG
本地帧/网络帧标记位
=0为本地帧,帧数据在本地节点进行处理
=1为网络帧,帧数据被透传到网络目标节点进行处理
Bit[5-4]
NWK_MODE
网络发送方式
=00:
NC
=01:
单播发送,需要在EOF前指定单播地址
=10:
组播发送,需要在EOF前指定组播地址
=11:
广播发送,需要在EOF前指定广播地址
Bit[3]
RSP_NEED
是否需要响应标记位
=0:
处理帧后不发送响应帧
=1:
处理帧后发送响应帧
Bit[2-0]
NC
NC
[CMD2]:
帧命令字节2
位
名称
描述
Bit[7-4]
CMD_TYPE
帧命令类型
=0x5:
节点配置命令,例如对节点的ID,信道,PANID进行配置等
=0x6:
节点信息命令,