1519浏览
查看: 1519|回复: 0

[项目] 行空板语音控制ESP32-C3台灯

[复制链接]
本帖最后由 云天 于 2023-6-4 15:13 编辑

【项目背景】
使用行空板加语音识别模块结合SIOT物联网平台,控制多个ESP32-C3台灯。编程软件使用Mind+和米思奇。
【项目准备】
1.改造台灯
行空板语音控制ESP32-C3台灯图2
将旧台灯内容,除电池,其它拆除,并将其中一根电源线剪断并引出,接到电磁继电器上的NO和COM端口。
行空板语音控制ESP32-C3台灯图1
电磁继电器接ESP32-C3的引脚5。
行空板语音控制ESP32-C3台灯图4

行空板语音控制ESP32-C3台灯图3
2.行空板连接WIFI并开启SIOT服务
获取IP地址:[color=rgba(0, 0, 0, 0.85)]192.168.31.131
行空板语音控制ESP32-C3台灯图6
开启SIOT服务
行空板语音控制ESP32-C3台灯图7
新建“主题”:siot/DengKG
行空板语音控制ESP32-C3台灯图8

【行空板编程】
添加“语音识别模块”
行空板语音控制ESP32-C3台灯图9
行空板语音控制ESP32-C3台灯图10
行空板语音控制ESP32-C3台灯图5

【ESP32-C3编程】
ESP32-C3编程使用米思奇
  1. import machine
  2. # main.py
  3. import time
  4. from simple import MQTTClient
  5. from gc import mem_free
  6. import network
  7. pin0 = machine.Pin(5, machine.Pin.OUT)
  8. def connect_wifi(ssid, passwd):
  9.     global wlan
  10.     wlan = network.WLAN(network.STA_IF)  # create a wlan object
  11.     wlan.active(True)  # Activate the network interface
  12.     wlan.disconnect()  # Disconnect the last connected WiFi
  13.     wlan.connect(ssid, passwd)  # connect wifi
  14.     while (wlan.ifconfig()[0] == '0.0.0.0'):
  15.         time.sleep(1)
  16.     wlan_info = wlan.ifconfig()
  17.     print("Wifi is connected with the following information:")
  18.     print(" IP address : " + wlan_info[0])
  19.     print("Subnet mask : " + wlan_info[1])
  20.     print("    Gateway : " + wlan_info[2])
  21.     print("        DNS : " + wlan_info[3])
  22. mqtt_client = None
  23. def sub_cb(topic, msg):
  24.     print("接收到数据", (topic, msg.decode()))
  25.    
  26.     if msg.decode()=="1":
  27.      pin0.value(1)
  28.     elif msg.decode()=="0":
  29.      pin0.value(0)
  30. broker_address = '192.168.31.131'  #  MQTT服务器地址
  31. broker_port = '1883'   #  MQTT服务器端口
  32. client_id = 'X8jykxFnR104'   #  MQTT设备id
  33. user_name = 'siot'  # mqtt 设备用户名
  34. password = 'dfrobot' # mqtt 设备密码
  35. subscribe_topic= 'siot/DengKG'  # 订阅主题
  36. SSID = 'sxs'  # 无线网名称
  37. PASSWORD = '***********'  #无线网密码
  38. if __name__ == '__main__':
  39.     try:
  40.         print("\n可用内存1: %s Byte" % str(mem_free()))
  41.         connect_wifi(SSID, PASSWORD)
  42.         print("\n可用内存2: %s Byte" % str(mem_free()))
  43.         mqtt_client = MQTTClient(client_id=client_id, server=broker_address, port=broker_port, user=user_name,
  44.                                  password=password, keepalive=300)
  45.         mqtt_client.set_callback(sub_cb)
  46.         mqtt_client.connect()
  47.         mqtt_client.subscribe(subscribe_topic)
  48.         #mqtt_client.publish(topic=publish_topic, msg="12345678900000", retain=False, qos=1)
  49.         print("mqtt_client 1: %s" % mqtt_client.client_id)
  50.         while True:
  51.             mqtt_client.wait_msg()  # wait message
  52.     except Exception as ex_results:
  53.         print('exception1', ex_results)
  54.     finally:
  55.         if (mqtt_client is not None):
  56.             mqtt_client.disconnect()
  57.         wlan.disconnect()
  58.         wlan.active(False)
复制代码
   if msg.decode()=="1":
    pin0.value(1)
   elif msg.decode()=="0":
    pin0.value(0)
subscribe_topic= 'siot/DengKG'  # 订阅主题
物联网指令“1”、“0”控制一号灯开关。

注:需在米思奇软件目录:D:\mixly2.0-win32-x64-rc3\mixly2.0-win32-x64\resources\app\src\board\micropython_esp32c3\build\lib,放置simple.py文件。
下载附件simple.zip

【控制单台灯演示】


【控制多台灯演示】
行空板语音控制ESP32-C3台灯图12

行空板程序
行空板语音控制ESP32-C3台灯图13

演示视频

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail