EDGE101 开箱文:把 ESP32 装进工业控制器

2026-09-181

EDGE101 开箱:把 ESP32 装进工业控制器,先点亮一盏灯

 

最近终于拿到了心心念念的一台 DFRobot EDGE101 ESP32 可编程控制器。它不是一块普通的 ESP32 开发板,而是把 ESP32、RS485、CAN、以太网、Wi-Fi、蓝牙、4G CAT1、RTC、TF 卡和工业级保护电路,集中到了一台金属外壳控制器里。

这次先不做复杂的 4G 物联网项目,我们从最简单、最直观的实验开始:按下板载按钮,点亮板载 LED。在这个基础上,再看看它未来能不能发展成一个小型工业数据采集器、远程控制器,甚至是数字孪生和设备联网的现场节点。

本文依据 EDGE101 官方 Wiki 整理。该控制器采用 ESP32 双核处理器,主频 240 MHz,提供 11 路 GPIO、RS485、CAN、以太网、Wi-Fi、蓝牙、4G CAT1 和 TF 卡接口。

 

EDGE101 开箱文:把 ESP32 装进工业控制器_image_1.webp

一、EDGE101 是什么

很多 ESP32 开发板适合桌面实验,但一旦进入工厂或户外环境,就会遇到几个问题:

  • 没有 RS485,无法连接常见的工业仪表。
  • 没有 CAN,无法与车辆、机器人或控制器通信。
  • 没有以太网,难以接入固定网络。
  • 没有 4G,设备离开 Wi-Fi 后就无法联网。
  • 裸露的开发板缺少防反接、防浪涌和隔离保护。
  • 供电范围窄,不方便接入工业现场的 12 V 或 24 V 电源。

EDGE101 的定位,就是在 ESP32 的易开发性基础上,增加工业现场需要的接口和保护设计。

它的主要硬件特点包括:

项目EDGE101 配置
主控ESP32 双核 32 位处理器
主频240 MHz
片上 Flash16 MB
供电DC 9–26 V,也支持 USB Type-C 5 V
无线Wi-Fi、蓝牙、4G CAT1
工业通信隔离 RS485、隔离 CAN
有线网络10/100 Mbps 以太网
本地存储TF 卡,最大支持 32 GB
GPIO11 路
安装方式导轨、挂耳、平面安装
工作温度-20~+75 ℃

从形态上看,它已经更接近一台小型工业控制器,而不是普通的实验开发板。设备采用金属外壳,支持 9–26 V 宽电压输入,并具备反接、防静电、浪涌和过压等保护设计。

EDGE101 开箱文:把 ESP32 装进工业控制器_image_2.webp

 

二、开箱第一印象

EDGE101 的外壳尺寸大约为 136.7 \times 76 \times 31\text{ mm},拿在手里有明显的工业设备感觉。

正面主要可以看到:

  • RJ45 以太网接口。
  • Type-C USB 接口。
  • 复位按键。
  • 用户按键。
  • 电源指示灯。
  • 无线通信指示灯。
  • 用户可编程 LED。
  • 9–26 V 外部供电接口。
  • RS485 接口。
  • CAN 总线接口。
  • Wi-Fi/蓝牙天线接口。
  • 4G 天线接口。

背面则提供:

  • Nano SIM 卡槽。
  • TF 卡槽。
  • 11 路 GPIO 接口。
  • 3 组 I²C 接口。
  • 接地端子。
  • 导轨或安装附件位置。

这里有一个很重要的细节:EDGE101 的板载 LED 和板载按键并不是随便分配的。

官方资料中的引脚定义是:

  • GPIO15:板载用户 LED
  • GPIO38:板载用户按键
  • GPIO38 只能作为输入。
  • GPIO34~GPIO38 主要用于输入。
  • GPIO37、GPIO38、GPIO39 可以用于模拟输入,但使用 Wi-Fi 时要注意 ADC2 资源限制。
  • GPIO12 默认具有下拉配置,外接电路时不能随意强制上拉。

因此,第一次实验可以直接使用 GPIO15 和 GPIO38,不需要额外接传感器或 LED。

 

EDGE101 开箱文:把 ESP32 装进工业控制器_image_3.webp

三、上电前的准备

1. 安装天线

如果要测试 Wi-Fi、蓝牙或 4G,先安装对应天线。

