OpenHarmony輕量設備開發理論與實戰
齊耀龍
- 出版商: 電子工業
- 出版日期: 2023-06-01
- 定價: $894
- 售價: 7.5 折 $671
- 語言: 簡體中文
- 頁數: 576
- ISBN: 712145677X
- ISBN-13: 9787121456770
- 
    相關分類:
    
      Operating-system、物聯網 IoT
 
立即出貨 (庫存 < 4)
商品描述
本書系統地介紹了OpenHarmony輕量設備開發的必備知識。在本書完稿時,相關課程已經在高校完成了三個學期的教學,並持續優化迭代。本書的學習門檻低、內容深入淺出、知識結構合理。本書註重知識間的關聯性、連貫性和階梯性,將電腦理論知識和OpenHarmony實踐緊密結合,更加註重實踐內容對理論理解的反哺,同步培養知識和能力,“授人以魚,並且授人以漁”。本書的內容支持目前所有在用的OpenHarmony版本,並且有能力支持未來的新版本,註重教/學效率,創立了“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 Code IntelliSense設置 | 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 Code IntelliSense設置 | 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

 
    
 
    
 
     
     
     
     
     
     
     
     
    
 
    
 
     
     
    
 
    
