ESP8266 wifi模块开发汇总

ESP8266 wifi模块开发汇总本文档主要介绍开发者在ESP8266开发中常见的一些问题。 这些问题主要包括以下几大类:

  • 基本概念相关
  • ESP8266 相关
  • AiCloud 相关
  • 固件编译调试相关
  • 文档资料相关

以下是各分类的具体问题和解答。

基本概念相关

  • ESP8266是什么?

  ESP8266 是高性能无线 SOC,在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。

  • ESP01, ESP02是什么?

  ESP01~ESP14是由深圳安信可科技研发生产的ESP8266系列模组,在ESP8266芯片的基础上,完善了外围器件布局和优化天线。

  • AiCloud是什么?

  AiCloud 是安信可提供给广大客户的免费服务器,数据全裸,UDP 传输,简单稳定,且含有诸多例程和 PC 端上位机调试工具。

  • 乐鑫与安信可的关系

  乐鑫是ESP8266的芯片厂商,安信可是依据ESP8266生产模组,并提供一系列开发方案的厂家。

  • ESP8266必须要借助服务器才能开发吗?

  这个根据您的需求来定,若您只需要局域网就可以满足产品需求,那么无需服务器,同样可以使用ESP8266进行开发。

  • 如何购买ESP8266模组和测试板?

  安信可官方淘宝店铺

  • 我该选择哪个型号的ESP8266模组?

  模组硬件之间的差异主要是封装区别,以及flash大小的区分,您可以查看ESP8266选型列表,若有疑问,可联系我们的销售人员。

  • 我该选择AT开发还是SDK开发?

    SDK方法:
    优势:让系统成本最少 体积最小
    劣势:新手需要一个礼拜到半个月的时间去熟悉代码的研读

    AT方法:
    优势:只需要知道几条AT指令即可用外部单片机实现网络通讯!开发速度快。
    劣势:增加了外置CPU成本

  您可以自已依此评估自己适合哪种方案

  • 我该选择FreeRTOS还是NONOS?

  因为FreeRTOS是后面才开放的,所以一般常用的是NONOS
  若是您之前有开发过FreeRTOS,那么您可以直接使用FreeRTOS方案的SDK,且该方法有利于您之后使用ESP32系列

  • 开发中,遇到问题如何寻求帮助?

  若您是企业用户,我们会专门委派一名工程师负责贵司的对接;
  若您是个人用户,您可以在论坛发帖,或发邮件到support@aithinker.com,我们也会有专门的工程师去处理。

ESP8266 相关

* 为什么透传会丢包?

因为没有设置硬件流控。如果需要避免丢包,请设置硬件流控。透传功能使用的是TCP协议,每包数据是1460(取决于协议栈),只要网络良好,buffer空间没有被消耗完,就可以不停地传输数据。对于透传。串口接收的数据间隔超过20ms,就会认为 接受结束,将已经接受的数据传输至网络。如果网络不好,就可能会丢失一些数据,因此,为了避免这种情况,可以将串口设置为流控模式。

* ESP8266可以同时使用AP+STA吗?

ESP8266没有中继和放大功能,即不可以同时使用AP+STA。

* ESP8266可以进行低功耗吗?

ESP8266可以进行低功耗。AT指令进行低功耗说明:

设置睡眠模式,sleep只在单STA模式下生效,默认工作在modem-sleep模式。 AT+SLEEP=0   0为禁止休眠模式              1为light-sleep模式  功耗0.9mA              2为modem-sleep模式  功耗15mA

* 将建立的TCP Server 连接通过AT 指令保存到flash?

* 如何让ESP8266上电后快速连接AP?

外设

*SDIO 是否支持 SD 卡?

  ESP8266 是 SDIO Slave ,不支持 SD 卡。

*ESP8266 有几个 UART?

  ESP8266 有两个 UART,其中 UARTO 有 TX、RX,可做数据传输;UART1 由于 RX 脚被 SPI-Flash 占用,只能使用 TX,可以做串口调试信息打印。

*GPIO 可以直接连 5V 吗?

  不可以。GPIO 只能承受 3.6V。需要通过降压电路,否则会造成 GPIO 损坏。

硬件

*ESP8266 电压电流需求?

  ESP8266 的数字部分的电压范围是 1.8V ~ 3.3V,模拟部分的工作电压是 3.0V ~ 3.6V,最低 2.7V。

模拟电源峰值 350 mA,数字电源峰值 200 mA。

注意:选择的 SPI Flash 工作电压也需要与 GPIO 的电压匹配。CHIP_EN 还是工作在 3.0 - 3.6V,使用1.8V GPIO 控制时需要注意电平转换。

*设计 ESP8266 的供电时,需要注意哪些问题?

  请注意如下几点:1.如果是使用 LDO 变压,请确保输入电压和输出电压要足够大。2.电源轨去耦电容器必须接近 ESP8266 摆放,等效电阻要足够低。3.ESP8266 不能直连 5V 电压。4.如果是通过 DC-DC 给 ESP8266 供电,必要时要加上 LC 滤波电路。

*ESP8266 上电时电流很大,是什么原因?

  ESP8266 的 RF 和数字电路具有极高的集成度。上电后,RF 自校准会需要大电流。模拟部分电路最大的极限电路可能达到 500 mA;数字电路部分最大电流 达到 200 mA。一般的操作,平均电流在 100 mA 左右。因此,ESP8266 需要供电能达到 500 mA,能够保证不会有瞬间压降。

*可以使用锂电池或者 2 节 AA 纽扣电池直接给 ESP8266 供电吗?

  2 节 AA 纽扣电池可以给 ESP8266 供电。锂电池放电时压降比较大,不适合直接给 ESP8266 供电。ESP8266 的 RF 电路会受温度及电压浮动影响。不推荐不加任何校准的电源直接给 ESP8266 供电。推荐使用 DC-DC 或者 LDO 给 ESP8266 供电。

*ESP8266 的 RAM 的使用结构是怎么的?

ESP8266 的 RAM 总共 160 KB。

IRAM 空间为 64 KB: 前 32 KB 用作 IRAM,用来存放没有加 ICACHE_FLASH_ATTR 的代码,即 .text 段,会通过 ROM code 或二级 boot 从 SPI Flash 中的 BIN 中加载到 IRAM。 后 32 KB 被映射作为 iCache,放在 SPI Flash 中的,加了 ICACHE_FLASH_ATTR 的代码会被从 SPI Flash 自动动态加载到 iCache。

DRAM 空间为 96 KB: 对于 Non-OS_SDK,前 80 KB 用来存放 .data/.bss/.rodata/heap,heap 区的大小取决于 .data/.bss/.rodata 的大小;还有 16 KB 给 ROM code 使用。 对于 RTOS_SDK,96 KB 用来存放 .data/.bss/.rodata/heap,heap 区的大小取决于 .data/.bss/.rodata 的大小。

WiFi相关

*路由配置是正确的,但是发生找不到路由,连接失败,为什么?

如果 SSID 和密码配置是正确的,可能的原因有 2 个。

1.推荐使用英文字符,不要使用中文。

2.需要注意 bssid_set 的设置,如果不需要指定路由的 MAC 地址,那么需配置 stationConf.bssid_set = 0。

* ESP8266 SoftAP + Station 模式下网络断开或丢包的情况?

虽然 ESP8266 支持 SoftAP + Station 共存模式,但是 ESP8266 实际只有一个硬件信道。因此在 SoftAP + Station 模式时,ESP8266 SoftAP 会动态调整信道值与 ESP8266 Station 一致。这个限制会导致 ESP8266 SoftAP + Station 模式时一些行为上的不便,用户请注意。例如:

情况一 如果 ESP8266 Station 连接到一个路由 (假设路由信道号为 6); 通过接口 wifi_softap_set_config 设置 ESP8266 SoftAP; 若设置值合法有效,该 API 将返回 true ,但信道号仍然会自动调节成与 ESP8266 Station 接口一致,在这个例子里也就是信道号为 6。

情况二 调用接口 wifi_softap_set_config 设置 ESP8266 SoftAP (例如信道号为 5); 其他 Station 连接到 ESP8266 SoftAP; 将 ESP8266 Station 连接到路由( 假设路由信道号为 6) ; ESP8266 SoftAP 将自动调整信道号与 ESP8266 Station 一致(信道 6); 由于信道改变,之前连接到 ESP8266 SoftAP 的 Station 的 Wi-Fi 连接断开。

情况三 其他 Station 与 ESP8266 SoftAP 建立连接; 如果 ESP8266 Station 一直尝试扫描或连接某路由,可能导致 ESP8266 SoftAP 端的连接断开,或者 UDP 丢包,ping 丢包等情况。因为 ESP8266 Station 会遍历各个信道查找目标路由,意味着 ESP8266 其实在不停切换信道,ESP8266 SoftAP 的信道也因此在不停更改。这可能导致 ESP8266 SoftAP 端的原有连接断开,或者 UDP 丢包,ping 丢包等情况。

这种情况,用户可以通过设置定时器,超时后调用 wifi_station_disconnect 停止 ESP8266 Station 不断连接路由的尝试;或者在初始配置时,调用 wifi_station_set_reconnect_policy 和 wifi_station_set_auto_connect 禁止 ESP8266 Station 尝试重连路由。

*Wi-Fi 信道是什么?可以自行选择信道吗?

