当前位置:   article > 正文

01-ESP8266 NodeMCU 物联网开发初识_nodemcu esp8266

nodemcu esp8266

Author:teacherXue

一、认识ESP8266 NodeMCU

ESP8266 是 Espressif Systems 生产的 Wi-Fi 片上系统 (SoC)。它非常适合物联网和家庭自动化项目,目前有非常高的市场普及率,还有更加高端的同时支持wifi和蓝牙的双核心芯片ESP32,可以在乐鑫官网查看完整的芯片列表。

  1. ESP8266芯片的技术特性

  • 处理器:L106 32 位 RISC 微处理器内核,基于以 80 或 160 MHz 运行的Tensilica Diamond Standard 106Micro。

  • 记忆:

32 KiB 指令 RAM

32 KiB 指令缓存RAM

80 KiB 用户数据RAM

16 KiB ETS 系统数据 RAM

  • 外部 QSPI 闪存:支持高达 16 MiB(通常包括 512 KiB 至 4 MiB)

  • IEEE 802.11 b/g/n Wi-Fi

  • 集成 TR 开关、巴伦、LNA、功率放大器和匹配网络

  • WEP 或 WPA/WPA2 身份验证,或开放网络

  • 17 个 GPIO 引脚

  • 串行外设接口总线 (SPI)

  • I²C(软件实现)

  • I²S 与 DMA 接口(与 GPIO 共享引脚)

  • 专用引脚上的 UART,以及可在 GPIO2 上启用的仅传输 UART

  • 10位ADC(逐次逼近型ADC)

  1. ESP8266芯片具有如下优点

低成本:您可以获得 ESP8266 板,起价为 3 美元(或更低),具体取决于型号。

低功耗:与其他微控制器相比,ESP8266 功耗非常低,甚至可以进入深度睡眠模式以降低功耗;

Wi-Fi:ESP8266 可以生成自己的 Wi-Fi 网络(接入点)或连接到其他 Wi-Fi 网络(站点)以访问互联网。这意味着 ESP8266 可以访问在线服务以发出 HTTP 请求或将数据保存到云端等。它还可以充当 Web 服务器,以便您可以使用 Web 浏览器访问它,并能够远程控制和监视您的电路板。

与 Arduino“编程语言”兼容:那些已经熟悉 Arduino 板编程的人很高兴知道他们可以用 Arduino 风格对 ESP8266 进行编程。

与 MicroPython 兼容:您可以使用 MicroPython 固件对 ESP8266 进行编程,MicroPython 固件是针对微控制器和嵌入式系统的 Python 3 的重新实现。

  1. ESP8266芯片版本

ESP8266模块有多个不同版本,以满足不同的使用场景和成本,如下图所示。ESP-01 和 ESP-12E 是最为普及的版本。市面上有非常多的各种带有 ESP-12E 或 ESP-12F 芯片的开发板。

  1. ESP8266开发板

使用裸芯片或者模块直接进行学习不太现实,NodeMCU开发板是一个开源的物联网平台,配备了所有需要的电路来供电、可以便捷的上传代码、轻松访问 GPIO 以连接传感器和执行器、用于 Wi-Fi 信号的天线以及其他有用的功能。

ESP8266 开发板种类繁多,尺寸各异。一些电路板受益于小尺寸,这可能非常实用,具体取决于您的项目功能。通常,较小的电路板具有少量可用的 GPIO,例如 ESP-01。最适合的ESP8266 开发板将取决于打算做什么。如果刚开始使用 ESP8266 开发板,建议使用ESP8266-12E NodeMCU 套件。

ESP12-E NodeMCU 套件是最常用的 ESP8266 开发板之一。它具有 4MB 闪存、 可访问 11 个 GPIO 引脚和一个 具有 10 位分辨率的模数转换器 (ADC)引脚。此外,该开发板具有内置稳压器,您可以使用迷你 USB 插座或 Vin 引脚为模块供电。

将代码上传到电路板就像将代码上传到 Arduino 一样简单。不需要 FTDI 编程器或额外的电路,因为它有一个内置的 USB 转串口转换器。大多数开发板都带有 CP2101 或 CH340 芯片。

