第1章 概述 1
1.1 窄带物联网NB-IoT简介 2
1.1.1 物联网连接的分类 2
1.1.2 NB-IoT的起源及简明发展历程 3
1.1.3 NB-IoT技术特点及其与其他LPWAN技术比较 4
1.1.4 为什么NB-IoT会流行 6
1.2 降低NB-IoT应用开发技术门槛的基本思路 8
1.2.1 NB-IoT应用开发所面临的难题 8
1.2.2 解决NB-IoT应用开发所面临难题的基本思路 9
1.3 本书主要内容 9
第2章 NB-IoT应用架构的基本要素 13
2.1 建立NB-IoT应用架构的基本原则 13
2.2 UE、MPO与HCI的基本定义 13
2.2.1 NB-IoT终端(UE) 14
2.2.2 NB-IoT信息邮局(MPO) 14
2.2.3 NB-IoT人机交互系统(HCI) 15
2.3 NB-IoT通信过程与应用开发相关的基本概念 15
2.3.1 与终端UE相关的基本概念 15
2.3.2 与信息邮局(MPO)相关的基本概念 17
2.3.3 与人机交互系统(HCI)相关的基本概念 19
2.4 对NB-IoT通信过程的简明理解 20
2.5 本章小结 21
第3章 NB-IoT通信快速测试方法 22
3.1 无须终端(UE)硬件情况下测试NB-IoT通信 22
3.2 初步理解整个通信过程 25
3.3 金葫芦IoT-GEC开发套件基本描述 27
3.3.1 金葫芦IoT-GEC开发套件设计思想 27
3.3.2 金葫芦IoT开发套件硬件组成 28
3.3.3 金葫芦IoT-GEC开发套件的文档与软件模板 29
3.4 利用金葫芦IoT-GEC开发套件理解NB-IoT通信过程 30
3.4.1 金葫芦IoT-GEC开发套件的硬件系统快速测试方法 30
3.4.2 终端(UE)与人机交互系统(HCI)通信快速测试方法 31
3.5 下载与测试终端用户程序 32
3.5.1 用户程序更新软件AHL-UserPrgUpdate 32
3.5.2 下载过程中常见的错误及解决方法 35
3.6 本章小结 37
第4章 理解NB-IoT的通信过程 38
4.1 理解终端用户程序的执行过程 38
4.1.1 开发终端用户程序使用的集成开发环境 38
4.1.2 终端(UE)中BIOS程序主要功能 39
4.1.3 终端(UE)的用户程序工程结构 40
4.1.4 User_GEC_Basic主流程及中断处理程序 42
4.2 初步理解UE与MPO的构件UECom 46
4.2.1 UECom构件的设计要点 46
4.2.2 UECom构件的头文件 47
4.2.3 UECom构件的使用方法 53
4.3 理解用户服务器侦听程序US-Monitor的执行过程 55
4.3.1 US-Monitor工程框架 55
4.3.2 US-Monitor的执行过程 56
4.4 初步理解HCI与MPO的通信接口类HCICom 58
4.4.1 HCICom类的设计要点 58
4.4.2 HCICom类的属性、方法和事件 60
4.4.3 HCICom类的使用方法 62
4.5 理解数据入库过程 63
4.5.1 查看数据库与表的简单方法 63
4.5.2 各数据表的用途 64
4.5.3 操作数据库的基本编程方法 66
4.6 本章小结 67
第5章 基于云转发服务的“照葫芦画瓢”样例 68
5.1 功能需求:增加热敏传感器 68
5.2 “照葫芦画瓢”:终端用户程序的更改 70
5.2.1 终端用户程序“画瓢处”的查找、确认 70
5.2.2 终端用户程序内容修改 71
5.3 “照葫芦画瓢”:US-Monitor的更改 73
5.3.1 US-Monitor程序“画瓢处”的查找、确认 73
5.3.2 US-Monitor程序内容的修改 74
5.4 联合测试及自我练习 76
5.4.1 联合测试 76
5.4.2 自我练习 77
5.5 本章小结 77
第6章 云服务器侦听程序CS-Monitor 78
6.1 云服务器侦听程序CS-Monitor涉及的技术基础 78
6.1.1 云服务器侦听程序CS-Monitor的概念 78
6.1.2 WebSocket协议概述 79
6.1.3 JSON格式 80
6.2 开发CS-Monitor程序的基本条件 80
6.2.1 申请与登录远程云服务器 80
6.2.2 在云服务器CS上安装必要的软件 82
6.3 运行CS-Monitor编程模板 83
6.3.1 确认网络端口是否己对外开放 83
6.3.2 复制CS-Monitor工程与数据库 84
6.3.3 修改AHL.xml文件中有关连接配置 85
6.3.4 修改UE程序的发送地址 85
6.3.5 运行CS-Monitor程序 86
6.4 基本理解CS-Monitor编程模板 88
6.4.1 CS-Monitor编程模板的工程框架 89
6.4.2 CS-Monitor编程模板的自动执行流程 91
6.4.3 WebSocket服务器与客户端的通信 101
6.4.4 CS-Monitor编程模板按键事件的解析 107
6.5 CS-Monitor程序的“照葫芦画瓢” 109
6.6 本章小结 110
第7章 通过PC客户端的数据访问 111
7.1 运行CS-Client及观察自己的NB-IoT终端实时数据 111
7.1.1 直接运行CS-Client编程模板 111
7.1.2 观察NB-IoT终端的实时数据 114
7.2 基本理解CS-Client的编程模板 115
7.2.1 CS-Client编程模板的结构 115
7.2.2 PC客户端模板执行流程 116
7.2.3 主要按键事件的实现 122
7.3 CS-Client程序的“照葫芦画瓢” 125
7.4 本章小结 126
第8章 通过Web网页的数据访问 128
8.1 运行Web网页及观察NB-IoT终端的实时数据 128
8.1.1 打开NB-IoT的Web网页方法 128
8.1.2 观察NB-IoT终端实时数据 129
8.2 基本理解NB-IoT的Web网页模板 130
8.2.1 NB-IoT的Web网页模板的工程结构 130
8.2.2 NB-IoT的Web网页模板功能分析 131
8.2.3 通过Web网页的数据访问过程 132
8.2.4 NB-IoT的Web网页编程的进一步讨论 140
8.3 NB-Web网页的“照葫芦画瓢” 142
8.4 本章小结 144
第9章 通过微信小程序的数据访问 145
9.1 运行已发布的NB-IoT微信小程序 145
9.1.1 直接运行微信小程序模板 145
9.1.2 观察自己的NB-IoT终端实时数据 146
9.2 在开发环境中运行NB-IoT微信小程序 147
9.2.1 前期准备 147
9.2.2 运行NB-IoT微信小程序 148
9.3 基本理解NB-IoT的微信小程序模板 151
9.3.1 NB-IoT的微信小程序模板工程结构 151
9.3.2 NB-IoT的微信小程序模板开发过程 153
9.3.3 NB-IoT的微信小程序的运行分析 156
9.4 NB-IoT微信小程序编程的进一步讨论 158
9.4.1 微信小程序的函数执行流程 158
9.4.2 微信小程序的WebSocket连接 160
9.4.3 数据的处理与使用 162
9.4.4 组件模板 166
9.5 “照葫芦画瓢”:开发自己的NB-IoT微信小程序 167
9.5.1 “照葫芦画瓢”:实现新增温度的添加 168
9.5.2 “照葫芦画瓢”:动态组件的生成 170
9.5.3 “照葫芦画瓢”:添加一个页面功能 170
9.5.4 “照葫芦画瓢”:导航菜单的创建 171
9.6 NB-IoT微信小程序模板的发布 171
9.7 本章小结 172
第10章 通过Android APP的数据访问 173
10.1 查看已发布的NB-IoT的Android APP 173
10.1.1 直接运行Android APP模板 173
10.1.2 观察自己的NB-IoT终端实时数据 174
10.2 在开发环境中运行NB-IoT的Android APP 175
10.2.1 开发环境的安装 175
10.2.2 项目导入并编译运行 175
10.3 基本理解NB-IoT的AndroidAPP模板 177
10.3.1 NB-IoT的Android APP开发环境 177
10.3.2 NB-IoT的Android APP模板工程结构 178
10.3.3 NB-IoT的Android APP模板的执行过程 180
10.4 NB-IoT的AndroidAPP编程的更深入讨论 185
10.4.1 APP函数执行流程 185
10.4.2 WebSocket连接的建立 185
10.4.3 WebSocket数据处理 187
10.5 “照葫芦画瓢”:开发自己的NB-IoT的Android APP 189
10.5.1 “照葫芦画瓢”:实现新增温度的添加 190
10.5.2 “照葫芦画瓢”:动态生成控件 191
10.6 本章小结 193
第11章 通过嵌入式计算机的概念与组成 194
11.1 提出GEC概念的缘由 194
11.1.1 物联网终端开发方式存在的问题与解决办法 194
11.1.2 提出GEC概念的时机、GEC的定义与特点 195
11.1.3 GEC在NB-IoT应用架构中的位置 197
11.2 GEC的硬件实例 198
11.2.1 金葫芦IoT-GEC型号含义 198
11.2.2 金葫芦AHL-A系列硬件组成 199
11.2.3 金葫芦AHL-A系列引脚图 202
11.2.4 金葫芦AHL-A系列引脚功能表 203
11.3 GEC内的BIOS与User程序框架 205
11.3.1 GEC内的BIOS与User程序功能划分 205
11.3.2 User程序软件框架 207
11.3.3 GEC中的三类构件 209
11.4 本章小结 210
第12章 GEC常用基础构件 211
12.1 GPIO构件 211
12.1.1 GPIO构件的知识要素 211
12.1.2 GPIO构件的API 213
12.1.3 GPIO构件API的测试方法 215
12.2 UART构件 221
12.2.1 UART构件的知识要素 221
12.2.2 UART构件的API 223
12.2.3 UART构件API的测试方法 225
12.3 ADC构件 227
12.3.1 ADC构件的知识要素 227
12.3.2 ADC构件的API 229
12.3.3 ADC构件API的测试方法 229
12.4 Flash构件 231
12.4.1 Flash构件的知识要素 231
12.4.2 Flash构件的API 232
12.4.3 Flash构件API的测试方法 234
12.5 I2C构件 235
12.5.1 I2C构件的知识要素 235
12.5.2 I2C构件的API 240
12.5.3 I2C构件API的测试方法 242
12.6 SPI构件 244
12.6.1 SPI构件的知识要素 244
12.6.2 SPI构件的API 247
12.6.3 SPI构件API的测试方法 249
12.7 PWM构件 250
12.7.1 PWM构件的知识要素 251
12.7.2 PWM构件的API 253
12.7.3 PWM构件API的测试方法 254
12.8 本章小结 255
第13章 基于GEC的UE软/硬设计过程 256
13.1 输入/输出分析 256
13.1.1 输入/输出的共性分析 256
13.1.2 输入/输出的个性分析 257
13.2 快速规范的硬件评估 258
13.2.1 复制User工程框架 258
13.2.2 编程评估各硬件单元 259
13.3 硬件原理图绘制与PCB电路板制作 270
13.3.1 构件化硬件原理图绘制的简明规则 270
13.3.2 PCB布板的简明规则 274
13.4 功能软件的设计与测试 277
13.4.1 功能需求 277
13.4.2 GEC硬件需求 277
13.4.3 软件设计 277
13.4.4 软件测试 280
13.5 本章小结 281
第14章 UECom构件与HCICom类解析 282
14.1 UECom构件的设计与解析 282
14.1.1 UECom构件的基本实现过程 282
14.1.2 UECom构件主要函数的执行流程及代码解析 286
14.1.3 UECom构件的应用流程 294
14.2 HCICom类的设计与解析 295
14.2.1 HCICom类的成员变量 295
14.2.2 理解HCICom类的对外方法 295
14.2.3 HCICom类的应用流程 301
14.3 本章小结 301
第15章 基于GEC的NB-IoT应用产品开发实例 303
15.1 基于NB-IoT的实验室管家 303
15.1.1 LBS的输入/输出分析 303
15.1.2 LBS的硬件评估 305
15.1.3 LBS功能软件设计与测试 310
15.2 基于NB-IoT的多传感器数据采集系统 316
15.2.1 TE传感器输入/输出分析 316
15.2.2 TE传感器的硬件评估 318
15.2.3 TE传感器软件设计与测试 325
15.3 不同系统联合测试及总结 330
15.3.1 实验室管家系统的联合测试 330
15.3.2 多传感器数据采集系统的联合测试 331
15.3.3 软/硬件协同测试共性总结 332
15.4 本章小结 332
第16章 进一步讨论 334
16.1 新增部件基本方法 334
16.1.1 新增部件的构件制作 334
16.1.2 新增部件的测试方法 339
16.2 NB-WSN网关 343
16.2.1 NB-WSN网关的功能 343
16.2.2 NB-WSN网关实例 343
16.2.3 基于NB-WSN网关的NB-IoT应用架构 344
16.3 通信模组与MCU的更换问题 345
16.3.1 通信模组的更换问题 345
16.3.2 MCU的更换问题 345
16.4 安全问题 345
16.4.1 NB-IoT应用产品的安全需求分析 345
16.4.2 基于金葫芦NB-IoT应用架构的加密方法 347
16.5 实时操作系统(RTOS)的融入问题 347
16.5.1 RTOS的基本作用、选择与使用场景 348
16.5.2 RTOS中与任务相关的基本概念 348
16.5.3 RTOS下编程的一般步骤 353
16.6 本章小结 354
附录A 开发语言概要 355
附录B 终端(UE)涉及的文档 397
附录C 人机交互系统(HCI)涉及的文档 416
附录D HTU21D温湿度传感器中文技术手册 459
附录E 术语和缩写 473
参考文献 475