打印
[应用方案]

Uart-WiFi模块ESP8266把玩记

[复制链接]
687|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
neeringstu|  楼主 | 2016-11-9 19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于只是一个模块,并不是完整的开发板,所以需要自己连接外围电路。试用的过程中遇到了很多麻烦,这里统统记录。

1.确认硬件版本
由于ESP8266版本一直在更新,所以需要自己确认一下PCB版本。
特征:中间四个IO口有线连接出来。

2.硬件连接
如果确认是上述硬件版本,那么它的硬件连接图是这样的:

我的实际效果图:
3.USB转串口(TTL)选择
我使用的是PL-2303HX。注:需要外部供电。

4.串口调试助手配置
波特率:115200

5.查看上电信息
上电后,串口会接收到「乱码 + ready」,乱码是由于刚上电引起的。输出「ready」代表启动正常。完全没有信息有可能是硬件上RXDTXD接反了。


6.执行第一个命令

其它问题:
1.上电后串口无任何输出
CH管脚没有拉高。
2.上电后操作系统不识别了「USB转串口」。
我遇到这个问题是因为我直接使用的「USB转串口」上的3.3V供电给「ESP8266模块」。使用外接电源给「ESP8266模块」供电后,问题得以解决。

其它内容:Uart WiFi的应用

邮件收到这样一个需求:
    看到您有回答过wifi嵌入式模块的问题,我们公司有使用wifi嵌入式模块的产品计划。
    主要想用在 家用便携血糖仪、血压计、心电仪上。
    关于wifi嵌入模块这块,希望能得到你的支持和帮助。
        一开始想到的「WiFi模块」就是一般的和手机上类似的WiFi模块,很快就选了几款并列出各个优缺点,准备进一步的问清需求:1.主控MCU是什么型号;2.需要不需要和其它功能一块集成(比如BT3.需要做哪些工作 原理图 PCB 量产。
        但是客户直接说了一款名字叫ESP8266UART接口的WiFi模块,并将了几个特点 体积小/价格低/UART通用接口。我之前预案中的都用不上,UART WiFi我还没有接触过。开始以使用者的角度来了解一下。
        大概了解ESP8266中跑的并不是一定是操作系统,有可能直接以裸机的形式跑的LwIP协议,对用户是以Uart的形式为接口。可以通过串口来操作模块连接AP以连接互联网。连接互联网后可以实现的功能就比较多了,文档中介绍提供了可以直接使用「传输层」的TCP协议来传输数据,虽然目前还不知道对「应用层」协议支持的程度如何,但是已经确定通过TCP协议可以和其它互联网设备进行通信了。


沙发
neeringstu|  楼主 | 2016-11-9 19:48 | 只看该作者

#include <AT89X51.H>
#include <stdio.h>
unsigned int a;
int b=1;
int c =1;
int d =1;
int e=1;
int f=0;
void main(void)  
{
unsigned char ldat;
    PCON |=0X80;  //是否波特率倍增
SCON=0x50;
TMOD=0X20;    //设置定时器1为模式2,做为波特率发生器
TL1=0xFF;    //57600波特率的初值,板子使用11.592M晶振,初值=256-12000000/32/12/2400
TH1=0xFF;    //
TI = 1;
TR1=1;     //启动波特率发生
   //设置串口方式2
   do{
for (a=0; a<50000; a++);
printf ("AT+CIPMUX=1\n");
  do{
if(RI){    //查询是否有数据接收
   ldat=SBUF;  //数据暂存于变量中
   RI=0;
    if (ldat=='K')
    {b=0 ;
    d=0;}
      c++;
   if (c==1000)
   {c=1;
   d=0;}}
  }while (d);  
}while(b) ;
b=1;
c =1;
d =1;

     do{
for (a=0; a<50000; a++);
printf ("AT+CIPSERVER=1,7671\n");
  do{
if(RI){    //查询是否有数据接收
   ldat=SBUF;  //数据暂存于变量中
   RI=0;
    if (ldat=='K')
    {b=0 ;
    d=0;}
      c++;
   if (c==1000)
   {c=1;
   d=0;}}
  }while (d);  
}while(b) ;  
b=1;
c =1;
d =1;


  while(1)
{
    if(RI){    //查询是否有数据接收
   ldat=SBUF;  //数据暂存于变量中
   RI=0;   //重新清0等待接收


//命令接收开始
   if (ldat=='}')
   { char k[50] ;




       do{

    if(RI){    //查询是否有数据接收
   ldat=SBUF;  //数据暂存于变量中
   RI=0;   //重新清0等待接收
       k[f]=ldat;
f++ ;
if(ldat==0x0A){e=0;}
  }
    } while (e) ;
     printf("%s\n", k);
  f=0;
  e=1;
   for (a=0; a<50; a++){
   k[a]=0;

   }


}
//命令结束


  }
}

}

使用特权

评论回复
板凳
捉虫天师| | 2016-11-9 20:09 | 只看该作者
也可以刷NodeMCu固件,然后就可以用LUA脚本程序操作了。

使用特权

评论回复
地板
dongnanxibei| | 2016-11-9 23:33 | 只看该作者
直接用UART就可以在电脑上操作的。我以前玩过。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

235

帖子

0

粉丝