[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度 原创 精华
- 笔者最近拿润和HiHope Pegasus(也叫做wifiiot_hispark_pegasus)开发套件开始OpenHarmony轻量系统的学习,以此篇文章分享学习经验。
 - 本文实现了用润和HiHope Pegasus UDP广播温湿度数据,样例demo下载链接:https://gitee.com/from-north-to-north/open-armony-north/tree/master/润和3861轻量系统UDP广播
- 样例运行的OpenHarmony源码环境下载:https://gitee.com/HiSpark/hi3861_hdu_iot_application
 
 
- 通过本文您将了解:
1、HiHopePegasus 3861 开发环境选择
2、HiHopePegasus 3861 连接wifi
3、HiHopePegasus 3861 温湿度
4、HiHopePegasus 3861 UDP广播 
@toc
1. OpenHarmony 轻量系统开发源码选择
- 
1.1 笔者刚开始接触轻量系统开发。因为之前都接触的是标准系统(开发板是DAYU200),所以笔者开始在源码的选择还是和标准系统一样,直接拿OpenHarmony 3.2 release来编译出wifiiot_hispark_pegasus的固件。
- 但是等到笔者学习后发现,作为初学者的笔者拿到一些大佬的样例demo在OpenHarmony 3.2 release源码中根本编译不过(要么是一些函数名变了,要么是头文件路径变化了)。
 - 3.2release 中的轻量系统源码,很多目录结构变化了。然后一些函数名称也有很大变化。后来咨询徐思维老师得知,因为有一些 xxx_lite 的组件退休了,和标准系统合并到一起了。(早期版本中很多组件有 xxx_lite 和 xxx,或者 xxx_lite 和 xxx_std 两个版本,xxx_lite 就是 轻量、小型 的版本。退休的组件在这个组织下面能找到: https://gitee.com/openharmony-retired)
 - OpenHarmony 1.x Releases也已经全部停止维护了,参见公告
https://gitee.com/openharmony/release-management/blob/master/OpenHarmony 1.0.1-Release分支停止维护公告.md#https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes
- 详细可参见OpenHarmony版本生命周期管理 https://gitee.com/openharmony/release-management/blob/master/OpenHarmony生命周期发布公告.md
 
 
 - 
1.2 所以我选择了从海思的仓库中下载HiHope Pegasus套件的OpenHarmony轻量系统源码,下载链接:https://gitee.com/HiSpark/hi3861_hdu_iot_application (里面润和提供的样例demo是能够跑通的,并且一直在维护)
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/c48275e221136f7beb0543f8048691be1af40b.png?x-oss-process=image/resize,w_820,h_530)
 
2. UDP广播温湿度
- UDP广播温湿度 样例demo下载:https://gitee.com/from-north-to-north/open-armony-north/tree/master/润和3861轻量系统UDP广播
 
2.1 运行步骤:
- 
把样例demo下载后放置在applications/sample/wifi-iot/app文件夹下
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/f5cb18b097652f71d0a495f8c919999cdd0a2b.png?x-oss-process=image/resize,w_337,h_503)
 - 
在样例demo中设置要连接的wifi信息
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/33b6379773610b58468771c60631c6fe87dddf.png?x-oss-process=image/resize,w_820,h_489)
 - 
修改applications/sample/wifi-iot/app/BUILD.gn文件,把样例demo加入编译
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/e4e81b77138cb1457975170c6b73aee8cd74c7.png?x-oss-process=image/resize,w_679,h_239)
 - 
修改device/soc/hisilicon/hi3861v100/sdk_liteos/build/config/usr_config.mk文件,
# CONFIG_I2C_SUPPORT is not set行,修改为:CONFIG_I2C_SUPPORT=y - 
进行编译,然后把固件烧录到润和HiHope Pegasus开发套件中(这个部分可以参考网上大佬的文章,笔者不多叙述)
- 轻量系统的编译真是快呀,两三秒就搞定。不像标准系统需要两三个小时
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/8820800915e997f0aa7973bc4c32e731b483be.png?x-oss-process=image/resize,w_820,h_253)
 
 - 轻量系统的编译真是快呀,两三秒就搞定。不像标准系统需要两三个小时
 
2.2 运行效果:
- 
将电脑连接同样的wifi,在电脑端打开socket调试工具,创建UDP组播,组播地址为255.255.255.255,组播端口为8080
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/4683d9d44da85915f48918445b3d020c4735c9.png?x-oss-process=image/resize,w_820,h_607)
 - 
开发板连接串口工具,按下开发板上reset键。可以看到socket调试工具一直不断收到开发板UDP广播的温湿度数据
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/43ccc96377d2d0c1cc6484b47d103de7df7b7a.gif)
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/d17248b317cb42327906765c8919502d966d56.png?x-oss-process=image/resize,w_820,h_376)
 - 
开发板连接串口工具,按下开发板上reset键。可以看到本开发板在局域网内的ip地址
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/33b1af9026a0c48d28b343f25043833af82648.png?x-oss-process=image/resize,w_820,h_796)
 - 
将电脑和开发板链接同一个开发板后,可以在电脑端 ping一下开发板ip地址
![[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区 [OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度-鸿蒙开发者社区](https://dl-harmonyos.51cto.com/images/202304/63634a189ad71086af8178f79ab2f0bd123550.png?x-oss-process=image/resize,w_809,h_382)
 
3. 样例demo源码分析
- UDP广播温湿度 样例demo下载:https://gitee.com/from-north-to-north/open-armony-north/tree/master/润和3861轻量系统UDP广播
 
├── BUILD.gn 
├── aht20.c   # 温湿度实现文件
├── aht20.h   # 温湿度实现头文件
├── main.c    # UDP广播温湿度实现文件
├── wifi_connecter.c  # wifi连接实现文件
└── wifi_connecter.h  # wifi连接实现头文件
- 
wifi连接实现源码来自
https://gitee.com/asd1122/hi3861_hdu_iot_application_cy/tree/master/demo/wifi_control - 
kernel/liteos_m/cmsis/cmsis_os2.h的中文注释
https://gitee.com/openharmony-sig/interface_native_header/blob/master/zh-cn/kernel/liteos_m/cmsis/cmsis_os2.h 





















跟作者学了不少找源码的知识
学到不少,感谢分享
鸿蒙都是周末花时间学习的吗
准备期末ing,抽空搞搞😂