esp8266开发之旅基础篇①走进esp8266的世界

danpianjicainiao danpianjicainiao     2022-12-20     388

关键词:

  • 本博客由 单片机菜鸟 个人撰写,仅仅做个人技术交流分享,不做任何商业用途,不经允许,切勿转载。如有不对之处,请留言,本人及时更改。

一、基础篇

  1. ESP8266开发之旅 基础篇① 走进ESP8266的世界
  2. ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
  3. ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
  4. ESP8266开发之旅 基础篇④ ESP8266与EEPROM
  5. ESP8266开发之旅 基础篇⑤ ESP8266 SPI通信和I2C通信
  6. ESP8266开发之旅 基础篇⑥ Ticker——ESP8266定时库

二、网络篇

  1. ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
  2. ESP8266开发之旅 网络篇② ESP8266 工作模式与ESP8266WiFi库
  3. ESP8266开发之旅 网络篇③ Soft-AP——ESP8266WiFiAP库的使用
  4. ESP8266开发之旅 网络篇④ Station——ESP8266WiFiSTA库的使用
  5. ESP8266开发之旅 网络篇⑤ Scan WiFi——ESP8266WiFiScan库的使用
  6. ESP8266开发之旅 网络篇⑥ ESP8266WiFiGeneric——基础库
  7. ESP8266开发之旅 网络篇⑦ TCP Server & TCP Client
  8. ESP8266开发之旅 网络篇⑧ SmartConfig——一键配网
  9. ESP8266开发之旅 网络篇⑨ HttpClient——ESP8266HTTPClient库的使用
  10. ESP8266开发之旅 网络篇⑩ UDP服务
  11. ESP8266开发之旅 网络篇? WebServer——ESP8266WebServer库的使用
  12. ESP8266开发之旅 网络篇? 域名服务——ESP8266mDNS库
  13. ESP8266开发之旅 网络篇? SPIFFS——ESP8266 Flash文件系统
  14. ESP8266开发之旅 网络篇? web配网
  15. ESP8266开发之旅 网络篇? 真正的域名服务——DNSServer

三、应用篇

  1. ESP8266开发之旅 应用篇① 局域网应用 ——炫酷RGB彩灯
  2. ESP8266开发之旅 应用篇② OLED显示天气屏
  3. ESP8266开发之旅 应用篇③ 简易版WiFi小车

四、高级篇

  1. ESP8266开发之旅 进阶篇① 代码优化 —— ESP8266内存管理
  2. ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266配置
  3. ESP8266开发之旅 进阶篇③ 闲聊 ESP8266 Flash
  4. ESP8266开发之旅 进阶篇④ 常见问题 —— 解决困扰
  5. ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美
  6. ESP8266开发之旅 进阶篇⑥ ESP-specific APIs说明

????欢迎大家来到ESP8266的世界,从现在开始,笔者将带领大家慢慢揭开ESP8266神秘的面纱。

1.1 简介

????从笔者的角度来说,ESP8266这个词可以理解为ESP8266EX芯片(当然,后面也有可能出现了其他芯片,这里首推ESP8266EX)以及依赖ESP8266EX芯片开发的系列模组的简称。
????ESP8266EX是由乐鑫信息科技公司(Espressif)出品的一款应用于物联网编程的WiFi芯片。从它被设计出来,就引起了物联网开发的热潮,获得了业界同行的肯定。芯片的具体相关介绍,笔者这里就不占用章节篇幅,请读者自行查看乐鑫官网详细介绍。
????ESP8266系列模组是深圳安信可(Ai-thinker)公司开发的一系列基于乐鑫ESP8266EX的超低功耗的UART-WiFi模块的模组,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。
????从厂商角度来看,乐鑫是ESP8266的芯片厂商,安信可是依赖ESP8266生产模组,在ESP8266芯片的基础上,完善了外围器件布局和优化天线,并提供一系列开发方案的厂家。网上各种盗版模块居多,笔者推荐大家购买安信可官方正版模块。

温馨提示

????请注意,笔者后面章节提到的ESP8266均指ESP8266系列模组。

