查看: 5169|回复: 2

第1章 走进ESP8266的世界

[复制链接]
  • TA的每日心情
    开心
    2020-7-1 09:10
  • 签到天数: 817 天

    [LV.10]以坛为家III

    发表于 2018-10-22 10:28 | 显示全部楼层 |阅读模式
    本帖最后由 单片机菜鸟 于 2019-11-28 09:18 编辑

    image

    一、基础篇

    第1章 走进ESP8266的世界

        欢迎大家来到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
      image

    2. ESP-07S
      image

    3. ESP-12E
      image

    4. ESP-12F
      image

    </div>

    1. ESP-12S
      image

    温馨提示

        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!

    [size=6]qq群:491507716    博哥私人号:2421818708[/size]


    该用户从未签到

    发表于 2019-8-30 00:05 来自手机 | 显示全部楼层
    求问用Arduino开发Esp8266时如何设置超频160MHZ?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    [2019-4-20]RPG无人世界
    [2019-4-20]RPG无人世界
    剧情:主角玄影,为了逃避██的追杀迫不得已发动████在濒死状态来到█
    Arduino串口监视器出现乱码
    Arduino串口监视器出现乱
    我用Arduinio Due将GNRMC数据Serial.prinln出来,通过串口监视器,我们可以发现有时GN
    为什么单击开关按键后会调用其他控件的函数
    为什么单击开关按键后会调
    BlinkerButton Kelvinator_power("btn-pwr"); BlinkerButton Kelvinator_Light("btn-d
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表