找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 134813|回复: 63
打印 上一主题 下一主题
收起左侧

Uart-WiFi模块ESP8266把玩记(附51单片机程序)

  [复制链接]
跳转到指定楼层
楼主
由于只是一个模块,并不是完整的开发板,所以需要自己连接外围电路。试用的过程中遇到了很多麻烦,这里统统记录。

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协议可以和其它互联网设备进行通信了。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏30 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:3721 发表于 2015-1-5 22:42 | 只看该作者
下是51单片机驱动ESP8266模块的代码:

  1. #include <AT89X51.H>
  2. #include <stdio.h>
  3. unsigned int a;
  4. int b=1;
  5. int c =1;
  6. int d =1;
  7. int e=1;
  8. int f=0;
  9. void main(void)  
  10. {
  11. unsigned char ldat;
  12.     PCON |=0X80;  //是否波特率倍增
  13. SCON=0x50;
  14. TMOD=0X20;    //设置定时器1为模式2,做为波特率发生器
  15. TL1=0xFF;    //57600波特率的初值,板子使用11.592M晶振,初值=256-12000000/32/12/2400
  16. TH1=0xFF;    //
  17. TI = 1;
  18. TR1=1;     //启动波特率发生
  19.    //设置串口方式2
  20.    do{
  21. for (a=0; a<50000; a++);
  22. printf ("AT+CIPMUX=1\n");
  23.   do{
  24. if(RI){    //查询是否有数据接收
  25.    ldat=SBUF;  //数据暂存于变量中
  26.    RI=0;
  27.     if (ldat=='K')
  28.     {b=0 ;
  29.     d=0;}
  30.       c++;
  31.    if (c==1000)
  32.    {c=1;
  33.    d=0;}}
  34.   }while (d);  
  35. }while(b) ;
  36. b=1;
  37. c =1;
  38. d =1;

  39.      do{
  40. for (a=0; a<50000; a++);
  41. printf ("AT+CIPSERVER=1,7671\n");
  42.   do{
  43. if(RI){    //查询是否有数据接收
  44.    ldat=SBUF;  //数据暂存于变量中
  45.    RI=0;
  46.     if (ldat=='K')
  47.     {b=0 ;
  48.     d=0;}
  49.       c++;
  50.    if (c==1000)
  51.    {c=1;
  52.    d=0;}}
  53.   }while (d);  
  54. }while(b) ;  
  55. b=1;
  56. c =1;
  57. d =1;


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


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




  66.        do{

  67.     if(RI){    //查询是否有数据接收
  68.    ldat=SBUF;  //数据暂存于变量中
  69.    RI=0;   //重新清0等待接收
  70.        k[f]=ldat;
  71. f++ ;
  72. if(ldat==0x0A){e=0;}
  73.   }
  74.     } while (e) ;
  75.      printf("%s\n", k);
  76.   f=0;
  77.   e=1;
  78.    for (a=0; a<50; a++){
  79.    k[a]=0;

  80.    }


  81. }
  82. //命令结束


  83.   }
  84. }

  85. }
复制代码
回复

使用道具 举报

板凳
ID:73499 发表于 2015-2-10 11:40 | 只看该作者
楼主好人呀,谢谢分享!
回复

使用道具 举报

地板
ID:73964 发表于 2015-3-9 20:15 来自手机 | 只看该作者
不错  谢谢
回复

使用道具 举报

5#
ID:68166 发表于 2015-3-10 23:31 | 只看该作者
非常不错,收藏了
回复

使用道具 举报

6#
ID:75096 发表于 2015-3-22 21:13 | 只看该作者
楼主你好,我也在使用这个模块。用的是外部供电,接法和你的一样,u转串接到电脑上,但是上电之后没有ready出现,只是一堆乱码,请楼主看看是怎么回事,谢谢

捕获.JPG (90.14 KB, 下载次数: 475)

捕获.JPG
回复

使用道具 举报

