OpenHarmony輕量設(shè)備開發(fā)理論與實戰(zhàn)
 
		
	
		
					 定  價:149 元 
					
				 
				 
				  
				
				   
				 
				  
				
						
								
									當(dāng)前圖書已被 52 所學(xué)校薦購過!
								
								
									查看明細(xì)
								 
							 
							
							
								
							
				 
	
				
					
						- 作者:齊耀龍
 - 出版時間:2023/6/1
 
						- ISBN:9787121456770
 
						- 出 版 社:電子工業(yè)出版社
 
					
				  
  
		
				- 中圖法分類:TN929.53 
  - 頁碼:576
 - 紙張:
 - 版次:01
 - 開本:16開
 
				
					 
					
			
				
  
   
 
	 
	 
	 
	
	
	
		
		本書系統(tǒng)地介紹了OpenHarmony輕量設(shè)備開發(fā)的必備知識。在本書完稿時,相關(guān)課程已經(jīng)在高校完成了三個學(xué)期的教學(xué),并持續(xù)優(yōu)化迭代。本書的學(xué)習(xí)門檻低、內(nèi)容深入淺出、知識結(jié)構(gòu)合理。本書注重知識間的關(guān)聯(lián)性、連貫性和階梯性,將計算機理論知識和OpenHarmony實踐緊密結(jié)合,更加注重實踐內(nèi)容對理論理解的反哺,同步培養(yǎng)知識和能力,“授人以魚,并且授人以漁”。本書的內(nèi)容支持目前所有在用的OpenHarmony版本,并且有能力支持未來的新版本,注重教/學(xué)效率,創(chuàng)立了“OpenHarmony輕量設(shè)備教/學(xué)全家桶”。全書共分10章,包括OpenHarmony及其開發(fā)套件、搭建OpenHarmony開發(fā)環(huán)境、OpenHarmony開發(fā)入門、OpenHarmony內(nèi)核編程接口、控制I/O設(shè)備、感知環(huán)境狀態(tài)、OLED顯示屏的驅(qū)動和控制、控制Wi-Fi、網(wǎng)絡(luò)編程及MQTT編程。本書適合高等院校作為建設(shè)OpenHarmony課程的指定教材,可以完善相關(guān)專業(yè)人才培養(yǎng)體系,也非常適合個人或企業(yè)開發(fā)者閱讀學(xué)習(xí)。
		
	
