新一代信息技術(shù)是推動(dòng)國民經(jīng)濟(jì)智能化轉(zhuǎn)型、高端化升級(jí)、綠色化發(fā)展的重要力量。黨的二十大報(bào)告強(qiáng)調(diào): 必須堅(jiān)持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動(dòng)力,深入實(shí)施科教興國戰(zhàn)略、人才強(qiáng)國戰(zhàn)略、創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,開辟發(fā)展新領(lǐng)域新賽道,不斷塑造發(fā)展新動(dòng)能新優(yōu)勢(shì)。
物聯(lián)網(wǎng)作為一項(xiàng)國家戰(zhàn)略性新興產(chǎn)業(yè),是我國新型基礎(chǔ)設(shè)施建設(shè)的重要組成部分,近年來獲得工業(yè)和信息化部等部門在政策、規(guī)劃、生態(tài)、人才等方面的支持。當(dāng)前,物聯(lián)網(wǎng)技術(shù)在智慧家居、智能制造等場(chǎng)景獲得廣泛應(yīng)用,在連接數(shù)量、經(jīng)濟(jì)產(chǎn)值等方面迎來高速增長。萬物互聯(lián)的時(shí)代已經(jīng)到來。
物聯(lián)網(wǎng)軟件的設(shè)計(jì)與開發(fā),涉及通信、軟件、電子等多種學(xué)科,嵌入式技術(shù)、移動(dòng)端開發(fā)、云平臺(tái)應(yīng)用等多門知識(shí),以及Arduino、樹莓派、小熊派等多類國內(nèi)外產(chǎn)品。那些熟手們信手拈來的技術(shù)和產(chǎn)品,對(duì)于初學(xué)者往往眼花繚亂。因此,本書面向本科生、研究生和物聯(lián)網(wǎng)開發(fā)愛好者,一方面在系統(tǒng)性上,以物聯(lián)網(wǎng)軟件開發(fā)為引線,將有關(guān)的網(wǎng)絡(luò)原理、軟件知識(shí)、新興技術(shù)等串聯(lián)講解,期望讀者不僅能從一本書中初窺物聯(lián)網(wǎng)系統(tǒng)的軟件概貌,還能在設(shè)計(jì)和開發(fā)的實(shí)踐中隨時(shí)查詢; 另一方面在前沿性上,以一套典型的物聯(lián)網(wǎng)系統(tǒng)軟件開發(fā)案例為驅(qū)動(dòng),不僅介紹了傳統(tǒng)的嵌入式端和移動(dòng)端,還介紹了新興的物聯(lián)網(wǎng)云平臺(tái)以及物聯(lián)網(wǎng)關(guān)鍵技術(shù)的發(fā)展趨勢(shì),從而實(shí)現(xiàn)嵌入式、移動(dòng)端、云端內(nèi)容的融合和貫穿。本書以原理介紹案例分析項(xiàng)目實(shí)踐為線索組織內(nèi)容,同時(shí)覆蓋了理論學(xué)習(xí)和實(shí)踐應(yīng)用的需求。
本書共三個(gè)單元,分別介紹了物聯(lián)網(wǎng)和軟件的背景知識(shí)、物端中嵌入式和移動(dòng)端的開發(fā)基礎(chǔ),以及云端開發(fā)的主要概念。其中,第一單元從物聯(lián)網(wǎng)基礎(chǔ)、軟硬件選型兩方面展開,可供初學(xué)者根據(jù)專業(yè)類別和先修課程進(jìn)行選擇性學(xué)習(xí); 第二單元從嵌入式、移動(dòng)端、網(wǎng)絡(luò)接入三點(diǎn)展開,是物聯(lián)網(wǎng)系統(tǒng)軟件開發(fā)的主體部分,需要讀者具備一定的軟件開發(fā)基礎(chǔ); 第三單元從平臺(tái)、系統(tǒng)、趨勢(shì)等角度介紹了物聯(lián)網(wǎng)云端,可供讀者在學(xué)有余力或課時(shí)充足時(shí)學(xué)習(xí)。
本書配套教學(xué)課件及程序源碼,讀者可從清華大學(xué)出版社官方網(wǎng)站下載。同時(shí),還出版了實(shí)驗(yàn)指導(dǎo)教材《物聯(lián)網(wǎng)技術(shù)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)》,可與本書配套使用。
本書得到軟件工程教學(xué)指導(dǎo)委員會(huì)、西北工業(yè)大學(xué)教材建設(shè)項(xiàng)目(W013121)、國家自然科學(xué)基金資助項(xiàng)目(61901388)的支持。感謝吳健、邢建民、王竹平、王麗芳等專家的指導(dǎo)和建議,感謝團(tuán)隊(duì)所有師生對(duì)本書編排和修訂的貢獻(xiàn),感謝所有為本書順利出版提供幫助的各界人士以及所有參閱材料的作者。作者水平有限,書中難免存在疏漏之處,敬請(qǐng)各位讀者、同仁批評(píng)指正,作者將不勝感激。
作者2023年8月
第一單元物聯(lián)網(wǎng)軟件開發(fā)基礎(chǔ)
第1章物聯(lián)網(wǎng)基礎(chǔ)
1.1物聯(lián)網(wǎng)的體系架構(gòu)
1.1.1感知層
1.1.2網(wǎng)絡(luò)層
1.1.3應(yīng)用層
1.2物聯(lián)網(wǎng)的端系統(tǒng)
1.2.1物端
1.2.2移動(dòng)端
1.2.3云端
1.3本章小結(jié)
1.4課后習(xí)題
第2章設(shè)備選型和技術(shù)選型
2.1開發(fā)板設(shè)備選型
2.1.1CC3200
2.1.2Arduino
2.1.3樹莓派
2.1.4開發(fā)板小結(jié)與比較
2.2通信技術(shù)選型
2.2.1物聯(lián)網(wǎng)的典型通信技術(shù)
2.2.2有線通信
2.2.3無線短距離通信
2.2.4無線長距離通信
2.3軟件開發(fā)技術(shù)選型
2.3.1常見的軟件開發(fā)模型
2.3.2一般開發(fā)流程
2.4本章小結(jié)
2.5課后習(xí)題
第二單元物聯(lián)網(wǎng)設(shè)備端系統(tǒng)開發(fā)與案例分析
第3章嵌入式實(shí)時(shí)操作系統(tǒng)FreeRTOS原理
3.1FreeRTOS概述
3.2FreeRTOS體系結(jié)構(gòu)
3.2.1任務(wù)管理模塊
3.2.2時(shí)間管理模塊
3.2.3內(nèi)存管理模塊
3.2.4協(xié)同例程管理模塊
3.3FreeRTOS調(diào)度機(jī)制
3.3.1任務(wù)結(jié)構(gòu)
3.3.2任務(wù)調(diào)度原理
3.4本章小結(jié)
3.5課后習(xí)題
目錄
物聯(lián)網(wǎng)技術(shù)基礎(chǔ)
第4章移動(dòng)端Android應(yīng)用開發(fā)基礎(chǔ)及高級(jí)編程
4.1Android系統(tǒng)概述
4.1.1Android的發(fā)展和簡介
4.1.2Android平臺(tái)架構(gòu)及特性
4.2Android基本組件
4.2.1Activity
4.2.2Service
4.2.3ContentProvider
4.2.4BroadcastReceiver
4.3Android事件處理
4.3.1事件處理的基本概念
4.3.2基于監(jiān)聽的事件處理
4.3.3基于回調(diào)的事件處理
4.3.4Handler消息傳遞機(jī)制
4.4Android應(yīng)用開發(fā)基礎(chǔ)
4.4.1安裝Android Studio與SDK
4.4.2安裝過程中的常見問題
4.4.3Android 項(xiàng)目組織結(jié)構(gòu)
4.4.4build.gradle文件簡析
4.4.5開始第一個(gè)Android應(yīng)用
4.5Android界面編程
4.5.1基礎(chǔ)控件
4.5.2自定義控件
4.5.3布局管理器
4.5.4案例: 通信軟件界面設(shè)計(jì)與實(shí)現(xiàn)
4.6Android網(wǎng)絡(luò)編程
4.6.1基于TCP的網(wǎng)絡(luò)通信
4.6.2使用HTTP訪問網(wǎng)絡(luò)
4.6.3OkHttp網(wǎng)絡(luò)框架
4.7本章小結(jié)
4.8課后習(xí)題
第5章物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)議基礎(chǔ)
5.1物聯(lián)網(wǎng)網(wǎng)關(guān)
5.2HTTP
5.2.1HTTP介紹
5.2.2HTTP的原理
5.2.3HTTP請(qǐng)求及響應(yīng)
5.2.4示例
5.3MQTT協(xié)議
5.3.1MQTT協(xié)議介紹
5.3.2MQTT協(xié)議的原理
5.3.3示例
5.4LwM2M協(xié)議
5.4.1LwM2M協(xié)議介紹
5.4.2LwM2M協(xié)議的原理
5.4.3示例
5.5Modbus協(xié)議
5.5.1Modbus協(xié)議介紹
5.5.2Modbus協(xié)議的原理
5.5.3示例
5.6本章小結(jié)
5.7課后習(xí)題
第三單元物聯(lián)網(wǎng)云端系統(tǒng)開發(fā)與案例分析
第6章物聯(lián)網(wǎng)云平臺(tái)基礎(chǔ)
6.1物聯(lián)網(wǎng)云平臺(tái)概述
6.1.1背景介紹
6.1.2物聯(lián)網(wǎng)云平臺(tái)的體系架構(gòu)與設(shè)計(jì)要點(diǎn)
6.1.3物聯(lián)網(wǎng)云平臺(tái)的主要功能與核心技術(shù)
6.2典型的物聯(lián)網(wǎng)云平臺(tái)
6.2.1阿里云物聯(lián)網(wǎng)平臺(tái)
6.2.2亞馬遜云物聯(lián)網(wǎng)平臺(tái)
6.2.3華為云物聯(lián)網(wǎng)平臺(tái)
6.2.4典型的物聯(lián)網(wǎng)云平臺(tái)對(duì)比
6.3物聯(lián)網(wǎng)云平臺(tái)的安全問題
6.3.1物聯(lián)網(wǎng)層次安全問題
6.3.2物聯(lián)網(wǎng)安全威脅
6.3.3物聯(lián)網(wǎng)安全展望
6.4基于云平臺(tái)的物聯(lián)網(wǎng)軟件開發(fā)趨勢(shì)
6.4.1軟件開發(fā)趨勢(shì)
6.4.2Kubernetes與物聯(lián)網(wǎng)云平臺(tái)
6.4.3Kubernetes的結(jié)構(gòu)與機(jī)理
6.5本章小結(jié)
6.6課后習(xí)題
第7章物聯(lián)網(wǎng)的操作系統(tǒng)
7.1物聯(lián)網(wǎng)操作系統(tǒng)簡介
7.1.1操作系統(tǒng)設(shè)備管理
7.1.2操作系統(tǒng)存儲(chǔ)管理
7.1.3操作系統(tǒng)文件管理
7.2物聯(lián)網(wǎng)操作系統(tǒng)的安全技術(shù)
7.2.1操作系統(tǒng)的安全體系
7.2.2操作系統(tǒng)的權(quán)限管理
7.2.3操作系統(tǒng)的安全問題
7.2.4操作系統(tǒng)的安全技術(shù)
7.3物聯(lián)網(wǎng)操作系統(tǒng)的數(shù)據(jù)存儲(chǔ)技術(shù)
7.3.1物聯(lián)網(wǎng)海量數(shù)據(jù)存儲(chǔ)需求
7.3.2數(shù)據(jù)存儲(chǔ)的體系結(jié)構(gòu)
7.3.3數(shù)據(jù)查詢的性能優(yōu)化
7.3.4數(shù)據(jù)存儲(chǔ)前沿技術(shù)
7.4物聯(lián)網(wǎng)操作系統(tǒng)的開發(fā)技術(shù)
7.4.1負(fù)載均衡
7.4.2Java Web
7.5本章小結(jié)
7.6課后習(xí)題
第8章華為鴻蒙介紹
8.1鴻蒙的設(shè)計(jì)理念
8.1.1面向物聯(lián)網(wǎng)的操作系統(tǒng)
8.1.2全場(chǎng)景發(fā)展戰(zhàn)略
8.1.3超級(jí)終端
8.2鴻蒙的關(guān)鍵技術(shù)
8.2.1分布式架構(gòu)
8.2.2一次開發(fā),多端部署
8.2.3微內(nèi)核
8.2.4系統(tǒng)流暢
8.3系統(tǒng)安全
8.3.1分布式多端協(xié)同身份認(rèn)證
8.3.2在分布式終端上構(gòu)筑可信運(yùn)行環(huán)境
8.3.3數(shù)據(jù)分類分級(jí)管理
8.4系統(tǒng)架構(gòu)
8.4.1內(nèi)核層
8.4.2系統(tǒng)服務(wù)層
8.4.3框架層
8.4.4應(yīng)用層
8.5多設(shè)備虛擬網(wǎng)絡(luò)
8.5.1周邊設(shè)備自發(fā)現(xiàn)
8.5.2異構(gòu)網(wǎng)絡(luò)組網(wǎng)
8.5.3極簡傳輸協(xié)議
8.6鴻蒙與Android對(duì)比
8.7本章小結(jié)
8.8課后習(xí)題
參考文獻(xiàn)
附錄A縮略詞