跳到内容
观澜涉川 · 札记EN

使用 NodeMCU 和 Tasmota 控制 LED 灯珠模块

· 约 3 分钟阅读

ESP8266 和 ESP32 是由乐鑫科技推出的包含 Wifi 模块的物联网芯片。NodeMCU 是针对 ESP8266 和 ESP32 模组设计的核心开发版。Tasmota 是一个为 ESP 设备设计和开发的固件。基于 NodeMCU 开发版和 Tasmota 固件,再加上传感器模块、外设等,可以快速地构建物联网应用。本文介绍一个通过 Tasmota 控制 GPIO 输出,以控制 LED 灯珠开关的小制作。

硬件准备

  1. ESP8266 NodeMCU 开发版。目前网上的售价在 10 元到 15 元之间。
  2. LED 灯珠模块。我买到的 LED 模块是一个 5V 直流的 3W 灯珠模块,包括3个引脚:正极(+)、负极(G)和控制信号端口(S)。价格在 2元左右。见下图。
  3. 若干杜邦线。如有需要,可使用面包版辅助固定 LED 灯珠模块。
  4. USB 数据线。用于连接电脑和 NodeMCU 开发版。

ESP8266-NodeMCU 开发版引脚排列图如下所示:

ESP8266-NodeMCU-Pinout

LED 灯珠模块如下所示: led-module

更新:该模块的控制信号引脚(S)支持 PMW。也就是说,不仅可使用高低电平控制LED灯珠的亮和灭,还可以通过 PWM 控制其亮度。

搭建过程

将 Tasmota 刷入 NodeMCU 开发版

刷入固件最简单的方式是使用 Tasmota 官网的 Web Installer。使用 USB 数据线连接好电脑和 NodeMCU 模块,然后打开 Web Installer 按提示刷写固件即可(有可能还需要安装串口驱动)。然后通过浏览器打开 Tasmota 的 WebUI,确保刷写成功。

接线

刷写固件成功后,拔下 USB 数据线,接下来连接 NodeMCU 开发版和 LED 灯珠模块:

  1. 由于 LED 灯珠模块模块是 5V 供电,那么使用杜邦线将 LED 灯珠模块的正极(+)与开发版的 VIN 引脚连接;将负极(G)与任意一个 GND 引脚连接。
  2. 选择 NodeMCU 上的一个针脚与LED 灯珠模块的控制信号引脚(S)连接。我选择的是 D5,D5 对应的是 GPIO14,但无需记忆,因为 Tasmota 的模块设置里标注了 D5 即为 GPIO14。

设置 Tasmota 模块

在 Tasmota 的 WebUI,打开 “设置” - “模块设置”,可将模块设置为 Generic(18),然后将 D5 GPIO14 设置为 Relay,即继电器。右边数字不变,保持为 1。最终配置如下图所示:

tasmota-rely

点击“保存”,设备会在几秒后重启。重启之后,就会在 Tasmota 的首页看到大大的 OFF 字样以及 开/关 按钮。

控制开关

在 WebUI 控制

在 Tasmota 页面,点击开/关按钮,即可控制 LED 灯珠模块的亮与不亮。另外,Tasmota 的 WebUI 是自适应的,从手机浏览器访问时,体验不错。如此这样,就可以用手机远程控制了。

tasmota-rely

使用命令控制

除了在 WebUI 中点击按钮之外,还可以通过“命令”控制继电器。

Tasmota 官网里的《Commands》页面详细介绍了命令的使用。但是,作为一个新手,阅读这样的详尽文档还是很吃力的。幸运的是,“豆包”对 Tasmota 也有了解,结合“豆包”的回复和官网,可以知道通过 Power<x> 命令控制继电器。比如:

  • Power1:打印第一个电源输出(也就是继电器)的状态。
  • Power1 1:打开第一个电源输出。
  • Power1 0:关闭第一个电源输出。
  • Power1 toggle:反转第一个电源输出。
  • Power1 blink:将电源输出反转若干次,也就是删除若干次。次数由 BlinkCount 决定,每次时长由 BlinkTime 决定。

在 WebUI 打开“控制台”,输入以上命令即可进行测试。除此之外,还可通过 Web请求、MQTT 和串口进行控制,详见文档《How to use commands》。比如,通过如下 HTTP Get 请求发送命令,反转第一个电源输出:

$ curl "http://x.x.x.x/cm?cmnd=Power1%20TOGGLE"
{"POWER":"ON"}
$ curl "http://x.x.x.x/cm?cmnd=Power1%20TOGGLE"
{"POWER":"OFF"}

功耗测量

使用 USB 电压电流测试仪和数显电力检测仪测量功耗,结果如下:

仪器灯亮时灯灭时
USB 电压电流测试仪电压为 4.96V,电流约为 0.10~0.23A电压为 4.99V,电流为 0.02~0.08A
数显电力检测仪功率约为 1.3~1.6W功率约为 0.4~0.7W