OpenHarmony輕量設備開發理論與實戰

OpenHarmony輕量設備開發理論與實戰

《OpenHarmony輕量設備開發理論與實戰》系統地介紹了OpenHarmony輕量設備開發的必備知識。本書學習門檻低、內容深入淺出、知識結構合理,注重知識間的關聯性、連貫性和階梯性,將計算機理論知識和OpenHarmony實踐緊密結合。

基本介紹

  • 中文名:OpenHarmony輕量設備開發理論與實戰
  • 作者:齊耀龍、江蘇潤開鴻數字科技有限公司
  • 出版時間:2023年7月
  • 出版社:電子工業出版社
  • 頁數:576 頁
  • ISBN:9787121456770
  • 定價:149.00 元
  • 開本:16 開
內容簡介,圖書目錄,作者簡介,

內容簡介

《OpenHarmony輕量設備開發理論與實戰》共分10章,包括OpenHarmony及其開發套件、搭建OpenHarmony開發環境、OpenHarmony開發入門、OpenHarmony核心編程接口、控制I/O設備、感知環境狀態、OLED顯示屏的驅動和控制、控制Wi-Fi、網路編程及MQTT編程。適合高等院校作為建設OpenHarmony課程的指定教材,可以完善相關專業人才培養體系,也非常適合個人或企業開發者閱讀學習。

圖書目錄