齊耀龍河北大學(xué)計算機教學(xué)部副教授,河北大學(xué)校企合作(全球500強企業(yè))項目孵化基地負(fù)責(zé)人,具有豐富的教育和IT行業(yè)經(jīng)驗。致力于很多領(lǐng)域(包括物聯(lián)網(wǎng)、嵌入式智能設(shè)備、OpenHarmony等)的理論與技術(shù)研究、產(chǎn)品研發(fā)、教學(xué)與人才培養(yǎng)工作。出版過《大學(xué)計算機》《大學(xué)計算機實驗教程》等十余本高校教材。擔(dān)任“OpenHarmony南向開發(fā)基礎(chǔ)”“OpenHarmony北向開發(fā)基礎(chǔ)”等多門課程的負(fù)責(zé)人,擁有20余年一線教學(xué)經(jīng)驗、數(shù)百小時慕課等的教學(xué)視頻制作經(jīng)驗。首期OpenHarmony開源開發(fā)者成長計劃唯一的高校導(dǎo)師,國內(nèi)較早系統(tǒng)性構(gòu)建OpenHarmony課程的高校教師,參與了OpenHarmony知識體系的構(gòu)建工作。 江蘇潤開鴻數(shù)字科技有限公司江蘇潤開鴻數(shù)字科技有限公司(簡稱“潤開鴻”)于2022 年成立于南京,是由江蘇潤和軟件股份有限公司(簡稱“潤和軟件”)投資成立的全資子公司。潤開鴻聚焦于OpenHarmony 國產(chǎn)化數(shù)字底座,面向以垂直行業(yè)為代表的千行百業(yè)提供深度融合行業(yè)特征與業(yè)務(wù)場景的終端商用設(shè)備操作系統(tǒng)發(fā)行版及解決方案。潤開鴻傳承了潤和軟件深耕行業(yè)多年的客戶資源與專家團隊,依托從芯片、硬件、操作系統(tǒng)到應(yīng)用軟件的軟硬件一體化產(chǎn)品與解決方案能力,深耕金融、能源兩大賽道,同時廣泛賦能醫(yī)療、智慧城市、工業(yè)、教育等多個垂直行業(yè),聯(lián)合生態(tài)伙伴和行業(yè)客戶共建共享萬物智聯(lián)的數(shù)字世界。
目  錄
第1章  OpenHarmony及其開發(fā)套件 | 1
1.1  初識OpenHarmony | 2
1.1.1  OpenHarmony是什么 | 2
1.1.2  OpenHarmony的重要性 | 3
1.1.3  OpenHarmony南向開發(fā)與北向開發(fā) | 4
1.1.4  OpenHarmony的版本 | 5
1.1.5  OpenHarmony官網(wǎng) | 7
1.1.6  OpenHarmony官網(wǎng)文檔獲取 | 8
1.1.7  本書內(nèi)容概述 | 8
1.1.8  學(xué)習(xí)本書需要的基礎(chǔ)知識 | 9
1.2  潤和Pegasus智能家居開發(fā)套件簡介 | 10
1.2.1  海思Hi3861V100芯片簡介 | 11
1.2.2  核心板 | 12
1.2.3  底板 | 14
1.2.4  交通燈板 | 15
1.2.5  炫彩燈板 | 16
1.2.6  環(huán)境監(jiān)測板 | 17
1.2.7  OLED顯示屏板 | 18
1.2.8  NFC擴展板 | 19
1.2.9  開發(fā)套件的組裝 | 20
1.2.10  輕量系統(tǒng)開發(fā)快速入門 | 23
第2章  搭建OpenHarmony開發(fā)環(huán)境 | 26
2.1  搭建開發(fā)環(huán)境(Windows系統(tǒng)) | 26
2.1.1  安裝虛擬機工具 | 26
2.1.2  安裝CH340芯片驅(qū)動 | 31
2.1.3  安裝串口調(diào)試工具 | 31
2.1.4  安裝開發(fā)工具 | 35
2.1.5  安裝燒錄工具 | 37
2.1.6  首次燒錄運行 | 39
 