本次最简单的 LED 实验不依赖网络,但建议把 Wi-Fi/蓝牙天线装好。之后测试 4G 时,还需要:

  • 安装 4G 专用天线。
  • 插入 Nano SIM 卡。
  • 确认 SIM 卡开通了数据业务。
  • 确认当地网络支持对应的 CAT1 频段。

2. 连接 USB

使用 Type-C 数据线连接 EDGE101 和电脑。

Windows 系统下打开设备管理器,确认出现对应的串口号,例如:

COM7

如果没有识别,可以检查:

  • USB 数据线是否支持数据传输。
  • 是否安装了对应的 USB 串口驱动。
  • Arduino IDE 是否识别到串口。
  • 是否有其他软件占用了串口。

3. 安装 Arduino IDE

官方 Wiki 推荐使用 Arduino IDE,并通过开发板管理器安装 EDGE101 的板卡支持包。

在 Arduino IDE 中进入:

File → Preferences

找到“附加开发板管理器网址”,加入:

https://downloadcd.dfrobot.com.cn/DFRobot_Edge101/package_Edge101_index.json

然后进入:

Tools → Board → Boards Manager

搜索:

Edge101

安装 DFRobot Edge101 对应的软件包,完成后在开发板菜单中选择:

DFRobot Edge101 → Edge101 IOT Controller

官方文档建议优先使用 V1.01 版本资源包。

四、第一次实验:按钮控制 LED

实验目标

按下 EDGE101 的板载按钮,用户 LED 点亮;松开按钮,LED 熄灭。

这个实验虽然简单,但可以验证四个基础环节:

  1. Arduino IDE 能否正确识别 EDGE101。
  2. 程序能否正常编译。
  3. 程序能否烧录到控制器。
  4. 板载 GPIO、按钮和 LED 是否工作正常。

示例代码

const int buttonPin = 38;  // 板载按钮 GPIO38
const int ledPin = 15;     // 板载 LED GPIO15

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);

  // LED 为低电平点亮,因此上电时先关闭
  digitalWrite(ledPin, HIGH);
}

void loop() {
  int buttonState = digitalRead(buttonPin);

  // 按钮按下时 GPIO38 为 LOW
  if (buttonState == LOW) {
    digitalWrite(ledPin, LOW);   // 点亮 LED
  } else {
    digitalWrite(ledPin, HIGH);  // 熄灭 LED
  }

  delay(10);
}

官方示例中同样使用 GPIO38 读取按键、GPIO15 控制用户 LED,并且说明该 LED 为低电平有效:输出 LOW 时点亮,输出 HIGH 时熄灭。

烧录步骤

  1. 用 Type-C 数据线连接 EDGE101。
  2. 打开 Arduino IDE。
  3. 选择开发板:
DFRobot Edge101 → Edge101 IOT Controller
  1. 在端口菜单中选择 EDGE101 对应的 COM 口。
  2. 将上面的代码复制到 Arduino IDE。
  3. 点击“验证”编译。
  4. 点击“上传”烧录。
  5. 上传完成后,按下板载按键。

正常情况下,现象应该是:

  • 松开按钮:用户 LED 熄灭。
  • 按下按钮:用户 LED 点亮。
  • 松开按钮:LED 再次熄灭。

这就是 EDGE101 的第一个“点亮”演示。

五、如果 LED 不亮,先检查什么

1. 检查 LED 逻辑

EDGE101 的用户 LED 是低电平有效,不是普通的:

HIGH = 点亮
LOW = 熄灭

而是:

LOW = 点亮
HIGH = 熄灭

如果代码逻辑写反,可能会出现“松开按钮时亮、按下时灭”的现象。

2. 检查按钮状态

官方示例中,按钮按下时 GPIO38 读取到 LOW。

可以暂时加入串口输出:

const int buttonPin = 38;

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT);
}

void loop() {
  Serial.println(digitalRead(buttonPin));
  delay(200);
}

打开串口监视器,波特率选择:

115200

如果没有按按钮时显示:

1

按下按钮时显示:

0

说明按键输入正常。

3. 检查板卡和端口

如果上传失败,重点检查:

  • 开发板是否选择为 Edge101 IOT Controller。
  • COM 口是否选对。
  • USB 线是否为数据线。
  • 端口是否被串口调试助手占用。
  • 上传时是否需要按一次复位键。