第1章 OpenHarmony及其開發套件 | 1
1.1 初識OpenHarmony | 2
1.1.1 OpenHarmony是什麼 | 2
1.1.2 OpenHarmony的重要性 | 3
1.1.3 OpenHarmony南向開發與北向開發 | 4
1.1.4 OpenHarmony的版本 | 5
1.1.5 OpenHarmony官網 | 7
1.1.6 OpenHarmony官網文檔獲取 | 8
1.1.7 本書內容概述 | 8
1.1.8 學習本書需要的基礎知識 | 9
1.2 潤和Pegasus智慧型家居開發套件簡介 | 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 環境監測板 | 17
1.2.7 OLED顯示屏板 | 18
1.2.8 NFC擴展板 | 19
1.2.9 開發套件的組裝 | 20
1.2.10 輕量系統開發快速入門 | 23
第2章 搭建OpenHarmony開發環境 | 26
2.1 搭建開發環境(Windows系統) | 26
2.1.1 安裝虛擬機工具 | 26
2.1.2 安裝CH340晶片驅動 | 31
2.1.3 安裝串口調試工具 | 31
2.1.4 安裝開發工具 | 35
2.1.5 安裝燒錄工具 | 37
2.1.6 首次燒錄運行 | 39
2.2 搭建編譯環境(Ubuntu系統) | 43
2.2.1 安裝Ubuntu系統 | 43
2.2.2 配置編譯環境 | 56
2.2.3 使用預搭建的編譯環境 | 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 在智慧型家居開發套件上運行 | 78
2.3.6 OpenHarmony的系統架構 | 79
2.4 構建開發網路 | 81
2.4.1 物聯網 | 81
2.4.2 構建適用於個人和團隊的開發網路 | 82
2.4.3 構建適用於學校機房的開發網路 | 83
2.4.4 AT命令介紹 | 90
2.4.5 使用AT命令建立網路連線 | 91
2.4.6 使用MobaXterm腳本快速聯網 | 93
第3章 OpenHarmony開發入門 | 95
3.1 HelloWorld | 95
3.1.1 編寫程式源碼 | 95
3.1.2 編譯源碼 | 98
3.1.3 燒錄固件 | 98
3.1.4 通過串口調試工具查看程式的運行結果 | 98
3.1.5 OpenHarmony系統啟動的8個階段 | 99
3.1.6 VS Code的IntelliSense設定 | 100
3.1.7 VS Code解析.gn檔案 | 102
3.1.8 禁止OpenHarmony內置的XTS | 103
3.1.9 快速查找檔案和代碼 | 104
3.1.10 快速重複燒錄和測試最佳實踐方案 | 105
3.2 輕量系統的編譯構建 | 107
3.2.1 OpenHarmony的編譯構建系統 | 107
3.2.2 編譯構建系統的配置規則 | 111
3.3 編譯構建系統的使用 | 122
3.3.1 案例:新增組件 | 122
3.3.2 案例:新增產品解決方案 | 125
3.3.3 案例:組件/模組開發 | 129
3.4 輕量系統的數據持久化 | 135
3.4.1 數據持久化概述 | 135
3.4.2 鍵值存儲 | 136
3.4.3 鍵值存儲案例程式 | 139
3.4.4 檔案操作 | 142
3.4.5 檔案操作案例程式 | 142
第4章 OpenHarmony核心編程接口 | 146
4.1 OpenHarmony核心簡介 | 146
4.1.1 核心子系統 | 146
4.1.2 輕量系統核心簡介 | 148
4.1.3 小型系統核心簡介 | 150
4.1.4 標準系統核心簡介 | 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 核心編程的VS CodeIntelliSense設定 | 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設備 | 220
5.1 GPIO輸出電平 | 220
5.1.1 GPIO | 220
5.1.2 輕量設備的IoT接口現狀 | 221
5.1.3 相關API介紹 | 223
5.1.4 核心板的可程式LED燈介紹 | 225
5.1.5 IoT編程的VS Code IntelliSense設定 | 225
5.1.6 案例程式 | 226
5.1.7 給未知函式或庫增加IntelliSense | 228
5.2 GPIO按鍵輸入 | 229
5.2.1 輪詢與中斷 | 229
5.2.2 相關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 相關API介紹 | 246
5.3.3 交通燈板的蜂鳴器介紹 | 247
5.3.4 案例程式:控制蜂鳴器發聲 | 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章 感知環境狀態 | 275
6.1 使用ADC獲取模擬感測器的數據 | 275
6.1.1 ADC | 275
6.1.2 相關API介紹 | 278
6.1.3 炫彩燈板的光敏電阻介紹 | 278
6.1.4 案例程式:通過光敏電阻感知環境光 | 279
6.1.5 炫彩燈板的人體紅外感測器介紹 | 282
6.1.6 案例程式:通過人體紅外感測器感知人體靠近 | 283
6.1.7 案例程式:智慧型夜燈 | 285
6.1.8 OLED顯示屏板的按鍵介紹 | 291
6.1.9 案例程式:使用ADC值區分同一個引腳的不同按鍵 | 291
6.2 使用ADC獲取可燃氣體感測器的數據 | 298
6.2.1 可燃氣體感測器 | 298
6.2.2 環境監測板的MQ-2可燃氣體感測器介紹 | 298
6.2.3 案例程式:使用可燃氣體感測器感知空氣狀態 | 299
6.2.4 案例程式:可燃氣體報警器 | 302
6.3 使用I2C獲取數字溫濕度感測器的數據 | 306
6.3.1 I2C | 306
6.3.2 相關API介紹 | 309
6.3.3 環境監測板的AHT20數字溫濕度感測器介紹 | 310
6.3.4 案例程式:實現AHT20數字溫濕度感測器的驅動程式 | 311
6.3.5 案例程式:獲取AHT20數字溫濕度感測器的狀態 | 326
第7章 OLED顯示屏的驅動和控制 | 330
7.1 I2C驅動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 案例程式:實現OLED顯示屏簡化版驅動程式 | 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顯示屏驅動庫 | 373
7.3.1 驅動庫簡介 | 373
7.3.2 驅動庫的源碼結構 | 373
7.3.3 驅動庫API介紹 | 374
7.3.4 增強驅動庫功能 | 374
7.3.5 驅動庫的接入方法 | 375
7.3.6 案例程式 | 377
7.4 二維碼生成器模組 | 387
7.4.1 模組簡介 | 387
7.4.2 模組的源碼結構 | 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設定 | 401
8.2.2 相關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 相關API介紹 | 419
8.3.2 創建Wi-Fi熱點 | 420
8.3.3 提供DHCP服務 | 421
8.3.4 案例程式:創建Wi-Fi熱點 | 421
8.4 EasyWiFi模組 | 430
8.4.1 EasyWiFi模組簡介 | 430
8.4.2 EasyWiFi模組的源碼結構 | 430
8.4.3 EasyWiFi模組的API介紹 | 430
8.4.4 模組的接入方法 | 431
8.4.5 案例程式 | 433
第9章 網路編程 | 439
9.1 TCP客戶端編程 | 439
9.1.1 LwIP開源項目簡介 | 439
9.1.2 相關API介紹 | 440
9.1.3 網路編程的VS CodeIntelliSense設定 | 440
9.1.4 TCP客戶端的工作流程 | 441
9.1.5 網路工具netcat | 442
9.1.6 案例程式 | 442
9.2 TCP服務端編程 | 450
9.2.1 相關API介紹 | 450
9.2.2 TCP服務端的工作流程 | 451
9.2.3 案例程式 | 452
9.3 UDP客戶端編程 | 460
9.3.1 相關API介紹 | 460
9.3.2 UDP客戶端的工作流程 | 461
9.3.3 案例程式 | 461
9.4 UDP服務端編程 | 468
9.4.1 相關API介紹 | 468
9.4.2 UDP服務端的工作流程 | 469
9.4.3 案例程式 | 470
第10章 MQTT編程 | 478
10.1 MQTT簡介 | 478
10.1.1 MQTT | 478
10.1.2 MQTT的套用場景 | 479
10.1.3 MQTT的技術特性 | 479
10.1.4 廣義上的發布/訂閱模式 | 480
10.1.5 MQTT的訂閱與發布模型 | 482
10.2 Paho-MQTT | 486
10.2.1 Paho-MQTT簡介 | 486
10.2.2 Paho-MQTT源碼的結構 | 488
10.2.3 Paho-MQTT編程的VS Code IntelliSense設定 | 489
10.2.4 Paho-MQTT的編譯 | 489
10.2.5 MQTT代理Mosquitto | 491
10.2.6 在設備端發布訊息 | 493
10.2.7 在設備端訂閱訊息 | 494
10.3 MQTT客戶端編程 | 494
10.3.1 對Paho-MQTT進行封裝 | 495
10.3.2 Paho-MQTT模組的接入方法 | 496
10.3.3 案例程式 | 498
10.4 案例:燈光控制 | 511
10.4.1 燈光控制案例項目簡介 | 511
10.4.2 實現燈光控制案例項目 | 512
10.5 案例:環境光採集 | 522
10.5.1 環境光採集案例項目簡介 | 522
10.5.2 實現環境光採集案例項目 | 522
10.6 案例:人體感應 | 530
10.6.1 人體感應案例項目簡介 | 530
10.6.2 實現人體感應案例項目 | 531
10.7 案例:可燃氣體報警 | 538
10.7.1 可燃氣體報警案例項目簡介 | 539
10.7.2 實現可燃氣體報警案例項目 | 539
10.8 案例:溫濕度收集 | 547
10.8.1 溫濕度收集案例項目簡介 | 547
10.8.2 實現溫濕度收集案例項目 | 547
10.9 案例:廣告屏 | 557
10.9.1 廣告屏案例項目簡介 | 557
10.9.2 實現廣告屏案例項目 | 557

