利用FPGA控制WIFI模块(1)——8266篇

0.前言:

这一系列博客主要用来记录通过FPGA控制无线传输设备,特别是WIFI模块的博客。希望为后来的FPGAer提供相关的经验,少走弯路。

1.模组简介

ESP8266 系列模组是基于乐鑫ESP8266的超低功耗的UART-WiFi模块的模组,可以方便地进行二次开发,接入云端服务,以最低成本提供最大实用性。可以在10元以内实现WIFI-UART的双向控制。模块的基本外观可以参考下面官网的图片。图片里模块的型号是ESP-01S,安信可公司除了这款模块以外,还有几款几款类似的型号,都是基于ESP8266开发的,详情可以参考安信可公司的网站有相关的介绍:http://wiki.ai-thinker.com/esp8266

2.接口定义

上图是ESP-01S模块的俯视图,图中标明了模块8个接口IO的位置及名称,下面我们来一一介绍一下每个IO的具体功能

PIN脚编号 PIN脚名称 功能及备注
7 RST 复位引脚,低电平有效
6 EN 芯片使能端,高电平有效
8 VCC 模块供电引脚,电压范围3.0~3.6V
1 GND 电源地
2 IO2 U1_TXD,I2C_SDA,I2SO_WS
3 IO0 GPIO0,HSPI_SIMO,I2SI_DATA
4 RXD GPIO3,I2SO_DATA
5 TXD GPIO1

实际在使用时,主要用的是1、4、5、6、7、8,即GND、RXD、TXD、EN、RST、VCC,就能实现模块与上位机通过UART串口的通信。

3.简单应用

上面两幅图片是8266模块的典型应用电路,实际使用时我们用USB转TTL接口模块,利用上面的3.3V给模块供电。USB转TTL的发送与接收与8266模块的发送与接收交叉连接,我们就完成了硬件电路的连接。

模块出厂一般都内置了AT的固件,安信可的默认波特率为115200,N,8,1。打开串口助手,选择USB转TTL模块,就能进行AT指令操作。

安信可常见的AT指令,可以参考他的指令说明:http://wiki.aithinker.com/esp8266/docs#at

下面我们通过几个例子熟悉模块的相关操作:

1)TCP SERVER通信

模块上电或复位后会发出状态信息(这些状态信息是以9600波特率传输的,在115200波特率下显示为乱码),之后会打印ready,表明模块已经准备好。

通过串口发送“AT+CWMODE=2”(配置为AP模式),注意如果串口助手有发送新行的选项的话记得勾选上,否则模块可能不会响应你的指令。

模块正确接收并执行指令后会通过串口返回“OK”

得到“OK”的返回值之后发送“AT+CWSAP_DEF="TCP_Server","12345678",5,4”(配置AP信息,SSID为TCP_Server,密码为12345678)

之后在收到“OK”之后发送“AT+CIPMUX=1”(开启AP多连接)

再之后收到“OK”后发送“AT+CIPSERVER=1”(开启TCP服务器)

此时已经可以在电脑上,通过无线网卡发现名为“TCP_Server”的WIFI,加入的密码为“12345678”。然后打开网络串口助手,如果没有可以去安信可官网下载:http://wiki.ai-thinker.com/_media/tools/tcpudpdbg.zip

在网络串口助手里建立TCP连接,目标IP及端口为192.168.4.1,333。均为安信可公司的默认设置,点击连接,串口助手会打印8266模块的连接状态即“0,CONNECT”,表明1个STAION已经连接上服务器。

此时,在串口助手上输入指令“AT+CIPSEND=0,10”(表示告诉模块,我准备向第0个连接的设备传输10个字的数据),之后模块会回复“OK >”表明准备好接收你要输出的数据,此时输入10个字符,点击发送。模块发送成功后会反馈信息“SEND OK”,这时你可以在网络串口助手上看到你通过串口助手发送的数据。

2)TCP CLIENT通信

TCP CLIENT的通信与TCP SERVER的会有些许不同,网络串口助手负责建立TCP SERVER服务器,端口号为333。

具体操作可以参考上一部分的内容,下面只把发送的命令和模块的反馈罗列出来:

ready
AT+CWMODE=1 //配置为Station模式