7#
ID:76540 发表于 2015-4-9 20:52 | 只看该作者
楼主 关于单片机跟 esp8266 的 串口通信 我有些疑问 能问问吗 楼主还在不
回复

使用道具 举报

8#
ID:78355 发表于 2015-4-28 18:32 | 只看该作者
请问那个stdio的标准库要怎么调试
回复

使用道具 举报

9#
ID:81125 发表于 2015-5-25 23:01 | 只看该作者
楼主太好,特地申请了一个论坛号来评论以示谢意。
回复

使用道具 举报

10#
ID:81125 发表于 2015-5-25 23:21 | 只看该作者
不过还是有些不明白,比如说那个for (a=0; a<50000; a++);是什么作用,这整个程序控制模块实现什么功能,要是有适当的一些解释就更好了
回复

使用道具 举报

11#
ID:77578 发表于 2015-6-9 19:55 来自手机 | 只看该作者
用的什么手机app
回复

使用道具 举报

12#
ID:82696 发表于 2015-6-11 11:17 | 只看该作者
那   C语言  的程序  能驱动吗?    我试怎么不行哦。。。
回复

使用道具 举报

13#
ID:79756 发表于 2015-7-8 00:14 来自手机 | 只看该作者
bruellyyang 发表于 2015-3-22 21:13
楼主你好,我也在使用这个模块。用的是外部供电,接法和你的一样,u转串接到电脑上,但是上电之后没有ready ...

我也遇上这个问题了,你解决了吗?
回复

使用道具 举报

14#
ID:37276 发表于 2015-7-20 20:04 来自手机 | 只看该作者
那个for循环是延时用的
回复

使用道具 举报

15#
ID:82696 发表于 2015-7-24 10:20 | 只看该作者
为什么我的不行啊?
回复

使用道具 举报

16#
ID:86982 发表于 2015-8-20 21:32 | 只看该作者
我的也不行....
回复

使用道具 举报

17#
ID:88708 发表于 2015-8-22 08:19 | 只看该作者
我现在也刚刚买了这个模块,但是不会用,求好心的大神赐教
2350746468
这是我的QQ
回复

使用道具 举报

18#
ID:88863 发表于 2015-8-25 14:07 | 只看该作者
13274853912 发表于 2015-8-22 08:19
我现在也刚刚买了这个模块,但是不会用,求好心的大神赐教
2350746468
这是我的QQ

你加我撒,我教你。460047630
回复

使用道具 举报

19#
ID:89336 发表于 2015-9-3 20:25 | 只看该作者
bruellyyang 发表于 2015-3-22 21:13
**** 作者被禁止或删除 内容自动屏蔽 ****

你好,我现在初学,也出现了这个问题。请问你解决了吗?
回复

使用道具 举报

20#
ID:97189 发表于 2015-11-26 10:06 | 只看该作者
楼主,我也遇到了一直输出乱码,没有ready的情况,能指点一下呗
回复

使用道具 举报

21#
ID:99683 发表于 2015-12-20 16:01 | 只看该作者
大善,很好很强大,特意注册了一个号
回复

使用道具 举报

22#
ID:104040 发表于 2016-2-28 12:10 | 只看该作者
为什么我返回的内容跟发送的内容一模一样呢
回复

使用道具 举报

23#
ID:98657 发表于 2016-3-5 17:32 | 只看该作者
with_an_orchid 发表于 2016-2-28 12:10
为什么我返回的内容跟发送的内容一模一样呢

那就是没有添加换行
回复

使用道具 举报

24#
ID:104450 发表于 2016-3-18 10:57 | 只看该作者
怎么跟单片机连接呢?有没有电路图啊?跪求
回复

使用道具 举报

25#
ID:115732 发表于 2016-4-21 16:55 | 只看该作者

这个代码试过可以用吗?为什么我用不了呢?
回复

使用道具 举报

26#
ID:115732 发表于 2016-4-21 17:09 | 只看该作者
差距ib结婚 发表于 2015-5-25 23:21
**** 作者被禁止或删除 内容自动屏蔽 ****

延时,输入指令需要时间吧!
回复

使用道具 举报

27#
ID:115732 发表于 2016-4-21 17:10 | 只看该作者
南宫封涯 发表于 2016-3-18 10:57
怎么跟单片机连接呢?有没有电路图啊?跪求

单片机的RXD与WiFi模块的TXDl连接,单片机的TXD与WiFi模块的RXDl连接
回复

使用道具 举报

28#
ID:85375 发表于 2016-4-22 17:02 | 只看该作者
怎么说呢 楼主的a,b,c,d的含义是什么,还有感觉怎么没有体现esp8266模块的编程呢  就像通过串口线一样  难道wifi就充当了一个通信线。。。。。。。。。还有printf里的字符串是配置esp8266的吗,等待返回的K又是什么 怎么好像以大括号的右半部份为接收的标志  以0x0a为接收字符串的结束符 麻烦楼主解惑  谢谢啦
回复

使用道具 举报

29#
ID:119096 发表于 2016-5-7 17:02 | 只看该作者
WiFi模块和单片机怎样连接,都需要什么器件,连接后该怎样设置
回复

使用道具 举报

30#
ID:120605 发表于 2016-5-13 19:53 | 只看该作者
我想问程序中的RI是什么?还有如果是要8266发送数据出去应该怎么写? 谢谢
回复

使用道具 举报

31#
ID:119754 发表于 2016-5-18 16:47 | 只看该作者
南宫封涯 发表于 2016-3-18 10:57
怎么跟单片机连接呢?有没有电路图啊?跪求

直接T接R,R接T
回复

使用道具 举报

32#
ID:119754 发表于 2016-5-18 16:48 | 只看该作者
eziohzy 发表于 2016-5-13 19:53
我想问程序中的RI是什么?还有如果是要8266发送数据出去应该怎么写? 谢谢

你程序解决没?
回复

使用道具 举报

33#
ID:129299 发表于 2016-7-5 14:43 | 只看该作者
esp8266直接接usb转ttl的3v3口也可以正常使用。我是这么接的,可以正常使用。
回复

使用道具 举报

34#
ID:36173 发表于 2016-8-18 15:55 | 只看该作者
越来越有兴趣学习esp8266了
回复

使用道具 举报

35#
ID:146947 发表于 2016-11-8 23:41 | 只看该作者
heicc 发表于 2015-1-5 22:42
下是51单片机驱动ESP8266模块的代码:

把模块设为服务器后,我想从手机向模块发送数据控制P0,在后面加了一下程序。但出现了错误。要怎么改?跪求赐教
unsigned char Receive(void)
{
  unsigned char dat;
  while(RI==0)
  ;
  RI=0;
  dat=SBUF;
  return dat;
}
void main(void)
{
  TMOD=0X20;
  SCON=0X50;
  PCON=0X00;
  TH1=0Xfd;
  TL1=0xfd;
  TR1=1;
  REN=1;
  while(1)
  {
  P0=Receive();
  }
}
回复

使用道具 举报

36#
ID:149298 发表于 2016-11-21 19:05 | 只看该作者
bruellyyang 发表于 2015-3-22 21:13
**** 作者被禁止或删除 内容自动屏蔽 ****

我也是,这该怎么办呀
回复

使用道具 举报

37#
ID:153199 发表于 2016-12-16 17:17 | 只看该作者
能实现吗,usb转ttl吗
回复

使用道具 举报

38#
ID:155815 发表于 2016-12-19 10:08 来自手机 | 只看该作者
楼主   QQ
回复

使用道具 举报

39#
ID:158950 发表于 2017-1-1 15:46 | 只看该作者
安卓上TCP那个app可以用配个这个esp8266用
回复

使用道具 举报

40#
ID:160665 发表于 2017-1-7 21:32 | 只看该作者
差距ib结婚 发表于 2015-5-25 23:21
**** 作者被禁止或删除 内容自动屏蔽 ****

是单片机的软件延时
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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