●章 概述 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
0章 通過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的Android APP模板 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的Android APP編程的更深入討論 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
1章 通用嵌入式計算機的概念與組成 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
2章 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
3章 基於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
4章 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
5章 基於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
6章 進一步討論 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
內容簡介
本書遵循由個別到一般,又由一般到個別的哲學原理,研究窄帶物聯網(NB-IoT)應用開發共性技術,目標是降低開發門檻、節約開發成本、縮短開發時間。 本書從技術科學層面提出了NB-IoT應用架構,形成可復用、可移植的模板、構件和類,成為NB-IoT應用開發的“基石”。NB-IoT應用架構由終端(UE)、信息郵局(MPO)、人機交互繫統(HCI)三個部分組成。針對UE,本書提出了通用嵌入式計算機(GEC)的概念,在硬件上把MCU硬件很小繫統及面向具體應用的共性電路封裝成一個整體,為用戶提供芯片級的可重用的硬件實體;在軟件上,把嵌入式軟件分為BIOS程序與User程序兩部分。針對MPO,本書將其抽像為固定IP地址及端口。針對HCI,本書凝練出雲平臺偵聽程序、客戶端程序、Web網頁程序、微信小程序、手機APP程序等應用模板,為“照葫蘆畫瓢”地完成具體的NB-IoT應用開發提供共性技術。全書形成了以G......