找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3161|回复: 1
打印 上一主题 下一主题
收起左侧

Arduino加语音芯片硬件资料 控制多路电器源程序

[复制链接]
跳转到指定楼层
楼主
Arduino用语音控制10多路电器硬件资料
Arduino 加语音控制芯片控制多路电器(程序见附件),注:语音芯片HLK-V20本身自带3路控制输出引脚,使用本程序能多控制了10多路电器。



  1. #include <SoftwareSerial.h>

  2. SoftwareSerial mySerial(2,3);
  3. String receive_data;

  4. void setup(){
  5.   mySerial.begin(115200);
  6.   Serial.begin(115200);
  7.   receive_data = "";
  8.   pinMode(4, OUTPUT);
  9.   pinMode(5, OUTPUT);
  10.   pinMode(6, OUTPUT);
  11.   pinMode(7, OUTPUT);
  12.   pinMode(8, OUTPUT);
  13.   pinMode(9, OUTPUT);
  14.   pinMode(10, OUTPUT);
  15.   pinMode(11, OUTPUT);
  16.   pinMode(12, OUTPUT);
  17.   pinMode(13, OUTPUT);
  18. }

  19. void loop(){
  20.   while (mySerial.available() > 0) {
  21.     receive_data = String(receive_data) + String(char(mySerial.read()));
  22.   }
  23.   if (String(receive_data).indexOf(String("dakainuanqi")) != -1) {
  24.     digitalWrite(4,HIGH);
  25.     Serial.println("打开暖气");
  26.     receive_data = "";

  27.   } else if (String(receive_data).indexOf(String("guanbinuanq")) != -1) {
  28.     digitalWrite(4,LOW);
  29.     Serial.println("关闭暖气");
  30.     receive_data = "";
  31.   }
  32.   if (String(receive_data).indexOf(String("dakaicfeng")) != -1) {
  33.     digitalWrite(5,HIGH);
  34.     Serial.println("打开吹风");
  35.     receive_data = "";

  36.   } else if (String(receive_data).indexOf(String("guanbicfeng")) != -1) {
  37.     digitalWrite(5,LOW);
  38.     Serial.println("关闭吹风");
  39.     receive_data = "";
  40.   }
  41.   if (String(receive_data).indexOf(String("dakdianfangbao")) != -1) {
  42.     digitalWrite(6,HIGH);
  43.     Serial.println("打开电饭煲");
  44.     receive_data = "";

  45.   } else if (String(receive_data).indexOf(String("guabdianfangbao")) != -1) {
  46.     digitalWrite(6,LOW);
  47.     Serial.println("关闭电饭煲");
  48.     receive_data = "";
  49.   }
  50.   if (String(receive_data).indexOf(String("turnon")) != -1) {
  51.     digitalWrite(7,HIGH);
  52.     Serial.println("打开台灯");
  53.     receive_data = "";

  54.   } else if (String(receive_data).indexOf(String("turnoff")) != -1) {
  55.     digitalWrite(7,LOW);
  56.     Serial.println("关闭台灯");
  57.     receive_data = "";
  58.   }
  59.   if (String(receive_data).indexOf(String("openElectricfan")) != -1) {
  60.     digitalWrite(8,HIGH);
  61.     Serial.println("打开风扇");
  62.     receive_data = "";

  63.   } else if (String(receive_data).indexOf(String("closElectricfan")) != -1) {
  64.     digitalWrite(8,LOW);
  65.     Serial.println("关闭风扇");
  66.     receive_data = "";
  67.   }
  68.   if (String(receive_data).indexOf(String("openled")) != -1) {
  69.     digitalWrite(9,HIGH);
  70.     Serial.println("开灯");
  71.     receive_data = "";

  72.   } else if (String(receive_data).indexOf(String("closeled")) != -1) {
  73.     digitalWrite(9,LOW);
  74.     Serial.println("关灯");
  75.     receive_data = "";
  76.   }
  77.   if (String(receive_data).indexOf(String("dakaiyuba")) != -1) {
  78.     digitalWrite(10,HIGH);
  79.     Serial.println("打开浴霸");
  80.     receive_data = "";

  81.   } else if (String(receive_data).indexOf(String("guanbiyuba")) != -1) {
  82.     digitalWrite(10,LOW);
  83.     Serial.println("关闭浴霸");
  84.     receive_data = "";
  85.   }
  86.   if (String(receive_data).indexOf(String("dakaizaoming")) != -1) {
  87.     digitalWrite(11,HIGH);
  88.     Serial.println("打开照明");
  89.     receive_data = "";

  90.   } else if (String(receive_data).indexOf(String("guanbizhaoming")) != -1) {
  91.     digitalWrite(11,LOW);
  92.     Serial.println("关闭照明");
  93.     receive_data = "";
  94.   }
  95.   if (String(receive_data).indexOf(String("dakaiyingsji")) != -1) {
  96.     digitalWrite(12,HIGH);
  97.     Serial.println("打开饮水机");
  98.     receive_data = "";

  99.   } else if (String(receive_data).indexOf(String("guanbiyingsji")) != -1) {
  100.     digitalWrite(12,LOW);
  101.     Serial.println("关闭饮水机");
  102.     receive_data = "";
  103.   }
  104.   if (String(receive_data).indexOf(String("kaishichus")) != -1) {
  105.     digitalWrite(13,HIGH);
  106.     Serial.println("开始出水");
  107.     receive_data = "";

  108.   } else if (String(receive_data).indexOf(String("tingzchus")) != -1) {
  109.     digitalWrite(13,LOW);
  110.     Serial.println("停止出水");
  111.     receive_data = "";
  112.   }
  113.   if (String(receive_data).indexOf(String("zengjialiangdu")) != -1) {
  114.     pinMode(A0, OUTPUT);
  115.     digitalWrite(A0,HIGH);
  116.     Serial.println("增加亮度");
  117.     receive_data = "";

  118.   } else if (String(receive_data).indexOf(String("jianxiaoliangdu")) != -1) {
  119.     pinMode(A0, OUTPUT);
  120.     digitalWrite(A0,LOW);
  121.     Serial.println("减小亮度");
  122.     receive_data = "";
  123.   }
  124.   if (String(receive_data).indexOf(String("settiConehonor")) != -1) {
  125.     pinMode(A2, OUTPUT);
  126.     digitalWrite(A2,HIGH);
  127.     Serial.println("一小时后开机");
  128.     receive_data = "";

  129.   } else if (String(receive_data).indexOf(String("settiOonehonor")) != -1) {
  130.     pinMode(A2, OUTPUT);
  131.     digitalWrite(A2,LOW);
  132.     Serial.println("一小时后关机");
  133.     receive_data = "";
  134.   }
  135.   if (String(receive_data).indexOf(String("shenggaowendu")) != -1) {
  136.     pinMode(A3, OUTPUT);
  137.     digitalWrite(A3,HIGH);
  138.     Serial.println("升高温度");
  139.     receive_data = "";

  140.   } else if (String(receive_data).indexOf(String("jiandiwendu")) != -1) {
  141.     pinMode(A3, OUTPUT);
  142.     digitalWrite(A3,LOW);
  143.     Serial.println("降低温度");
  144.     receive_data = "";
  145.   }
  146.   if (String(receive_data).indexOf(String("AdjustGearmax")) != -1) {
  147.     pinMode(A4, OUTPUT);
  148.     digitalWrite(A4,HIGH);
  149.     Serial.println("风速调到最大");
  150.     receive_data = "";

  151.   } else if (String(receive_data).indexOf(String("AdjustGearmin")) != -1) {
  152.     pinMode(A1, OUTPUT);
  153.     digitalWrite(A1,LOW);
  154.     Serial.println("风速调到最小");
  155.     receive_data = "";
  156.   }
  157.   if (String(receive_data).indexOf(String("volumeUpUni")) != -1) {
  158.     pinMode(A5, OUTPUT);
  159.     digitalWrite(A5,HIGH);
  160.     Serial.println("增大音量");
  161.     receive_data = "";

  162.   } else if (String(receive_data).indexOf(String("volumeDownUni")) != -1) {
  163.     pinMode(A2, OUTPUT);
  164.     digitalWrite(A2,LOW);
  165.     Serial.println("减小音量");
  166.     receive_data = "";
  167.   }

  168. }
复制代码

HLK-V20 Demo固件命令词与播报词 V1.1.xlsx.7z (12.64 KB, 下载次数: 27)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:493780 发表于 2020-11-2 21:42 | 只看该作者
好哇,一直都想把这个模块用起来,感谢大佬的分享
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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