本書主要介紹如何使用HarmonyOS(鴻蒙操作系統(tǒng))開發(fā)物聯(lián)網(wǎng)設(shè)備端軟件,具體包括外設(shè)控制、網(wǎng)絡(luò)編程、物聯(lián)網(wǎng)平臺接入等。本書的實例程序均在HiSpark Wi-Fi IoT開發(fā)套件上進行測試和演示,部分章節(jié)內(nèi)容也適用于其他支持HarmonyOS的物聯(lián)網(wǎng)設(shè)備。
本書共8章,分為4篇,即環(huán)境準備篇、外設(shè)控制篇、傳輸協(xié)議篇、物聯(lián)網(wǎng)應(yīng)用篇。環(huán)境準備篇包含第1章,主要內(nèi)容為如何搭建HarmonyOS(鴻蒙操作系統(tǒng))開發(fā)環(huán)境。外設(shè)控制篇包含第2章~第4章,主要內(nèi)容為如何使用HarmonyOS(鴻蒙操作系統(tǒng))控制外設(shè)。傳輸協(xié)議篇包含第5章和第6章,主要內(nèi)容為如何使用HarmonyOS控制Wi-Fi,以及如何使用HarmonyOS(鴻蒙操作系統(tǒng))進行網(wǎng)絡(luò)編程。物聯(lián)網(wǎng)應(yīng)用篇包含第7章和第8章。通過學(xué)習(xí)第7章,讀者能夠?qū)?nèi)核對象有比較深刻的理解。第8章的主要內(nèi)容包括如何集成MQTT客戶端SDK,以及如何開發(fā)一個物聯(lián)網(wǎng)應(yīng)用。
本書適合物聯(lián)網(wǎng)設(shè)備開發(fā)、測試工程師閱讀,也適合開設(shè)相關(guān)課程的院校師生閱讀,還適合對HarmonyOS(鴻蒙操作系統(tǒng))生態(tài)未來發(fā)展趨勢感興趣的推動者、從業(yè)者和潛在的生態(tài)建設(shè)參與者閱讀。
適讀人群 :本書適合物聯(lián)網(wǎng)設(shè)備開發(fā)、測試工程師閱讀,也適合開設(shè)相關(guān)課程的院校師生閱讀,還適合對HarmonyOS生態(tài)未來發(fā)展趨勢感興趣的推動者、從業(yè)者和潛在的生態(tài)建設(shè)參與者閱讀。 HarmonyOS(鴻蒙操作系統(tǒng))是一款“面向未來”的操作系統(tǒng),是萬物互聯(lián)的基礎(chǔ),會給人們的生活帶來巨大的變化!
本書介紹如何使用HarmonyOS開發(fā)物聯(lián)網(wǎng)設(shè)備端軟件,具體包括外設(shè)控制、網(wǎng)絡(luò)編程、物聯(lián)網(wǎng)平臺接入等。從0到1,教你開發(fā)一個物聯(lián)網(wǎng)應(yīng)用。
為什么要寫這本書
本書的書名為《HarmonyOS IoT 設(shè)備開發(fā)實戰(zhàn)》,包含了兩個重要名詞—IoT(物聯(lián)網(wǎng))和HarmonyOS。物聯(lián)網(wǎng),顧名思義,就是物物相連的互聯(lián)網(wǎng)。這里包含兩層意思:第一,物聯(lián)網(wǎng)的核心和基礎(chǔ)仍然是互聯(lián)網(wǎng),物聯(lián)網(wǎng)是在互聯(lián)網(wǎng)基礎(chǔ)上延伸和擴展的網(wǎng)絡(luò);第二,其客戶端延伸和擴展到了物品與物品之間,進行信息交換和通信,也就是物物相關(guān)。
1999年在中國誕生的傳感網(wǎng),作為物聯(lián)網(wǎng)的雛形,距今已有22年。在這22年里,中國的物聯(lián)網(wǎng)獲得了長足的發(fā)展,尤其是近幾年,隨著《物聯(lián)網(wǎng)“十二五”發(fā)展規(guī)劃》等提出,物聯(lián)網(wǎng)已經(jīng)成為國家層面的技術(shù)及產(chǎn)業(yè)創(chuàng)新的重點方向。
據(jù)統(tǒng)計,2020年全球物聯(lián)網(wǎng)連接數(shù)量達到126億個,人均持有智能設(shè)備達到6.58個。預(yù)計到2025年,全球物聯(lián)網(wǎng)連接數(shù)量達到251億個,人均持有的智能設(shè)備達到9.27個。在萬物互聯(lián)的全場景智慧時代,如何管理好如此海量的連接?HarmonyOS應(yīng)運而生。
HarmonyOS是一款面向未來、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統(tǒng)。在傳統(tǒng)的單設(shè)備系統(tǒng)能力的基礎(chǔ)上,HarmonyOS提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設(shè)備。
對于消費者而言,HarmonyOS能夠?qū)⑸顖鼍爸械母黝惤K端進行能力整合,可以實現(xiàn)不同的終端設(shè)備之間快速連接、能力互助、資源共享,匹配合適的設(shè)備,提供流暢的全場景體驗。對于應(yīng)用開發(fā)者而言,HarmonyOS采用了多種分布式技術(shù),使得應(yīng)用程序的開發(fā)實現(xiàn)與不同終端設(shè)備的形態(tài)差異無關(guān),這能夠讓開發(fā)者聚焦上層業(yè)務(wù)邏輯,更加便捷、高效地開發(fā)應(yīng)用。對于設(shè)備開發(fā)者而言,HarmonyOS采用了組件化的設(shè)計方案,可以根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征進行靈活裁剪,滿足不同形態(tài)的終端設(shè)備對操作系統(tǒng)的要求。
今天,物聯(lián)網(wǎng)和HarmonyOS的結(jié)合,向全球的終端用戶和開發(fā)者展現(xiàn)出了蓬勃生機和活力,我們期待更多的讀者學(xué)習(xí)物聯(lián)網(wǎng)技術(shù),投身到物聯(lián)網(wǎng)產(chǎn)業(yè)和HarmonyOS生態(tài)中來,與HarmonyOS一起不斷前進和成長,共建開放、共贏的生態(tài)大廈。
本書特色
本書是第一本系統(tǒng)介紹HarmonyOS南向設(shè)備開發(fā)的書籍,可以讓開發(fā)者學(xué)習(xí)HarmonyOS,學(xué)習(xí)物聯(lián)網(wǎng)設(shè)備開發(fā),為打造優(yōu)質(zhì)物聯(lián)網(wǎng)應(yīng)用奠定基礎(chǔ)。
本書的案例基于上海海思技術(shù)有限公司領(lǐng)先的智慧IoT芯片實現(xiàn)。海思是全球領(lǐng)先的Fabless半導(dǎo)體與器件設(shè)計公司,致力于為千行百業(yè)客戶提供智能家庭、智慧城市及智能出行等泛智能終端芯片解決方案。
本書的作者具有深厚的開發(fā)功底和多年一線開發(fā)經(jīng)驗;本書的內(nèi)容深入淺出,系統(tǒng)全面,代碼實例翔實。
讀者對象
l 物聯(lián)網(wǎng)設(shè)備開發(fā)、測試工程師。
l 開設(shè)相關(guān)課程的院校師生。
l 對HarmonyOS生態(tài)未來發(fā)展趨勢感興趣的推動者、從業(yè)者和潛在的生態(tài)建設(shè)參與者。
如何閱讀本書
本書主要介紹如何使用HarmonyOS開發(fā)物聯(lián)網(wǎng)設(shè)備端軟件,具體包括外設(shè)控制、網(wǎng)絡(luò)編程、物聯(lián)網(wǎng)平臺接入等。本書的實例程序均在 HiSpark Wi-Fi IoT開發(fā)套件上進行測試和演示,部分章節(jié)的內(nèi)容也適用于其他支持HarmonyOS的物聯(lián)網(wǎng)設(shè)備。
本書共8章,分為4篇,即環(huán)境準備篇、外設(shè)控制篇、傳輸協(xié)議篇、物聯(lián)網(wǎng)應(yīng)用篇。
環(huán)境準備篇包含第1章,是開發(fā)實踐的基礎(chǔ),主要內(nèi)容為如何搭建 HarmonyOS開發(fā)環(huán)境,由許思維撰寫。
外設(shè)控制篇包含第2章~第4章,主要內(nèi)容為如何使用HarmonyOS控制外設(shè)。第2章介紹如何使用HarmonyOS控制I/O設(shè)備,如LED燈,由許思維撰寫。第3章介紹如何使用HarmonyOS感知環(huán)境狀態(tài)、獲取環(huán)境溫度、讀取可燃氣體的ADC值等信息,由蔡旭、屈博、姜年檑撰寫。第4章介紹如何使用HarmonyOS控制OLED顯示屏,由馮寶鵬撰寫。
傳輸協(xié)議篇包含第5章和第6章,主要內(nèi)容為如何使用 HarmonyOS控制 Wi-Fi,以及如何使用HarmonyOS進行網(wǎng)絡(luò)編程。從這里開始,讀者將進入網(wǎng)絡(luò)世界,獲得和外界溝通的能力。第5章由程勁松撰寫,第6章由王高浩撰寫。
物聯(lián)網(wǎng)應(yīng)用篇包含第7章和第8章。第7章比較獨立,由沈峰撰寫。通過學(xué)習(xí)第7章,讀者能夠?qū)?nèi)核對象有比較深刻的理解。第8章的主要內(nèi)容包括如何集成MQTT客戶端SDK,以及如何開發(fā)一個物聯(lián)網(wǎng)應(yīng)用,由丁成杰撰寫。通過學(xué)習(xí)物聯(lián)網(wǎng)應(yīng)用篇,讀者能夠開發(fā)自己的應(yīng)用。
致謝
本書由江蘇潤和軟件股份有限公司主導(dǎo)編寫,作者均為江蘇潤和軟件股份有限公司技術(shù)人員,在此感謝各位作者的辛勤付出。
在本書編寫期間,華為技術(shù)有限公司與上海海思技術(shù)有限公司的領(lǐng)導(dǎo)和專家給予了諸多的指導(dǎo)、支持,在此表示衷心的感謝。
在本書后期的整理和內(nèi)容統(tǒng)籌過程中,江蘇潤和軟件股份有限公司副總裁劉洋及其團隊成員(關(guān)堃、石磊、麗娜等同事)對書稿的審核和修訂做出了貢獻,在此一并致謝。
在51CTO鴻蒙技術(shù)社區(qū)總編王文文與電子工業(yè)出版社石悅編輯的熱情推動下,我們最終達成了與電子工業(yè)出版社的合作。石悅編輯在審稿過程中專業(yè)、耐心、細致,對書稿的修改和完善起到了重要作用。在此感謝石悅編輯對本書的重視,以及為本書出版所做的一切。
由于作者水平有限,撰寫時間倉促,書中不足之處在所難免。同時,由于物聯(lián)網(wǎng)和HarmonyOS的發(fā)展演進、技術(shù)架構(gòu)不斷完善,新的應(yīng)用場景層出不窮,本書難免有所遺漏,敬請專家和讀者批評指正。
本書中涉及一些網(wǎng)址和工具包的下載鏈接,讀者可掃描封底二維碼查看。
江蘇潤和軟件股份有限公司
《HarmonyOS IoT設(shè)備開發(fā)實戰(zhàn)》編寫團隊
2021年4月于南京
江蘇潤和軟件股份有限公司(證券代碼:300339)
中國領(lǐng)先的產(chǎn)品與解決方案提供商和平臺運營商。主營業(yè)務(wù)橫跨金融科技、物聯(lián)網(wǎng)兩大領(lǐng)域,以國產(chǎn)化、數(shù)字化為核心,以信息技術(shù)為依托,致力于向國內(nèi)外客戶提供從芯片、硬件、底層軟件到應(yīng)用平臺的綜合解決方案與優(yōu)質(zhì)科技服務(wù),已與多家行業(yè)頭部客戶建立了密切的戰(zhàn)略伙伴關(guān)系,全面賦能企業(yè)的數(shù)字化轉(zhuǎn)型。業(yè)務(wù)遍及中國、日本、東南亞、北美等區(qū)域,擁有全球化的技術(shù)洞察、技術(shù)資源與服務(wù)到達能力,能夠為客戶提供全面、即時、高效、前沿的數(shù)字化科技服務(wù)。
環(huán)境準備篇
第1章 搭建HarmonyOS開發(fā)環(huán)境
1.1 海思Hi3861芯片簡介
1.2 Wi-Fi IoT開發(fā)套件簡介
1.2.1 核心板簡介
1.2.2 底板簡介
1.2.3 交通燈板簡介
1.2.4 炫彩燈板簡介
1.2.5 環(huán)境檢測板簡介
1.2.6 OLED顯示屏板簡介
1.2.7 NFC擴展板簡介
1.3 準備HarmonyOS開發(fā)環(huán)境
1.3.1 開發(fā)環(huán)境簡介
1.3.2 硬件準備
1.3.3 軟件準備
1.4 搭建HarmonyOS 編譯環(huán)境
1.4.1 安裝編譯環(huán)境依賴的軟件包
1.4.2 下載編譯和構(gòu)建工具
1.4.3 安裝編譯和構(gòu)建工具
1.4.4 安裝Samba服務(wù)
1.5 下載和編譯HarmonyOS源代碼
1.5.1 獲取HarmonyOS源代碼
1.5.2 HarmonyOS 源代碼目錄簡介
1.5.3 編譯HarmonyOS源代碼
1.6 使用HUAWEI DevEco Device Tool
1.6.1 下載HUAWEI DevEco Device Tool及其依賴的軟件
1.6.2 安裝HUAWEI DevEco Device Tool
1.6.3 映射Samba服務(wù)的共享目錄到本地磁盤
1.6.4 用HUAWEI DevEco Device Tool導(dǎo)入項目
1.7 使用串口調(diào)試工具
1.7.1 下載CH340芯片相關(guān)軟件
1.7.2 安裝CH340芯片的驅(qū)動
1.7.3 串口調(diào)試工具簡介
1.7.4 用串口調(diào)試工具查看串口日志
外設(shè)控制篇
第2章 用HarmonyOS控制I/O設(shè)備
2.1 從編寫Hello World開始
2.1.1 編寫Hello World程序源代碼
2.1.2 將源代碼編譯成二進制文件
2.1.3 將二進制文件燒錄到開發(fā)板
2.1.4 通過“串口”查看程序的運行結(jié)果
2.2 使用GPIO模塊輸出高/低電平
2.2.1 GPIO簡介
2.2.2 HarmonyOS IoT硬件子系統(tǒng)的GPIO模塊與輸出相關(guān)的API
2.2.3 核心板可編程LED燈部分的原理圖說明
2.2.4 通過GPIO模塊控制LED燈亮和滅
2.3 使用GPIO模塊實現(xiàn)按鍵輸入
2.3.1 HarmonyOS IoT硬件子系統(tǒng)的GPIO模塊與輸入相關(guān)的API
2.3.2 核心板USER按鍵部分的原理圖說明
2.3.3 通過查詢GPIO狀態(tài)控制LED燈
2.3.4 通過注冊GPIO中斷控制LED燈
2.4 使用PWM模塊輸出方波
2.4.1 PWM簡介
2.4.2 HarmonyOS IoT硬件子系統(tǒng)的PWM模塊的相關(guān)API
2.4.3 交通燈板的蜂鳴器部分的相關(guān)原理圖說明
2.4.4 通過輸出PWM方波控制蜂鳴器發(fā)聲
2.4.5 通過PWM模塊在蜂鳴器上播放音樂
2.4.6 通過PWM模塊控制蜂鳴器的音量和LED燈的亮度
第3章 使用HarmonyOS感知環(huán)境狀態(tài)
3.1 使用ADC獲取模擬傳感器的狀態(tài)
3.1.1 HarmonyOS IoT硬件的ADC通道
3.1.2 Wi-Fi IoT開發(fā)套件的炫彩燈板原理圖說明
3.1.3 通過光敏電阻感知環(huán)境光
3.1.4 通過人體紅外傳感器感知人員靠近
3.1.5 傳感器狀態(tài)控制三色LED燈的顏色
3.1.6 使用ADC值區(qū)分同一個引腳上的不同按鍵
3.2 其他ADC傳感器的使用
3.2.1 與環(huán)境檢測板MQ-2相關(guān)的原理圖說明
3.2.2 MQ-2可燃氣體傳感器簡介
3.2.3 讀取MQ-2可燃氣體傳感器的ADC值
3.3 使用I2C接口獲取數(shù)字溫濕度傳感器的狀態(tài)
3.3.1 HarmonyOS IoT硬件的I2C接口
3.3.2 AHT20數(shù)字溫濕度傳感器簡介
3.3.3 環(huán)境檢測板上與AHT20數(shù)字溫濕度傳感器相關(guān)的原理圖說明
3.3.4 實現(xiàn)AHT20數(shù)字溫濕度傳感器驅(qū)動庫
3.3.5 獲取AHT20數(shù)字溫濕度傳感器的值
第4章 OLED顯示屏的驅(qū)動和控制
4.1 使用HarmonyOS驅(qū)動OLED顯示屏
4.1.1 OLED簡介
4.1.2 OLED顯示屏的原理圖
4.1.3 OLED的初始化
4.1.4 在OLED顯示屏上繪制畫面
4.1.5 在OLED顯示屏上繪制ASCII字符串
4.2 在OLED顯示屏上顯示中文
4.2.1 中文字符編碼和中文字體
4.2.2 實現(xiàn)中文字體繪制
傳輸協(xié)議篇
第5章 使用HarmonyOS控制Wi-Fi
5.1 Wi-Fi背景知識簡介
5.1.1 Wi-Fi簡介
5.1.2 Wi-Fi工作模式簡介
5.2 HarmonyOS IoT硬件的Wi-Fi STA模式編程
5.2.1 掃描其他Wi-Fi接入點
5.2.2 連接到某個Wi-Fi接入點
5.3 HarmonyOS IoT硬件的Wi-Fi AP模式編程
5.3.1 創(chuàng)建Wi-Fi熱點
5.3.2 提供DHCP服務(wù)
5.4 HarmonyOS IoT硬件Wi-Fi通用函數(shù)
第6章 HarmonyOS網(wǎng)絡(luò)編程
6.1 TCP/IP簡介
6.2 LwIP開源項目簡介
6.3 TCP編程
6.3.1 TCP客戶端程序
6.3.2 TCP服務(wù)端程序
6.4 UDP編程
6.4.1 UDP客戶端程序
6.4.2 UDP服務(wù)端程序
物聯(lián)網(wǎng)應(yīng)用篇
第7章 HarmonyOS IoT設(shè)備內(nèi)核的編程接口
7.1 CMSIS-RTOS API V2簡介及HarmonyOS適配情況
7.2 線程
7.3 等待
7.4 軟定時器
7.5 互斥鎖
7.6 信號量
7.7 消息隊列
第8章 MQTT協(xié)議簡介
8.1 什么是MQTT協(xié)議
8.2 應(yīng)用場景
8.3 MQTT協(xié)議的特性
8.4 MQTT協(xié)議的訂閱與發(fā)布模型介紹
8.4.1 基于MQTT協(xié)議的消息傳遞
8.4.2 報文類型說明
8.4.3 在基本消息的訂閱與發(fā)布流程中常用的報文介紹
8.4.4 基于MQTT協(xié)議的消息發(fā)布與訂閱的三種方式
8.5 Paho-MQTT簡介
8.6 Paho-MQTT的消息傳輸測試
8.6.1 下載代碼并進行編譯與燒錄
8.6.2 輸入測試命令
8.6.3 服務(wù)端應(yīng)用Mosquitto的使用
8.7 使用MQTT方式連接華為云
附錄A VirtualBox的安裝和使用
附錄B 在VirtualBox中安裝Ubuntu 20.04系統(tǒng)
附錄C 使用SSH客戶端登錄服務(wù)器
附錄D 使用開源鏡像站加速安裝apt軟件包和pip軟件包
附錄E Hi3861引腳功能復(fù)用表