ESP8266Arduino编程实例开发环境搭建基于Arduino IDE
ESP8266-Arduino编程实例-开发环境搭建(基于Arduino IDE)开发环境搭建-基于Arduino IDEESP8266 社区为 Arduino IDE 创建了一个插件,允许使用 Arduino IDE 及其编程语言对 ESP8266 进行编程。本文将详细介绍如何在Windows系统上搭建完整ESP8266开发环境。
1、Arduino IDE安装可以在Arduino官网下载Arduino IDE:https://www.arduino.cc/en/software
下载安装包或压缩包,安装或解压指定位置即。
2、安装ESP8266 Arduino插件第一步:启动Arduino IDE
第二步:打开文件->首选项
**第三步:**在首选项的附加开发板管理网址中输入:
12http://arduino.esp8266.com/stable/package_esp8266com_index.json
如果已经有多个开发板URL,可以使用逗号分隔,例如:
12https://dl.espressif.com/dl/package_esp32_index.js ...
ESP8266Arduino编程实例开发环境搭建基于PlatformIO
ESP8266-Arduino编程实例-开发环境搭建(基于PlatformIO)开发环境搭建-基于PlatformIO1、什么是PlatformIOPlatformIO 是一个跨平台、跨架构、多框架的专业工具,适用于嵌入式系统工程师和为嵌入式产品编写应用程序的软件开发人员。
1.1 PlatformIO设计理念PlatformIO 在嵌入式市场的独特理念为开发人员提供了一个现代的集成开发环境(Cloud & Desktop IDE),它可以跨平台工作,支持许多不同的软件开发工具包(SDK)或框架,并且包括复杂的调试(Debugging)、单元测试(单元测试)、自动代码分析(静态代码分析)和远程管理(远程开发)。它的架构旨在最大限度地提高开发人员的灵活性和选择,他们可以使用图形或命令行编辑器(PlatformIO Core (CLI)),或两者兼而有之。
PlatformIO 是在多个特定平台上开发解决方案的专业嵌入式系统工程师的必备工具。此外,通过分散式架构,PlatformIO 为新老开发人员提供了一种快速集成路径,用于开发商业就绪产品,并缩短了整体上市时间。
它可以在 ...
ESP8266Arduino编程实例GPIO输入和输出
ESP8266-Arduino编程实例-GPIO输入和输出GPIO输入和输出本实例将演示如何通过GPIO的输入和输出功能控制LED。
1、GPIO输入与输出控制1)GPIO模式设置
通过函数pinMode可以将GPIO设置为输入或输出模式:
123pinMode(pin,INPUT); // 设置为输入模式pinMode(pin,OUTPUT); // 设置为输出模式
2)GPIO状态设置
通过函数digitalWrite函数可以控制GPIO的状态:
123digitalWrite(pin,HIGH);// 输出高电平digitalWrite(pin,LOW);// 输出低电平
3)GPIO状态读取
通过函数digitalRead函数可以读取GPIO的状态。当GPIO为高电平时,返回HIGH;当GPIO为低电平是,返回LOW。
12int state = digitalRead(pin);
2、硬件准备
ESP8266 NodeMCU开发板一块
微动开关一个
LED一个
470欧姆电阻两个
杜邦线若干
数据线一条
3、软件准备
Arduino IDE或VSCode + Pl ...
ESP8266Arduino编程实例PWM
ESP8266-Arduino编程实例-PWMPWM本文将演示如何使用ESP8266 NodeMCU生成PWM信号,通过随时间改变占空比来调节 LED 亮度。
ESP8266 GPIO 可以设置为输出 0V 或 3.3V,但在0~3.3V之间不能输出任何电压。 尽管如此,可以使用脉宽调制 (PWM) 输出“假”中电平电压,从而产生不同级别的 LED 亮度的方式。
如果非常快速地在 HIGH 和 LOW 之间切换 LED 的电压,眼睛将无法跟上 LED 开关的速度; 只会看到亮度的一些渐变。
这基本上就是 PWM 的工作原理——通过产生一个以非常高的频率在 HIGH 和 LOW 之间变化的输出。
占空比是 LED 设置为高电平的时间段的一部分。 下图说明了 PWM 的工作原理。
50% 的占空比导致 50% 的 LED 亮度,0 占空比意味着 LED 完全关闭,100 占空比意味着 LED 完全开启。 更改占空比是产生不同亮度级别的方式。
关于PWM的更多介绍,请参考:
Arduino与Proteus仿真实例-使用计时器实现PWM仿真
要在给定引脚上产生 PWM 信号,请使 ...
ESP8266Arduino编程实例ADC
ESP8266-Arduino编程实例-ADCADCESP8266-12E有一个易于访问的ADC引脚,本文将演示如何采集ADC引脚电平值。
ESP8266 ADC的分辨率为10位,这意味着,可以从ADC引脚读取的值范围为0~1023。
如果使用裸芯片,ESP8266 ADC 引脚输入电压范围为 0 到 1V。 然而,大多数 ESP8266 开发板都带有内部分压器,因此输入范围为 0 到 3.3V。 所以,总而言之:
ESP8266 开发板中的 ADC 电压范围:0 至 3.3V(例如:ESP8266 12-E NodeMCU Kit、WeMos D1 Mini、…)
ESP8266 芯片中的 ADC 电压范围:0 到 1V(例如:ESP-07 芯片、ESP-12E 芯片……)
ESP8266 NodeMCU的ADC引脚如下:
1、硬件准备
ESP8266 NodeMCU开发板一块
电位计一个
100欧姆和220欧姆电阻各一个(如果使用裸芯片)
杜邦线若干
数据线一条
2、软件准备
Arduino IDE或VSCode + PlatformIO
在前面的文章中,对如何搭建E ...
ESP8266Arduino编程实例中断
ESP8266-Arduino编程实例-中断中断本文将演示如何使用 ESP8266 NodeMCU 的中断和定时器。 中断检测 GPIO 状态的变化且无需不断检查其当前值。通过使用中断,当检测到更改时,会触发事件(调用函数)。
在实例中,使用 PIR 运动传感器检测运动:当检测到运动时,ESP8266 会启动一个定时器并打开 LED 预定义的秒数。 当计时器完成倒计时,LED 会自动关闭。
1、ESP8266中断介绍中断对于在微控制器程序中使事情自动发生很有用,并且可以帮助解决时序问题。
使用中断,您无需不断检查当前引脚值。 当检测到变化时,会触发一个事件——调用一个函数。 该函数称为中断服务程序(ISR)。
当中断发生时,处理器停止执行主程序执行任务,进入中断服务程序,中断服务程序执行完成后再返回到主程序,如下图所示。
ESP8266 支持任何 GPIO 中的中断,但 GPIO16 除外。
要创建中断,需要调用 attachInterrupt() 并将 GPIO 中断引脚、ISR(要调用的函数)和模式作为参数传递。 ISR 函数必须声明 ICACHE_RAM_ATTR 属性。 ...
ESP8266Arduino编程实例定时器与中断
ESP8266-Arduino编程实例-定时器与中断定时器与中断ESP8266 Timer0和Timer1有两个计时器,其WiFi功能使用一个定时器。我们只能使用一定计时器。为避免崩溃问题,在Arduino框架中建议使用Ticker而不是Timer。 Ticker执行与计时器相同的功能。
本实例将演示如何使用定时器及中断实现LED闪烁。
定时器的速度计算公式如下:
定时器速度(Hz) = 定时器时钟速度(Mhz) / 预分频器
预分频器/分频器是将上述频率除以形成定时器的“滴答(tick)”(增加其计数器)。 然后将 ISR 配置为在特定数量的滴答数后触发。
使用了预分频器,因为定时器最多只能在其计数器中存储 8/16 位,这意味着对于 8 位计数器,它们将每 256/16000000 秒(16us)溢出,对于 16 位计数器,它们将每 65536 / 16000000 秒(4us)溢出 ,这通常远远超过需要。 预分频器允许对其进行缩放以允许更长的间隔。
1、硬件准备
ESP8266 NodeMCU开发板一块
LED一个
...
ESP8266Arduino编程实例深度休眠与唤醒
ESP8266-Arduino编程实例-深度休眠与唤醒深度休眠与唤醒1、ESP8266休眠模式介绍在嵌入式系统中,功耗是一个绕不开的问题。不同的单片机、嵌入式设备一般会提供电源管理,即功耗管理。ESP8266提供了三个不同的功耗模式,即休眠模式。分别是:Modem Sleep(调制解调器睡眠), Light Sleep(轻度休眠)和Deep Sleep(深度休眠)。每种不同的休眠模式对应不同的功耗及工作状态。不同休眠模式区别如下(ESP8266数据手册):
Item
Modem-sleep
Light-sleep
Deep-sleep
Wi-Fi
OFF
OFF
OFF
System clock
ON
OFF
OFF
RTC
ON
ON
ON
CPU
ON
Pending
OFF
Substrate current
15 mA
0.4 mA
~20 uA
Average current (DTIM = 1)
16.2 mA
1.8 mA
–
Average current (DTIM = 3)
15.4 mA
0.9 mA
– ...
ESP8266Arduino编程实例SPIFFS及数据上传Arduino IDE和PlatformIO IDE
ESP8266-Arduino编程实例-SPIFFS及数据上传(Arduino IDE和PlatformIO IDE)SPIFFS及数据上传(Arduino IDE和PlatformIO IDE)1、SPIFFS介绍ESP8266 包含一个串行外设接口闪存文件系统 (SPIFFS)。 SPIFFS 是为带有闪存芯片的微控制器创建的轻量级文件系统。
SPIFFS 可以像在计算机中的普通文件系统中一样访问闪存芯片存储器,但更简单且更受限制。 可以读取、写入、关闭和删除文件。 SPIFFS 不支持目录,因此所有内容都保存在平面结构中。
将ESP8266与SPIFFS结合,可以方便储存数据:
使用设置创建配置文件;
永久保存数据;
创建文件以保存少量数据,而不是使用 microSD 卡;
保存 HTML 和 CSS 文件以构建 Web 服务器;
保存图像、数字和图标;
…
在我们的大多数 Web 服务器项目中,我们直接将 Web 服务器的 HTML 代码编写为字符串。 使用 SPIFFS,可以在单独的文件中编写 HTML 和 CSS,并将它们保存在 ESP8266 文件系统中。
本文将 ...
ESP8266Arduino编程实例LittleFS及数据上传
ESP8266-Arduino编程实例-LittleFS及数据上传LittleFS及数据上传1、LittleFS介绍LittleFS 是为微控制器创建的轻量级文件系统,可让像在计算机上的标准文件系统中一样访问闪存,但它更简单且更受限制。 支持读取、写入、关闭和删除文件。
将ESP8266与SPIFFS结合,可以方便储存数据:
使用设置创建配置文件;
永久保存数据;
创建文件以保存少量数据,而不是使用 microSD 卡;
保存 HTML 和 CSS 文件以构建 Web 服务器;
保存图像、数字和图标;
…
本文将详细介绍如何上传LittleFS数据及如何使用LittleFS。
2、在Arduino IDE中上传LittleFSArduino IDE默认不支持上传LittleFS数据,需要安装插件。具体步骤如下:
**第一步:**下载插件,ESP8266LittleFS-2.6.0.zip
**第二步:**解压,安装。
插件下载完成后,将其解压,并将ESP8266LittleFS目录复制到Arduino IDE安装目录的tools目录:
**第三步:**重启Arduino ID ...
