0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】用代码和AT命令连接Wifi

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-31 14:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2289291_1_1.html


1. 代码连接wifi

1.1 相关API
(1)WifiErrorCode EnableWifi(void)打开Wi-Fi设备的STA 模式,可以理解为开启设备的Wi-Fi功能,使其可以扫描,并且连接到某个接入点。
(2)WifiErrorCode DisableWifi(void)该函数禁用设备的STA模式。在调用该函数之后,设备不能进行扫描、联网等操作。
(3)int IsWifiActive(void)该函数用于判断Wi-Fi设备的STA模式是否已经打开。
(4)WifiErrorCode AddDeviceConfig(constWifiDeviceConfig*config,int*result)该函数用于增加设备的 Wi-Fi 配置。
(5)WifiErrorCode GetDeviceConfigs(WifiDeviceConfig*result,unsignedint*size)该函数用于获取所有有效的Wi-Fi 配置,结果保存在result 中。size 指定可获取的最大的配置数,为result 的长度。
(6)WifiErrorCode RemoveDevice(int networkId)该函数用于根据net id 删除一个Wi-Fi 配置。
(7)WifiErrorCode Disconnect(void)该函数用于断开Wi-Fi连接。
(8)WifiErrorCode GetLinkedInfo(WifiLinkedInfo*result)该函数用于获取 Wi-Fi 设备客户端当前连接的接入点的信息。
(9)WifiErrorCode RegisterWifiEvent(WifiEvent*event)该函数用于注册Wi-Fi事件的回调函数,可用于开发者在自己开发的应用中注册相应的回调函数,监听Wi-Fi状态的变化,根据不同的状态,做相应的处理。
(10)WifiErrorCode UnRegisterWifiEvent(const WifiEvent*event)该函数用于注销Wi-Fi事件。
(11)WifiErrorCode GetDeviceMacAddress(unsigned char*result)该函数用于获取设置的 MAC 地址。
1.2 具体代码
  1. int ConnectToHotspot(void)
  2. {
  3. WifiDeviceConfig config = {0};
  4. // 准备AP的配置参数
  5. strcpy_s(config.ssid, SSID_LEN, PARAM_HOTSPOT_SSID);
  6. strcpy_s(config.preSharedKey, PSK_LEN, PARAM_HOTSPOT_PSK);
  7. config.securityType = PARAM_HOTSPOT_TYPE;
  8. osDelay(10); /* 延时10ms */
  9. WifiErrorCode errCode;
  10. int netId = -1;
  11. errCode = RegisterWifiEvent(&g_defaultWifiEventListener);
  12. printf("RegisterWifiEvent: %drn", errCode);
  13. errCode = EnableWifi();
  14. printf("EnableWifi: %drn", errCode);
  15. errCode = AddDeviceConfig(&config, &netId);
  16. printf("AddDeviceConfig: %drn", errCode);
  17. g_connected = 0;
  18. errCode = ConnectTo(netId);
  19. printf("ConnectTo(%d): %drn", netId, errCode);
  20. while (!g_connected) { // wait until connect to AP
  21. osDelay(10); /* 持续10ms去连接AP */
  22. printf("continue connecting");
  23. }
  24. printf("g_connected: %drn", g_connected);
  25. g_iface = netifapi_netif_find("wlan0");
  26. if (g_iface) {
  27. char* hostname = "hispark";
  28. err_t ret = netifapi_set_hostname(g_iface, hostname, strlen(hostname));
  29. printf("netifapi_set_hostname: %drn", ret);
  30. ret = netifapi_dhcp_start(g_iface);
  31. printf("netifapi_dhcp_start: %drn", ret);
  32. osDelay(100); // wait DHCP server give me IP 100
  33. #if 1
  34. ret = netifapi_netif_common(g_iface, dhcp_clients_info_show, NULL);
  35. printf("netifapi_netif_common: %drn", ret);
  36. #else
  37. #endif
  38. }
  39. return netId;
  40. }