2.2  搭建編譯環(huán)境(Ubuntu系統(tǒng)) | 43
2.2.1  安裝Ubuntu系統(tǒng) | 43
2.2.2  配置編譯環(huán)境 | 56
2.2.3  使用預(yù)搭建的編譯環(huán)境 | 63
2.3  下載和編譯OpenHarmony源碼 | 67
2.3.1  獲取OpenHarmony源碼 | 67
2.3.2  源碼目錄簡介 | 73
2.3.3  編譯源碼 | 73
2.3.4  燒錄固件 | 75
2.3.5  在智能家居開發(fā)套件上運行 | 78
2.3.6  OpenHarmony的系統(tǒng)架構(gòu) | 79
2.4  構(gòu)建開發(fā)網(wǎng)絡(luò) | 81
2.4.1  物聯(lián)網(wǎng) | 81
2.4.2  構(gòu)建適用于個人和團隊的開發(fā)網(wǎng)絡(luò) | 82
2.4.3  構(gòu)建適用于學(xué)校機房的開發(fā)網(wǎng)絡(luò) | 83
2.4.4  AT命令介紹 | 90
2.4.5  使用AT命令建立網(wǎng)絡(luò)連接 | 91
2.4.6  使用MobaXterm腳本快速聯(lián)網(wǎng) | 93
第3章  OpenHarmony開發(fā)入門 | 95
3.1  HelloWorld | 95
3.1.1  編寫程序源碼 | 95
3.1.2  編譯源碼 | 98
3.1.3  燒錄固件 | 98
3.1.4  通過串口調(diào)試工具查看程序的運行結(jié)果 | 98
3.1.5  OpenHarmony系統(tǒng)啟動的8個階段 | 99
3.1.6  VS Code的IntelliSense設(shè)置 | 100
3.1.7  VS Code解析.gn文件 | 102
3.1.8  屏蔽OpenHarmony內(nèi)置的XTS | 103
3.1.9  快速查找文件和代碼 | 104
3.1.10  快速重復(fù)燒錄和測試最佳實踐方案 | 105
3.2  輕量系統(tǒng)的編譯構(gòu)建 | 107
3.2.1  OpenHarmony的編譯構(gòu)建系統(tǒng) | 107
3.2.2  編譯構(gòu)建系統(tǒng)的配置規(guī)則 | 111
3.3  編譯構(gòu)建系統(tǒng)的使用 | 122
3.3.1  案例:新增組件 | 122
3.3.2  案例:新增產(chǎn)品解決方案 | 125
3.3.3  案例:組件/模塊開發(fā) | 129
3.4  輕量系統(tǒng)的數(shù)據(jù)持久化 | 135
3.4.1  數(shù)據(jù)持久化概述 | 135
3.4.2  鍵值存儲 | 136
3.4.3  鍵值存儲案例程序 | 139
3.4.4  文件操作 | 142
3.4.5  文件操作案例程序 | 142
第4章  OpenHarmony內(nèi)核編程接口 | 146
4.1  OpenHarmony內(nèi)核簡介 | 146
4.1.1  內(nèi)核子系統(tǒng) | 146
4.1.2  輕量系統(tǒng)內(nèi)核簡介 | 148
4.1.3  小型系統(tǒng)內(nèi)核簡介 | 150
4.1.4  標(biāo)準(zhǔn)系統(tǒng)內(nèi)核簡介 | 152
4.1.5  CMSIS簡介 | 153
4.1.6  CMSIS-RTOS2 | 154
4.2  線程管理 | 155
4.2.1  線程 | 156
4.2.2  API介紹 | 156
4.2.3  內(nèi)核編程的VS Code IntelliSense設(shè)置 | 158
4.2.4  案例程序1 | 159
4.2.5  案例程序2 | 162
4.3  通用等待功能 | 166
4.3.1  時間管理 | 167
4.3.2  API介紹 | 169
4.3.3  案例程序 | 172
4.4  定時器管理 | 176
4.4.1  軟定時器 | 176
4.4.2  API介紹 | 177
4.4.3  案例程序 | 179
4.5  互斥鎖管理 | 183
4.5.1  互斥鎖 | 183
4.5.2  API介紹 | 190
4.5.3  案例程序 | 192
4.6  信號量管理 | 196
4.6.1  信號量 | 197
4.6.2  API介紹 | 200
4.6.3  案例程序 | 202
 