1.2 特性

????其典型特征如下:

  • 802.11 b/g/n
  • 内置Tensilica L106 超低功耗 32 位微型 MCU,主频支持 80 MHz 和160 MHz,支持 RTOS
  • 内置10 bit高精度ADC
  • 内置TCP/IP协议栈
  • 内置TR 开关、balun、LNA、功率放大器和匹配网络
  • 内置PLL、稳压器和电源管理组件,802.11b 模式下+20 dBm的输出功率
  • A-MPDU 、 A-MSDU 的聚合和 0.4 s的保护间隔
  • WiFi @ 2.4 GHz,支持 WPA/WPA2 安全模式
  • 支持AT远程升级及云端OTA升级
  • 支持 STA/AP/STA+AP 工作模式
  • 支持 Smart Config 功能(包括 Android 和 iOS 设备)
  • HSPI 、UART、I2C、I2S、IR Remote Control、PWM、GPIO
  • 深度睡眠保持电流为 10 uA,关断电流小于 5 uA
  • 2 ms 之内唤醒、连接并传递数据包
  • 待机状态消耗功率小于1.0 mW (DTIM3)
  • 工作温度范围:-40℃- 125℃

1.3 系列模组

????据笔者了解,目前安信可生产的ESP8266系列模组主要有:

  1. ESP-01S
    技术图片

  2. ESP-07S
    技术图片

  3. ESP-12E
    技术图片

  4. ESP-12F
    技术图片

  5. ESP-12S
    技术图片

温馨提示

????1.以上5张图均引用安信可官网,如有侵权,麻烦告知。
????2.模组之间的区别在哪里?
????不同系列之间的差别更多的是封装工艺以及Flash闪存大小不同,具体差别情况下表1:

型号 封装 flash大小 天线 可用IO
ESP-01S DIP-8 8Mbit(1MB) PCB天线 2
ESP-07S SMD-16 32Mbit(4MB) IPEX 9
ESP-12E SMD-22 32Mbit(4MB) PCB天线 9
ESP-12F SMD-22 32Mbit(4MB) PCB天线 9
ESP-12S SMD-16 32Mbit(4MB) PCB天线 9

????请注意,flash芯片是外接在ESP8266芯片外面,通过SPI与8266芯片通信。虽然有些系列模组flash比较大,但是不意味着全部flash空间都可以用来装载固件代码。一般来说,我们开发的业务代码不能超过1MB,剩下的flash空间可以用来做文件系统,笔者后面章节会讲解。
????从性价比角度来说,目前开发最常用的就是ESP12F,迷你尺寸,IO口多,flash空间大,价格可以低于10元。具体更多的型号介绍可以参考安信可官网 。

1.4 使用原因

