本书把窄带物联网(NB-IoT)的应用知识体系归纳为终端、信息邮局、人机交互系统 3 个有机组成部分。针对终端,给出通用嵌入式计算机的概念,并将其软件分为 BIOS 与 User 两部分;针对信息邮局, 将其抽象为固定 IP 地址与端口,并由此设计了云侦听程序模板;针对人机交互系统,设计了 Web 网页、 微信小程序、手机 App 及 PC 客户端等模板。本书形成了以通用嵌入式计算机为核心、以构件为支撑、 以工程模板为基础的 NB-IoT 应用开发生态系统,构成了 NB-IoT 技术基础与应用知识体系,可有效降低 读者的学习与应用门槛。
本书提供辅助教学资源(电子资源),内含所有源程序、视频索引、文档资料及常用软件工具。电子资源可通过搜索“苏州大学嵌入式学习社区”→“金葫芦专区”→“窄带物联网教材”下载获取,也可 在手机微信端搜索“窄带物联网教材”获取下载指引。
本书可作为高等院校物联网工程专业相关课程的教材,也可作为物联网工程相关领域学者学习的参考用书,还可作为 NB-IoT 应用技术的培训用书。
1.本书面向窄带物联网的实际应用开发,阐述其协议架构、基本通信原理及应用开发方法;
2.针对人机交互系统,设计了 Web 网页、 微信小程序、手机 App 及 PC 客户端等模板,无距离切换;
3.不仅给出了NB-IoT终端、云侦听、网页、微信小程序、手机App等应用模板,还给出了4G/5G、Wi-Fi、WSN等应用模板,助力读者快速上手并轻松实现物联网应用开发;
4.以通用嵌入式计算机为核心、以构件为支撑、 以工程模板为基础的 NB-IoT 应用开发生态系统,构成了 NB-IoT 技术基础与应用知识体系;
5.干货满满,课程PPT、源程序、视频索引、教学指导方案、常用软件工具、开发环境下载导引、各类辅助阅读资料,让您事半功倍;
6.窄带物联网教材”微信小程序助您直观体验窄带物联网应用开发的相关知识与技术。
【王宜怀】
苏州大学计算机科学与技术学院教授、博士生导师;苏州大学嵌入式系统与物联网研究所所长;苏州市政协常委;江苏省计算机学会嵌入式系统与物联网专业委员会主任。长期从事嵌入式系统、实时操作系统、微型计算机原理、物联网应用技术等方面的课程教学。主要研究方向为嵌入式系统与物联网、嵌入式人工智能系统。
第 1章 NB-IoT概述与直观体验 1
1.1 NB-IoT简介 1
1.1.1 物联网无线通信连接方式的分类 2
1.1.2 NB-IoT简明发展历程与技术特点 2
1.1.3 为什么NB-IoT将会流行 4
1.2 NB-IoT技术与其他LPWAN技术比较 5
1.3 降低NB-IoT应用技术学习门槛的基本思路 6
1.3.1 NB-IoT应用开发所面临的难题 7
1.3.2 解决NB-IoT应用开发所面临难题的基本思路 7
1.4 直观体验NB-IoT数据传输 7
1.4.1 通过微信小程序方式的直观体验 8
1.4.2 通过网页浏览器方式的直观体验 8
1.4.3 通过Android手机App方式的直观体验 9
1.4.4 通过运行客户端程序的直观体验 9
1.5 实践平台—金葫芦NB-IoT开发套件简介 10
1.5.1 金葫芦NB-IoT开发套件设计思想 10
1.5.2 金葫芦NB-IoT开发套件硬件组成 11
1.5.3 金葫芦NB-IoT开发套件软件资源 13
1.5.4 AHL-GEC-IDE开发环境 13
1.6 实验一 初识NB-IoT通信 14
1.7 习题 15
第 2章 NB-IoT应用架构及通信基本过程 16
2.1 建立NB-IoT应用架构的基本原则 16
2.2 终端UE、信息邮局MPO与人机交互系统HCI的基本定义 16
2.2.1 NB-IoT终端UE 17
2.2.2 NB-IoT信息邮局MPO 17
2.2.3 NB-IoT人机交互系统HCI 17
2.3 NB-IoT通信过程与应用开发相关的基本概念 17
2.3.1 与终端UE相关的基本概念 18
2.3.2 与信息邮局MPO相关的基本概念 19
2.3.3 与人机交互系统HCI相关的基本概念 21
2.4 基于信息邮局初略了解基本通信过程 22
2.5 实验二 了解信息邮局MPO的基本参数 23
2.6 习题 24
第3章 终端UE基础构件知识要素与实践 25
3.1 终端UE的编程框架与三类构件 25
3.2 GPIO、UART及Flash构件 25
3.2.1 GPIO构件 25
3.2.2 UART构件 34
3.2.3 Flash构件 39
3.3 ADC与PWM构件 42
3.3.1 ADC构件 42
3.3.2 PWM构件 46
3.4 I2C与SPI构件 50
3.4.1 I2C构件 50
3.4.2 SPI构件 58
3.5 实验三 理解构件的使用方法 64
3.6 习题 66
第4章 终端UE与云侦听程序的通信过程 67
4.1 终端UE与云侦听模板工程功能简介 67
4.1.1 终端UE模板工程的运行流程 67
4.1.2 云侦听模板工程功能简介 67
4.2 建立云侦听程序的运行场景 68
4.2.1 FRP内网穿透基本原理 69
4.2.2 利用苏大云服务器搭建读者的临时服务器 69
4.3 运行云侦听与终端UE模板工程 72
4.3.1 运行终端UE模板工程 72
4.3.2 运行CS-Monitor模板工程 73
4.3.3 通信过程中常见错误说明 75
4.4 “照葫芦画瓢”设计自己的终端UE与云侦听程序 76
4.4.1 “照葫芦画瓢”更改终端用户程序 76
4.4.2 CS-Monitor程序的“照葫芦画瓢” 80
4.4.3 联合测试 83
4.5 实验四 终端UE与云侦听程序基本实践 84
4.6 习题 85
第5章 理解终端UE与云侦听程序 86
5.1 终端UE程序框架解析与执行流程 86
5.1.1 终端UE程序框架 86
5.1.2 终端UE的主流程及中断处理程序 88
5.2 理解终端UE与CS-Monitor通信构件UECom 91
5.2.1 UECom构件的设计要点 91
5.2.2 UECom构件头文件 92
5.2.3 UECom构件的使用方法 97
5.3 云侦听程序CS-Monitor框架解析与执行流程 99
5.3.1 WebSocket协议与JSON格式 99
5.3.2 CS-Monitor模板工程框架 100
5.3.3 CS-Monitor模板自动执行流程 102
5.3.4 NB-IoT应用架构的通信过程 110
5.3.5 CS-Monitor模板按键事件的解析 115
5.4 理解CS-Monitor中通信接口类HCICom 117
5.4.1 HCICom类的设计要点 118
5.4.2 HCICom类的属性、方法和事件 119
5.4.3 HCICom类的使用方法 120
5.5 理解数据入库过程 121
5.5.1 查看数据库与表的简单方法 121
5.5.2 各数据表的用途 122
5.5.3 操作数据库的基本编程方法 123
5.6 实验五 理解终端UE数据通过NB-IoT通信存入数据库 124
5.7 习题 126
第6章 通过Web网页的数据访问 127
6.1 运行Web模板观察自己终端UE数据 127
6.2 面向NB-IoT的Web网页设计 128
6.2.1 NB-IoT的Web网页模板工程结构 128
6.2.2 “照葫芦画瓢”设计自己的NB-IoT网页 129
6.3 理解NB-IoT的Web网页模板 131
6.3.1 NB-IoT的Web网页模板功能分析 132
6.3.2 通过Web网页的数据访问过程 132
6.3.3 NB-IoT的Web网页编程的进一步讨论 140
6.4 实验六 终端UE数据实时到达Web网页 142
6.5 习题 143
第7章 通过微信小程序的数据访问 144
7.1 运行小程序模板观察自己终端UE数据 144
7.2 在开发环境中运行NB-IoT微信小程序 145
7.2.1 前期准备 145
7.2.2 运行NB-IoT微信小程序 146
7.3 基本理解NB-IoT的微信小程序模板 149
7.3.1 NB-IoT的微信小程序模板工程结构 149
7.3.2 NB-IoT的微信小程序模板开发过程 150
7.3.3 NB-IoT的微信小程序的运行分析 153
7.4 NB-IoT的微信小程序编程的进一步讨论 155
7.4.1 微信小程序的函数执行流程 155
7.4.2 微信小程序的WebSocket连接 156
7.4.3 数据的处理与使用 159
7.4.4 组件模板 162
7.5 “照葫芦画瓢”开发自己的NB-IoT的微信小程序 163
7.6 NB-IoT微信小程序模板的发布 165
7.7 实验七 微信小程序实时控制终端 166
7.8 习题 167
第8章 通过Android App的数据访问 168
8.1 在开发环境中运行NB_IoT的Android App 168
8.1.1 开发环境的安装 168
8.1.2 项目导入并编译运行 169
8.2 运行Android App模板观察自己终端UE数据 171
8.3 基本理解NB-IoT的Android端App模板 172
8.3.1 NB-IoT的Android端App开发环境 172
8.3.2 NB-IoT的Android端App模板工程结构 173
8.3.3 NB-IoT的Android端App模板执行过程 176
8.4 NB-IoT的Android端App编程的深入讨论 181
8.4.1 App函数执行流程 182
8.4.2 WebSocket连接建立 183
8.4.3 WebSocket数据处理 183
8.4.4 动态生成控件 185
8.5 “照葫芦画瓢”开发自己的NB-IOT的Android App 186
8.6 实验八 终端UE数据实时到达Android App 189
8.7 习题 190
第9章 通过PC客户端的数据访问 191
9.1 运行CS-Client模板观察自己终端UE数据 191
9.2 基本理解CS-Client的编程模板 192
9.2.1 CS-Client编程模板的工程结构 192
9.2.2 PC客户端模板执行流程 193
9.2.3 主要按键事件的实现 199
9.3 CS-Client 程序的“照葫芦画瓢” 202
9.4 实验九 终端UE数据实时到达PC客户端 205
9.5 习题 206
第 10章 4G/5G、Wi-Fi及WSN通信方式的接入 207
10.1 4G通信方式 207
10.1.1 4G/5G通信概述 207
10.1.2 AHL-4G开发套件简介 208
10.1.3 运行AHL-4G模板 212
10.1.4 AHL-4G的“照葫芦画瓢” 215
10.2 Wi-Fi通信方式 219
10.2.1 Wi-Fi通信概述 219
10.2.2 AHL-Wi-Fi开发套件简介 220
10.2.3 运行AHL-Wi-Fi模板 222
10.2.4 AHL-Wi-Fi的“照葫芦画瓢” 226
10.3 WSN通信方式 227
10.3.1 WSN通信概述 228
10.3.2 AHL-WSN开发套件简介 228
10.3.3 运行AHL-WSN模板 231
10.3.4 AHL-WSN的“照葫芦画瓢” 232
10.4 Wi-Fi与WSN相结合的物联网系统 234
10.5 实验十 Wi-Fi与WSN相结合实现上行通信 236
10.6 习题 237
第 11章 外接组件的“照葫芦画瓢” 238
11.1 开关量输出类驱动构件 238
11.1.1 彩灯 238
11.1.2 蜂鸣器 240
11.1.3 马达 242
11.1.4 LED 244
11.2 开关量输入类驱动构件 245
11.2.1 红外寻迹传感器 245
11.2.2 人体红外传感器 248
11.2.3 按钮 250
11.3 声音与加速度传感器驱动构件 254
11.3.1 声音传感器 254
11.3.2 加速度传感器 256
11.4 基于NB-IoT通信的综合实践 258
11.4.1 终端UE程序修改 259
11.4.2 CS-Monitor程序修改 263
11.4.3 运行结果 265
11.5 习题 265
附录 AHL-NB-IoT实践平台硬件资源 266
参考文献 280