ESP8266-NodeMCU物联网原理介绍以及说明(新手入门)

2023-10-27

做一期ESP8266-NodeMCU物联网模块的介绍,详解该模块的电路和原理以及引脚的使用说明,后面会逐步上案例的。如有问题,请联系,及时更正。

ESP8266-NodeMCU 开发板

物联网模块,有ESP8266网络模块,配置有一般开发板的常用功能。iic ,pwm ,串口等常见通信。

ESP8266-NodeMCU

  1. ESP8266-NodeMCU是一个开源硬件开发板,由于它支持WIFI功能,所以在物联网(IOT)领域,Arduino开发板最大的对手之一就是ESP8266-NodeMCU开发板。
  2. ESP8266-NodeMCU尺寸与Nano类似,他并不是Arduino团队开发的,但是我们也可以使用Arduino IDE对他进行开发。而且他还有一颗地道的“中国芯”—ESP8266模块。
    NodeMcu arduino编程环境搭建(Esp8266开发环境搭建)
  3. ESP8266模块+NodeMCU模块组成的
  4. 简单理解一下NodeMCU ,NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了可以运行在esp8266Wi-FiSoC芯片之上的固件,以及基于ESP-12模组的硬件,(少量的排针和usb 数据接口,存储构成最简单的一个用用功能的单元模块)
  5. 生产厂家:安信可和乐鑫都是主流的esp8266 衍生流,,差球不多,均都有中英文说明。

在这里插入图片描述

目前流行的ESP8266-NodeMCU有两块,他们只是串口烧写芯片有所不同,因此在开发之前需要安装对应板子的串口驱动,分别是CH340和CP2102驱动,然后直接用安卓数据线连接电脑。

NodeMCU引脚功能

在这里插入图片描述

上图图例说明
POWER: 电源                                    SP,FUNCTION:nodemcu 操作内部存储单元的(6-11不用)
I/O:通用输入输出                                COMM,INTERFACE: 均代表的是通讯引脚spi ,串口,iic
ADC:模拟                                       PIN NUMBER:排针序号,开发过程不太用,pcb制作会用
CONTROL:字面理解就是控制,8266 都知道需要CHPD拉高   PWM
N/C: N/O 是常开触点。N/C 是常闭触点(就是不用)

sub数据口旁边的两个按键说明一下
RST(复位键)               
FLASH(刷固件用的,可以参考刷固件手册)
ESP8266引脚功能一览

在这里插入图片描述

引脚说明

ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO 11。

作为唯一模拟引脚ADC引脚AD
   电压 0-1V,
   其他数字引脚0-3.3V 

-lua编程中的端口例如:lua程序中的pin5对应D5,D5对应GPIO14 pin2对应D2,D2对应GPIO4 其中pin6-pin11 不可用,

–lua编程中的端口对应:[[
0–GPIO16 1–GPIO5 2–GPIO4 3–GPIO0 4–GPIO2
5–GPIO14 6–GPIO12 7–GPIO13 8–GPIO15 9–GPIO3
10–GPIO1 11–GPIO9 12–GPIO10
]]

GPIO15(D8)

GPIO15(D8)引脚在开发板运行中一直保持低电平状态。
因此请不要使用GPIO15引脚来读取开关状态或进行I²C通讯。

上拉电阻/下拉电阻
GPIO 0-15引脚都配有内置上拉电阻。这一点与Arduino十分类似。GPIO16 引脚配有内置下拉电阻。

Esp8266芯片的模拟输入

ESP8266 只有一个模拟输入引脚(该引脚通过模拟-数字转换将引脚上的模拟电压数值转化为数字量)。
此引脚可以读取的模拟电压值为 0 – 1.0V。请注意:ESP8266 芯片模拟输入引脚连接在1.0V以上电压可能损坏ESP8266芯片。
以上所描述的是针对ESP8266芯片的引脚。

幸运的是,对于NodeMCU开发板引脚,情况就不同了。
NodeMCU开发板配有降压电路。您可以用NodeMCU开发板的模拟输入引脚读取0-3.3V的模拟电压信号。

串行端口 请勿占用使用TA

ESP8266有2个硬件串行端口(UART)。
串行端口0(UART0)使用GPIO1和GPIO3引脚。其中GPIO1引脚是TX0,GPIO3是RX0。
串行端口1(UART1)使用GPIO2和GPIO8引脚。其中GPIO2引脚是TX1,GPIO8是RX1。请注意,由于GPIO8被用于连接闪存芯片,串行端口1只能使用GPIO2来向外发送串行数据。

IIC模式

ESP8266只有软件模拟的I²C端口,没有硬件I²C端口。也就是说我们可以使用任意的两个GPIO引脚通过软件模拟来实现I²C通讯。ESP8266的数据表(datasheet)中,GPIO2标注为SDA,GPIO14标注为SCL。

SPI 模式

ESP8266的SPI端口情况如下:

GPIO14 — CLK
GPIO12 — MISO
GPIO13 — MOSI
GPIO 15 — CS(SS)

在这里插入图片描述

pwm

GPIO15----管脚D8
GPIO12-----管脚D6
GPIO14-----管脚D5
GPIO4-----管脚D2

Arduino 编程 ESP8266 12F NodeMCU 实现 PWM 控制呼吸灯

ESP8266 网络

同ESP8266模块用法一样,

电路图如下

请添加图片描述
图片来自商家的,有点虚,自己下载放大看吧

下面是学习Arduino 开发的主文件示例,后面的程序会在改函数基础上去编写代码。

/*当程序开始执行时,将调用setup()函数,使用它来初始化变量,引脚模式,开始使用库等。设置功能仅在 Arduino 板的每次通电或复位后运行一次。使用此函数,类似于起始函数。与stm32的main函数相似的*/
void setup() {
  // put your setup code here, to run once:

}

/*在创建一个 setup() 函数(初始化并设置初始值)之后,loop() 函数将按照其名称的含义执行,并连续循环,从而允许程序进行更改和响应。使用它来主动控制arduino板。连续执行函数内的语句.写一些需要循环操作的逻辑代码*/
void loop() {
  // put your main code here, to run repeatedly:

}

后面会发布 NodeMcu arduino ESP8266WIFI 模块的例程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266-NodeMCU物联网原理介绍以及说明(新手入门) 的相关文章

  • Lua 中的“主”函数?

    在 python 中 通常会定义一个 main 函数 以便允许脚本用作模块 如果需要 def main print Hello world return 0 if name main sys exit main 在Lua中 这个习语if n
  • 访问 Lua 类型元表

    显然 getmetatable 可以访问几种类型的元表 getmetatable getmetatable getmetatable newproxy true 然而 似乎您无法获取其他类型的元表 除了函数 似乎无法访问数字 布尔值或 ni
  • 如何在表中表示 nil

    假设我想存储一个元素列表 包括一些零值 值的位置很重要 我需要表示列表中给定位置处不存在值 这里有一个问题 a 1 2 3 nil 4 for k v in ipairs a do print k v end print a 4 print
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • Lua 和序列化闭包

    我正在尝试序列化和反序列化 Lua 闭包 我的基本理解是下面的工厂应该生成闭包 并且Lua在函数和闭包之间没有太多区别 即没有类型 闭包 gt function ffactory x return function return x end
  • Lua:冒号符号、“自我”和函数定义与调用

    我对定义 调用 Lua 函数时使用的冒号表示法感到非常困惑 我以为我已经明白了 直到我看到这段代码 function string PatternSafe str return str gsub pattern escape replace
  • Lua中如何获取目录列表

    我需要 LUA 中的目录列表 假设我的目录路径为 C Program Files 我需要该特定路径中所有文件夹的列表以及如何搜索该列表中的任何特定文件夹 Example 需要路径 C Program Files 中所有文件夹的列表 以下是上
  • 我应该用 C++ 封装 Lua 代码的哪些代码?

    我终于将 LuaBind 配置为与我的 C 项目一起使用 我最近发现 Tiled 地图编辑器可以选择将文件导出为 lua 所以我想尝试一下 我将使用什么代码来封装下面粘贴的代码以使其与我的 C RPG 项目一起使用 return versi
  • C 的哪些部分最可移植?

    我最近读到了 Lua 联合创始人 Luiz H de Figueredo 和 Roberto Ierusalimschy 的采访 他们讨论了 Lua 的设计和实现 至少可以说这是非常有趣的 然而 讨论的一部分让我想起了一些事情 Robert
  • 如何解密Lua字节码?

    早上好 我正在尝试破译 Moon 字节码 但我无法以任何方式 有人可以帮助我吗 我有这个 例如 code 27 76 117 97 81 0 1 4 4 4 8 0 如何将此字节码解密为文本 我已经在这里搜索 http www asciit
  • Lua :: 如何编写加载多个CPU的简单程序?

    我还无法用 Lua 编写一个可以加载多个 CPU 的程序 自从Lua通过协程支持这个概念 http www lua org pil 9 4 html 我相信这是可以实现的 我失败的原因可能是以下之一 这在Lua中是不可能的 我写不出来 an
  • 在lua中组合两个函数

    我刚开始学习lua 所以我的要求可能是不可能的 现在 我有一个接受函数的方法 function adjust focused window fn local win window focusedwindow local winframe w
  • VB6 - Lua 集成

    我想知道是否有人有任何集成 Lua 和 VB6 的技巧 我正在运行一个小型在线角色扮演游戏 添加一些脚本会很棒 嗯 这是可行的 我曾经为 Lua 5 0 2 做过 但找不到文件 在您拥有的选项中 您可以 将 Lua 封装在公开 Lua AP
  • 在Lua中获取前一天的日期

    谁能告诉我如何使用 Lua 获取 YYYY MM DD 格式的前一天日期 即 一个片段 它将返回运行当天的前一天的日期 Try print os date Y m d os time 24 60 60 严格来说 这只能保证在 POSIX 系
  • 安装Lua套接字库

    要么我太累了 要么我瞎了 我想学习 Lua 网络 因此我必须安装socketlib 所以我可以轻松地要求它 但我不知道我应该 要求 哪些文件 例子说 local socket require socket 但正如我所说 如果我使用 我不知道
  • 如何使用 srlua 制作可执行的 Lua 脚本?

    我的主要目标是使我的 lua 文件成为可执行文件或使其成为咬代码 最好是两者皆有 我正在尝试 srlua 但在自述文件中它告诉我要做的事情 对于Windows 您需要首先创建srlua exe和glue exe 然后为每个 你想把Lua程序
  • 如何在 emacs lua-mode 中配置缩进?

    完整的 emacs 新手在这里 我在 Ubuntu 上使用 emacs 23 1 1emacs 入门套件 https github com technomancy emacs starter kit 我主要在 lua 模式下工作 安装了pa
  • 在 Awesome-wm 中为特定应用程序设置窗口布局

    如何配置很棒 以便它可以启动两个窗口对齐的新应用程序 如下所示 xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx 其中 x 是 pidgin 中的对话窗口 是好友列表窗口 一般来说 我想指定右窗口的宽度
  • Lua中有状态迭代器和无状态迭代器的区别

    Lua中无状态和有状态迭代器有什么区别 请详细解释一下 什么时候需要使用无状态 什么时候需要使用另一种 我需要例子来理解这个概念 首先让我们就一个定义达成一致 在 Lua 中 迭代器是function 类似对象 每次调用时都会返回序列中的下
  • Lua 上的 For 循环

    我的作业是如何执行 for 循环 我已经从数字上弄清楚了 但无法从名称上弄清楚 我想创建一个 for 循环来运行名称列表 以下是我到目前为止所拥有的 names John Joe Steve for names 1 3 do print n