4. 不要立即外接 24 V

第一次实验建议只使用 USB Type-C 供电。确认程序、串口和 LED 都正常后,再使用 9–26 V 外部供电。

接入工业电源时必须注意:

  • 正负极不能接反。
  • 电源电压不能超过 26 V。
  • 电源应有合适的保险和浪涌保护。
  • 工业现场调试时建议先使用限流电源。

六、让实验更有意思:呼吸灯

如果只做按钮点灯,能够证明 GPIO 工作,但还没有体现 ESP32 的处理能力。第二个非常适合拍视频的演示是“呼吸灯”。

这个程序让板载 LED 逐渐变亮,再逐渐变暗,形成循环呼吸效果。

#define LED_PIN 15

#define PWM_CH   0
#define PWM_FREQ 5000
#define PWM_RES  13

int brightness = 0;
int fadeAmount = 5;

void setup() {
  ledcSetup(PWM_CH, PWM_FREQ, PWM_RES);
  ledcAttachPin(LED_PIN, PWM_CH);
}

void loop() {
  // LED 为低电平有效,因此将亮度值反向输出
  int pwmValue = 8191 - (brightness * 8191 / 255);

  ledcWrite(PWM_CH, pwmValue);

  brightness += fadeAmount;

  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  delay(30);
}

这个演示可以体现:

  • ESP32 的 PWM 输出。
  • LED 亮度控制。
  • 定时循环逻辑。
  • 工业控制中常见的模拟量效果输出。

后续如果把 LED 换成继电器、蜂鸣器、指示灯塔或电机驱动模块,就可以从“桌面演示”逐步过渡到“小型自动化控制”。

七、从点灯到工业应用

EDGE101 真正有价值的地方,不是板载 LED,而是它可以把“传感器—控制器—网络—平台”连接起来。

可以把它理解成一个小型工业边缘节点:

传感器/设备
    ↓
RS485 / CAN / GPIO / ADC
    ↓
EDGE101
    ↓
Wi-Fi / 以太网 / 4G
    ↓
MQTT / HTTP / 云平台 / Node-RED
    ↓
监控界面、报警系统、数字孪生

第一阶段:基础控制

目标是熟悉 GPIO、PWM、ADC 和按钮输入。

可以做:

  • 按钮控制 LED。
  • PWM 调节灯光亮度。
  • 电位器采集模拟电压。
  • 温度传感器数据读取。
  • 继电器控制。
  • 定时器控制输出。
  • 看门狗自动复位。

这一阶段的重点是建立对 ESP32 和 Arduino 框架的理解。

第二阶段:工业通信

EDGE101 提供隔离 RS485 和 CAN 接口,适合连接工业传感器和控制设备。

可以做:

  • 读取 Modbus RTU 温湿度传感器。
  • 读取电表、流量计、压力变送器。
  • 连接变频器。
  • 采集 PLC 的寄存器数据。
  • 监听 CAN 总线数据。
  • 建立一个 RS485 到 MQTT 的网关。

例如,一个小型设备联网节点可以这样设计:

Modbus 温度传感器
        ↓ RS485
     EDGE101
        ↓ Wi-Fi/4G
      MQTT
        ↓
Node-RED / ThingsBoard

这条路线和工厂现场非常接近,也适合你后续发展 PLC、工业物联网和数字孪生方向。

第三阶段:网络冗余

EDGE101 同时具备以太网、Wi-Fi 和 4G,这意味着可以设计多网络切换策略:

  1. 优先使用以太网。
  2. 以太网断开后切换到 Wi-Fi。
  3. Wi-Fi 也不可用时切换到 4G。
  4. 网络恢复后自动切回成本更低的连接方式。

这类功能比“单纯接入 Wi-Fi”更接近实际工业产品。

例如:

以太网:工厂内网主链路
Wi-Fi:调试和临时网络
4G:远程维护和故障应急链路

这可以应用于:

  • 远程设备监控。
  • 户外环境采集。
  • 泵站和机房监测。
  • 仓库温湿度监控。
  • 小型自动化设备联网。
  • 无固定网络场景的数据回传。

第四阶段:工业物联网网关

EDGE101 可以进一步发展成一个简易工业网关:

  • 下行连接 PLC、变频器和传感器。
  • 上行通过 MQTT、HTTP 或 4G 上传数据。
  • 本地 TF 卡保存断网期间的数据。
  • 网络恢复后补传历史数据。
  • 使用看门狗提高长期运行稳定性。
  • 通过 OTA 远程升级程序。

最终的数据流可以是:

PLC / 传感器
    ↓
RS485、CAN、GPIO
    ↓
EDGE101
    ├── 本地缓存:TF 卡
    ├── 现场网络:以太网/Wi-Fi
    ├── 远程网络:4G CAT1
    └── 云端协议:MQTT/HTTP

这已经不是简单的“开发板实验”,而是一个具有实际工程价值的边缘计算节点。

八、一个值得做的完整项目

我把 EDGE101 的开发愿景定为:

小型设备远程监控终端

项目功能

第一版可以实现:

  • 读取一个 RS485 温湿度传感器。
  • 读取一个模拟量或数字量输入。
  • 控制一个继电器或指示灯。
  • 屏蔽或记录传感器异常。
  • 通过 Wi-Fi 或 4G 上传数据。
  • 使用 MQTT 发布数据。
  • Node-RED 显示实时曲线。
  • 超过阈值后发送报警。
  • 断网时保存到 TF 卡。
  • 网络恢复后补传数据。

MQTT 数据示例

{
  "device_id": "edge101-001",
  "temperature": 28.6,
  "humidity": 63.2,
  "motor_running": true,
  "alarm": false,
  "rssi": -67,
  "timestamp": "2026-09-18T22:30:00+08:00"
}

Node-RED 可视化界面

界面可以包括:

  • 当前温度。
  • 当前湿度。
  • 设备在线状态。
  • 4G/Wi-Fi/以太网连接状态。
  • 继电器控制按钮。
  • 最近 24 小时趋势曲线。
  • 报警记录。
  • 设备重启次数。
  • 信号强度。
  • 数据上传失败次数。

进一步发展为数字孪生

如果把设备的实时数据接入 3D 模型,就可以形成一个简单的数字孪生演示:

真实设备状态
    ↓
EDGE101 采集
    ↓
MQTT 数据模型
    ↓
Node-RED / ThingsBoard
    ↓
3D 设备模型状态同步

例如:

  • 电机运行时,3D 模型中的电机旋转。
  • 温度升高时,模型变成橙色或红色。
  • 设备报警时,弹出报警标记。
  • 继电器打开时,模型中的执行器动作。
  • 网络中断时,设备显示离线状态。

这条路线非常适合用于展示你的机械设计、PLC、IoT 和数字孪生能力。

九、推荐的学习路线

可以按下面的顺序推进:

第 1 周:控制器基础

  • 点亮板载 LED。
  • 按钮读取。
  • PWM 呼吸灯。
  • ADC 读取电位器。
  • 串口打印数据。
  • 定时器和看门狗。

第 2 周:工业接口

  • RS485 数据透传。
  • Modbus RTU 主站。
  • 读取温湿度传感器。
  • 控制 Modbus 继电器。
  • CAN 发送和接收基础报文。

第 3 周:网络通信

  • Wi-Fi 扫描。
  • Wi-Fi 自动配网。
  • 以太网联网。
  • 4G 获取网络时间。
  • MQTT 发布和订阅。

第 4 周:小型 IoT 项目

  • 采集传感器数据。
  • 本地 TF 卡缓存。
  • MQTT 上传。
  • Node-RED 显示。
  • 远程控制继电器。
  • 增加异常报警。

第 5 周以后:工程化

  • 断网重连。
  • 数据补传。
  • 看门狗保护。
  • OTA 远程升级。
  • 设备参数配置。
  • 权限和安全认证。
  • 多设备管理。
  • 3D 可视化和数字孪生。

十、总结

EDGE101 的第一次演示不需要一开始就上 4G、MQTT 或复杂的传感器。最合理的方式是从按钮和 LED 开始,先验证开发环境、GPIO 和烧录流程。

但它的真正潜力在于:它可以把 ESP32 的开发便利性,延伸到 RS485、CAN、以太网和 4G 工业场景。对于机械设计、PLC、工业物联网方向来说,它非常适合做一个长期实验平台。

这次的“按键点灯”只是第一步。

如果把这条路线完整走通,EDGE101 就不再只是一个开箱产品,而会变成一个可以用于学习、演示、接单和开发工业物联网原型的核心控制器。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -