01-ESP8266 NodeMCU 物联网开发初识

这篇具有很好参考价值的文章主要介绍了01-ESP8266 NodeMCU 物联网开发初识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Author:teacherXue

一、认识ESP8266 NodeMCU

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

  1. ESP8266芯片的技术特性

01-ESP8266 NodeMCU 物联网开发初识
  • 处理器: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 芯片的开发板。

01-ESP8266 NodeMCU 物联网开发初识
  1. ESP8266开发板

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

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

01-ESP8266 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 转换器,可以轻松上传代码。对于初学者来说也是一个非常好的选择。

01-ESP8266 NodeMCU 物联网开发初识

ESP-01

01-ESP8266 NodeMCU 物联网开发初识

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 套件引出线

01-ESP8266 NodeMCU 物联网开发初识
  1. WeMos D1 mini引出线

01-ESP8266 NodeMCU 物联网开发初识
  1. ESP8266-01 引出线

01-ESP8266 NodeMCU 物联网开发初识

三、对 ESP8266 进行编程

  1. 使用 ArduinoIDE 对 ESP8266 进行编程

01-ESP8266 NodeMCU 物联网开发初识

要对电路板进行编程,您需要一个 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版本下载。

01-ESP8266 NodeMCU 物联网开发初识
2)运行 Arduino IDE

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

01-ESP8266 NodeMCU 物联网开发初识
3)软件运行界面
01-ESP8266 NodeMCU 物联网开发初识
4)在 Arduino IDE 中安装 ESP8266 NodeMCU

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

  • 转到文件>首选项。

01-ESP8266 NodeMCU 物联网开发初识
  • 在“ 附加开发板管理地址 ”字段中输入如下地址并确认。

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

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

  • 离线安装包方式

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

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

01-ESP8266 NodeMCU 物联网开发初识
  • 设置开发板类型

01-ESP8266 NodeMCU 物联网开发初识
  • 搜索ESP8266并安装“ ESP8266 by ESP8266 Community ”,本列中该插件已安装,否则将看到安装按钮,点击安装即可,已安装插件也可以在这里删除。

01-ESP8266 NodeMCU 物联网开发初识
  • 工具、开发板选项中可以看到ESP8266选项,下面有可供选择的8266芯片类型。

01-ESP8266 NodeMCU 物联网开发初识
  1. 使用 ArduinoIDE 将代码上传到ESP8266 NodeMCU

1) 示例代码

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

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

01-ESP8266 NodeMCU 物联网开发初识
2) 连接设备

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

01-ESP8266 NodeMCU 物联网开发初识
3) 选择端口

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

01-ESP8266 NodeMCU 物联网开发初识
4) 上传代码

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

01-ESP8266 NodeMCU 物联网开发初识

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

01-ESP8266 NodeMCU 物联网开发初识

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

01-ESP8266 NodeMCU 物联网开发初识
5) 查看结果

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

01-ESP8266 NodeMCU 物联网开发初识

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

01-ESP8266 NodeMCU 物联网开发初识

四、来自于板载LED的Hello world

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

  1. 新建项目

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

01-ESP8266 NodeMCU 物联网开发初识
  1. 编辑代码

01-ESP8266 NodeMCU 物联网开发初识

空白项目里面的两个方法就是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毫秒

最终代码如下:

01-ESP8266 NodeMCU 物联网开发初识

3. 编译烧录代码

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

01-ESP8266 NodeMCU 物联网开发初识

这时,你可以使用电池、或者充电宝供电的方式,让开发板脱离IDE开发环境,独立运行程序。文章来源地址https://www.toymoban.com/news/detail-508112.html

到了这里,关于01-ESP8266 NodeMCU 物联网开发初识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NodeMCU ESP8266基于Arduino IDE的开发环境搭建(图文并茂)

    官网地址 Arduino IDE在官网上的下载地址: https://www.arduino.cc/en/software 这个软件支持 Windows , Linux , macOS 系统,根据实际情况进行选择,本文使用的是Windows系统。 下载的文件是安装包,双击进行安装即可,版本可能会有些差异,如下所示; 百度云 这边把安装包上传到云盘了

    2024年02月07日
    浏览(59)
  • 使用arduino IDE开发ESP8266NodeMCU连接DHT11实现温湿度检测并上传onenet官网

            本篇博客记录一下以arduino IDE来开发一下ESP8266NodeMCU,实现用DHT11进行温湿度检测,并且上传新版的onenet官网;我在实现这个小项目的时候,发现网上资料有关onenet的资料都是旧版的,这就有点难受了,本着开源的精神,这篇博客就来弥补一下这方面资料的缺失。  

    2024年02月09日
    浏览(66)
  • ESP8266-01S接入机智云物联网平台

    接入机智云物联网平台,首先需要烧写机智云的固件,官网就有免费下载直接使用! 下载对应固件包 ESP8266-01s模块进入烧录模式连接图 GPIO0用于固件烧写模式,低电平为烧写模式,高电平为运行模式(默认状态) ESP8266-01S      USB-TTL串口 3v3---------------3v3 GND--------------GND T

    2023年04月27日
    浏览(42)
  • 【ESP-01S / ESP8266 AT指令连接阿里云物联网平台】

    关注+星标 公众号,不错过精彩内容 作者 | MakingClub 微信公众号 | electronic造物实验室 注册阿里云账号并搜索物联网服务。选择并进入物联网平台产品页。 点击管理控制台,进入物联网平台管理界面。 选择公共实例(如果尚未开通,需要先进行开通,具体步骤不再赘述),然

    2024年02月07日
    浏览(64)
  • Arduino + ESP8266 NodeMcu(超详细)

            从计算机学院入坑工学院,第一次学习Arduino+ESP8266 NodeMcu( CH340驱动版 )开发板的学习         本着小白上道,才发现各种开源项目和一些包在到处割韭菜,记录一下第一次学习安装遇到的坑 (本次记录所有下载链接和我上传在CSDN上的下载项目全部免费提供

    2023年04月08日
    浏览(53)
  • NodeMCU ESP8266 中断介绍以及使用详解

    今天,我们将学习中断和定时器的相关概念,并且基于NodeMCU ESP8266 12E开发板搭建硬件电路,通过使用中断和定时器实现我们想要实现的功能。 中断在嵌入式开发中是很常见的功能,特别是在单片机的开发中。通常 GPIO 引脚可以接收外部的信号,根据不同的信号类型,可以触

    2024年02月04日
    浏览(67)
  • NodeMCU ESP8266 GPIO使用详解(图文并茂)

    前面的文章中我们已经学习了如何点亮一个LED灯,在嵌入式的世界里,这个相当于我们初学一门编程语言,写下的Hello World程序。 为了让LED闪烁,我们需要操作芯片的GPIO,这是硬件最底层的概念,只不过 Arduino 的编程中,底层的库函数已经为我们做好了硬件的封装,只要调用

    2024年02月03日
    浏览(111)
  • NodeMCU ESP8266构建Web Server网页端控制设备

    NodeMCU ESP8266 内部集成了 TCP/IP 协议栈,可以快速构建网络功能,搭建联网应用的硬件平台; ESP8266可以作为WiFi接入点( Station ),这样可以方便连接互联网,通过HTTP协议和云端服务器进行连接,数据处理; ESP8266可以作为热点( Access Point ),这样方便其他设备的接入,可以

    2024年02月05日
    浏览(48)
  • ESP8266 NodeMCU连接阿里云(从环境搭建到代码实现)

    ESP8266 NodeMCU是一款基于ESP8266芯片的开发板,因其体积小、功耗低、易于编程和扩展等特点,在物联网领域得到了广泛应用。阿里云IoT平台则为开发者提供了稳定可靠的物联网服务,包括设备接入、数据管理、远程控制等功能。本教程将指导你如何将ESP8266 NodeMCU连接到阿里云

    2024年04月16日
    浏览(52)
  • NodeMCU ESP8266 的PWM波形输出教程(图文并茂)

    PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种用于控制电子设备的技术。 PWM的基本原理是周期性地改变信号的脉冲宽度,通常以一个固定的 周期 ( Period )为基准,然后在每个周期内调整脉冲的占空比( Duty ),即高电平和低电平的时间比例。 可以通过调整脉冲信号的

    2024年01月17日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包