简单的设置ESP8266通过互联网或局域网远程双向通信电脑手机等多种客户端

李玉庆 2019-08-12 10:09:42


设置ESP8266为服务站。支持电脑、手机等多种客户端通过互联网远程连接路由WIFI下的ESP8266服务站,进行双向通信。

下面几步照做下来,就能双向通信了,有了这个例程再用51单片机控制8266就好理解了。

我没有专用的USB转接板,所以借用了普中科技的单片机开关板上的CH340芯片和数据线,接线如图,这块网上教程很多,也有现成的转接板,我就不啰嗦了。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
AT
回应OK,表示电脑串口调试软件通过USB转串口与8266的硬件通信已连接好

AT+CWMODE=1 模式这里选择1或3都可以

AT+CWJAP="wifi名称","WIFI密码"

回应OK,表示8266与WIFI的无线通信已连接好

以上设置只需设置一次,模块ESP8266即使断电,设置也不会丢失。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
AT+CIFSR 查询IP命令,记录8266被分配的内网IP。上面三个命令贴图如下:

在路由器设置中将IP与MAX地址进行绑定,使路由即使重启,8266所分配到的内网IP也不会改变。

在路由器的防火墙中设置外网到内网IP的端口转发,端口号11853

在路由器中查看通信公司给路由器分配的外部互联网IP,重启路由器会改变外网IP。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
AT+CIPMUX=1 必须设置为多路链接

AT+CIPSERVER=1,11853 设置8266端口号为11853,1表示远程连接

以上两个设置,断电后8266不能保存。重新上电需要重新设置8266后,客户端才能连接上。

\\\\\\\\\\\\\\\\\客户端通过外网连接到ESP8266服务站\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

将手机关闭WLAN,开启移动数据4G模式进入外部互联网。
打开手机APP,我用的APP名叫 TCP连接,点连接,输入 路由器外网IP和端口号11853,开始连接




\\\\\\\\\\\\\\\\\客户端通过外网发送数据到ESP8266服务站\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

连接成功后,用手机APP发数据给8266。

8266收到后,会显示:
+IPD,0,36:这是手机通过外网发送给8266的数据!!

0,表示是0路客户端(手机)发来的数据。
36:表示共有36个字节的数据
这是手机通过外网发送给8266的数据!!--- 是收到的数据

\\\\\\\\\\\\\\\\\\\\ESP8266服务站发送数据到外部客户端(手机)\\\\\\\\\\\\\\\\\\\\
AT+CIPSEND=0,20 发送给客户端(手机)0号,发送的字节数20

A123456789B123456789 发送20个数据


\\\\\\\\\\\\\\\\\\\\\\\\内网PC通过局域网发送数据给ESP8266\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
需要将PC设成客户端模式。
服务器地址为8266的IP地址。
服务端口号为:11853

局域网PC发送数据给8266.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ESP8266通过局域网发送数据给内网PC\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
AT+CIPSEND=1,32
1代表客户端(PC)
32所发的数据数量


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
AT+CIFSR 查询IP命令

AT+RST 重启模块

AT+RESTORE 恢复出厂设置

最后啰嗦一下,每个命令都要加回车换行,再发送。否则有时候命令会执行不成功。
...全文
3324 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kennychow 2019-08-19
  • 打赏
  • 举报
回复
https://blog.csdn.net/kennychow/article/details/78328128

ALK8266WIFI模块支持常见普通单片机实现WIFI高速传输和更多复杂功能,实测速度超过M字节每秒
李玉庆 2019-08-16
  • 打赏
  • 举报
回复
网上参考了一个51的初始化esp的程序,上电后,就可以通过WIFI连接ESP了。
STC烧程序时需要5V电压,工作时需要切换回3.3V。调试程序时我忘了切换回来,烧了一片ESP8266,太可惜了。

#include<reg52.h>

unsigned char *str;//发送char型字符串


/*串口初始化子函数*/
void Serial_Inti()//串口初始化,一定注意不要启动T1的串口中断
{
SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; // TMOD=0X20:使用定时器1,8位自动加载计时器
PCON|= 0x80;
TH1 = 0xFd; // baud*2 /* 波特率19200、数据位8、停止位1。效验位无 (11.0592);设置8位自动加载计时器定时时间,
//TH1 = 0xF3; // baud*2 /* 波特率4800、 数据位8、停止位1。效验位无 (12M)
TL1 = 0xF3; // 公式TL1 = 256- fosc(SMOD+1)/(32*12*波特率)
TR1 = 1; // TR1=1:启用定时器1
}

/*字符串发送子函数(用于配置)*/
void Uart_Sends(unsigned char *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;//清除发送中断标志位以继续发送
str++;
}
}

/*延时程序*/
void Delay1ms( unsigned int j)
{
while(j>1){j--;}
}

/*WIFI模块初始化*/
void Wifi_Init()

{ Delay1ms(6000);
Uart_Sends("AT+CIPMUX=1\r\n"); //设置为多路链接
Delay1ms(6000);
Uart_Sends("AT+CIPSERVER=1,11883\r\n"); //设置8266端口号为11853,1表示远程连接
}

void main()
{
Delay1ms(6000); //延时等待ESP8266上电
Delay1ms(6000);
Delay1ms(6000);
Delay1ms(6000);
Delay1ms(6000);
Delay1ms(6000);
Serial_Inti();
Wifi_Init();
while(1)
{;}
}
李玉庆 2019-08-12
  • 打赏
  • 举报
回复
我没没没搞过安卓。求指教。。。
李玉庆 2019-08-12
  • 打赏
  • 举报
回复
上面只是搞明白了用51单片机应该怎么控制ESP8266的双向通信。
具体的应用,我还没有想到需要这个模块通信的应用场景。关于遥控几路灯,是不是太简单了点
我是希望能够承担一些数据传送的需求场景。。。。
打算用Labview做PC端的软件。
不知道,手机APP编写软件用什么入门比较好?我搞过安卓。求指教。。。
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