????之所以采用 ESP8266 做为研发平台,主要是因为其超低成本,并且将处理器和 WiFi 芯
片精致集成在一起,具有 GPIO、PWM、I2C、1‐Wire、ADC 等功能,为开发者提供一套极具性价
比的开发平台。ESP8266 是一个完整且自成体系的 Wi‐Fi 网络解决方案,能够搭载软件应
用,也就是说可以将应用直接在 ESP8266 上运行,或通过另一个应用处理器进行业务逻辑处
理,而仅使用 ESP8266 的 Wi‐Fi 网络功能(通常做为串口透传使用,目前淘宝上销售的大部
分已经写入基于 AT 指令的串口转 wifi 固件的模块,方便直接连接原有单片机系统)。
????综合来说,大众选择ESP8266的主要原因有:

  1. 作为WiFi模块来用,价格实惠(批发价可以低于10元)。同时,从初学者角度来看,就算购买了ESP8266开发板,价格也是在20-30元左右,学习成本低。所以,前期入门学习,笔者建议初学者可以考虑购买一个ESP8266开发板,可以绕过不少弯路,达到快速学习ESP8266的目的,比如NodeMcu开发板;
  2. 除了作为WiFi模块来用,其自身内置了32位处理器,也可以进行二次开发。读者可以把ESP8266当做Arduino+WiFi功能来开发;
  3. 基本的ESP8266开发体系形成,其自身的SDK不断迭代开发、基于LUA的NodeMcu模式、基于Arduino的生态移植、论坛社区上众多的参考资料,都使得ESP8266开发速度加快;
  4. ESP8266有三种工作模式:Station模式、Soft-AP模式、Station兼Soft-AP模式,可以满足大部分场合开发需求;
  5. 对于习惯用AT指令的同学,也支持给ESP8266烧写AT固件,可以当做Uart转WiFi使用,不过这不是本书的重点,需要研究的同学可以参考笔者写的一个技术帖子(https://www.arduino.cn/thread-44963-1-1.html) 。

1.5 使用场景

????作为一款WiFi芯片,可以毫不夸张地说,只要需要使用无线网络环境的都可以应用它。
????简单来说,就是通过WiFi控制的各类设备。比如,现在比较流行的词,物联网、智能插座、智能家居、智能家电、可穿戴电子产品、WiFi定位、WiFi探针、WiFi彩灯等等。只有你想不到的,没有你做不到的。当然,虽然目前市面上没有看到智能产品的广泛应用,但是不要慌,总有一天会实现的,而我们就是实现这个路途的奠基石。

1.6 总结

????本章作为本书的开篇,主要带领读者走进ESP8266的世界,简单介绍了ESP8266是什么,有什么特性,为什么我们要使用它,以及它能帮助我们做什么。作为纯描述性的章节,笔者只是简单一笔带过,不希望花费读者太多时间在这上面,更希望大家形成这么一个概念即可——ESP8266是个WiFi模块,可以联网,可以基于Arduino平台开发。下面就是进入真真正正的基于Arduino平台的ESP8266开发之旅,旅途愉快,Hello Arduino ESP8266!

esp8266开发之旅网络篇?spiffs——esp8266spiffs文件系统(代码片段)

...中。????那么这样就有两点弊端:ESP8266代码相当臃肿为了开发方便,webserver网页除了自身的html内容之外,还包括一些css文件,甚至引入了JQuery库以及一些图片相关资源。如果把这些内容也直接 查看详情

[基础篇]esp8266-sdk教程之开发环境搭建=

...往开来第二篇,本篇文章主要介绍一下几种常见的ESP8266开发方式,感觉现在不管是学习硬件开发还是软件开发,第一节课都是先学习一下开发环境搭建,毕竟这个开发环境不单单是有台电脑就足够了,交叉编译工具链才是最重... 查看详情

esp32micropython开发之旅

基础篇ESP32MicroPython开发之旅系列导读——人生苦短,我用MicroPythonESP32MicroPython开发之旅基础篇①——搭建环境,运行HelloworldESP32MicroPython开发之旅基础篇②——MicroPython执行过程ESP32MicroPython开发之旅基础篇③——MicroPython... 查看详情

[基础篇]esp8266-sdk教程(零)之认识并了解

...用,不过这个系列文章不是关于LoRa的,主要是关于ESP8266开发的,这也算是个人业余的一点小爱好吧,最近也用这款芯片做了不少好玩的东西,比如对接天猫精灵控制LED灯、ESP8266内置网页控制LED灯、微信小程序控制LED灯等等,纳... 查看详情

esp8266开发入门

参考技术A快速了解wifi模块这个视频就够了ESP8266【太极创客】零基础入门学用Arduino第一部分合辑【太极创客】零基础入门学用Arduino第三部分智能应用篇合辑P123-11Arduino内存1P133-12Arduino内存2EEPROMP143-13Arduino内存2内存优化P153-14安装... 查看详情

esp8266便携式物联网时钟(软件篇)代号:喵(代码片段)

接上一篇的硬件,本篇说说开发环境和作品功能的实现及部分核心代码1.开发环境-ArduinoIDEforESP82662.NTP网络时间获取3.32x8LED点阵显示4.RTC时钟更新写入5.初始化函数整合6.手势识别7.点阵显示8.手势切换显示9.物联网时钟外壳1.开... 查看详情

3-stm32物联网开发wifi(esp8266)+gprs(air202)系统方案基础篇(项目功能演示--gprs)

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案基础篇(项目功能演示--Wi-Fi) 这节演示STM32采集的温湿度数据通过GPRS模块传给手机APP,APP上有个开关按钮,发指令给GPRS模块,然后发给STM32.注:GPRS的程序都做成的透传的,就是GPRS模块通... 查看详情

[基础篇]esp8266-sdk教程之helloworld!(代码片段)

...版本管理神器,本人是非常喜欢这款由Linux之父LinusTorvalds开发的工具,可以很方便让我完成一些工作,比如说copy代码~哈哈,作为初级菜鸟程序员会用Git也是一个加分项,大家可以去看一下廖雪峰的Git的教 查看详情

十二高级篇wifi模块-esp8266(代码片段)

...6模块是WIFI无线通讯模块,该模块是串口接口连接到了我们开发板上的USART2*/#include"stm32f10x_conf.h"//包含该头文件所有的外设头文件均已包含typedefvoid(*wifi_recv_handler)(char*buf,intlen);//通过typedef定义函数指针类型externvoidset_wifi_recv_... 查看详情

3-stm32物联网开发wifi(esp8266)+gprs(air202)系统方案升级篇(项目功能演示--远程升级wifi模块程序)

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(视频总揽)为了节省时间,基础篇的基础内容不再叙述, 查看详情

esp8266sdk开发:物联网篇-esp8266连接阿里云物联网平台,使用阿里云提供的自定义topic通信控制

     搜索物联网平台(如果没有开通自行开通)  创建产品                      &nb 查看详情

esp8266便携式物联网时钟(软件篇)代号:喵(代码片段)

接上一篇的硬件,本篇说说开发环境和作品功能的实现及部分核心代码1.开发环境-ArduinoIDEforESP82662.NTP网络时间获取3.32x8LED点阵显示4.RTC时钟更新写入5.初始化函数整合6.手势识别7.点阵显示8.手势切换显示9.物联网时钟外壳1.开... 查看详情

esp32micropython开发之旅

ESP32MicroPython开发之旅系列导读——人生苦短,我用MicroPythonhttps://blog.csdn.net/weixin_44614230/article/details/121641046ESP32MicroPython开发之旅基础篇①——搭建环境,运行Helloworldhttps://blog.csdn.net/weixin_44614230/article/details/121641451ESP32Micr... 查看详情

esp8266学习笔记6:esp8266规范wifi连接操作

...我整理了从2015年至今关于ESP8266的学习笔记,梳理出来了开发环境、基础功能、进阶学习三大部分。方便自己和他人。可点此查看,欢迎交流。之前在笔记4《ESP8266的SmartConfig》http://blog.csdn.net/iotisan/article/details/54849410中,做了smar... 查看详情

esp8266与esp8285开发时有什么区别

  ESP8266模块在WiFi联网领域已经被广泛使用,但是ESP8266芯片是需要外挂Flash芯片的,这样就使模块不能做的更小。之后乐鑫公司又推出了ESP8285芯片,直接集成了1MByte的Flash于芯片内,各厂家继而推出了体积更小ESP8285模块,相对... 查看详情

arduino开发esp8266——安装与配置esp8266开发板

...击下一步直至安装完成。如下图所示:二、下载ESP8266开发板库:在这面填写ESP8266开发板地址:http://arduino.esp8266.com/stable/package_esp8266com_index.json,保存。三、设置开发板&# 查看详情

arduino开发esp8266——安装与配置esp8266开发板

...击下一步直至安装完成。如下图所示:二、下载ESP8266开发板库:在这面填写ESP8266开发板地址:http://arduino.esp8266.com/stable/package_esp8266com_index.json,保存。三、设置开发板&# 查看详情

arduino开发esp8266——安装与配置esp8266开发板

...击下一步直至安装完成。如下图所示:二、下载ESP8266开发板库:在这面填写ESP8266开发板地址:http://arduino.esp8266.com/stable/package_esp8266com_index.json,保存。三、设置开发板&# 查看详情