demo1984s 的个人博客 demo1984s 的个人博客

记录精彩的程序人生

目录
Arduino ESP32/ESP8266开发系列·基础
/        

Arduino ESP32/ESP8266开发系列·基础

image.png

背景简述

  Arduino 开发环境对 ESP32 和 ESP8266 提供了丰富的支持,是物联网开发的绝佳选择。
  这两款芯片由乐鑫( Espressif Systems )开发,功能强大且性价比高,适合从简单的物联网项目到复杂的边缘计算应用。以下是开发 ESP32/ESP8266 系列的基本步骤和关键知识点( Arduino C/C++ 编程基础需要读者自行学习,也可以在后续的项目代码中边用边学)。

Arduino IDE 环境搭建

安装 Arduino IDE

  从 Arduino 官方网站 下载并安装 Arduino IDE。

添加 ESP32/ESP8266 开发板支持

  1. 打开 Arduino IDE,进入 文件(File) -> 首选项(Preferences)。
  2. 在 “附加开发板管理器网址” 中添加:
    • ESP32: https://dl.espressif.com/dl/package_esp32_index.json
    • ESP8266: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. 点击 工具(Tools) -> 开发板(Boards) -> 开发板管理器(Board Manager)。
  4. 搜索 ESP32 或 ESP8266,点击 安装。

  更多内容可见:

硬件基础

ESP8266

  • 单核 CPU,工作频率 80/160MHz。
  • 512KB-4MB 的闪存。
  • 支持 Wi-Fi 2.4GHz。
  • 常见型号:ESP-01、NodeMCU、Wemos D1 Mini。

ESP32

  • 双核 Xtensa LX6 CPU,工作频率 160/240MHz。
  • 集成 Wi-Fi(2.4GHz)和蓝牙(BLE 和经典蓝牙)。
  • 丰富的外设(ADC、DAC、SPI、I2C、I2S、PWM 等)。
  • 常见型号:ESP32-WROOM-32、ESP32-C3、ESP32-S3。

基础编程

连接 ESP 开发板

  1. 使用 USB 数据线连接 ESP32/ESP8266 到电脑。
  2. 在 Arduino IDE 中,选择对应的开发板和端口:
  • 工具(Tools) -> 开发板(Boards) -> 选择对应的 ESP32/ESP8266 开发板型号。
  • 工具(Tools) -> 端口(Port) -> 选择正确的串口。

看不到端口的情况:

实例代码

ESP8266 Blink 示例

 1void setup() {
 2  pinMode(LED_BUILTIN, OUTPUT); // 初始化板载 LED
 3}
 4
 5void loop() {
 6  digitalWrite(LED_BUILTIN, HIGH); // 打开 LED
 7  delay(1000); // 延时 1 秒
 8  digitalWrite(LED_BUILTIN, LOW);  // 关闭 LED
 9  delay(1000);
10}

ESP32 Blink 示例

 1void setup() {
 2  pinMode(2, OUTPUT); // GPIO 2 通常连接到板载 LED
 3}
 4
 5void loop() {
 6  digitalWrite(2, HIGH); // 打开 LED
 7  delay(1000); // 延时 1 秒
 8  digitalWrite(2, LOW);  // 关闭 LED
 9  delay(1000);
10}

网络功能

连接 Wi-Fi

 1#include <WiFi.h> // ESP32
 2// #include <ESP8266WiFi.h> // ESP8266
 3
 4const char* ssid = "你的WiFi名称";
 5const char* password = "你的WiFi密码";
 6
 7void setup() {
 8  Serial.begin(115200);
 9  WiFi.begin(ssid, password);
10
11  while (WiFi.status() != WL_CONNECTED) {
12    delay(1000);
13    Serial.println("正在连接 WiFi...");
14  }
15
16  Serial.println("WiFi 已连接");
17  Serial.println(WiFi.localIP()); // 打印 IP 地址
18}
19
20void loop() {}

创建简单的 Web 服务器

 1#include <WiFi.h> // ESP32
 2// #include <ESP8266WiFi.h> // ESP8266
 3#include <WebServer.h> // Web 服务器库
 4
 5const char* ssid = "你的WiFi名称";
 6const char* password = "你的WiFi密码";
 7
 8WebServer server(80); // 在 80 端口启动服务器
 9
10void handleRoot() {
11  server.send(200, "text/plain", "Hello, World!"); // 发送响应
12}
13
14void setup() {
15  Serial.begin(115200);
16  WiFi.begin(ssid, password);
17  
18  while (WiFi.status() != WL_CONNECTED) {
19    delay(1000);
20    Serial.println("正在连接 WiFi...");
21  }
22
23  Serial.println("WiFi 已连接");
24  Serial.println(WiFi.localIP()); // 打印 IP 地址
25
26  server.on("/", handleRoot); // 绑定路由
27  server.begin(); // 启动服务器
28  Serial.println("Web 服务器已启动");
29}
30
31void loop() {
32  server.handleClient(); // 处理客户端请求
33}

关键资源


标题:Arduino ESP32/ESP8266开发系列·基础
作者:demo1984s
地址:http://www.demo1984s.com/articles/2024/12/18/1734493468195.html