它带有一个用于 Wi-Fi 信号的板载天线,并带有 RST 和 FLASH 按钮以重置电路板并将其置于闪烁模式。GPIO 2 内部连接了一个蓝色 LED,调试时非常实用。

  1. 其他流行的ESP8266开发板

  • ESP-01和ESP8266 Wemos D1 mini。ESP-01 体积超小,可以容易的装入很多外壳之中,但其引脚数量很少,没有内置稳压器,需要额外的3.3v稳压供电,没有USB接口意味着需要串口上传代码,不是很友好。

  • WeMos D1 Mini 在最小的小型设置中提供 4MB 闪存、11 个 GPIO 和 1 个 ADC 引脚。社区为 D1 迷你板开发了各种各样的 扩展板,允许您构建小型和简单的设置,几乎不需要布线。您只需堆叠屏蔽层即可连接多个外围设备。它带有内置稳压器和 USB 转 UART 转换器,可以轻松上传代码。对于初学者来说也是一个非常好的选择。

ESP-01

ESP8266 Wemos D1 mini

  1. 常用开发板对比

ESP-01

ESP-12E NodeMCU

WeMos D1 mini

通用IO引脚

4(包括 TX 和 RX)

11

11

模数转换器引脚

1个

1个

1个

闪存

1MB(升级版)

4MB

4MB

面包板支持性

X

USB转串口

X

尺寸

24.75 毫米 x 14.5 毫米

48.55 毫米 x 25.6 毫米

34.2 毫米 x 25.6 毫米

价格

$

$$

$$

二、ESP8266 NodeMCU引出线

  1. 开发板引脚类型

  • 电源引脚

通常,所有电路板都带有电源引脚:3V3、GND 和 VIN。可以使用这些引脚为电路板供电(如果不通过 USB 端口供电),或为其他外围设备供电(如果使用 USB 端口为电路板供电)。

  • 通用输入输出引脚 (GPIO)

需要注意的是 GPIO 编号与板上丝印上的标签不匹配。例如,D0对应GPIO16,D1对应GPIO5。使用 Arduino IDE 对电路板进行编程时,必须使用 GPIO 编号而不是丝印上的编号。这适用于大多数 ESP8266 开发板。

  • ESP8266 外围设备包括:

17个GPIO(ESP8266开发板上通常不是所有的GPIO都可以访问)

接口接口

I2C(在软件上实现)

I2S 与 DMA 接口

串口

10 位模数转换器

不同的 ESP8266 GPIO具有特定的功能,必须明智地为您的项目选择管脚。否则最终可能会得到意想不到的结果。

  1. ESP-12E NodeMCU 套件引出线

  1. WeMos D1 mini引出线

  1. ESP8266-01 引出线

三、对 ESP8266 进行编程

  1. 使用 ArduinoIDE 对 ESP8266 进行编程

要对电路板进行编程,您需要一个 IDE 来编写代码。对于初学者,可以使用 Arduino IDE。它运行良好并且对于初学者来说简单直观。在熟悉 Arduino IDE 并开始创建更复杂的项目后,使用VS Code 与 PlatformIO 扩展一起使用会很有用,ESP8266和ESP32支持类C的arduino脚本编程,最终执行的是编译好的机器指令,也可以通过micro python以脚本解释的方式进行。但需要注意的是micro python具有较好的交互编程和维护能力,但执行效率远低于c,在需要稳定运行的产品之上,建议运行编译成机器指令的程序。

我们将从Arduino IDE开始最简单的示例,然后向VS Code进阶。使用版本建议ESP8266 的旧版本 (1.8.19) 。虽然版本 2 与Arduino 配合良好,但仍然存在一些错误和 ESP8266 尚不支持的一些功能。

  1. 安装 Arduino集成开发环境

运行 Arduino IDE,您需要在计算机上安装 JAVA环境。请参阅相关教程完成java环境配置。

1)下载 Arduino IDE

通过官方地址https://www.arduino.cc/en/Main/Software下载,该软件为免费软件,你可以放心的使用。向下滚动页面找到1.8版本下载。

2)运行 Arduino IDE

解压缩后运行名为arduino.exe的可执行文件即可

3)软件运行界面
4)在 Arduino IDE 中安装 ESP8266 NodeMCU

为了能够使用 ArduinoIDE 对 ESP8266 NodeMCU 进行编程,您需要添加对 ESP8266 开发板的支持。按照以下步骤操作:

  • 转到文件>首选项。

  • 在“ 附加开发板管理地址 ”字段中输入如下地址并确认。

注意:国内开发者可能并不能够直接访问该地址,需采用离线安装包的方式。

  • 离线安装包方式

国内用户适用于离线方式安装,arduino中文社区有封装好的离线安装程序,https://arduino.me/a/esp8266可以浏览下载,以及配置方式(https://arduino.me/a/esp32则可以下载ESP32开发支持)。开发板管理地址按如下填写为https://arduino.me/packages/esp8266.json

双击运行下载好的安装程序

  • 设置开发板类型

  • 搜索ESP8266并安装“ ESP8266 by ESP8266 Community ”,本列中该插件已安装,否则将看到安装按钮,点击安装即可,已安装插件也可以在这里删除。

  • 工具、开发板选项中可以看到ESP8266选项,下面有可供选择的8266芯片类型。

  1. 使用 ArduinoIDE 将代码上传到ESP8266 NodeMCU

1) 示例代码

确保在 工具 > 开发板中选择了 ESP8266 。如果使用的是 ESP8266-12E NodeMCU 套件,如前图所示,请选择NodeMCU 1.0(ESP-12E 模块)选项。如果不知道您的电路板是什么,您可以随时选择通用 ESP8266 模块。

在界面中通过文件 > 示例 > ESP8266WiFi > WiFiScan。你将可以在新窗口打开包含wifi热点扫描的示例代码。

2) 连接设备

使用 USB 数据线将 ESP8266 开发板连接到计算机,注意一定是具备数据传输能力的MicroUSB接线。

3) 选择端口

界面中转到工具 > 端口 并选择一个可用的 COM 端口。如果 COM 端口显示为灰色,则表示没有所需的 USB 驱动程序大多数 ESP8266 开发板使用 CP2101 或 CH340 驱动程序,请根据相关资料安装对应USB转串口驱动程序。

4) 上传代码

可以先点击对勾按钮对代码进行编译检查,此时代码不会烧录到芯片。可以及时发现问题并修正错误。向右箭头则编译代码并烧录到芯片。这里是标准示例不存在错误,我们选择直接烧录。

烧录过程中,会出现进度,如果有错误也会在消息窗口显示。

编译完成会烧录到开发板,并重启开发板芯片,看到如下信息代表烧录正确完成。

5) 查看结果

通过工具菜单打开串口监视器

串口监视器是通过串口和芯片通信的界面,顶行输入框可以向串口发送消息,下面的列表为接收到串口的信息。在这里我们看到滚动显示的信息为能扫描到的WIFI热点信息。这就是ESP芯片的强大指出,它本身就可以充当一个智能无线网关,我们将在后续章节详细了解。需要注意的是在,串口监视器界面中的波特率需要和芯片保持一致,才能保证信息的正确显示,ESP8266-12E芯片默认波特率是115200,可以在芯片代码中修改。

四、来自于板载LED的Hello world

在程序员的第一个程序中,总是喜欢通过hellow world!这样的简单信息输出程序作为学习开始的代表。第三节中,我们确实可以通过串口监视器来获得文字信息,但物联网设备多数情况下是不会连着开发环境运行的。下面我们将使用开发板自己带的LED灯光来和世界打个招呼。

  1. 新建项目

IDE界面中文件选择新建,会打开一个新的窗口,但在没有保存时,不会在本机留下项目文件,在编译时要求项目必须被保存。要注意,arduino项目保存时,单个文件也需要成项目目录。这里我们新建并保存,输入light_hellow_world并确定。

  1. 编辑代码

空白项目里面的两个方法就是arduino程序的基本结构。void setup()方法相当于程序的主方法、入口点,只在程序开始时运行一次。void loop()方法和其名称一样,是不断重复执行的方法,arduino框架编译时自动实现其循环机制,我们不用关心loop方法的调用,arduino代码属于类c脚本,在C语言的基础上封装了很多工具函数,其基本语法和C是一样,有C基础的同学们可以快速上手。

在文件的开头加上 int pin = 2;声明编号2引脚的变量,ESP8266-12开发板的板载LED信号控制连接的是其2号数字引脚,数字引脚只传输高低电平状态。

在setup方法里调用pinMode方法,定义2号引脚的控制方式为电平输出模式,如果是采集数据用的引脚,则是输入。

pinMode(pin, OUTPUT);

在loop方法里,通过digitalWrite方法,完成数字信号的写入,让2号引脚获得高低电平的输出控制。

digitalWrite(pin, HIGH); //打开LED (HIGH为电压等级高电平)

delay(1000); // 等待1000毫秒

digitalWrite(pin, LOW); //关闭LED (LOW为电压等级低电平)

delay(1000); // 等待1000毫秒

最终代码如下:

3. 编译烧录代码

点击编译上传,需要注意的是,arodionIDE环境中,串口属于独占资源,如果你正在运行之前的串口监视器,请将其关闭。看到正确的烧录结束信息后,观察开发板的蓝色LED指示灯以一秒为间隔闪烁,尝试修改参数,获得不同结果。

这时,你可以使用电池、或者充电宝供电的方式,让开发板脱离IDE开发环境,独立运行程序。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/636483
推荐阅读
  

闽ICP备14008679号