随机推荐

  • 【Web】go管理配置神器 viper库

    建议看官方文档 viper 库的作用 viper适用与go应用程序中处理多种格式的配置文件 如 YAML JSON TOML 等 它支持 设置默认值 从 JSON TOML YAML HCL envfile 和 Java 属性配置文件中读取
  • C++实现矩阵压缩存储与(快速)转置

    注意 以下所有代码均在VS2010环境下运行测试 了解了C语言以后 我们都知道 要存储一个矩阵 用一个二维数组即可实现 今天 由我来带领大家玩点新鲜的 对矩阵进行压缩存储并对其进行转置 一 对称矩阵及对称矩阵的压缩存储 1 什么是对称矩阵
  • 超详细、超完整的C++教程(算是吧)

    C 是一种高级编程语言 它被广泛应用于软件开发 游戏制作 嵌入式系统等领域 本文将为读者提供一份超详细 超完整的C 教程 帮助初学者掌握C 的基础知识 同时给出十个实例 并一一解释分析 最后 我们将为读者提供一道编程题 并给出解答 目录 第
  • Openwrt安装python问题

    1 tini依赖函数找不到 需要禁用docker compose 2 pip 19版本过低 需要将pip更新到21 3 pip install upgrade pip staging dir hostpkg bin python3 8 m
  • Ubuntu 安装 Visual Studio Code 搭建 C++ 开发环境教程

    Ubuntu 安装 Visual Studio Code 搭建 C 开发环境教程 一 Ubuntu 安装 Visual Studio Code 1 下载 1 在 Ubuntu Software 中下载安装 2 Visual Studio 官
  • 【推荐】10本黑客入门必看的书籍

    前言 书籍介绍黑客入门的基本知识和必备技能 帮助您理解黑客攻击的原理和方法 并提供有效的防御策略 1 白帽子讲Web安全 作者 吴翰清 介绍了常见的Web安全漏洞和攻击技术 并提供了相应的防御策略 2 Metasploit渗透测试指南 作者
  • shell脚本之检索某url中所有文件的内容

    前言 cve 官网或者工信部会发布一些 cve 漏洞 可以看到该漏洞在某次 commit 提交代码后修复的 可以通过检索 kernel org 中所有内核版本的 ChangeLog 文件中是否包含该 commit 来判断漏洞影响的内核版本
  • copyTo 使用方法

    原地址 https blog csdn net qq 36930777 article details 78256739 openCV中image copyTo 有两种形式 1 image copyTo imageROI 作用是把image
  • 2.4.5Qt之plainTextEdit 文本编辑器dial刻度盘spinBox整数计数器QDoubleSpinBox浮点计数器QSlider滑块基础知识

    Qt之plainTextEdit 文本编辑器dial刻度盘spinBox整数计数器QDoubleSpinBox浮点计数器QSlider滑块基础知识 文章目录 Qt之plainTextEdit 文本编辑器dial刻度盘spinBox整数计数器
  • 刷脸支付的广泛应用观望态势势会越来越少

    支付宝 微信支付 中国银联三大巨头都相继推出自己的刷脸支付产品 并对刷脸支付实行大力的推广扶持政策 刷脸支付较当下流行的扫码支付更加便捷 资金更安全 而且还有马云 马化腾多次站台宣传 想不火都难 支付宝宣布其刷脸支付已经具备商业化能力并逐渐
  • 解决ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘的方法

    问题 导入tensorflow时报错ModuleNotFoundError No module named numpy core multiarray umath 异常信息如下所示 分析 NumPy是使用Python进行科学计算的基础软件包
  • GPU服务器租用阿里云和腾讯云对比以及学生GPU按量付费攻略

    学生如何选择GPU服务器 哪家GPU服务器 腾讯云GPU服务器和阿里云GPU对比 GPU服务器可以选择按量付费计费模式 用的时候创建一台按量GPU实例 不用的时候释放掉 这样比较划算 腾讯云百科来详细说下哪家GPU服务器划算以及按量付费GP
  • 兼顾测试功能的API文档管理工具:Swagger与RAP2

    常规的开发流程通常为 后端提供API文档 前后端各自实现 联调测试 这里经常遇到的两个问题 文档如何维护 一方实现后 需要等另一方进行联调 对于文档的维护 常规的API文档管理工具都具备文档的创建 修改 共享 版本记录等 差别不大 而对于联
  • Linux MMC驱动架构浅析

    Linux MMC驱动架构浅析 MMC驱动模型 Linux内核设计了MMC子系统 用于管理MMC SD等设备 MMC SD存储设备是一种典型的块设备 MMC子系统的框架结构如下图所示 块设备 MMC BLOCK 块设备的相关驱动 即实现块设
  • Prometheus + Grafana 监控SpringBoot项目

    文章目录 Dubbo Prometheus Grafana 监控SpringBoot项目 方式1 侵入式 通过修改spring boot代码实现 准备镜像 Prometheus 搭建 Grafana 搭建 Spring Boot程序 配置g
  • java_时间戳与Date_相互转化

    1 时间戳的定义 时间戳是指文件属性里的创建 修改 访问时间 数字时间戳技术是数字签名技术一种变种的应用 在电子商务交易文件中 时间是十分重要的信息 在书面合同中 文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容 数字
  • python:tkinterweb 简单又好用的 htmlview 组件

    tkinterweb 是简单又好用的 webview 组件 也可用来显示本地 html文件 pip install tkinterweb pip install readmdict 参见 使用Python调用mdx字典文件进行查词 安装 M
  • 苹果电脑能装鸿蒙,纯小白必看!鸿蒙编译及烧录环境分开部署For Mac

    前提说明 一 办公环境使用的 mac 电脑 家里用的黑苹果 没有windows环境 二 CentOS7 及 windows 10 均使用 vmware 部署安装 三 编译环境 推荐使用 CentOS7 具体可参照 在CentOS中安装鸿蒙L
  • github下载项目下到一半出现需要登陆此站点objects.githubusercontent.com

    猜你感兴趣 搭建自己的私有git服务器 gitlab 部署 汉化 项目备份 迁移 问题描述 当使用迅雷下载FontForge时 该exe被托管在GitHub上 一直不成功 提示如图所示 解决方案 1 使用检查查看元素链接 2 复制下载链接
  • ESP8266-NodeMCU物联网原理介绍以及说明(新手入门)

    做一期ESP8266 NodeMCU物联网模块的介绍 详解该模块的电路和原理以及引脚的使用说明 后面会逐步上案例的 如有问题 请联系 及时更正 ESP8266 NodeMCU 开发板 物联网模块 有ESP8266网络模块 配置有一般开发板的