置顶

ESP32定时控制GPIO2灯

作者:xzb | 分类:开发板 | 浏览:5 | 日期:2026年04月21日
直接在 Thonny 里运行、ESP32 可用、每天 7:30 自动点亮 GPIO2 灯 1 分钟后关闭的完整 MicroPython 代码。

功能说明

  • 每天 7:30 自动打开 GPIO2(开发板板载 LED)

  • 保持 1 分钟 后自动关闭

  • 自带网络同步时间(不用手动设时间)

  • 掉电/重启后依然能自动运行

完整可直接复制代码(MicroPython)

import machine
import network
import ntptime
import time

# ===================== 配置区 =====================
WIFI_SSID = "你的WiFi名称"       # 改成你的WiFi
WIFI_PASSWORD = "你的WiFi密码"   # 改成你的WiFi密码
TARGET_HOUR = 7                 # 几点
TARGET_MINUTE = 30              # 几分
DURATION_SECONDS = 60           # 持续时间(秒)
LED_PIN = 2                     # 板载LED引脚(大部分ESP32是2)
# ==================================================

# 初始化LED
led = machine.Pin(LED_PIN, machine.Pin.OUT)
led.value(0)  # 初始关闭

# 连接WiFi
def connect_wifi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print("正在连接WiFi...")
        wlan.connect(WIFI_SSID, WIFI_PASSWORD)
        while not wlan.isconnected():
            time.sleep(0.5)
    print("WiFi连接成功!IP:", wlan.ifconfig()[0])

# 同步网络时间(NTP)
def sync_time():
    try:
        ntptime.settime()
        print("时间同步成功!")
        # 东八区偏移 +8小时
        tm = time.localtime(time.time() + 8 * 3600)
        print("当前时间:%04d-%02d-%02d %02d:%02d:%02d" % tm[0:6])
    except:
        print("时间同步失败,稍后重试")

# 主循环:每天定时开关灯
def main_loop():
    while True:
        # 获取东八区时间
        now = time.time() + 8 * 3600
        tm = time.localtime(now)
        current_hour = tm[3]
        current_minute = tm[4]
        current_second = tm[5]

        # 打印时间(每秒一次)
        print("当前时间:%02d:%02d:%02d" % (current_hour, current_minute, current_second))

        # 判断是否到 7:30:00
        if current_hour == TARGET_HOUR and current_minute == TARGET_MINUTE and current_second == 0:
            print("=== 到达设定时间,开灯!===")
            led.value(1)  # 开灯
            time.sleep(DURATION_SECONDS)  # 保持设定时长
            led.value(0)  # 关灯
            print("=== 时间到,关灯!===")
            time.sleep(50)  # 防止重复触发

        time.sleep(1)

# 启动
print("===== ESP32 定时开灯程序 =====")
connect_wifi()
sync_time()
main_loop()

使用方法

  1. 打开 Thonny

  2. 把 ESP32 连接电脑

  3. 复制上面代码

  4. 修改 WiFi 名称和密码

  5. 点击运行

效果

  • 每天 7:30:00 GPIO2 输出高电平 → 灯亮

  • 持续 60 秒

  • 自动关闭

  • 每天重复执行

常见问题

灯不亮?

  • 部分 ESP32 板载 LED 是 低电平点亮

  • 把代码里的 led.value(1) 和 led.value(0) 互换即可

时间不准?

  • 代码已经用了 NTP 网络对时

  • 确保 WiFi 能上网

总结

  • 代码实现每天 7:30 自动开灯 1 分钟

  • 自带 WiFi 对时,无需手动设置时间

  • 直接在 Thonny 运行,无需额外库

  • 稳定、掉电重启后自动继续运行


 您阅读本篇文章共花了: 

发表评论

取消
微信二维码
支付宝二维码