void setup() {
// Set pin D1 as an output
pinMode(D1, OUTPUT);
void loop() {
// Turn the LED on
digitalWrite(D1, HIGH);
// Wait for 1 second
delay(1000);
// Turn the LED off
digitalWrite(D1, LOW);
// Wait for 1 second
delay(1000);
如果一切设置正确,LED应该每秒钟打开和关闭。
要开始使用ESP8266或ESP32,你将需要以下组件:
ESP8266或ESP32板。
USB-micro-USB电缆: 你将需要这条电缆来连接你的ESP8266或ESP32板和你的电脑。
面包板: 面包板是一种原型设计工具,可以让你轻松地将元件连接在一起。你将需要一块面包板来连接ESP8266或ESP32板和其他元件,如传感器和执行器。
跳线: 跳线是短而灵活的电线,用于连接面包板上的元件。你将需要跳线来连接ESP8266或ESP32板和其他组件。
传感器和执行器等组件: 根据您的项目,您可能还需要额外的组件,如传感器(如温度传感器、湿度传感器等)和执行器(如LED、电机等)。这些组件可以使用面包板和跳线连接到ESP8266或ESP32板上。
除了这些组件外,你还需要一台安装了Arduino IDE的电脑( https://www.arduino.cc/en/Main/Software )。这是你用来编写和上传代码到ESP8266或ESP32板的软件。
ESP32和ESP8266的引脚配置
ESP32和NodeMCU都有类似的引脚配置,可以使用相同的工具进行编程。ESP32和NodeMCU上的引脚都标有字母和数字,如 "D0 "或 "A5"。字母指的是引脚的功能,而数字指的是微控制器上的具体引脚。
下面是ESP32和NodeMCU的主要引脚类型的总结:
数字引脚: 这些引脚可用于读取或写入数字值(高或低)。它们可以用来控制LED,读取开关输入,或使用I2C或SPI等数字协议与其他设备通信。
模拟引脚: 这些引脚可用于读取模拟值,如电压或电阻。它们可以用来读取传感器值,控制LED的亮度,或产生PWM信号。
电源引脚: 这些引脚可用于向电路板或其他设备供电。ESP32和NodeMCU有一个3.3V的电源引脚,可以用来给电路板和其他3.3V设备供电,还有一个5V的电源引脚,可以用来给电路板和其他5V设备供电。
接地引脚: 这些引脚用于为电路板和其他设备建立一个共同的接地参考。
串行引脚: 这些引脚可以用来与其他使用UART、I2C和SPI等串行协议的设备通信。
你可以在ESP32和NodeMCU各自的数据手册中找到更多关于其引脚的详细信息,或者参考制造商提供的文件。
受欢迎原因
具体来说,因为有以下特点:
低成本: ESP32只需6美元就可以买到,这使得一般人都能负担得起。
低功耗: 与其他微控制器相比,ESP32的耗电量非常小,而且它支持低功耗模式状态,如深度睡眠,以节省电力。
Wi-Fi功能: 对于物联网和家庭自动化项目来说,ESP32是必不可少的,它可以快速而方便地加入现有的Wi-Fi网络来访问互联网(站模式),或者它可以建立自己的Wi-Fi无线网络(接入点模式),让其他设备连接到它。
蓝牙: ESP32可与经典蓝牙和蓝牙低能耗(BLE)一起工作,这使它对许多物联网应用非常有用。
双核: 大多数ESP32是双核的,这意味着它们有两个Xtensa 32位LX6微处理器,分别命名为核0和核1。
丰富的外设输入/输出接口--ESP32支持广泛的输入(从外部世界读取数据)和输出(向外部世界发送命令/信号)外设,如电容式触摸、ADC、DAC、UART、SPI、I2C、PWM等。
与Arduino "编程语言 "兼容: 那些已经知道如何对Arduino板进行编程的人,会很高兴听到ESP32可以用同样的方式进行编程。
与MicroPython兼容: MicroPython固件是Python 3的重新实现,专门设计用于微控制器和其他嵌入式系统,可以用来为ESP32编写程序。
ESP32规格
对于那些喜欢更多技术和细节的人,可以考虑以下方法ESP32的详细规格(来源:http://esp32.net/)
无线连接 WiFi:
150.0 Mbps的数据速率,使用HT40
蓝牙: BLE(蓝牙低能量)和蓝牙经典
处理器: Tensilica Xtensa双核32位LX6微处理器,运行频率为160或240 MHz
ROM: 448 KB (用于启动和核心功能)
SRAM: 520 KB (用于数据和指令)
RTC fas SRAM:8KB(用于数据存储和RTC启动时的主CPU从深度睡眠模式)。
RTC慢速SRAM:8KB(用于在深度睡眠模式下访问协处理器)。
eFuse:1K比特(其中256比特用于系统(MAC地址和芯片配置),其余768比特保留给客户应用,包括Flash-加密和芯片-ID)
嵌入式闪存:
在ESP32-D2WD和ESP32-PICO-D4上通过IO16、IO17、SD_CMD、SD_CLK、SD_DATA_0和SD_DATA_1内部连接闪存。
0 MiB (ESP32-D0WDQ6, ESP32-D0WD, 和 ESP32-S0WD芯片)
2 MiB (ESP32-D2WD芯片)
4 MiB (ESP32-PICO-D4 SiP模块)
确保你仍然可以使用ADC转换,例如,当你处于深度睡眠状态。
输入/输出:
支持DMA并具有电容式触摸的外设接口
ADC(模数转换器),DAC(数模转换器)。
I²C (互连电路)
UART(通用异步接收器/发射器)
SPI(串行外设接口),I²S(集成片间声)。
RMII(精简媒体独立接口),PWM(脉冲宽度调制)。
安全性:用于加密协议的硬件加速器,如AES和SSL/TLS
ESP32开发板
ESP32一词指的是ESP32芯片的整体。然而,术语 "ESP32 "也可以指ESP32开发板。使用ESP32裸芯片是很困难和不方便的,特别是在学习、测试和制作原型时。大多数时候,一个ESP32开发板就足够了。
这些开发板有你开始工作所需的一切,包括给芯片供电和编程的电路、与电脑的连接、连接外设的引脚、电源和控制LED、Wi-Fi天线等等。有些,如ESP32-CAM,甚至包括板上的补充硬件,如内置摄像头或各种传感器和模块。
如何选择ESP32开发板?
当你开始在网上寻找ESP32板时,你会看到来自不同供应商的大量板子。虽然它们的功能都差不多,但有些板子可能比其他的更适合某些任务。在选购ESP32开发板时,有各种因素需要考虑:
USB到UART接口和稳压电路。这两个功能在大多数全功能的开发板上都有。这是必要的,以便简单地将ESP32连接到你的计算机,以便上传代码和应用电源。
BOOT和RESET/EN按钮可以使板子处于闪烁模式或重置(重启)板子。并非所有的板子都有BOOT按钮。通常情况下,这些板子会自己进入闪烁模式。
引脚配置和引脚数量。 你需要获得板子的引脚配置,以便以适合你的应用的方式使用ESP32(比如一张显示哪个引脚对应哪个GPIO及其功能的地图)。因此,请确保你能够获得你将要购买的电路板的引脚分布。否则,你有可能误用ESP32,给自己带来麻烦。
天线连接器。大多数板子都包括一个内置的Wi-Fi天线。有些板子包括一个天线连接器,如果需要的话,可以连接一个外部天线。增加一个额外的天线可以扩大你的Wi-Fi范围。
电池接口。如果你想使用电池为你的ESP32供电,有一些开发板带有锂电池的插头。这可能更方便。你也可以用电池通过电源引脚为 "普通 "ESP32供电。
额外的硬件功能。有一些ESP32开发板具有额外的硬件功能。有些可能包括OLED显示屏,LoRa模块,SIM800模块(用于GSM和GPRS),电池座,摄像头,或其他功能。
什么是最适合初学者的ESP32开发板?
对于初学者来说,我们推荐一个ESP32板,它有大量可访问的GPIO,没有额外的硬件功能。同样关键的是,它要有标准的电压输入,以及一个用于供电和代码上传的USB输入。我们在大多数ESP32项目中使用ESP32 DEVKIT DOIT板,它是我们推荐给初学者的。这个板子有三种不同的配置,每种配置都有不同数量的可访问引脚(30、36和38)--所有板子的功能都差不多。其他具有前面所述功能的类似板子,如Adafruit ESP32 Feather、Sparkfun ESP32 Thing、NodeMCU-32S、Wemos LoLin32等,也可能是一个不错的选择。
它有微型USB接口,可以让你把板子连接到电脑上,这样你就可以上传代码或给它供电。它使用CP2102芯片(USB转UART),通过COM端口的串行接口与你的计算机对话。CH340是另一个著名的芯片。找出你的板子有什么样的USB-to-UART芯片转换器,因为你需要为你的计算机安装正确的驱动程序,以便能够与板子对话(本指南后面会有更多相关信息)。这个板子还有一个RESET(或EN)按钮,用来关闭和重新开启板子,还有一个BOOT按钮,用来将板子置于闪动模式(可用于接收代码)。请记住,并不是所有的板子都有一个BOOT按钮。
它还内置了一个蓝色的LED,从内部接线到GPIO 2。这个LED对调试很有帮助,因为它可以提供某种可以看到的物理输出。板子上还有红色的LED,当你给它供电时,它会亮起来。
ESP32的GPIO引脚分布
ESP32芯片有48个引脚,都做不同的事情。并非所有的ESP32开发板都有所有的引脚暴露,有些引脚不应该被使用。大多数时候,ESP32 DEVKIT V1 DOIT板有36个GPIO,这些GPIO是暴露的,可以用来连接外设。
在大多数情况下,电源引脚3V3、GND和VIN已经安装在电路板上。如果你不通过USB端口给电路板供电,你可以使用这些引脚给电路板供电。如果你通过USB端口给板子供电,你可以用这些引脚给其他设备供电。
通用输入输出引脚(GPIOS)
大多数的GPIO都被赋予了一个编号,因此你应该总是用这个编号来指代它们。你可以通过在代码中设置这些信息来选择哪些ESP32引脚用于UART、I2C或SPI。ESP32芯片的多路复用功能使之成为可能,它可以将许多功能分配给一个引脚。
如果你没有在代码中指定这些引脚,那么这些引脚将被默认设置为下图所示(引脚的位置可能会根据制造商的不同而改变)。此外,一些引脚具有特殊的特性,决定了它们是否适合于一个特定的项目。根据你的开发板的型号,GPIO的位置可能有所不同。然而,无论你使用的是哪种开发板,每个单一的GPIO通常以相同的方式工作(有一些例外)。例如,GPIO 5通常总是VSPI CS0引脚,GPIO 23通常是用于SPI通信的VSPI MOSI引脚,等等,与板子无关。