Android端
前言
由于自己學(xué)期的期末項(xiàng)目需要做一個(gè)智能語(yǔ)音控制,用到esp8266模塊,就在網(wǎng)上找了相關(guān)資料和我同學(xué)一起做了起來(lái)
這個(gè)項(xiàng)目分為兩個(gè)部分:STM32,Android
STM32用到的是stm32F103ZET6
項(xiàng)目我們也用到了LD3320語(yǔ)音識(shí)別以及語(yǔ)音轉(zhuǎn)碼模塊項(xiàng)目不完善可一起改進(jìn)qq:1727606470
主要功能
****硬件方面:可以通過(guò)智能語(yǔ)音識(shí)別進(jìn)行程序的運(yùn)行,比如:打開(kāi)紅燈,關(guān)閉紅燈等
附硬件圖:
****硬件圖連接方式?jīng)]發(fā)
軟件方面:通過(guò)esp8266連接到硬件,通過(guò)無(wú)線傳輸數(shù)據(jù)控制硬件的狀態(tài)
附軟件圖:
二、使用步驟
1. 連接代碼(部分)
代碼如下:
public void Checked_Link() {
//判斷未連接,或則未在線
if (mSocket == null || !mSocket.isConnected()) {
//如果IP地址和端口不為空時(shí)
if (!TextUtils.isEmpty(i_ip.getText()) && !TextUtils.isEmpty(i_port.getText())) {
mip = i_ip.getText().toString();
mport = Integer.parseInt(i_port.getText().toString());
System.out.println("端口:" + mport);
mConnectThread = new ConnectThread(mip, mport);
mConnectThread.start();
} else if (TextUtils.isEmpty(i_ip.getText())) {
Toast.makeText(this, "請(qǐng)輸入IP地址", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(i_port.getText())) {
Toast.makeText(this, "請(qǐng)輸入端口號(hào)", Toast.LENGTH_SHORT).show();
}
}
//當(dāng)已有連接并且在線時(shí)
if (mSocket != null && mSocket.isConnected()) {
try {
mSocket.close();//關(guān)閉連接
mSocket = null;
link_btn.setText("連接");
Toast.makeText(this, "連接已斷開(kāi)", Toast.LENGTH_SHORT).show();
LINK_STATE = false;
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.WiEI添加權(quán)限
代碼如下:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
3.發(fā)送端代碼
代碼如下:
public static void Send_Data(String str) {
if (str != null && out != null) {
new Thread(new Runnable() {
@Override
public void run() {
out.print(str);
out.flush();
}
}).start();
}
}
該處使用wiei請(qǐng)求的數(shù)據(jù)。
總結(jié)
該項(xiàng)目這里是Android端代碼,若需要Keil代碼請(qǐng)聯(lián)系我 項(xiàng)目本身還有很多不足 比如我們想到是通過(guò)云端連接使用,可惜現(xiàn)在還沒(méi)有實(shí)現(xiàn),若有大佬做過(guò)云端數(shù)據(jù)傳輸與讀取,望指教
聯(lián)系方式 微信號(hào):13648103287