作者簡介

齊耀龍,河北大學計算機教學部副教授,河北大學校企合作(全球500強企業)項目孵化基地負責人,具有豐富的教育和IT行業經驗。致力於很多領域(包括物聯網、嵌入式智慧型設備、OpenHarmony等)的理論與技術研究、產品研發、教學與人才培養工作。出版過《大學計算機》《大學計算機實驗教程》等十餘本高校教材。擔任“OpenHarmony南向開發基礎”“OpenHarmony北向開發基礎”等多門課程的負責人,擁有20餘年一線教學經驗、數百小時慕課等的教學視頻製作經驗。首期OpenHarmony開源開發者成長計畫唯一的高校導師,國內較早系統性構建OpenHarmony課程的高校教師,參與了OpenHarmony知識體系的構建工作。
江蘇潤開鴻數字科技有限公司,江蘇潤開鴻數字科技有限公司(簡稱“潤開鴻”)於2022 年成立於南京,是由江蘇潤和軟體股份有限公司(簡稱“潤和軟體”)投資成立的全資子公司。潤開鴻聚焦於OpenHarmony 國產化數字底座,面向以垂直行業為代表的千行百業提供深度融合行業特徵與業務場景的終端商用設備作業系統發行版及解決方案。

熱門詞條

聯絡我們