信道指的是 Wi-Fi 使用的指定频段中特定频率的波段。不同国家地区使用的信道数目是不同的。您可以参考ESP8266 Wi-Fi 信道选择指南。

应用

*为什么云端升级需要2个 “bin” 文件?“user1.bin” 和 “user2.bin” 有什么区别?

  user1.bin 和 user2.bin 是 2 个不同的 BIN 文件。生成 user1.bin 和 user2.bin 时,必须使用相同的 Flash 和 boot 设置,以保证 OTA 升级成功。2个 BIN 文件是互补的,运行 user1.bin 的时候,升级是下载 user2.bin;运行 user2.bin 的时候,升级是下载 user1.bin。这样可以保证升级过程中,如果有掉线的情况发生,设备还是可以正常运行。

固件编译调试相关

* 导入工程注意事项

工程文件的导入的注意不要有空格和中文字符,例如:C:\Users\Administrator\Desktop\sdk\esp_iot_sdk_v1.3.0

* esp8266模组LED灯为什么上电闪一下就灭了?

  a,因为esp8266模组的LED接在GPIO2,而此IO与UART1_TX共用,此时模组上电会输出一下打印信息,所以LED会闪直到打印信息输出完毕,LED就灭了。

  b,若想查看启动信息的内容,请选择串口调试助手74880的波特率,硬件上把rst拉低再拉高,可以查看启动信息。

  c,若想通过串口调试助手发送AT指令,请切换波特率到115200,即可。

* ESP8266启动信息说明?

* 模组发送AT指令无响应?

a,请选择74880的波特率,看下启动日志,把RST复位引脚拉低再拉高,可使用安信可串口调试助手进行查看,aithinker_serial_tool_v1.2.3.7z

b,是否进入flash启动模式,GPIO15下拉,GPIO0,GPIO2上拉?

c,是否烧录了固件?烧录配置flash size大小是否跟WiFi模组的flash一致?

* 如何屏蔽上电打印?

U0TXD默认上电有系统打印,对此敏感应用可通过UART的内部引脚交换功能,在初始化的时候,调用system_uart_swap函数。将 U0TXD、U0RXD 分别于U0RTS(MTDO/GPIO15)、U0CTS (MTCK/GPIO13)交换来屏蔽该上电的系统打印。 交换后,硬件上的下载管脚还是使用U0TXD + U0RXD,通信时需要将MTDO对应接到MCU的RXD,MTCK对应加到MCU的TXD。

* 使用UART1打印日志,如何配置?

UART1只有TX功能,可以在UART0用于通讯时做打印log用。 参考代码如下:

void ICACHE_FLASH_ATTR uart_init_new(void)           {          // Wait for FIFOs to be emptied            UART_WaitTxFifoEmpty(UART0);            UART_WaitTxFifoEmpty(UART1);            // Configure UART settings            UART_ConfigTypeDef uart_config;            uart_config.baud_rate  = BIT_RATE_74880;            uart_config.data_bits   = UART_WordLength_8b;            uart_config.parity     = USART_Parity_None;            uart_config.stop_bits   = USART_StopBits_1            uart_config.flow_ctrl   = USART_HardwareFlowControl_None;            uart_config.UART_RxFlowThresh = 120;            uart_config.UART_InverseMask = UART_None_Inverse;            UART_ParamConfig(UART0, &uart_config);            UART_IntrConfTypeDef uart_intr;            uart_intr.UART_IntrEnMask = UART_RXFIFO_TOUT_INT_ENA | UART_FRM_ERR_INT_ENA | UART_RXFIFO_FULL_INT_ENA;            uart_intr.UART_RX_FifoFullIntrThresh = 100;            uart_intr.UART_RX_TimeOutIntrThresh = 2;            uart_intr.UART_TX_FifoEmptyIntrThresh = 20;            UART_IntrConfig(UART0, &uart_intr);            // Set UART1 for printing            UART_SetPrintPort(UART1);            // Register interrupt handler            UART_intr_handler_register(uart0_rx_intr_handler);            ETS_UART_INTR_ENABLE();           }

* 上电为什么输出乱码?

上电输出乱码是正常的,因为外部晶振选择是26M,请选择74880的波特率,按下复位键或把RST引脚拉低再拉高,可以看到启动信息。可使用安信可串口调试助手进行查看,aithinker_serial_tool_v1.2.3.7z

* 为什么编译sdk的时候会发生irom0_0_seg错误?

ESP8266 wifi模块开发汇总相关推荐

  1. ESP8266 wifi模块连接上了热点之后 与服务器建立了tcp连接并进入了透传模式,如果关掉热点wifi模块的tcp连接没有切断,为什么

    ESP8266 wifi模块连接上了热点之后 与服务器建立了tcp连接并进入了透传模式,如果关掉热点wifi模块的tcp连接没有切断,为什么? 这个是很多开发者在第一次使用ESP8266模块是会出现的 ...

  2. ESP8266 WiFi模块介绍

    ESP8266WiFi模块简介 ESP8266 是一个完整且自成体系的WiFi 网络解决方案,能够独立运行, 也可以作为 slave 搭载于其他Host 运行. ESP8266 在搭载应用并作为设备中 ...

  3. ESP8266 WIFI模块配置

    在单片机的项目开发,如果想要实现远程控制,这时候可以使用ESP8266--WIFI模块,然后还需要构建一个服务器来实现远程控制,如果不会构建服务器,可以使用网络调试小助手,这篇主要是讲如果将esp82 ...

  4. STM32玩转物联网实战篇:2.ESP8266 WIFI模块TCP通信示例详解

    1.准备开发板 开发板功能区分布图 开发板俯视图 2.ESP8266简介     ESP8266 WIFI模块内置TCP/IP网络协议,模块支持三种网络模式,AP.STA和AP+STA模式,AP模式: ...

  5. ESP8266 WiFi模块如何联网?

    一.ESP8266系列模块是什么? ESP8266系列无线模块是一个经济高效的WIFI SOC模块,支持标准IEEE802.11b/g/n协议,内置完整的TCP/IP协议栈. 用户可以使用此系列模块向 ...

  6. 基于stm32的ESP8266 WIFI 模块实验

    一.准备 功能:在STM32F103 开发板上使用ESP8266 WIFI 模块. 硬件:ESP8266 WIFI 模块.STM32F103mini(或其他单片机).手机一部 软件:手机端网络调试助手 ...

  7. 【STM32】ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记

    ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记 一.ESP8266模块 1.模块介绍 2.AT指令介绍 2.硬件连接 二.串口转发及调试 1.串口转发流程 2.串口转发程序实现 ST ...

  8. ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统

    ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统 1.关于ESP8266 安信可科技推出的ESP8266 WiFi 模块可以以极低的成本把传统单片机系统接入物联网.内置WiFi前端和 ...

  9. ESP8266 WIFI模块学习之路(2)——模块与单片机连接进行远程操作

    上一个博客:ESP8266 WIFI模块学习之路(1)是关于对串口连接的,简单验证ESP8266是怎么样连接及其功能验证,下面将通过单片机连接,和手机进行远程操作. ESP8266和单片机的连接,我这 ...

  10. ESP8266 WIFI 模块串口调试过程-实现通过互联网实现数据远程传输(结尾含驱动代码链接)

    一. ESP8266 WIFI模块调试(串口发送AT指令调试). ESP8266 WIFI模块的调试算是最复杂的了,虽然通信是简单的串口通信,但是要设置ESP8266连接服务器并稳定无误的将数据上传, ...

最新文章

  1. Spring集成任务调度功能
  2. 申报成功后怎样修改_每日分享|电子税务局操作指引之更正错误申报
  3. memcached failed to listen问题解决以及 结束daemon的方法
  4. Interface继承至System.Object?
  5. nginx启动不了_nginx 变量与监控
  6. Android 热修复之DexPatch 介绍
  7. 钉钉产品介绍_钉钉正式推出智能OA:免费开放、一站解决“人财物事”管理难题...
  8. 三维网格精简算法java版_ISMAR 2020 | 商汤提出手机端实时单目三维重建系统
  9. WordPress电子商务博客源码
  10. 串口上升时间标准_国家电网公司时钟同步标准.pdf
  11. Monocular slam 的理论基础(1)
  12. python安装numpy模块教程_Windows系统中安装Python模块pip numpy matplotlib
  13. 如何将ImageRanger与外部存储一起使用NAS或USBUSB驱动器?
  14. javascript 异步队列
  15. 将图片型pdf转成可选中文字型pdf(免费)
  16. 程序员集体意识大爆发:996背后的深问题
  17. Nutch 笔记(二):Craw more urls and Recrawl
  18. 找准山西智慧城市建设的着力点
  19. NS3入门:第一个程序first.cc
  20. ios开发原生的扫描二维码的实现以及限制扫描区域rectOfInterest遇到的一些坑

热门文章

  1. ORL人脸识别tensorflow实现
  2. 一款开源且超好用的网站克隆机 HTTrack
  3. 高可用分布式系统架构图
  4. Java定时任务,定时执行某个操作
  5. 坯子库无法一键安装插件没用_坯子插件库的下载地址、安装以及运用办法
  6. 基于java超市管理系统设计
  7. ROS主从机通信经验总结
  8. 金融风控实战——金融风控与反欺诈业务详解
  9. MongoDB 高阶
  10. web前端笔试试题二(含答案)