#2020征文-开发板#基于TCP控制鸿蒙3861三色灯板亮灭(附demo指导) 精华
跟着许思维老师的脚步,在许大神的影响之下才诞生了这个demo
首先把整个demo跑起来的演示视频放上来,让大家看看最终实现的一个效果,视频链接(点击可看):基于TCP来控制鸿蒙Hi3861三色灯板的灯的亮灭
这玩意,说简单也不简单,说复杂吧也不复杂。
这里先说一下demo源码如何使用:
这里我已经把整个demo源码作为附件上传了,大家把文件解压后放在源码目录中:applications/sample/wifi-iot/app文件夹下,然后修改该文件夹下的BUILD.gn,将其内容修改为:
这里我还是先按照老规矩说一下总体的大概思路:
1.PC和Hi3861开发板之间使用无线连接到同一个局域网中。
2.Hi3861作为客户端,PC作为服务端建立TCP连接。
3.Hi3861作为客户端接受到PC端发送的相应指令来进行相应的控制三色灯板的操作。
说完了大概思路,就可以说操作需要注意的一个点了:在把Hi3861烧好之后进行测试的时候,需要先开启服务端(这里我是直接拿linux下的netcat,小伙伴完全可以换成自己熟悉的,都可以),然后在reset一下Hi3861开发板
下面开始按照大概思路来分成三块讲解代码
1.PC和Hi3861开发板之间使用无线连接到同一个局域网中
1.1 首先定义了wifi需要的两个监听事件OnWifiConnectionChanged和OnWifiScanStateChanged
1.2 定义了一个打印wifi信息的辅助函数
1.3 开始真正的wifi连接流程
2.Hi3861作为客户端,PC作为服务端建立TCP连接。
2.1 先配置TCP协议
2.2 调用connect函数进行连接,这里确保连接之后,才可以
2.3 调用recv接口接收从PC服务端发来的消息
3.Hi3861作为客户端接受到PC端发送的相应指令来进行相应的控制三色灯板的操作。
3.1 先进行Hi3861控制三色开发板的基础设置
3.2 根据TCP协议接收到的信息,判断后选择GpioSetOutputVal进行三色灯开关控制
上述所有源码见附件,有什么问题欢迎留言交流
ps:分享一个调试中困扰了我好长时间的一个问题,就是在调试过程中Hi3861的无线很不稳定,连接上一会儿就会掉,然后又连接,我一度以为是代码的问题,苦苦探求,之后才发现问题的根源是我公司的同时使用的wifi太多了,把无线信道都占了,导致我使用的只支持2.4G的小破路由器根本不稳定,给大家分享这个坑,遇到的话直接跳过去,别重蹈我的覆辙了......
我相信许大神已经看到这篇文章了。
此处应当@许思维 老师 O(∩_∩)O哈哈~
向作者和许老师学习
楼主可以给自己上传一个头像,提高自身辨识度的同时,也方便大家及时关注到你的更新哟~
嗯,发满五篇还有权限开启自己的专栏。拥有自己的一块印第安保留地。
今天我去换头像了,显示已保存,可是还是没有刷新哦。。。
专栏会开的,哈哈哈
netcat 已经开启服务端,目前vscode中已经检测到wifi信息,后面发送代码的方式不太清楚。麻烦大佬再介绍下哈
已经搞定,感谢。
#define PARAM_SERVER_ADDR "192.168.137.1"
后面的ip需要哦设置成开发板打印的ip地址
netcat 需要设置成代码中对应的端口
unsigned short port=5678;
netcat win端命令
nc -L -p 5678