找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4041|回復(fù): 1
收起左側(cè)

Arduino加語音芯片硬件資料 控制多路電器源程序

[復(fù)制鏈接]
ID:313638 發(fā)表于 2020-9-25 11:48 | 顯示全部樓層 |閱讀模式
Arduino用語音控制10多路電器硬件資料
Arduino 加語音控制芯片控制多路電器(程序見附件),注:語音芯片HLK-V20本身自帶3路控制輸出引腳,使用本程序能多控制了10多路電器。
51hei.png
IMG_20200925_084749.jpg IMG_20200925_083916.jpg IMG_20200925_083824.jpg IMG_20200925_083733.jpg IMG_20200925_083651.jpg HLK-V20語音芯片擴展控制程序硬件連接實物圖.jpg

  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("關(guān)閉暖氣");
  30.     receive_data = "";
  31.   }
  32.   if (String(receive_data).indexOf(String("dakaicfeng")) != -1) {
  33.     digitalWrite(5,HIGH);
  34.     Serial.println("打開吹風(fēng)");
  35.     receive_data = "";

  36.   } else if (String(receive_data).indexOf(String("guanbicfeng")) != -1) {
  37.     digitalWrite(5,LOW);
  38.     Serial.println("關(guān)閉吹風(fēng)");
  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("關(guān)閉電飯煲");
  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("關(guān)閉臺燈");
  57.     receive_data = "";
  58.   }
  59.   if (String(receive_data).indexOf(String("openElectricfan")) != -1) {
  60.     digitalWrite(8,HIGH);
  61.     Serial.println("打開風(fēng)扇");
  62.     receive_data = "";

  63.   } else if (String(receive_data).indexOf(String("closElectricfan")) != -1) {
  64.     digitalWrite(8,LOW);
  65.     Serial.println("關(guān)閉風(fēng)扇");
  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("關(guān)燈");
  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("關(guān)閉浴霸");
  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("關(guān)閉照明");
  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("關(guān)閉飲水機");
  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("一小時后關(guān)機");
  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("風(fēng)速調(diào)到最大");
  150.     receive_data = "";

  151.   } else if (String(receive_data).indexOf(String("AdjustGearmin")) != -1) {
  152.     pinMode(A1, OUTPUT);
  153.     digitalWrite(A1,LOW);
  154.     Serial.println("風(fēng)速調(diào)到最小");
  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. }
復(fù)制代碼

HLK-V20 Demo固件命令詞與播報詞 V1.1.xlsx.7z (12.64 KB, 下載次數(shù): 27)
回復(fù)

使用道具 舉報

ID:493780 發(fā)表于 2020-11-2 21:42 | 顯示全部樓層
好哇,一直都想把這個模塊用起來,感謝大佬的分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表