本书顺应国家发展战略,对接信息技术的相关岗位需求,主要满足高等职业教育信息技术类相关专业鸿蒙南北向开发相关课程的教学需要,以华为海思芯片与开源鸿蒙系统为核心,致力于构建全栈国产化物联网系统。本书内容分为鸿蒙系统南北向开发基础篇和鸿蒙系统南北向综合项目实战篇。鸿蒙系统南北向开发基础篇涵盖鸿蒙设备端开发(传感器驱动、触摸屏控制)与应用端开发(ArkTS/ArkUI)。鸿蒙系统南北向综合项目实战篇以智慧工厂楼宇监控、智慧仓储环境监测、智慧市政云管理项目开发为载体讲解如何通过Wi-Fi、UDP、TCP、MQTT、HTTP等模块完成设备端和应用端的连接,打造实用的物联网系统。教师可根据课时与学生基础,灵活裁剪教学单元。本书针对当前市面上鸿蒙物联网项目教材的空白,由教学名师与一线工程师联合打造,选择通用且成本较低的硬件设备和最新版本的鸿蒙系统来进行鸿蒙南北向综合实战。全书遵循从简单到复杂的渐进式学习过程,鸿蒙系统南北向开发基础篇先介绍单个知识点,然后介绍多个知识点的综合应用;鸿蒙系统南北向综合项目实战篇先介绍如何开发单个功能模块,然后介绍如何构建多功能的复杂系统。全书代码采用模块化设计与POSIX标准接口,让程序兼容更多的操作系统。本书体系完整,内容实用,配套资源丰富。学生通过本书不仅能掌握鸿蒙系统的前沿开发技术,还能全面深入地学习物联网开发知识。书中丰富的应用案例与项目实践,可助力学生积累物联网、移动应用和嵌入式项目开发的前沿经验,为他们成长为优秀的物联网开发工程师、移动应用开发工程师或嵌入式开发工程师筑牢根基。本书既适合作为高等职业教育信息技术类相关专业的教材,也适合作为鸿蒙系统应用开发技术爱好者的自学参考书。
覃国蓉,教授,就职于深圳信息职业大学,主要教授Java编程、Harmony程序开发、基于鸿蒙的物联网综合应用开发等课程,具有丰富的教学经验,是一位双师型教师。
鸿蒙系统南北向开发基础篇
第1章 鸿蒙系统应用开发认知 2
1.1 物联网系统概述 3
1.1.1 计算机系统 4
1.1.2 嵌入式系统 4
1.1.3 物联网系统 4
1.2 华为海思Hi3861芯片概述 5
1.2.1 基于RISC-V CPU架构的Hi3861 5
1.2.2 Hi3861功能特性 6
1.2.3 Hi3861开发板电路介绍 7
1.3 OpenHarmony系统概述 9
1.3.1 OpenHarmony系统架构与类型 9
1.3.2 基于LiteOS-M内核的OpenHarmony系统 10
1.3.3 基于LiteOS-A内核的OpenHarmony系统 11
1.3.4 基于Linux内核的OpenHarmony系统 12
第2章 鸿蒙系统设备开发基础 14
2.1 鸿蒙设备开发环境搭建 15
2.1.1 Visual Studio Code安装与配置 15
2.1.2 DevEco DeviceTool插件安装 16
2.1.3 SDK下载 16
2.1.4 工具集下载和UART接口驱动安装 17
2.2 Hi3861-iot工程源码开发基础 18
2.2.1 工程源码导入 18
2.2.2 工程配置 19
2.2.3 工程源码编译 20
2.2.4 工程程序烧录 20
2.2.5 工程程序调试 20
2.2.6 鸿蒙设备Hello程序 21
2.3 鸿蒙设备GPIO应用开发 22
2.3.1 海思GPIO函数 22
2.3.2 鸿蒙系统GPIO函数 25
2.3.3 鸿蒙系统GPIO中断概述 28
2.4 鸿蒙系统PWM应用开发 30
2.4.1 PWM信号原理 30
2.4.2 鸿蒙系统PWM函数 32
2.4.3 应用案例:PWM控制蜂鸣器发声 32
2.5 鸿蒙系统ADC应用开发 34
2.5.1 ADC工作原理 35
2.5.2 鸿蒙系统ADC函数 35
2.5.3 应用案例:ADC获取环境亮度 37
2.6 综合项目实践:烟雾警报器 38
2.6.1 项目架构 38
2.6.2 烟雾传感模块 39
2.6.3 继电器模块 39
2.6.4 编程实现 41
2.6.5 项目总结与拓展 43
第3章 鸿蒙系统设备开发进阶 45
3.1 鸿蒙系统多线程应用开发 46
3.1.1 多线程工作原理与用途 46
3.1.2 CMSIS多线程 46
3.1.3 POSIX 多线程 47
3.1.4 综合应用案例:多线程烟雾警报器 49
3.2 鸿蒙系统定时器与线程同步 53
3.2.1 osTimer定时器 53
3.2.2 鸿蒙系统线程同步 55
3.2.3 综合应用案例:DHT11温湿度传感器驱动 57
3.3 鸿蒙系统I2C应用开发 62
3.3.1 I2C的通信原理与用途 62
3.3.2 鸿蒙系统I2C操作函数 63
3.3.3 OLED屏工作原理 64
3.3.4 应用案例:OLED屏驱动 65
3.4 综合项目实践:带屏显的温湿度计 71
3.4.1 OLED屏显示数字 71
3.4.2 OLED屏显示中文字符 73
3.4.3 主程序编程 74
3.4.4 项目总结与拓展 76
第4章 设备开发拓展:触摸屏开关 78
4.1 电容式触摸屏驱动 78
4.1.1 电容式触摸屏工作原理 79
4.1.2 触摸屏模组的硬件接入 80
4.1.3 触控芯片CST816D 81
4.1.4 触控驱动开发 82
4.2 LCD屏驱动 87
4.2.1 SPI的通信原理 87
4.2.2 鸿蒙系统的SPI操作函数 88
4.2.3 LCD屏工作原理 90
4.2.4 LCD屏驱动 91
4.3 综合项目实践:智能触摸开关项目开发 98
4.3.1 LCD屏字符显示 98
4.3.2 LCD屏图像显示 100
4.3.3 LCD屏中文显示 102
4.3.4 LCD屏按键控制LED 103
4.3.5 项目总结与拓展 105
第5章 鸿蒙移动应用开发基础 107
5.1 鸿蒙移动应用开发环境搭建 108
5.1.1 DevEco Stuio安装与配置 108
5.1.2 鸿蒙App工程的创建 109
5.1.3 鸿蒙虚拟手机的配置 111
5.2 ArkTS开发语言基础 114
5.2.1 变量的声明与类型 114
5.2.2 数组与动态数组 115
5.2.3 函数与箭头函数 116
5.2.4 类与接口 116
5.2.5 模块的应用 118
5.3 鸿蒙ArkUI开发基础 119
5.3.1 Text组件 120
5.3.2 Button组件 120
5.3.3 Row与Column容器 121
5.3.4 Image组件 122
5.3.5 TextInput组件 122
5.3.6 综合应用案例:登录验证页面设计 123
5.4 鸿蒙ArkUI开发进阶 126
5.4.1 List列表组件 126
5.4.2 Tabs分页组件 128
5.4.3 自定义样式 130
5.4.4 自定义组件 132
5.5 综合项目实践:物联网设备管理App开发 132
5.5.1 App功能模块设计 133
5.5.2 项目工程的创建与配置 133
5.5.3 登录验证模块功能实现 135
5.5.4 设备管理模块功能实现 137
5.5.5 项目总结与拓展 139
鸿蒙系统南北向综合项目实战篇
第6章 智慧工厂楼宇监控项目开发 142
6.1 项目概述 143
6.2 项目开发知识准备 143
6.2.1 项目硬件架构 143
6.2.2 设备端程序架构与流程 144
6.2.3 App端程序架构与流程 145
6.2.4 网络通信原理与网络协议栈 146
6.2.5 UDP网络通信协议概述 147
6.3 鸿蒙设备端开发 148
6.3.1 继电器模块编程 149
6.3.2 人体感应模块编程 152
6.3.3 光敏与烟雾模块编程 154
6.3.4 Wi-Fi模块编程 156
6.3.5 UDP网络通信模块编程 161
6.3.6 设备端主程序编程 167
6.4 鸿蒙App端开发 169
6.4.1 鸿蒙App端UDP编程 170
6.4.2 鸿蒙App端主程序编程 172
6.5 项目总结与拓展 176
第7章 智慧仓储环境监测项目开发 178
7.1 项目概述 179
7.2 项目开发知识准备 179
7.2.1 项目硬件架构 179
7.2.2 设备端程序架构与流程 180
7.2.3 App端程序架构与流程 181
7.2.4 TCP概述 181
7.3 鸿蒙设备端开发 183
7.3.1 项目源码工程配置 183
7.3.2 AHT20温湿度模块编程 186
7.3.3 TCP服务器端模块编程 190
7.3.4 设备端主程序编程 195
7.4 鸿蒙App端开发 199
7.4.1 鸿蒙App端TCP编程 199
7.4.2 鸿蒙App端UDP编程 202
7.4.3 鸿蒙App端主程序编程 203
7.5 通信加密的简单实现 207
7.6 项目总结与拓展 209
第8章 智慧市政云管理项目开发 210
8.1 项目概述 210
8.2 项目开发知识准备 211
8.2.1 项目硬件架构 211
8.2.2 设备端程序架构与流程 212
8.2.3 App端程序架构与流程 212
8.2.4 华为物联网云服务搭建 214
8.3 鸿蒙设备端开发 219
8.3.1 土壤湿度与光敏模块编程 220
8.3.2 MQTT.fx通信测试 223
8.3.3 JSON数据格式 226
8.3.4 MQTT网络通信模块编程 226
8.3.5 设备端主程序编程 232
8.4 鸿蒙App端开发 234
8.4.1 鸿蒙App端的HTTP编程 235
8.4.2 物联网云平台HTTP通信编程 237
8.4.3 鸿蒙App端主程序编程 245
8.5 项目总结与拓展 252