BearPi小熊派 鸿蒙入门开发笔记(4)
4.HarmonyOS网络应用开发
4.1 UDP客户端
1 UDP相关 接口
2 UDP客户端创建流程
3 扩展链接
UDP协议简介:【网络篇】----- 传输层协议 之 UDP(协议格式,协议特性和编程影响三方面详细分析)_udp协议格式-CSDN博客
Socket简介:【网络】socket和udp协议_socket协议-CSDN博客
下载 SocketTools
链接:https://pan.baidu.com/s/1GqaKzEZWNvhXivm0FAnZng
提取码(永久有效):s5wy
4 案例
注意:代码设置连接的网络与调试电脑 要处于同一网络、服务端地址要设为 调试电脑IP
(1) 任务创建
(2) 连接wifi--封装了 wifi-STA模式驱动
sockaddr_in
结构体
(3) Socket创建
(4) 服务器地址 初始化
(5) UDP数据发送和接收
(6) 结果
UDP服务器创建
最终结果
4.2 TCP服务端
1 TCP相关接口
2 TCP服务端创建流程
3 扩展
TCP连接3次握手4次挥手 解析:
【计算机网络】TCP三次握手四次挥手(超级详细)_三次握手和四次挥手-CSDN博客
4 案例
(1) 任务创建
(2) wifi连接--封装wifi-STA模式
(3) 服务端地址配置
(4) Socket与端口绑定
(5) 调用监听
(6) 调用accept 从 监听队列 中 获取请求并创建socket
(7) 将 accept获取的socket 中 接收和发送消息
(8) 结果
板子初始化
使用SocketTools创建TCP服务端
收发显示
4.3 TCP客户端
1 TCP客户端相关 接口
2 TCP客户端创建流程
3.案例
(1) 任务创建
(2) 连接wifi--封装wifi-STA模式
(3) Socket创建
(4) 设置服务器地址
(5) 客户端连接服务器
(6) 发送和接收服务器信息
(7)结果
4.4 UDP服务端
1 UDP服务端对应 接口
2 UDP服务端创建流程
3 案例
(1) 任务创建
(2) 连接wifi --封装了 wifi-STA模式驱动
(3) Socket创建
(4)配置 要连接的端地址
(5) 连接 客户端
(6) 客户端收发数据
(7) 结果
4.5 MQTT客户端
1 MQTT介绍
2 Paho MQTT 相关接口
3 软件地址:
MQTT消息代理软件mosquitto:
Download | Eclipse Mosquitto
更改配置文件:mosquitto.conf
任务管理器启动
Eclipse桌面客户端程序:
Index of /repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.1.1
4 案例
(1) 任务创建
(2) wifi连接--封装wifi-STA驱动
(3) 网络初始化
(4)连接网络--ip要改为本机电脑ip
(5) MQTT 参数配置
(6) MQTT连接
(7) 订阅话题与处理
(8) MQTT发布
(9)结果
注意:必须关闭 防火墙
4.6 MQTT-华为云
1 华为云介绍
2 产品创建
3 产品属性
4.华为云 注册使用流程
(1) 注册并实名认证
(2) 打开 IOT模块
(3) 产品创建
(4) 获取 平台接口对应ip
(5) 回到旧版本
(6) 产品创建
① 服务添加 与 3 产品属性对应
② 服务属性和命令创建
5 案例
(1) 结构体说明
E53_IA1 传感器 数据
(2) 任务创建
初始化消息队列,创建两个线程:数据上报线程和 命令接收与 消息处理线程
(3) 数据上报线程
初始化传感器、读取传感器数据、将数据设置为 数据消息并放入消息列表中
(4) 命令接收与 消息处理线程
①WIFI连接
②设备初始化-华为云设备
③ 云设备消息初始化
④MQTT初始化
网络初始化、网络连接、MQTT客户端初始化、MQTT客户端启动、回调函数处理、MQTT发送Connect报文
MQTT回调函数:
接收命令 并发布Publish 响应,报告当前状态
⑤ 接收到命令后 调用回调函数处理
⑥ 从消息队列中 取出消息,根据不同消息类型,进行分别处理
处理命令
从接受到的Jason数据流中,查找 命令名称
对命令为Agriculture_Control_light 读取参数Light 状态,根据状态操控 LED 开关
对命令为Agriculture_Control_Motor 读取参数Motor 状态,根据状态操控 Motor 开关
处理数据报文
将温湿度、关照、LED和马达状态写入
上报数据:内部是对数据的处理和 MQTT的Publish报文
(5) 结果
获取 4-③ 中消息
将设备的 ID和密钥 加入下方链接 软件中,生成最终结果-----------【结果好像有问题】
链接:Huaweicloud IoTDA Mqtt ClientId Generator (myhuaweicloud.com)
完全正确方法:直接从华为云获取
设备激活:【华为ICT大赛】华为云激活设备的方法以及数据上下行_华为云设备未激活-CSDN博客