5分钟上手,用ESP32+MicroPython打造智能语音控制灯

🔥 项目亮点:语音控制+物联网,低成本玩转智能硬件​

你是否想过,只需一句话就能控制灯光?今天,我们用​​ESP32+MicroPython+逗脑IDE​​,打造一个​​语音控制灯​​项目,无需复杂编程,5分钟即可上手!

​项目功能:​

  • 通过ESP32的麦克风(或外接麦克风模块)采集语音指令(如“开灯”“关灯”)。
  • 使用MicroPython处理语音信号(简单关键词识别)。
  • 通过WiFi连接物联网平台(如MQTT),实现远程控制或语音联动。
  • 控制LED(或继电器模块)实现开关灯操作。

​适用场景:​

  • 智能家居(语音控制灯光)
  • 语音助手原型开发
  • 物联网入门学习

​🧰 硬件准备(成本不到50元!)​

硬件说明
ESP32开发板带WiFi和蓝牙,支持MicroPython
MEMS麦克风模块如INMP441(或ESP32自带麦克风)
LED或继电器模块控制灯光(或直接驱动LED)
面包板+杜邦线用于电路连接

​📌 注意:​​ 如果你的ESP32没有内置麦克风(如ESP32-WROOM),可以外接INMP441等低成本麦克风模块。


​💻 软件准备:逗脑IDE+MicroPython​

逗脑IDE是一款专为ESP32/MicroPython开发的在线IDE,支持代码编辑、一键上传、串口调试,​​无需配置环境​​,新手也能快速上手!

​1. 下载逗脑IDE​
👉 访问 ​www.itprojects.cn/ide​,下载最新版。

​2. 安装MicroPython固件​

  • 在逗脑IDE中,选择你的ESP32开发板型号(如ESP32-WROOM-32)。
  • 点击“烧录固件”,选择MicroPython固件(IDE已内置最新版本)。

​3. 连接ESP32到电脑​

  • 用USB线连接ESP32和电脑,确保串口驱动已安装(如CH340驱动)。
  • 在逗脑IDE中选择正确的COM端口,点击“连接”。

​🚀 项目实战:语音控制灯(代码+接线)​

​1. 硬件接线​

ESP32引脚外设说明
GPIO14麦克风模块(CLK)I2S时钟线
GPIO13麦克风模块(DATA)I2S数据线
GPIO12LED/继电器控制灯光
3.3V & GND麦克风/LED供电

​📌 如果使用ESP32内置麦克风​​,可直接调用machine.I2S读取音频数据(需配置I2S模式)。

​2. MicroPython代码(语音关键词识别+控制LED)​

在逗脑IDE中新建项目,粘贴以下代码:

import machine
import time
import network
import uos

# WiFi连接配置
SSID = "你的WiFi名称"
PASSWORD = "你的WiFi密码"

# 初始化LED(GPIO12)
led = machine.Pin(12, machine.Pin.OUT)
led.off()  # 初始关闭

# 简单关键词识别(模拟语音识别)
def detect_keyword(audio_data):
    # 这里简化处理:假设音频数据大于一定阈值触发"开灯"
    # 实际项目可用FFT或神经网络优化
    if max(audio_data) > 500:  # 阈值可调
        return "开灯"
    else:
        return "关灯"

# 模拟音频采集(实际项目需用I2S读取麦克风数据)
def get_audio_data():
    # 这里返回随机数据模拟音频(实际项目替换为I2S读取)
    import random
    return [random.randint(0, 1000) for _ in range(100)]

# 主循环
def main():
    # 连接WiFi
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(SSID, PASSWORD)
    while not wlan.isconnected():
        print("正在连接WiFi...")
        time.sleep(1)
    print("WiFi已连接:", wlan.ifconfig())

    # 主循环:采集音频+识别指令
    while True:
        audio_data = get_audio_data()  # 获取音频数据
        cmd = detect_keyword(audio_data)  # 识别指令
        print("识别指令:", cmd)
        
        if cmd == "开灯":
            led.on()
            print("灯已打开")
        elif cmd == "关灯":
            led.off()
            print("灯已关闭")
        
        time.sleep(1)  # 每秒检测一次

if __name__ == "__main__":
    main()

​⚠️ 注意:​

  • 这里为了简化,用随机数据模拟音频采集(实际项目需用machine.I2S读取麦克风数据)。
  • 真正的语音识别需要FFT(快速傅里叶变换)或AI模型(如TensorFlow Lite Micro),但本例用阈值法模拟关键词检测,适合入门。

​🌐 进阶:接入物联网平台(MQTT)​

想让手机远程控制灯?可以用​​MQTT协议​​(逗脑IDE已经集成了MQTT服务器和客户端)实现:

  1. 连接MQTT服务器,发布/订阅消息(如“light/on”控制LED)。
  2. 手机打开IT项目网,找到云服务,连接MQTT服务,发送指令控制灯。

​示例代码(MQTT部分):​

from umqtt.simple import MQTTClient

# MQTT配置
MQTT_BROKER = "broker.emqx.io"
MQTT_PORT = 1883
MQTT_TOPIC = "esp32/light"

client = MQTTClient("esp32_client", MQTT_BROKER, port=MQTT_PORT)
client.connect()

# 订阅指令
def mqtt_callback(topic, msg):
    if msg == b"on":
        led.on()
    elif msg == b"off":
        led.off()

client.set_callback(mqtt_callback)
client.subscribe(MQTT_TOPIC)

# 在主循环中检查MQTT消息
while True:
    client.check_msg()  # 检查新消息
    time.sleep(0.1)

🎯 项目总结:小白也能玩转物联网!​

  • ​硬件成本低​​:ESP32+麦克风模块只需50元。
  • ​开发超简单​​:逗脑IDE一键上传,无需配置环境。
  • ​可扩展性强​​:可接入WiFi、MQTT、AI语音识别(如Snowboy)。

“从接线到代码,整个过程不到1小时就完成了!现在我的台灯已经能听懂‘开灯’指令了,朋友都惊呆了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值