社区导航

 

搜索
查看: 459|回复: 0

[原创] 零知开源分享-ESP8266WIFI模块的使用

[复制链接]

69

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-5-14 14:49 | 显示全部楼层 |阅读模式
1、说明MCU:零知开源开发板-标准板
零知标准板 (2).jpg
模块:ESP-12F WIFI模块
WiFi模块.png
开发工具:零知开源开发工具
开发工具界面.png

功能:通过串口连接零知标准板与ESP-12F wifi模块,实现联网。本示例使用AP指令开发方式,开启一个热点并设置为TCP服务器模式,程序运行后就可以被其他wifi功能的终端连接上进行网络通信。


2、操作步骤
(1)硬件连接
把ESP8266WiFi模块连接到零知开发板的Serial1的引脚上(注意RX和TX交叉连接)

WIFI引脚接线.png
(2)打开零知开发工具,在【示例】中选择如下选项:
WiFi模块界面.png

界面2.png

3、测试结果
程序烧写到开发板后,打开零知开发工具的调试窗口,选择波特率为115200,就可以看到如下所示:
WiFi测试结果.jpg
可以看到网络功能开启成功的信息,以及服务器开放的ip和端口号。

在手机上打开网络设置界面,可以看到ESP8266的热点信息,如下:
手机热点.jpg

再打开手机上的网络调试助手工具,再到TCP客户端项目中选择增加,填写正确的ip和端口,如下:
网络调试助手.jpg


然后连接成功后会显示如下:
连接成功.jpg

可以看到从esp8266 wifi模块发送过来的信息,在发送框中发送信息,就可以在串口调试窗口中看到从手机上发过来的信息,如下:
最后结果.png
以上就实现了STM32与手机之间通过无线网络的TCP协议的通信。

4、核心代码

  1. / *
  2. **文件:AP_TCP_Server.ino
  3. * /

  4. #include “esp8266.h”
  5. #include

  6. #define ssid “ESP8266-TCP服务器”// wifi热点的名字
  7. #define password “12345678”// wifi热点的密码

  8. #define serverPort 8081 //服务端的端口号

  9. Esp8266 wifi;

  10. #define serialDebug Serial //用于调试信息打印
  11. #define serialEsp Serial1 //用于连接到esp8266的串口

  12. void setup(){

  13.         delay(8000); //等待一段时间,以便查看串口的调试信息
  14.          
  15.         serialDebug.begin(115200);
  16.         serialEsp.begin(115200);
  17.          
  18.         wifi.begin(&serialEsp,&serialDebug);  
  19.          
  20.         if(wifi.enableAP(ssid,password)){
  21.                 wifi.debugPrintln(“AP成功开启!”);
  22.         }
  23.         if(wifi.setMultiConnect()){
  24.                 wifi.debugPrintln(“开启多连接模式成功!”);
  25.         }         
  26.         if(wifi.openTCPServer(serverPort,180)){   
  27.                 wifi.debugPrintln(“开启TCP服务器成功!”);
  28.         }
  29.         wifi.debugPrintln(“服务器IP:”+ wifi.getIP()+“端口:”+ String(serverPort));
  30.          
  31. }

  32. loop() {

  33.         int state = wifi.getState();
  34.         switch(state){
  35.             case WIFI_NEW_MESSAGE://从客户端接收到了新的信息,打印
  36.               wifi.debugPrintln(String(wifi.getWorkingID())+“:”+ wifi.getMessage()); // debug
  37.               wifi.sendMessage(wifi.getWorkingID(),wifi.getMessage()); //把接收到的信息发送回给客户端
  38.               wifi.setState(WIFI_IDLE);
  39.                           break;
  40.             case WIFI_CLOSED://如果客户机端口连接
  41.               wifi.debugPrintln(String(wifi.getFailConnectID())+“:连接关闭!”);
  42.               wifi.setState(WIFI_IDLE);
  43.               break;
  44.             case WIFI_IDLE:
  45.             {
  46.                     int state = wifi.checkMessage();
  47.                     wifi.setState(state);
  48.                     break;
  49.             }
  50.             case WIFI_CLIENT_ON://客户端连接成功        
  51.                     wifi.sendMessage(wifi.getWorkingID(),“来自ESP8266:你好,[url]www.lingzhilab.com[/url]”);
  52.                     wifi.setState(WIFI_IDLE);
  53.                     break;
  54.         }
  55. }
复制代码


完整工程代码可到零知实验室官网免费获取


此内容由EEWORLD论坛网友roc2原创,如需转载或用于商业用途需征得作者同意并注明出处


来源:EEWorld DIY/开源硬件专区板块,转载请附上链接


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-9-22 14:26 , Processed in 0.082314 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表