无线通信-WIFI通信

文章目录

    • [1. 基础知识](#1. 基础知识)
    • [2. 工作模式](#2. 工作模式)
    • [3. AT指令](#3. AT指令)
    • [4. 常用AT指令实例](#4. 常用AT指令实例)
    • [5. 连接原子云](#5. 连接原子云)
    • [6. 使用usb转ttl模块测试ATK-MW8266D](#6. 使用usb转ttl模块测试ATK-MW8266D)
    • [7. 使用STM32F103ZET6战舰开发板透传模式](#7. 使用STM32F103ZET6战舰开发板透传模式)
    • [8. 使用STM32F103ZET6战舰板连接原子云](#8. 使用STM32F103ZET6战舰板连接原子云)

1. 基础知识

  • ATK-ESP-01

    ATK-ESP-01模块支持标准的IEEE802.11b/g/n协议,完整的TCP/IP协议栈。我们可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。

  • 引脚定义

    ATK-ESP-01模组共接出16个接口:

  • 工作模式:

  • ATK-MW8266d模块

    ATK-MW8266D模块是正点原子推出的一款高性能UART-WIFI(串口-无线)模块, ATK-MW8266D模块板载了正点原子公司自主研发的ATK-ESP-01模块,该模块通过FCC、 CE认证,可直接用于出口欧美地区的产品。

    ATK-MW8266D模块采用串口(LVTTL)与MCU(或其他串口设备)通讯,且内置TCPP协议栈,能够实验串口与WFI之间的转换。通过ATK-MW8266D模块,传统的串口设备只需要简单的串口配置,即可通过网络(WFI)传输自己的数据。

ATK-MW8266D模块的各个引脚的详细描述:

2. 工作模式

ATK-MW8266D模块支持三种工作模式,分别为:STA、AP、STA+AP。

  1. STA模式

    在此模式下,ATK-MW8266D模块可连接其他设备提供的无线网络,例如通过WIFI连接至路由器,从而可以访问互联网,进而实现手机或电脑通过互联网实现对设备的远程控制。

  2. AP模式

    AP模式为默认的模式,在此模式下,ATK-MW8266D模块将作为热点供其他设备连接,从而让手机或电脑直接与模块进行通讯,实现局域网的无线控制。

  3. STA+AP模式

    该模式为STA模式与AP模式共存的一种模式,ATK-MW8266D模块既能连接至其他设备提供的无线网络,又能作为热点,供其他设备连接,以实现广域网与局域网的无缝切换,方便操作使用。

除了上述的三种工作模式外,ATK-MW8266D模块在进行UDP连接或作为TCP客户端连接时,能够进入透传模式,进入透传模式后,ATK-MW8266D将会原封不动地把从TCP服务器或其他UDP终端接收到的消息,通过UART发送至与之连接的设备。

3. AT指令

  • AT指令说明

    类型 指令格式 描述
    测试指令 AT+<CMD>=? 该命令用于查询设置指令的参数以及取值范围
    查询指令 AT+<CMD>? 该命令用于返回参数的当前值
    设置指令 AT+<CMD>=<...> 该命令用于设置用户自定义的参数值
    执行指令 AT+<CMD> 该命令用于执行受模块内部程序控制,且参数不可变的的功能
  • 基础AT指令

    指令 描述
    AT 测试 AT启动
    AT+RST 重启模块
    AT+GMR 查看版本信息
    ATE 开关回显功能
    AT+RESTORE 恢复出厂设置
    AT+UART UART配置
  • WIFI功能AT指令

    指令 描述
    AT+CWMODE 设置WIFI模式(STA、AP、STA+AP)
    AT+CWJAP 连接 AP
    AT+CWLAP 扫描附近的 AP 信息
    AT+CWQAP 与 AP 断开连接
    AT+CWSAP 设置 AP模式的配置
    AT+CWLIF 获取已接入设备的信息
    AT+CWDHCP 设置 DHCP
    AT+CWAUTOCONN 设置上电时是否自动连接 AP
    AT+CIPSTAMAC 设置 STA模式下的 MAC 地址
    AT+CIPAPMAC 设置 AP 模式下的 MAC地址
    AT+CIPSTA 设置 STA 模式下的 IP 地址
    AT+CIPAP 设置 AP模式下的IP地址
    AT+CWSTARTSMART 开始 SmartConfig
    AT+CWSTOPSMART 停止 SmartConfig
    AT+WPS 设置 WPS 功能
    AT+MDNS 设置 MDNS 功能
    AT+CWHOSTNAME 设置主机名
  • TCP/IP相关AT指令

    指令 描述
    AT+CIPSTATUS 查询网络连接信息
    AT+CIPDOMAIN 域名解析功能
    AT+CIPSTART 建立 TCP 连接、UDP 传输或 SSL 连接
    AT+CIPSSLSIZE 设置 SSL 缓冲大小
    AT+CIPSEND 发送数据
    AT+CIPCLOSE 关闭 TCP 连接、UDP 传输或 SSL 连接
    AT+CIFSR 查询本地 IP 地址
    AT+CIPMUX 设置多连接模式
    AT+CIPSERVER 设置TCP服务器
    AT+CIPMODE 设置透传模式
    AT+SAVETRANSLINK 保存透传连接到 Flash
    AT+CIPSTO 设置 TCP 服务器的超时时间
    AT+PING Ping 功能
    AT+ATKCLDSTA 连接到原子云服务器
    AT+ATKCLDCLS 关闭原子云服务器连接

4. 常用AT指令实例

  • AP模式下作TCP服务器

    发送指令 作用
    AT+CWMODE=2 设置为 AP 模式
    AT+RST 重启生效
    AT+CWSAP="ATK-MW8266D", "12345678",1,4 设置AP参数。SSID 为 ATK-MW8266D、密码为12345678、 通道为1、加密方式为WPA_WPA2_PSK
    AT+CIPMUX=1 开启多连接
    AT+CIPSERVER=1,8086 开启 SERVER 模式,端口号为8086
    AT+CIPSEND=0,25 向 ID0 发送25字节数据包
  • AP模式下作TCP客户端

    发送指令 作用
    AT+CWMODE=2 设置为 AP 模式
    AT+RST 重启生效
    AT+CWSAP="ATK-MW8266D", "12345678",1,4 设置AP参数。SSID 为ATK-MW8266D、密码为12345678、 通道为1、加密方式为 WPA_WPA2_PSK
    AT+CIPMUX=0 开启单连接
    AT+CIPSTART="TCP", "192.168.4.XXX",8086 建立 TCP 连接到192.168.4.XXX:8086
    AT+CIPMODE=1 开启透传模式(仅单连接Client时支持)
    AT+CIPSEND 开始发送数据
  • AP模式下作UDP连接

    发送指令 作用
    AT+CWMODE=2 设置为 AP 模式
    AT+RST 重启生效
    AT+CWSAP="ATK-MW8266D", "12345678",1,4 设置 AP参数。SSID 为ATK-MW8266D、密码为12345678、 通道为1、加密方式为WPAWPA2PSK
    AT+CIPMUX=0 开启单连接
    AT+CIPSTART="UDP", ""192.168.4.XXX",8086 建立 UDP 连接到192.168.4.XXX:8086
    AT+CIPSEND=25 向目标 UDP发送25字节数据
  • STA模式下作TCP服务器

    发送指令 作用
    AT+CWMODE=1 设置为STA 模式
    AT+RST 重启生效
    AT+CWJAP="ATK-MW8266D" "12345678" 加入WiFi热点。SSID:ATK-MW8266D、密码:12345678
    AT+CIPMUX=1 开启多连接
    AT+CIPSERVER=1,8086 开启 SERVER 模式,端口号为8086
    AT+CIPSEND=0,25 向 ID0发送25字节数据包
  • STA模式下作TCP客户器

    发送指令 作用
    AT+CWMODE=1 设置为 STA 模式
    AT+RST 重启生效
    AT+CWJAP="ATK-MW8266D", "12345678"" 加入WiFi热点。SSID:ATK-MW8266D、密码:12345678
    AT+CIPMUX=0 开启单连接
    AT+CIPSTART="TCP', "192.168.4.XXX",8086 建立 TCP 连接到192.168.4.XXX:8086
    AT+CIPMODE=1 开启透传模式(仅单连接Client 时支持)
    AT+CIPSEND 开始发送数据
  • STA模式下作UDP连接

    作用
    AT+CWMODE=1 设置为 STA 模式
    AT+RST 重启生效
    AT+CWJAP="ATK-MW8266D", "12345678"" 加入WiFi热点。SSID:ATK-MW8266D、密码:12345678
    AT+CIPMUX=0 开启单连接
    AT+CIPSTART="UDP", "192.168.4.XXX",8086 建立 UDP 连接到192.168.4.XXX:8086
    AT+CIPSEND=25 向目标 UDP 发送 25 字节数据
  • AP+STA模式下作TCP服务器

    发送指令 作用
    AT+CWMODE=3 设置为AP+STA 模式
    AT+RST 重启生效
    AT+CWSAP="ATK-MW8266D","12345678",1,4 设置 AP参数。SSID 为ATK-MW8266D、密码为12345678、
    AT+CWJAP="ALIENTEK","12345678" 通道为1、加密方式为WPA_WPA2_PSK 加入WiFi热点。SSID:ALIENTEK、密码:12345678
    AT+CIPMUX=1 开启多连接
    AT+CIPSERVER=1,8086 开启SERVER 模式,端口号为8086
    AT+CIPSTO=1200 设置服务器超时时间1200s
    AT+CIPSEND=0,25 向 IDO 发送数据
    AT+CIPSEND=1,25 向 ID1 发送数据
  • AP+STA模式下作TCP客户器

    发送指令 作用
    AT+CWMODE=3 设置为AP+STA 模式
    AT+RST 重启生效
    AT+CWSAP="ATK-MW8266D", "12345678",1,4 设置 AP参数。SSID 为 ATK-MW8266D、密码为12345678、 通道为1、加密方式为 WPA_WPA2_PSK
    AT+CWJAP="ALIENTEK", "12345678" 加入WiFi热点。SSID:ALIENTEK、密码:12345678
    AT+CIPMUX=1 开启多连接
    AT+CIPSTART=O,"TCP", "192.168.4.XXX",8086 建立 TCP 连接到 192.168.4.XXX:8086
    AT+CIPSEND=0,25 向 IDO 发送数据
    AT+CIPSEND=1,25 向 ID1 发送数据
  • AP+STA模式下作UDP连接

    发送指令 作用
    AT+CWMODE=3 设置为 AP+STA 模式
    AT+RST 重启生效
    AT+CWSAP="ATK-MW8266D", "12345678",1,4 设置 AP 参数。SSID 为 ATK-MW8266D、密码为 12345678、 通道为1、加密方式为WPA_WPA2_PSK
    AT+CWJAP="ALIENTEK", "12345678"" 加入WiFi热点。SSID:ALIENTEK、密码:12345678
    AT+CIPMUX=1 开启多连接
    AT+CIPSERVER=1,8086 开启服务器,端口号8086
    AT+CIPSTO=1200 设置服务器超时时间1200s
    AT+CIPSTART=O,"UDP", ""192.168.1.XXX",8086 STA 作为 ID0 连接到192.168.1.XXX:8086
    AT+CIPSEND=0,25 向 IDO 发送数据
    AT+CIPSEND=1,25 向 ID1 发送数据

5. 连接原子云

原子云即原子云服务器,是正点原子推出的互联网云服务平台,它可以实现数据的远程监控、转发和管理等功能,在未来也会持续更新更多的功能以满足用户的需求。原子云域名为:cloud.alientek.com,端口号为:59666。

使用步骤:

  1. 登录"https://cloud.alientek.com/"创建并登录账号

  2. 点击设备管理->新增设备->ESP8266

  3. 设置新增设备名称和密码

  4. 点击新增,创建完成

  5. 点击分组管理->新增分组

  6. 选中序号->移入->保存

6. 使用usb转ttl模块测试ATK-MW8266D

  • 硬件连接:

  • 打开串口调试助手,发送AT指令进行测试








7. 使用STM32F103ZET6战舰开发板透传模式

  • 硬件连接:

    过程中发现很多问题,然后一直无法完成硬件初始化,是因为线路连接问题,这里USART3的跳线帽要连接到 GBC;USART1要把PA9、PA10连接到RXD和TXD,使用USB数据线连接USB_UART,wifi模块插入方式如上 图所示。

  • 软件设置:

    c 复制代码
    //1.恢复出厂设置
    atk_mw8266d_send_at_cmd("AT+RESTORE", "ready", 3000);
    //2.AT测试
    atk_mw8266d_send_at_cmd("AT", "OK", 500);
    //3.STA模式
    atk_mw8266d_send_at_cmd("AT+CWMODE=1", "OK", 500); 
    //4.软件复位
    atk_mw8266d_send_at_cmd("AT+RST", "OK", 500);
    //5.关闭回显
    atk_mw8266d_send_at_cmd("ATE0", "OK", 500);
    //6.连接EIFI
    sprintf(cmd, "AT+CWJAP=\"%s\",\"%s\"", ssid, pwd);
    atk_mw8266d_send_at_cmd(cmd, "WIFI GOT IP", 10000);
    //7.获取IP地址
    atk_mw8266d_send_at_cmd("AT+CIFSR", "OK", 500);
    //8.连接TCP服务器
    sprintf(cmd, "AT+CIPSTART=\"TCP\",\"%s\",%s", server_ip, server_port);
    atk_mw8266d_send_at_cmd(cmd, "CONNECT", 5000);
    //9.开启透传模式
    atk_mw8266d_send_at_cmd("AT+CIPMODE=1", "OK", 500);
    //10.开始发送数据
    atk_mw8266d_send_at_cmd("AT+CIPSEND", ">", 500);

    从上述软件配置过程可以看出,基本与我们使用usb转ttl相同。

  • 注意事项:

    1. 模块的wifi要与电脑的wifi连接到同一个AP上面

    2. 修改代码:

  • 实验结果:

    从实验结果分析,已经建立连接,并开启透传模式,成功发送数据。

8. 使用STM32F103ZET6战舰板连接原子云

  • 硬件连接:

    与透传模式硬件连接图相同。

  • 软件设置:

    c 复制代码
    //1.恢复出厂设置
    atk_mw8266d_send_at_cmd("AT+RESTORE", "ready", 3000);
    //2.AT测试
    atk_mw8266d_send_at_cmd("AT", "OK", 500);
    //3.STA模式
    atk_mw8266d_send_at_cmd("AT+CWMODE=1", "OK", 500); 
    //4.软件复位
    atk_mw8266d_send_at_cmd("AT+RST", "OK", 500);
    //5.关闭回显
    atk_mw8266d_send_at_cmd("ATE0", "OK", 500);
    //6.连接EIFI
    sprintf(cmd, "AT+CWJAP=\"%s\",\"%s\"", ssid, pwd);
    atk_mw8266d_send_at_cmd(cmd, "WIFI GOT IP", 10000);
    //7.获取IP地址
    atk_mw8266d_send_at_cmd("AT+CIFSR", "OK", 500);
    //8.连接原子云
    sprintf(cmd, "AT+ATKCLDSTA=\"%s\",\"%s\"", id, pwd);
    ret = atk_mw8266d_send_at_cmd(cmd, "CLOUD CONNECTED", 10000);
    //9.接收原子云发送的数据
    atk_mw8266d_uart_rx_restart();
  • 注意事项:

  • 实验结果:

    原子云向单片机发送的信息,我们代码中设置了发送数据控制LED0的亮灭,发送1控制LED0点亮,然后回传灯亮。

相关推荐
PegasusYu6 小时前
STM32CUBEIDE FreeRTOS操作教程(九):eventgroup事件标志组
stm32·教程·rtos·stm32cubeide·free-rtos·eventgroup·时间标志组
文弱书生65611 小时前
输出比较简介
stm32
黑客呀14 小时前
[系统安全]Rootkit基础
stm32·单片机·系统安全
小A15914 小时前
STM32完全学习——使用SysTick精确延时(阻塞式)
stm32·嵌入式硬件·学习
楚灵魈14 小时前
[STM32]从零开始的STM32 HAL库环境搭建
stm32·单片机·嵌入式硬件
小A15914 小时前
STM32完全学习——使用标准库点亮LED
stm32·嵌入式硬件·学习
code_snow16 小时前
STM32--JLINK使用、下载问题记录
stm32·单片机·嵌入式硬件
youcans_18 小时前
【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识
stm32·单片机·嵌入式硬件·电机控制·foc
YuCaiH1 天前
【STM32】MPU6050简介
笔记·stm32·单片机·嵌入式硬件
linux_carlos1 天前
#lwIP 的 Raw API 使用指南
stm32·单片机·mcu·物联网·rtdbs