OK
AT+CWJAP_DEF="TCP_Server","12345678" //连接到AP

WIFI CONNECTED
WIFI GOT IP

OK

AT+CIFSR //查询本机IP地址

+CIFSR:STAIP,"192.168.4.2"
+CIFSR:STAMAC,"5c:cf:7f:91:8b:3b"

OK
AT+CIPMUX=0 //开启单连接

OK
AT+CIPSTART="TCP","192.168.4.1",333 //连接到TCP服务器

CONNECT
OK

AT+CIPSEND=10 //准备发送10个字节的数据到服务器端
 
OK
>         //出现该符号后串口发送Ai-Thinker(不带会车换行)
Recv 10 bytes   //串口接收到数据

SEND OK //发送成功
CLOSED //TCP连接被关闭

3)UDP通信AP模式

ready
AT+CWMODE=2 //配置为AP模式

OK
AT+CWSAP_DEF="TCP_Server","12345678",5,4 //配置AP信息

OK
AT+CIFSR //查询本机IP地址
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"a2:20:a6:19:c7:0a"

OK
AT+CIPSTART="UDP","192.168.4.2",8002,8001,0 //开启UDP连接

CONNECT

OK
+IPD,10:Ai-Thinker //接收到10个数据(Ai-Thinker)
AT+CIPSEND=10 //发送10个字节的数据到服务器端

OK
> //出现该符号后串口发送Ai-Thinker(不带会车换行)
Recv 10 bytes //串口接收到数据

SEND OK
AT+CIPCLOSE //关闭UDP连接

CLOSED

OK

4)UDP通信STATION模式

ready
AT+CWMODE=2 //配置为Station模式
 
OK
AT+CWSAP_DEF="TCP_Server","12345678",5,4 //连接到AP

OK
AT+CIFSR //查询本机IP地址
+CIFSR:STAIP,"192.168.4.2"
+CIFSR:STAMAC,"5c:cf:7f:91:8b:3b"

OK
AT+CIPSTART="UDP","192.168.4.1",8001,8002,0 //开启UDP连接

CONNECT

OK
AT+CIPSEND=10 //发送10个字节的数据到服务器端

OK
> //出现该符号后串口发送Ai-Thinker(不带会车换行)
Recv 10 bytes //串口接收到数据

SEND OK
+IPD,10:Ai-Thinker //接收到10个数据(Ai-Thinker)

AT+CIPCLOSE //关闭UDP连接

CLOSED

OK

4.结语

至此,我们基本上了解了8266的接口定义,连接方式以及基本的操作。为之后利用FPGA控制它打下知识基础。

原文地址:https://www.cnblogs.com/xianfei-li/p/9114304.html

时间: 2024-07-30 04:37:59

利用FPGA控制WIFI模块(1)——8266篇的相关文章

基于WIFI模块(ESP8266)与非同一个局域网内服务器建立连接(转)

原文地址:https://blog.csdn.net/ludaoyi88/article/details/62236644 案例简述: 以WIFI模块(ESP8266)为开发对象,处在局域内网中的WIFI模块,连接到另外一个局域内网的TCP服务器,形成WIFI模块和服务器之间通信.本文先以电脑控制WIFI模块的连接,熟悉AT指令的使用,再通过编程手段,由单片机去控制WIFI模块,深入学习. 一.电脑端调试,控制WIFI模块的连接 说明:将WIFI模块通过串口与电脑连接,电脑通过串口调试软件给模块

3-(微信小程序篇)WiFi模块配网以后利用小程序绑定,控制设备,一次只能绑定控制一个设备

https://www.cnblogs.com/yangfengwu/p/11623750.html 一,实现的功能描述 STM32通过AT指令控制模块配网(支持SmartConfig和Airkiss),配网以后设备进入绑定状态(60S超时),在设备绑定超时时间内打开小程序即可绑定设备,然后实现控制功能. 二,功能测试 1,由于会不停的更新小程序代码,小程序发布又需要时间审核,我就不发布小程序,所以大家先按照以下方式运行小程序(熟悉一下流程) 1.1 打开小程序工程代码 1.2 选择真机调试,选

26-ESP8266 SDK开发基础入门篇--编写WIFI模块 SmartConfig/Airkiss 一键配网

