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