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

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

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】基于LwIP的Web Server 的演示与代码分享

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

扫码添加小助手

加入工程师交流群

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

硬件模块:

WF-H861-SSA1 WiFi 模组

实现功能:在上电后进入AP 模式,热点名称:Soon-WiFi-IoT,连接上热点后用浏览器访问http://192.168.10.1/
显示“Hello Wifi IoT”
095426qkvzqwx9cwvzscrv.png
http://192.168.10.1/wifiiot
显示“欢迎访问wifi-iot页面”
095428am6y4n4m63pjreep.png
http://192.168.10.1/error
显示“404-Page not found”
095429hwjfzyiyi2w1yiwf.png

主要代码如下
  1. #include
  2. #include
  3. #include
  4. #include
  5. #include "ohos_init.h"
  6. #include "cmsis_os2.h"
  7. #include "wifi/ap_mode.h"
  8. #include "lwip/sockets.h"
  9. const unsigned char htmldata[] = "
  10. <title>Wifi-iot
  11. 欢迎访问wifi-iot页面

  12. ";
  13. const unsigned char hellowifiiot[] = "
  14. Hello Wifi IoT

  15. ";
  16. const unsigned char errhtml[] = "
  17. 404-Page not found

  18. ";
  19. /**
  20. * [url=home.php?mod=space&uid=2666770]@Brief[/url] serve tcp connection
  21. * [url=home.php?mod=space&uid=3142012]@param[/url] conn: connection socket
  22. * @retval None
  23. */
  24. void http_server(int conn)
  25. {
  26. int buflen = 1500;
  27. int ret;
  28. unsigned char recv_buffer[1500];
  29. /* Read in the request */
  30. ret = read(conn, recv_buffer, buflen);
  31. if (ret <= 0)
  32. {
  33. close(conn);
  34. printf("read failedrn");
  35. return;
  36. }
  37. if (strncmp((char *)recv_buffer, "GET /wifiiot", 9) == 0)
  38. {
  39. write(conn, htmldata, sizeof(htmldata) - 1);
  40. }
  41. else if (strncmp((char *)recv_buffer, "GET /error", 9) == 0)
  42. {
  43. write(conn, errhtml, sizeof(errhtml) - 1);
  44. }
  45. else
  46. {
  47. write(conn, hellowifiiot, sizeof(hellowifiiot) - 1);
  48. }
  49. /* Close connection socket */
  50. close(conn);
  51. }
  52. /**
  53. * @briefhttp_task
  54. * @param None
  55. * @retval None
  56. */
  57. static void http_task(void)
  58. {
  59. int sock, newconn, size;
  60. struct sockaddr_in address, remotehost;
  61. /* create a TCP socket */
  62. if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  63. {
  64. printf("can not create socket");
  65. return;
  66. }
  67. /* bind to port 80 at any interface */
  68. address.sin_family = AF_INET;
  69. address.sin_port = htons(80);
  70. address.sin_addr.s_addr = INADDR_ANY;
  71. if (bind(sock, (struct sockaddr *)&address, sizeof(address)) < 0)
  72. {
  73. printf("can not bind socket");
  74. close(sock);
  75. return;
  76. }
  77. /* listen for connections (TCP listen backlog = 1) */
  78. listen(sock, 1);
  79. size = sizeof(remotehost);
  80. while (1)
  81. {
  82. newconn = accept(sock, (struct sockaddr *)&remotehost, (socklen_t *)&size);
  83. if (newconn >= 0)
  84. {
  85. printf("newconn");
  86. http_server(newconn);
  87. }
  88. else
  89. {
  90. close(newconn);
  91. }
  92. }
  93. }
  94. static void *Lwip_Web_Task(const char *arg)
  95. {
  96. (void)arg;
  97. wifi_start_softap();
  98. http_task();
  99. return NULL;
  100. }
  101. static void Lwip_Web_Entry(void)
  102. {
  103. osThreadAttr_t attr = {0};
  104. attr.name = "Lwip_Web_Task";
  105. attr.attr_bits = 0U;
  106. attr.cb_mem = NULL;
  107. attr.cb_size = 0U;
  108. attr.stack_mem = NULL;
  109. attr.stack_size = 8192;
  110. attr.priority = osPriorityNormal;
  111. if (osThreadNew((osThreadFunc_t)Lwip_Web_Task, NULL, &attr) == NULL)
  112. {
  113. printf("Falied to create Lwip_Web_Entry!n");
  114. }
  115. }
  116. SYS_RUN(Lwip_Web_Entry);