https://www.cnblogs.com/yangfengwu/p/11427504.html SmartConfig/Airkiss 配网需要APP/微信公众号,这节大家先使用我做好的APP/微信公众号 APP下载: https://www.cnblogs.com/yangfengwu/p/11249674.html 微信公众号: 扫描这个二维码关注我的公众号      其余的步骤等写完8266的配网程序,在下面演示. 如果想自己实现微信绑定可以看↓ (注:配置过程和源码全部是公开的,大

WIFI模块开发教程之W600网络篇1:AP模式下TCP Client通信

前言 本文研究如何在AP模式下进行TCP Client通信,所谓AP模式是说模块起来一个softAP热点,可以供其他WIFI设备连接,当其他设备连接成功后,另WIFI模块作为客户端,局域网中其他设备作为服务端进行TCP数据通信. 一.理论基础 本节要处理的有两个问题,其一是如何利用RT_Thread起来一个softAP,其二是如何使用Socket套接字编程搞定TCP Client程序编写. 1.模块开启SoftAP 模块需要起来一个名字为sand,密码为12345678的热点,RT_Thread

ESA2GJK1DH1K升级篇: 测试STM32远程乒乓升级,基于(Wi-Fi模块AT指令TCP透传方式),MQTT通信控制升级

实现功能概要 前面的版本都是,定时访问云端的程序版本,如果版本不一致,然后下载最新的升级文件,实现升级. 这一节,在用户程序里面加入MQTT通信,执行用户程序的时候,通过接收MQTT的升级命令实现升级 注意:BootLoader程序还是用以前的程序. 一开始设计这个升级篇的时候,我就规定好了大的框架 BootLoader只是负责升级,其它一概不管 用户程序只是写入升级标志,然后重启,所有的升级步骤全部交给BootLoader! 协议: 一,MQTT上位机通过MQTT发送获取设备信息指令 {"da

WIFI模块开发教程之W600网络篇2:AP模式下TCP Server通信

前言 本文研究如何在AP模式下进行TCP Server通信,所谓AP模式是说模块起来一个softAP热点,可以供其他WIFI设备连接,当其他设备连接成功后,另WIFI模块作为服务端,等待局域网中其他客户端连接后通信. 一. 理论基础 本节要处理的有两个问题,其一是如何利用RT_Thread连接路由器,其二是如何使用Socket套接字编程搞定TCP Server程序编写. 1.连接路由器 模块需要开启station,并且连接到一个路由器,RT_Thread中只需要调用wlan.mgnt.h中的函数

【智能家居篇】wifi驱动的理解(3)——usb接口在wifi模块中的角色

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 上一篇文章已经提到USB接口在wifi模块中的最重要两个函数是usb_read_port()和usb_write_port().那它们是怎么和wifi扯上关系的呢?我们可以从以下三个方面去分析: 1.首先需要明确wifi模块是USB设备,主控(CPU)端是USB主机: 2.USB主机若需要对wifi模块进行数据的读写时,就必须经过USB接口: 3.既然涉及到数据的读写操作,必然要用相应的读写函数,那么usb_re

单片机+wifi模块进行远程控制开关灯

一.前言 菜鸟起初玩单片机的时候,当点亮第一个小灯时内心激动的一批,大二下半学期利用一个寒假在跟着视频学习,就这样开始入们单片机了.大学里一年一度的校园电子设计大赛如期而至,我也报名参加了(纯属曾热闹着玩去了),学校要求参赛的人员晚上要去实验室去做自己的作品,我也去实验室了几次,给我最为震惊的就是他们设计的东西大部分都是某宝上买的零期间然后自己焊装拼接,代码啥的拿过来然后改个一二就行了!(当时给我都整懵逼了,比赛原来是这样的,这能学到啥~V~,我想象的应该是卷起袖子自己纯撸代码那种.....).

HttpApplication处理对象与HttpModule处理模块 (第三篇)

一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplication. HttpRuntime管理一个定义在System.Web命名空间下的HttpApplicationFactory类的时候,HttpApplicationFactory通过工厂模式管理HttpApplication对象.在HttpApplicationFactory内部维护了一个HttpA