复制代码
1.3 实物演示
用串口助手连上去,发现到connect那一步就返回错误了,我在代码里加了尝试连接输出信息,依然还是连不上,需要进一步排查问题原因,如果有大佬能知道下就更好了。
pYYBAGK22yyATDkBAACNthPpBB4388.png
2. AT命令连接wifi
AT命令也可以连接wifi,跟api调用顺序是一样的。
WPA2_PSK。
AT+PING这一步后面的是我的PC机器IP地址,可以测试能否能ping通。
  1. AT+RST
  2. AT+STARTSTA
  3. AT+SCAN
  4. AT+SCANRESULT
  5. AT+CONN="360JDCWiFi-701",,2,"XXXXX"
  6. AT+DHCP=wlan0,1
  7. AT+IFCFG
  8. AT+PING=192.168.0.14 //我的PC机器IP地址
  9. AT+DISCONN
复制代码
3. 总结
这次实验有个遗憾就是用代码没能成功连接我的wifi,需要进一步排查问题原因,如果有大佬能指点迷津不吝赐教就好了。
用代码操作灵活性更好,因为可以用RegisterWifiEvent进行设置自定义事件。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    15

    文章

    2485

    浏览量

    130208
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36415
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    7815
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Lantronix xPico Wi-Fi嵌入式设备服务器评估套件使用指南

    Lantronix xPico Wi-Fi嵌入式设备服务器评估套件使用指南 在电子设备开发领域,嵌入式设备服务器的应用越来越广泛。Lantronix的xPico Wi-Fi嵌入式设备服务器评估
    的头像 发表于 05-21 14:05 82次阅读

    物联网浪潮下,如何精准选型Wi-Fi模块?

    Wi-Fi模块选型的关键要点。 一:选择模块的理由: 选择Wi-Fi模块,核心优势在于极大地方便了电路集成设计,特别是硬件兼容集成设计。只要产品前期完成综合设计,后续无论是产品设计环节,还是应用端的灵活选择,都能享受极大便利。
    的头像 发表于 03-02 15:37 398次阅读
    物联网浪潮下,如何精准选型<b class='flag-5'>Wi-Fi</b>模块?

    技术资讯 I Wi-Fi 模块设计

    Wi-Fi模块可实现无缝连接和数据交换,对设备进行远程控制和监测。Wi-Fi模块设计旨在打造一套紧凑且高效的软硬件解决方案,使设备能够通过Wi-Fi网络通信。这类模块常用
    的头像 发表于 02-27 17:12 995次阅读
    技术资讯 I <b class='flag-5'>Wi-Fi</b> 模块设计

    Wi-Fi:无线连接的全球通用语

    现代生活中不可或缺的无线连接方式。二、Wi-Fi的核心特点1. 高速率,宽带宽支持从几十Mbps到数Gbps的传输速率,满足高清视频、在线游戏等高带宽应用需求。2. 广泛兼容,生态成熟几乎所有智能终端均内置
    发表于 01-07 09:49

    Nordic发布nRF7002 EBII 开发板, 支持Wi-Fi 6, 解锁nRF54L新玩法

    稳定的连接。板载 nRF7002 协同 IC 兼容 Wi-Fi 6 标准,同时向下兼容 802.11a/b/g/n/ac Wi-Fi 标准。它支持 STA 和 SoftAP 两种工作模式以实现灵活的网络
    发表于 12-10 11:58

    无线模块全解析:Wi-Fi模块、蓝牙模块、双频Wi-Fi、MQTT协议与低功耗方案

    WiFi”或“Wifi”,但是这些写法并没有被Wi-Fi联盟认可。 一、通常说的WI-FI几: 第一代:以IEEE 802.11为准,工作频段为2.4GHz, 最高速率半双工2Mbi
    的头像 发表于 12-10 09:52 108次阅读
    无线模块全解析:<b class='flag-5'>Wi-Fi</b>模块、蓝牙模块、双频<b class='flag-5'>Wi-Fi</b>、MQTT协议与低功耗方案

    Wi-Fi模块选型指南 | 低功耗蓝牙/Wi-Fi 6模块推荐 | 物联网设备集成攻略

    :选择模块的理由: 是为了方便电路集成设计,特别是硬件兼容集成设计,这样只要产品前期做好了综合设计,后续做产品设计以及应用端的灵活选择,提供了很大的便利,省得重复设计硬件,缩短开发周,加快将产品推向市场的时间; 二:Wi-Fi模块选型注意点
    的头像 发表于 12-09 11:27 1478次阅读
    <b class='flag-5'>Wi-Fi</b>模块选型指南 | 低功耗蓝牙/<b class='flag-5'>Wi-Fi</b> 6模块推荐 | 物联网设备集成攻略

    浅谈Wi-Fi 6E与Wi-Fi 7的关键器件——BAW滤波器新技术

    作者: Qorvo 亚太区无线连接事业部高级行销经理林健富   2020年1月,Wi-Fi联盟正式宣布开放6GHz频段(5925MHz-7125MHz),并将其命名为Wi-Fi 6E。2020年4月
    发表于 09-19 18:29 2579次阅读
    浅谈<b class='flag-5'>Wi-Fi</b> 6E与<b class='flag-5'>Wi-Fi</b> 7的关键器件——BAW滤波器新技术

    如何更新 NuMaker IoT 板上的 Wi-Fi 模块固件?

    更新 NuMaker IoT 板上的 Wi-Fi 模块固件
    发表于 09-04 08:28

    LitePoint Wi-Fi测试软件减轻客户设计负担

    Wi-Fi 7于一年多前获得Wi-Fi联盟认证以来,作为最新一代通信技术,Wi-Fi正逐步成为用户实现无所不在无线连接的新选择。随着每一代Wi-F
    的头像 发表于 08-06 15:34 1480次阅读
    LitePoint <b class='flag-5'>Wi-Fi</b>测试软件减轻客户设计负担

    有没有什么修复方法可以确保 AP 模式下的 Wi-Fi 和 BLE 连接同时正常工作?

    我正在使用 CYBSYSKIT DEV 01 套件。我尝试在 AP 模式下打开 Wi-Fi 并宣传 BLE。我可以宣传 SoftAP 和 BLE。但是,我无法从中央设备连接到 BLE。它可以立即
    发表于 07-17 06:13

    BLE代码示例中Wi-Fi连接重试失败的原因?

    您好,我正在使用 BLE 代码示例进行 Wi-Fi 接入。我从 modus 工具箱下载了代码示例。 代码示例包含所有最新的库。 当在提供 SSID 和密码后从手机发送
    发表于 07-08 07:42

    Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——1

    英国作家狄更斯在《双城记》的开头写道:“这是最好的时代,也是最坏的时代。” 这句话若套用在现今Wi-Fi 的市场现状,何尝不是惊人的相似? 怎么说呢?Wi-Fi 从被发明至今已经经过了20多年的迭代
    发表于 06-13 11:09

    连接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 网络时系统挂起,为什么?

    Wi-Fi 网络时,我的系统挂起了。 它与所有其他安全类型连接良好。 我正在使用最新的 WHD 库。 谁能解释为什么会发生此问题以及我该如何解决它? 您可以参考 WiFi Onboarding 示例
    发表于 06-05 07:23

    摩尔斯微电子携手Gateworks,利用Wi-Fi HaLow革新工业连接

    新型Wi-Fi HaLow M.2卡与开发者套件:为智能工厂、交通运输与能源系统实现远距离、低功耗无线连接   2025 年 6 月 4 日 ——工业物联网领域迎来重大飞跃,全球领先的Wi-F
    发表于 06-04 10:58 1556次阅读
     摩尔斯微电子携手Gateworks,利用<b class='flag-5'>Wi-Fi</b> HaLow革新工业<b class='flag-5'>连接</b>