物联网长距离无线通信技术应用与开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 长距离无线通信技术

1.2.1 长距离无线通信技术概述

物联网系统广泛应用了长距离无线通信技术,也称为无线传感器网络。无线传感器网络最初是1978年由美国国防部高级研究计划署于提出,其雏形是卡耐基梅隆大学研究的分布式传感器网络。在之后的几十年内,随着处微理器技术、嵌入式系统、无线电技术、存储技术、互联网技术、人工智能和自动化控制技术的巨大进步,无线传感器网络也得到了快速发展。目前,无线传感器网络项目应用广泛,涵盖了电力、交通、建筑、安防、林业、农业和工业等诸多领域。

无线传感器网络主要应用于大气监测、农作物监控、害虫监控、森林火灾、水位监测、环境保护、自然栖息地监测、安防监控等。传感器节点往往部署在环境恶劣的区域中,如遥远荒芜的区域、有毒的地区、大型工业建筑或航空器内部。

无线传感器网络还广泛应用在管道管沟监测领域、井盖、消防栓监控领域、液位水位监测领域、农业大棚监测领域、水产养殖监测领域、大气环境监测领域,另外在军事、科学考察等方面也有广泛的应用。

图1.5 无线传感器网络

无线传感器网络一般包括汇聚节点、管理节点和传感器节点。传感器节点按项目需求部署在被监控的区域内,传感器节点通过各种网络协议构建无线传感器网络。当网络中某一个传感器节点上传监测数据时,数据会沿着由其他传感器节点构成的无线传输路径进行数据传输,最后汇聚到汇聚节点,并通过互联网传输到服务器中。

一个无线传感器网络中的终端嵌入式传感器节点,一般由传感器、微处理器、无线通信模块和电源四个模块组成,电源一般由能量有限的电池提供,因此终端传感器节点的存储、处理、通信等能力有限。在一个无线传感器节点中,传感器用于采集和转换被监测区域内的信息;电源为传感器节点正常工作提供能量;无线通信模块实现无线网络中的数据传输;微处理器模块主要用于对传感器模块、无线通信模块、电源模块统一管理控制,对传感器采集的数据进行处理。

目前的无线传感器网络中的要求每个传感器节点需具有路由功能和终端功能,每一个节点不仅能完成本地节点信息采集和数据处理,还能够转发网络中其他节点转发来的数据到其他节点。无线传感器网络的特点如下:

(1)网络自组织性。一般来说,无线传感器网络构建前可能无法提前精确设定,也无法提前确定各节点之间的相对位置。因此,传感器节点需要具备自动配置和自我管理功能,具备自我组织能力,自动构建无线传感器网络。

(2)网络规模大。为了准确监测各类数据,以便精确感知环境的变化,在在被监测区域部署大量传感器节点,从而获取完整和准备的环境信息。

(3)网络具有动态性。在实际应用中,无线传感器网络的拓扑结构会发生动态改变,比如无线通信链路带宽的变化;单个或多个传感器节点出现故障或失效;传感器和感知对象地理位置产生相对变化等。因此无线传感器网络需要具有重构特性,能够根据实际情况的变化,动态地改变网络的拓扑结构。

(4)网络可靠性高。很多应用场景,无线传感器网络有时可能部署环境比较恶劣的区域或人类难以到达的高危区域,如高温、高原、低温和强辐射等区域,因此,无线传感器网络中所使用的传感器节点能适应各种恶劣环境。

1.2.2 常用的长距离无线通信技术

1.LoRa

LoRa是一种基于1 GHz技术的无线传感器网络,其特点是传输距离远,易于建设和部署,功耗和成本低,适合进行大范围的数据采集。LoRa应用示意如图1.6所示。

图1.6 LoRa应用示意

2.NB-IoT

NB-IoT构建于蜂窝网络,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。NB-IoT的特点是覆盖广泛,功耗极低,由运营商提供连接服务。NB-IoT应用示意如图1.7所示。

图1.7 NB-IoT应用示意

3.LTE

LTE采用FDD和TDD技术,其特点是传输速度快、容量大、覆盖范围广、移动性好,有一定的空间定位功能。LTE应用示意如图1.8所示。

图1.8 LTE应用示意

长距离无线通信技术的应用系统中大量采用了具有智能感测和无线传输的微型传感设备或微型传感器,通过这些设备来监测周遭环境,如温度、湿度、光照度、气体浓度、PM2.5、PM10、甲醛、电磁辐射、振动幅度等物理信息,并由长距离无线通信技术将收集到的信息传输给管理中心。管理中心获取监测信息后,便可掌握现场状况,进而维护、调整相关系统。长距离无线通信技术已成为军事侦察、环境保护、建筑监测、安全作业、工业控制、家庭、船舶和运输系统自动化等应用中重要的技术手段。物联网长距离无线通信技术的部分应用领域如图1.9所示。

图1.9 物联网长距离无线通信技术的部分应用领域

1.2.3 长距离无线通信技术的学习路线、开发平台和开发环境

1.长距离无线通信技术的学习路线

长距离无线通信技术的学习路线如图1.10所示。

图1.10 长距离无线通信技术的学习路线

本书中长距离无线通信技术的学习内容如表1.1所示。

表1.1 长距离无线通信技术的学习内容

表1.1中的LoRa、NB-IoT、LTE使用的均是射频模块,本身并不具备数据逻辑处理能力,需要外接STM32微处理器来对射频芯片进行操作。另外,为了方便使用这三种长距离无线通信技术,本书开发了更具网络特征的协议栈,便于读者学习和使用。

2.长距离无线通信技术的开发平台

本书采用的开发平台为xLab未来开发平台,该平台提供了两种类型的智能节点(经典型节点ZXBeeLite-B和增强型节点ZXBeePlus-B),集成了锂电池供电接口、调试接口、外设控制电路、RJ45传感器接口等。本书所使用的节点类型为增强型节点ZXBeePlus-B,该节点集成了STM32微处理器、2.8英寸真彩LCD液晶屏、HTU21D型高精度数字温湿度传感器、RGB三色高亮LED指示灯(RGB灯)、两路继电器、蜂鸣器、摄像头接口、USB接口、Ti仿真器接口、ARM仿真器接口、以太网等。xLab未来开发平台如图1.11所示。

本书使用xLab未来开发平台进行学习和应用开发,该平台支持多种无线传感器网络,包括CC2530 ZigBee无线传感器网络、CC2540蓝牙BLE无线传感器网络、CC3200 Wi-Fi无线传感器网络、SX1278 LoRa无线传感器网络、WH-NB71 NB-IoT无线传感器网络、EC20 4G LTE无线传感器网络,本书主要使用的有SX1278 LoRa无线模组、WH-NB71 NB-IoT无线模组、EC20 4G LTE无线模组,其功能描述如表1.2所示。

图1.11 xLab未来开发平台

表1.2 无线模组功能一览表

为深化无线传感器网络中节点的使用,本书的实例均需要使用传感器和控制设备。xLab未来开发平台按照传感器类别设计了丰富的传感设备,涉及采集类、控制类、安防类、显示类、识别类、创意类等。本书使用到采集类开发平台(Sensor-A)、控制类开发平台(Sensor-B)和安防类开发平台(Sensor-C)。

1)采集类开发平台(Sensor-A)

采集类开发平台包括:温湿度传感器、光照度传感器、空气质量传感器、气压海拔传感器、三轴加速度传感器、距离传感器、继电器、语音识别传感器等,如图1.12所示。

图1.12 采集类开发平台

● 两路RJ45工业接口,包含I/O、DC 3.3 V、DC 5 V、UART、RS-485、两路继电器输出等功能,提供两路3.3 V、5 V、12 V电源输出。

● 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入节点进行数据通信。

● 温湿度传感器的型号为HTU21D,采用数字信号输出和IIC通信接口,测量范围为-40~125℃,以及5%RH~95%RH。

● 光照度传感器的型号为BH1750,采用数字信号输出和IIC通信接口,对应广泛的输入光范围,相当于1~65535 lx。

● 空气质量传感器的型号为MP503,采用模拟信号输出,可以检测气体酒精、烟雾、异丁烷、甲醛,检测浓度为10~1000 ppm(酒精)。

● 气压海拔传感器的型号为FBM320,采用数字信号输出和IIC通信接口,测量范围为300~1100 hPa。

● 三轴加速度传感器的型号为LIS3DH,采用数字信号输出和IIC通信接口,量程可设置为±2g、±4g、±8g、±16g(g为重力加速度),16位数据输出。

● 距离传感器的型号为GP2D12,采用模拟信号输出,测量范围为10~80 cm,更新频率为40 ms。

● 采用继电器控制,输出节点有两路继电器接口,支持5 V电源开关控制。

● 语音识别传感器的型号为LD3320,支持非特定人识别,具有50条识别容量,返回形式丰富,采用串口通信。

2)控制类开发平台(Sensor-B)

控制类开发平台包括:风扇、步进电机、蜂鸣器、LED、RGB灯、继电器接口,如图1.13所示。

图1.13 控制类开发平台

● 两路RJ45工业接口,包含IO、DC 3.3 V、DC 5 V、UART、RS-485、两路继电器输出等功能,提供两路3.3 V、5 V、12 V电源输出。

● 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入节点进行数据通信。

● 风扇为小型风扇,采用低电平驱动。

● 步进电机为小型42步进电机,驱动芯片为A3967SLB,逻辑电源电压范围为3.0~5.5 V。

● 使用小型蜂鸣器,采用低电平驱动。

● 两路高亮LED灯,采用低电平驱动。

● RGB灯采用低电平驱动,可组合出任何颜色。

● 采用继电器控制,输出节点有两路继电器接口,支持5 V电源开关控制。

3)安防类开发平台(Sensor-C)

安防类开发平台包括:火焰传感器、光栅传感器、人体红外传感器、燃气传感器、触摸传感器、振动传感器、霍尔传感器、继电器接口、语音合成传感器等,如图1.14所示。

图1.14 安防类开发平台

● 两路RJ45工业接口,包含IO、DC 3.3 V、DC 5 V、UART、RS-485、两路继电器输出等功能,提供两路3.3 V、5 V、12 V电源输出。

● 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入节点进行数据通信。

● 火焰传感器采用5 mm的探头,可检测火焰或波长为760~1100 nm的光源,探测温度为60℃左右,采用数字开关量输出。

● 光栅传感器的槽式光耦槽宽为10 mm,工作电压为5 V,采用数字开关量信号输出。

● 人体红外传感器的型号为AS312,电源电压为3 V,感应距离为12 m,采用数字开关量信号输出。

● 燃气传感器的型号为MP-4,采用模拟信号输出,传感器加热电压为5 V,供电电压为5 V,可测量天然气、甲烷、瓦斯气、沼气等。

● 触摸传感器的型号为SOT23-6,采用数字开关量信号输出,检测到触摸时,输出电平翻转。

● 振动传感器在低电平时有效,采用数字开关量信号输出。

● 霍尔传感器的型号为AH3144,电源电压为5 V,采用数字开关量输出,工作频率宽(0~100 kHz)。

● 采用继电器控制,输出节点有两路继电器接口,支持5 V电源开关控制。

● 语音合成传感器的型号为SYN6288,采用串口通信,支持GB2312、GBK、UNICODE等编码,可设置音量、背景音乐等。

3.长距离无线通信技术的开发环境

为了避免多个开发和编译环境给初学者在学习无线传感器网络时造成的困扰,本书在选择芯片时选用了TI开发平台,LoRa、NB-IoT和LTE都使用TI公司研发的芯片。这三种芯片的协议栈开发环境均为IAR集成开发环境。另外,这三种网络选用的是射频模块加控制芯片的组合,在程序开发时只需要对控制芯片进行操作即可。控制芯片选用的是意法半导体公司生产的STM32微处理器,IAR集成开发环境对STM32微处理器也有很好的支持。因此,无线传感器网络程序的开发均使用IAR集成开发环境。

除了开发环境,意法半导体公司还提供了许多可用的工具,如网络调试工具、抓包工具等,为了方便初学者对无线传感器网络的学习,本书也开发了功能强大的综合调试工具。