复制代码


完整代码,如附件
 lwip_webserver.7z(2.69 KB, 下载次数: 3)

编译好的测试bin
 Hi3861_wifiiot_app_allinone.bin(761.04 KB, 下载次数: 5)

参考文章
LwIP之socket应用--WebServer和Modbus TCP
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    15

    文章

    2462

    浏览量

    130017
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36287
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何关闭或开启主设备Wi-Fi

    有用户反馈想要关闭或开启主FTTR设备的Wi-Fi,您可以登录主FTTR的web界面进行操作,具体操作如下:
    的头像 发表于 03-12 09:59 367次阅读
    如何关闭或开启主设备<b class='flag-5'>Wi-Fi</b>

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

    本文要点Wi-Fi模块设计旨在打造一套紧凑且高效的硬件和软件解决方案,使设备能够通过Wi-Fi网络实现通信。Wi-Fi模块设计是一个复杂的过程,要求研发人员兼具硬件与软件工程方面的专业知识
    的头像 发表于 02-27 17:12 872次阅读
    技术资讯 I <b class='flag-5'>Wi-Fi</b> 模块设计

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

    一、什么是Wi-FiWi-FiWi-Fi联盟制造商的商标认证,是基于IEEE 802.11标准的无线局域网技术。它允许电子设备在特定范围内无线接入网络,实现高速数据交换与互联网访问,已成为
    发表于 01-07 09:49

    探索CY8CPROTO - 062S2 - 43439 PSoC™ 62S2 Wi-Fi蓝牙原型套件

    探索CY8CPROTO - 062S2 - 43439 PSoC™ 62S2 Wi-Fi蓝牙原型套件 引言 在物联网(IoT)和可穿戴设备蓬勃发展的今天,低功耗、高性能且功能丰富的开发套件
    的头像 发表于 12-20 14:50 1891次阅读

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

    Wi-Fi 6 功能,帮助开发人员创建高性能、高能效的Wi-Fi 6 物联网解决方案。 基于 Nordic 的 nRF7002 Wi-Fi 协同 IC,nRF7002 EBII帮助 采用
    发表于 12-10 11:58

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

    物联网的快速发展,Wi-Fi技术的成熟的情况下,越来越多的场景需要用到Wi-Fi来无线传输数据,尤其是移动设备中,怎么再设备中选择合适的Wi-Fi模块呢?下面我们来介绍下Wi-Fi模块
    的头像 发表于 12-09 11:27 1319次阅读
    <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 2452次阅读
    浅谈<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

    基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较

    随着 nRF7000 Wi-Fi 协同 IC 的推出,我们现在可以提供具有 Wi-Fi、蜂窝物联网和 GNSS 功能的完整硅到云定位解决方案。nRF7000 针对 Wi-Fi 网络扫描进行了优化
    发表于 08-31 21:01

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

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

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

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

    如何选择合适的芯科科技Wi-Fi开发板

    您正在寻找适用于超低功耗物联网应用项目的Wi-Fi 开发板吗?本文将介绍Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗蓝牙5.4解决方案的Wi-Fi 开发板。SiWx917是目前市场上最节能
    的头像 发表于 07-09 09:15 2929次阅读

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

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

    科普|公司的Wi-Fi,为什么这么慢?

    大家在公司上班,经常会使用到Wi-Fi。最近这几年,随着时代的发展,高清视频会议等大带宽网络应用越来越普遍。而公司的网络,却非常不给力,频繁卡顿,严重影响使用体验。哪怕IT的同事已经把网络优化得很
    的头像 发表于 06-20 06:06 1796次阅读
    科普|公司的<b class='flag-5'>Wi-Fi</b>,为什么这么慢?

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

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