“Wifi mode”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
 
第124行: 第124行:
 
|}
 
|}
 
观察串口返回识别结果:
 
观察串口返回识别结果:
[[File:MicroAIYuyinSerial.png|300px|center]]
+
[[File:MicroAIYuyinSerial.png|500px|center]]
 
|}
 
|}
 
<br>
 
<br>
 
<br>
 
<br>
 
<p style="font-size:115%">[[MicroAI Reference|返回MicroAI Reference界面]]</p>
 
<p style="font-size:115%">[[MicroAI Reference|返回MicroAI Reference界面]]</p>

2018年12月12日 (三) 08:06的最新版本

WiFi音频播放/语音识别


此示例为MicroAI的音频播放、语音识别的示例。

所需硬件



电路搭建

将Battery、Core+、hub堆叠在一起,通过MicroUSB数据线接入电脑,使用传感器线连接MicroAI的UART(串口)。将耳机根据模块上的耳机标志插入,并下载如下程序至Core+。将两个碰撞传感器接在D4和D6口

MicroAI连接.png



代码

#include <Microduino_Key.h>
#include <Microduino_Ai.h>

#define WIFI_SSID   "SSID"  //路由器名称
#define WIFI_PWD    "PW"   //路由器密码
#define WEB_NUM     4

const char* webRadioUrl[WEB_NUM] = {       //网络广播地址,也可换成文件名.mp3并将文件存在SD卡中
  "https://http.qingting.fm/386.mp3",
  "https://http.qingting.fm/387.mp3",
  "https://http.qingting.fm/388.mp3",
  "https://http.qingting.fm/389.mp3",
};

static uint8_t webRadioIndex = 0xFF; 
DigitalKey touch1(D4);  //按键接口
DigitalKey touch2(D6);  //按键接口
MicroAi mAi(&Serial1);

char strBuf[64] = {0};

void setup() {
  Serial.begin(115200);
  touch1.begin(INPUT_PULLUP);    //按键设置为上拉输入,用于防止没有接传感器导致的电平识别错误
  touch2.begin(INPUT_PULLUP);    //按键设置为上拉输入,用于防止没有接传感器导致的电平识别错误

  Serial.print("MicroAi set mode: WIFI.");
  Serial.println("start initiation. ");     
  if(mAi.begin(MODE_WIFI)){
    Serial.println("init OK!");  
  }else{
    Serial.println("init failed!");
    while(1);  
  }
  
  if(mAi.setWifi(WIFI_SSID, WIFI_PWD)){
    Serial.println("set wifi ssid and password OK!");  
  }else{
    Serial.println("set wifi ssid and password failed!");
    while(1);  
  }
  Serial.print("wifi connecting"); 
  while(mAi.getRssi()==0){
    Serial.print("."); 
    delay(1000);
  }
  Serial.println("\r\nwifi connected.");     

  delay(1000);
}

void loop() {

  if(touch1.readEvent() == SHORT_PRESS) {
    if(webRadioIndex < WEB_NUM-1)
      webRadioIndex++;
    else
      webRadioIndex = 0;
      
    mAi.playFile(webRadioUrl[webRadioIndex]);
  }

  if(touch2.readEvent() == SHORT_PRESS) {
    delay(500);            
    Serial.print("AT start Rest: ");
    if(mAi.startRest()){      //启动语音识别
      Serial.println("OK!");  
      int32_t code = mAi.waitResult(strBuf);
      if(code){
        Serial.print("rest code: ");
        Serial.print(code);
        Serial.print(", result: ");
        Serial.println(strBuf);       
      }else{
        Serial.println("rest none ");
      }
    }else{
      Serial.println("Failed!");
    }
  }
  delay(50);
}


运行结果


1)观察串口,显示至WiFi Connected时。可以选择按下D4按键,进入音频播放模式,再次按下可以切换第二首、第三首,切至最后一首再次按下则回到第一首。
使用mAi.playFile(webRadioUrl[webRadioIndex]);函数播放。示例中,文件地址使用网址代替,同样可以使用SD卡存储音频文件,并直接在参数中填入文件名.mp3即可

MicroAIWiFiSerial.png

播放时MicroAI点阵显示音乐播放特效

MicroAIPlayShow.JPG


2)观察串口,显示至WiFi Connected时,按下D6按键,进入语音识别模式,MicroAI点阵如图显示。

录音界面
识别界面

观察串口返回识别结果:

MicroAIYuyinSerial.png



返回MicroAI Reference界面