1)IAR集成开发环境的主窗口界面

IAR集成开发环境的主窗口界面如图1.15所示。

(1)Menu Bar(菜单栏):包含IAR的所有操作及内容,在编辑模式和调试模式下存在一些不同。

(2)Tool Bar(工具栏):包含一些常见的快捷按钮。

(3)Workspace Window(工作空间窗口):一个工作空间可以包含多个工程,该窗口主要显示工作空间中工程项目的内容。

(4)Edit Window(编辑窗口):代码编辑区域。

(5)Message Window(信息窗口):包括编译信息、调试信息、查找信息等内容。

(6)Status Bar(状态栏):包含错误警告、光标行列等一些状态信息。

图1.15 IAR集成开发环境的主窗口界面

2)IAR集成开发环境的工具栏

工具栏上是主菜单部分功能的快捷按钮,这些快捷按钮之所以放置在工具栏上,是因为它们的使用频率较高。例如,编译按钮,这个按钮在编程时使用的频率相当高,这些按钮大部分也有对应的快捷键。

IAR的工具栏共有两个:主工具栏和调试工具栏。编辑(默认)模式下只显示主工具栏,进入调试模式后会显示调试工具栏。

主工具栏可以通过菜单打开,即“View→Toolbars→Main”,如图1.16所示。

图1.16 IAR集成开发环境的工具栏

(1)IAR集成开发环境的主工具栏。在编辑模式下,只显示主工具栏,其中的内容也是编辑模式下常用的快捷按钮,如图1.17所示。

● New Document:新建文件,快捷键为Ctrl+N。

● Open:打开文件,快捷键为Ctrl+O。

● Save:保存文件,快捷键为Ctrl+S。

● Save All:保存所有文件。

● Print:打印文件,快捷键为Ctrl+P。

图1.17 IAR集成开发环境的主工具栏

● Cut:剪切,快捷键为Ctrl+X。

● Copy:复制,快捷键为Ctrl+C。

● Paste:粘贴,快捷键为Ctrl+V。

● Undo:撤销编辑,快捷键为Ctrl+Z。

● Redo:恢复编辑,快捷键为Ctrl+Y。

● Quick Search Text Box:快速搜索文本框。

● Find Previous:向前查找,快捷键为Shift+F3。

● Find Next:向后查找,快捷键为F3。

● Find:查找(增强),快捷键为Ctrl+F。

● Replace:替换,快捷键为Ctrl+H。

● Go To:前往行列,快捷键为Ctrl+G。

● Toggle Bookmark:标记/取消书签,快捷键为Ctrl+F2。

● Previous Bookmark:跳转到上一个书签,快捷键为Shift+F2。

● Next Bookmark:跳转到下一个书签,快捷键为F2。

● Navigate Forward:跳转到下一步,快捷键为Alt+右箭头。

● Navigate Backward:跳转到上一步,快捷键为Alt+左箭头。

● Compile:编译,快捷键为Ctrl+F7。

● Make:编译工程(构建),快捷键为F7。

● Stop Build:停止编译,快捷键为Ctrl+Break。

● Toggle Breakpoint:编辑/取消断点,快捷键为Ctrl+F9。

● Download and Debug:下载并调试,快捷键为Ctrl+D。

● Debug without Downloading:调试(不下载)。

(2)IAR集成开发环境的调试工具栏。调试工具栏是在程序调试模式下才显示的快捷按钮,在编辑模式下,这些按钮是不显示的,如图1.18所示,各个图标说明依次如下。

图1.18 IAR集成开发环境的调试工具栏

● Reset:复位。

● Break:停止运行。

● Step Over:逐行运行,快捷键为F10。

● Step Into:跳入运行,快捷键为F11。

● Step Out:跳出运行,快捷键为F11。

● Next Statement:运行到下一语句。

● Run to Cursor:运行到光标行。

● Go:全速运行,快捷键为F5。

● Stop Debugging:停止调试,快捷键为Ctrl+Shift+D。

逐行运行也称为逐步运行,跳入运行也称为单步运行,运行到下一语句和逐行运行类似。