OpenHarmony轻量设备开发理论与实战
全新正版 极速发货
¥
75.85
5.1折
¥
149
全新
库存2件
作者编者:齐耀龙|责编:石悦
出版社电子工业
ISBN9787121456770
出版时间2023-07
装帧其他
开本其他
定价149元
货号31774030
上书时间2024-06-06
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
齐耀龙河北大学计算机教学部副教授,河北大学校企合作(全球500强企业)项目孵化基地负责人,具有丰富的教育和IT行业经验。致力于很多领域(包括物联网、嵌入式智能设备、OpenHarmony等)的理论与技术研究、产品研发、教学与人才培养工作。出版过《大学计算机》《大学计算机实验教程》等十余本高校教材。担任“OpenHarmony南向开发基础”“OpenHarmony北向开发基础”等多门课程的负责人,拥有20余年一线教学经验、数百小时慕课等的教学视频制作经验。首期OpenHarmony开源开发者成长计划唯一的高校导师,国内较早系统性构建OpenHarmony课程的高校教师,参与了OpenHarmony知识体系的构建工作。 江苏润开鸿数字科技有限公司江苏润开鸿数字科技有限公司(简称“润开鸿”)于2022年成立于南京,是由江苏润和软件股份有限公司(简称“润和软件”)投资成立的全资子公司。润开鸿聚焦于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
内容摘要
本书系统地介绍了OpenHarmony轻量设备开发的必备知识。在本书完稿时,相关课程已经在高校完成了三个学期的教学,并持续优化迭代。本书的学习门槛低、内容深入浅出、知识结构合理。本书注重知识间的关联性、连贯性和阶梯性,将计算机理论知识和OpenHarmony实践紧密结合,更加注重实践内容对理论理解的反哺,同步培养知识和能力,“授人以鱼,并且授人以渔”。本书的内容支持目前所有在用的OpenHarmony版本,并且有能力支持未来的新版本,注重教/学效率,创立了“OpenHarmony轻量设备教/学全家桶”。全书共分10章,包括OpenHarmony及其开发套件、搭建OpenHarmony开发环境、OpenHarmony开发入门、OpenHarmony内核编程接口、控制I/O设备、感知环境状态、OLED显示屏的驱动和控制、控制Wi-Fi、网络编程及MQTT编程。本书适合高等院校作为建设OpenHarmony课程的指定教材,可以完善相关专业人才培养体系,也非常适合个人或企业开发者阅读学习。
— 没有更多了 —
以下为对购买帮助不大的评价