4.7  消息隊列管理 | 210
4.7.1  消息隊列 | 211
4.7.2  API介紹 | 213
4.7.3  案例程序 | 214
第5章  控制I/O設(shè)備 | 220
5.1  GPIO輸出電平 | 220
5.1.1  GPIO | 220
5.1.2  輕量設(shè)備的IoT接口現(xiàn)狀 | 221
5.1.3  相關(guān)API介紹 | 223
5.1.4  核心板的可編程LED燈介紹 | 225
5.1.5  IoT編程的VS Code IntelliSense設(shè)置 | 225
5.1.6  案例程序 | 226
5.1.7  給未知函數(shù)或庫增加IntelliSense | 228
5.2  GPIO按鍵輸入 | 229
5.2.1  輪詢與中斷 | 229
5.2.2  相關(guān)API介紹 | 230
5.2.3  核心板的按鍵介紹 | 231
5.2.4  案例程序:輪詢方式 | 231
5.2.5  案例程序:中斷方式 | 235
5.2.6  案例程序:中斷方式低能耗 | 238
5.3  PWM輸出方波 | 241
5.3.1  PWM | 241
5.3.2  相關(guān)API介紹 | 246
5.3.3  交通燈板的蜂鳴器介紹 | 247
5.3.4  案例程序:控制蜂鳴器發(fā)聲 | 247
5.3.5  案例程序:控制蜂鳴器播放音樂 | 250
5.3.6  案例程序:控制蜂鳴器的音量 | 258
5.3.7  交通燈板的三色燈介紹 | 261
5.3.8  案例程序:交通燈演示 | 261
5.3.9  炫彩燈板的三色燈介紹 | 267
5.3.10  案例程序:控制三色燈的亮度 | 269
第6章  感知環(huán)境狀態(tài) | 275
6.1  使用ADC獲取模擬傳感器的數(shù)據(jù) | 275
6.1.1  ADC | 275
6.1.2  相關(guān)API介紹 | 278
6.1.3  炫彩燈板的光敏電阻介紹 | 278
6.1.4  案例程序:通過光敏電阻感知環(huán)境光 | 279
6.1.5  炫彩燈板的人體紅外傳感器介紹 | 282
6.1.6  案例程序:通過人體紅外傳感器感知人體靠近 | 283
6.1.7  案例程序:智能夜燈 | 285
6.1.8  OLED顯示屏板的按鍵介紹 | 291
6.1.9  案例程序:使用ADC值區(qū)分同一個引腳的不同按鍵 | 291
6.2  使用ADC獲取可燃?xì)怏w傳感器的數(shù)據(jù) | 298
6.2.1  可燃?xì)怏w傳感器 | 298
6.2.2  環(huán)境監(jiān)測板的MQ-2可燃?xì)怏w傳感器介紹 | 298
6.2.3  案例程序:使用可燃?xì)怏w傳感器感知空氣狀態(tài) | 299
6.2.4  案例程序:可燃?xì)怏w報警器 | 302
6.3  使用I2C獲取數(shù)字溫濕度傳感器的數(shù)據(jù) | 306
6.3.1  I2C | 306
6.3.2  相關(guān)API介紹 | 309
6.3.3  環(huán)境監(jiān)測板的AHT20數(shù)字溫濕度傳感器介紹 | 310
6.3.4  案例程序:實現(xiàn)AHT20數(shù)字溫濕度傳感器的驅(qū)動程序 | 311
6.3.5  案例程序:獲取AHT20數(shù)字溫濕度傳感器的狀態(tài) | 326
第7章  OLED顯示屏的驅(qū)動和控制 | 330
7.1  I2C驅(qū)動OLED顯示屏 | 330
7.1.1  OLED簡介 | 330
7.1.2  OLED顯示屏板介紹 | 330
7.1.3  OLED的初始化 | 331
7.1.4  在OLED顯示屏上繪制畫面 | 334
7.1.5  案例程序:實現(xiàn)OLED顯示屏簡化版驅(qū)動程序 | 339
7.1.6  在OLED顯示屏上繪制ASCII字符 | 346
7.1.7  案例程序:在OLED顯示屏上顯示西文字符 | 349
7.2  在OLED顯示屏上顯示漢字 | 363
7.2.1  中文字體 | 363
7.2.2  定義中文字庫 | 363
7.2.3  顯示漢字 | 366
7.2.4  案例程序 | 366
7.3  第三方OLED顯示屏驅(qū)動庫 | 373
7.3.1  驅(qū)動庫簡介 | 373
7.3.2  驅(qū)動庫的源碼結(jié)構(gòu) | 373
7.3.3  驅(qū)動庫API介紹 | 374
7.3.4  增強驅(qū)動庫功能 | 374
7.3.5  驅(qū)動庫的接入方法 | 375
7.3.6  案例程序 | 377
7.4  二維碼生成器模塊 | 387
7.4.1  模塊簡介 | 387
7.4.2  模塊的源碼結(jié)構(gòu) | 387
7.4.3  模塊API介紹 | 388
7.4.4  模塊的接入方法 | 389
7.4.5  案例程序 | 391
第8章  控制Wi-Fi | 396
8.1  Wi-Fi的基本概念 | 396
8.1.1  Wi-Fi簡介 | 396
8.1.2  Wi-Fi的連接過程 | 399
8.1.3  Wi-Fi工作模式簡介 | 400
8.2  Wi-Fi STA模式編程 | 401
8.2.1 Wi-Fi編程的VS Code IntelliSense設(shè)置 | 401
8.2.2  相關(guān)API介紹 | 402
8.2.3  掃描Wi-Fi熱點 | 404
8.2.4  案例程序:掃描Wi-Fi熱點 | 404
8.2.5  連接Wi-Fi熱點 | 411
8.2.6  案例程序:連接Wi-Fi熱點 | 411
8.3  Wi-Fi AP模式編程 | 419
8.3.1  相關(guān)API介紹 | 419
8.3.2  創(chuàng)建Wi-Fi熱點 | 420
8.3.3  提供DHCP服務(wù) | 421
8.3.4  案例程序:創(chuàng)建Wi-Fi熱點 | 421
8.4  EasyWiFi模塊 | 430
8.4.1  EasyWiFi模塊簡介 | 430
8.4.2  EasyWiFi模塊的源碼結(jié)構(gòu) | 430
8.4.3  EasyWiFi模塊的API介紹 | 430
8.4.4  模塊的接入方法 | 431
8.4.5  案例程序 | 433
第9章  網(wǎng)絡(luò)編程 | 439
9.1  TCP客戶端編程 | 439
9.1.1  LwIP開源項目簡介 | 439
9.1.2  相關(guān)API介紹 | 440
9.1.3  網(wǎng)絡(luò)編程的VS Code IntelliSense設(shè)置 | 440
9.1.4  TCP客戶端的工作流程 | 441
9.1.5  網(wǎng)絡(luò)工具netcat | 442
9.1.6  案例程序 | 442
9.2  TCP服務(wù)端編程 | 450
9.2.1  相關(guān)API介紹 | 450
9.2.2  TCP服務(wù)端的工作流程 | 451
9.2.3  案例程序 | 452
9.3  UDP客戶端編程 | 460
9.3.1  相關(guān)API介紹 | 460
9.3.2  UDP客戶端的工作流程 | 461
9.3.3  案例程序 | 461
9.4  UDP服務(wù)端編程 | 468
9.4.1  相關(guān)API介紹 | 468
9.4.2  UDP服務(wù)端的工作流程 | 469
9.4.3  案例程序 | 470
第10章  MQTT編程 | 478
10.1  MQTT簡介 | 478
10.1.1  MQTT | 478
10.1.2  MQTT的應(yīng)用場景 | 479
10.1.3  MQTT的技術(shù)特性 | 479
10.1.4  廣義上的發(fā)布/訂閱模式 | 480
10.1.5  MQTT的訂閱與發(fā)布模型 | 482
10.2  Paho-MQTT | 486
10.2.1  Paho-MQTT簡介 | 486
10.2.2  Paho-MQTT源碼的結(jié)構(gòu) | 488
10.2.3  Paho-MQTT編程的VS Code IntelliSense設(shè)置 | 489
10.2.4  Paho-MQTT的編譯 | 489
10.2.5  MQTT代理Mosquitto | 491
10.2.6  在設(shè)備端發(fā)布消息 | 493
10.2.7  在設(shè)備端訂閱消息 | 494
10.3  MQTT客戶端編程 | 494
10.3.1  對Paho-MQTT進(jìn)行封裝 | 495
10.3.2  Paho-MQTT模塊的接入方法 | 496
10.3.3  案例程序 | 498
10.4  案例:燈光控制 | 511
10.4.1  燈光控制案例項目簡介 | 511
10.4.2  實現(xiàn)燈光控制案例項目 | 512
 
10.5  案例:環(huán)境光采集 | 522
10.5.1  環(huán)境光采集案例項目簡介 | 522
10.5.2  實現(xiàn)環(huán)境光采集案例項目 | 522
10.6  案例:人體感應(yīng) | 530
10.6.1  人體感應(yīng)案例項目簡介 | 530
10.6.2  實現(xiàn)人體感應(yīng)案例項目 | 531
10.7  案例:可燃?xì)怏w報警 | 538
10.7.1  可燃?xì)怏w報警案例項目簡介 | 539
10.7.2  實現(xiàn)可燃?xì)怏w報警案例項目 | 539
10.8  案例:溫濕度收集 | 547
10.8.1  溫濕度收集案例項目簡介 | 547
10.8.2  實現(xiàn)溫濕度收集案例項目 | 547
10.9  案例:廣告屏 | 557
10.9.1  廣告屏案例項目簡介 | 557
10.9.2  實現(xiàn)廣告屏案例項目 | 557