树莓派外设开发之接入语音模块
生活随笔
收集整理的這篇文章主要介紹了
树莓派外设开发之接入语音模块
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
參考:樹莓派接入語音模塊控制繼電器組
作者:糯米啊啊
發(fā)布時間: 2021-04-18 17:07:08
網(wǎng)址:https://blog.csdn.net/weixin_43732386/article/details/115834317?spm=1001.2014.3001.5501
目錄
- 1.前言
- 2.思路
- 3.材料
- 4.二次開發(fā)語音模塊
- 1.修改代碼
- 2.燒錄并測試
- 3.樹莓派代碼編寫
1.前言
最近在做智能家居項目,做到語音模塊控制繼電器的開關,歷經(jīng)倆天,坎坎坷坷也算完成了語音模塊控制繼電器組的開關,記錄下學習過程。
學習,無論你在什么時候開始,重要的是開始之后就不要停止!加油!
2.思路
語音模塊打印信息再串口中,樹莓派用字符串操作API去分析信息,并執(zhí)行相應的操作,調(diào)用wiringPi庫。
3.材料
樹莓派3B
繼電器組
語音模塊
usb轉(zhuǎn)ttl
4.二次開發(fā)語音模塊
1.修改代碼
基于模塊源代碼,進行二次開發(fā)。
2.燒錄并測試
燒錄時要將語音模塊斷電再上電(可以將GND線拔了再插)
燒錄好之后點擊串口助手進行測試
3.樹莓派代碼編寫
#include <stdio.h> #include <string.h> #include <wiringPi.h> #include <wiringSerial.h> #include <unistd.h>#define SWITCH1 21 #define SWITCH2 22 #define SWITCH3 23 #define SWITCH4 24int initwiringPiSetup() {int ret = wiringPiSetup();if (ret == -1){printf("init error\n");return -1;} } void initPin() {pinMode(SWITCH1,OUTPUT);//設置引腳為輸出引腳pinMode(SWITCH2,OUTPUT);//設置引腳為輸出引腳pinMode(SWITCH3,OUTPUT);//設置引腳為輸出引腳pinMode(SWITCH4,OUTPUT);//設置引腳為輸出引腳digitalWrite(SWITCH1,HIGH);digitalWrite(SWITCH2,HIGH);digitalWrite(SWITCH3,HIGH);digitalWrite(SWITCH4,HIGH); }int main(){int fd;int n_read;char cmd[128]={'\0'};initwiringPiSetup();initPin();fd=serialOpen("/dev/ttyAMA0",9600);while(1) {n_read=read(fd,cmd,sizeof(cmd));if(strlen(cmd)==0){printf("waiting...\n");continue;}if(strstr(cmd,"KYS")!=NULL){ //字符串檢索函數(shù)的使用技巧digitalWrite(SWITCH1,LOW);}if (strstr(cmd,"GYS")!=NULL){digitalWrite(SWITCH1,HIGH);}if (strstr(cmd,"KCT")!=NULL){digitalWrite(SWITCH2,LOW);}if (strstr(cmd,"GCT")!=NULL){digitalWrite(SWITCH2,HIGH);}if (strstr(cmd,"KEL")!=NULL){digitalWrite(SWITCH3,LOW);}if (strstr(cmd,"GEL")!=NULL){digitalWrite(SWITCH3,HIGH);}memset(cmd,'\0',sizeof(cmd)/sizeof(char));}return 0; }總結(jié)
以上是生活随笔為你收集整理的树莓派外设开发之接入语音模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVA 11557 - Code The
- 下一篇: 观察者模式与Boost.Signals