找回密码
 立即注册
查看: 588|回复: 0

基于python和深度学习实现本地离线智能语音控制终端(七)

[复制链接]

86

主题

0

回帖

894

积分

中级会员

积分
894
发表于 2024-4-24 14:49:50 | 显示全部楼层 |阅读模式
学会控制智能家电

基本原理:在arduino配置好代码,连接好电路,通过python向arduino在一定情况下传输某个信号,arduino在接收到指定信号时,执行指定动作。

1.环境配置:
  1. pip install pyserial
复制代码
2.实现python控制arduino

这里可以参考我的另一篇文章:http://www.enmaking.com/forum.ph ... ;tid=167&extra=

这样来实现python与arduino的交互,arduino可以控制众多的电器,比如:灯,舵机,风扇等,通过舵机的旋转实现可以开关门,打开关闭各种大型电器的电闸等等;


arduino的众多传感器配件也可以为  智能语音系统 提供相关数据,比如:空气湿度,温度等,让它能更好的来控制相关的电器,让实现智能家居一体化控制。


有很大的想象空间和发展空间,这里我仅仅实现通过语音控制arduino自带的LED灯的开关,其他的控制只需要以相同的原理配置即可。


a.python的代码:

  1. import serial  # 导入串口通讯库
  2. import time

  3. def try2():
  4.     ser = serial.Serial("COM3", 9600, timeout=1)
  5.     c = ''
  6.     while 1:

  7.         wakeup_co() #语音唤醒
  8.         rec()  #将语音转化为wav文件
  9.         listenword = listen() #将wav文件中的语音转化为中文文字
  10.         #这三个都是上面给出了的,需要自己命名后,导入

  11.         if '灯' in listenword and '开' in listenword:
  12.             c = '1'
  13.         elif '灯' in listenword and '关' in listenword:
  14.             c = '0'
  15.         if (c == '0'):
  16.             ser.write('0'.encode('utf-8'))
  17.         if (c == '1'):
  18.             ser.write('1'.encode('utf-8'))

  19. try2()
复制代码

b.arduino的代码:

  1. void setup(){
  2.   Serial.begin(9600);
  3.   pinMode(13,OUTPUT);//设置13号端口作为输出端口
  4.   //digitalWrite(13,HIGH);
  5. }
  6. char var;
  7. void loop(){
  8.   while(Serial.available()>0)
  9.   {
  10.       var=Serial.read();
  11.       if(var == '0'){
  12.         digitalWrite(13,LOW);
  13.       }
  14.       if(var== '1'){
  15.         digitalWrite(13,HIGH);
  16.       }
  17.   }
  18. }
复制代码



回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|EnMaking

GMT+8, 2025-3-31 09:07 , Processed in 0.047782 second(s), 23 queries .

Powered by Qiqirobot

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表