树莓派外设开发之接入语音模块
参考:树莓派接入语音模块控制继电器组
作者:糯米啊啊
发布时间: 2021-04-18 17:07:08
网址:https://blog.csdn.net/weixin_43732386/article/details/115834317?spm=1001.2014.3001.5501
目录
- 1.前言
- 2.思路
- 3.材料
- 4.二次开发语音模块
- 1.修改代码
- 2.烧录并测试
- 3.树莓派代码编写
1.前言
最近在做智能家居项目,做到语音模块控制继电器的开关,历经俩天,坎坎坷坷也算完成了语音模块控制继电器组的开关,记录下学习过程。
学习,无论你在什么时候开始,重要的是开始之后就不要停止!加油!
2.思路
语音模块打印信息再串口中,树莓派用字符串操作API去分析信息,并执行相应的操作,调用wiringPi库。
3.材料
树莓派3B
继电器组
语音模块
usb转ttl
4.二次开发语音模块
1.修改代码
基于模块源代码,进行二次开发。
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){ //字符串检索函数的使用技巧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;
}
树莓派外设开发之接入语音模块相关推荐
- 树莓派——3、树莓派外设开发编程
树莓派外设开发接口文档参考 wringPi库(特定平台,特定功能的接口)树莓派wiringPi库详解 - lulipro - 博客园 (cnblogs.com) 一.树莓派的接口 IO口:input/ ...
- 树莓派外设开发基础(wiringPi库)
参考:树莓派外设开发基础篇 作者:丶PURSUING 发布时间:2021-02-05 18:20:53 网址:https://blog.csdn.net/weixin_44742824/article ...
- 树莓派外设开发——超声波
1.综述 树莓派外设开发需要用的wiringPi()库函数 在调用时需要包含#include<wiringPi.h>文件 使用wiringPi()库函数时需要将其初始化,方法为:调用 in ...
- 树莓派外设开发(快速上手)
树莓派外设开发 wiringPi库的使用 例子---接收指令让继电器工作 HC-SR04超声波测距模块简单应用 跨平台文件传输 FileZilla软件 linux环境自带的scp指令 串口交互 修改c ...
- 树莓派外设开发之超声波
树莓派超声波测距 树莓派Gpio引脚图: 注意:这里代码中使用的是wiringPi编码,图中GPIO 针脚定义为根据BCM编码定义 超声波模块介绍: 接线参考:模块除了两个电源引脚外,还有Trig,E ...
- 树莓派外设开发基础—串口通信
文章目录 一.串口通信的一些概念 二.树莓派串口通信设置 三.树莓派串口通信API 四.树莓派与PC通信 1.接线 2.程序与测试 拓展 一.串口通信的一些概念 串口通信通常用在多机通信中. 串口通信 ...
- 树莓派外设开发之控制继电器(组)
目录 控制继电器 控制继电器组 控制继电器 选择7号引脚作为继电器信号输出控制端. 代码: #include <wiringPi.h> #include <stdio.h> # ...
- 树莓派外设开发之玩传感器
参考:用树莓派玩传感器 作者:LEO-max 发布时间: 2021-02-24 16:30:46 网址:https://blog.csdn.net/zouchengzhi1021/article/de ...
- 树莓派外设开发——舵机控制
1.综述 普通舵机的角度控制需要用到PWM实现,这里用到Linux定时器产生PWM波形,关于Linux定时器,这篇文章有一个简单的介绍 Linux定时器 舵机控制原理大致如下: 2.代码 #inclu ...
最新文章
- Linux 工具进阶
- 在此服务器找不到请求的url,在此服务器上找不到请求的URL /.阿帕奇
- pyqt 获取 UI 中组件_初级UI需注意10个移动端的关键原则
- 【图像分割应用】设备自动化(一)——自动驾驶
- Hibernate执行原理总结
- 20165214 2018-2019-2 《网络对抗技术》Exp6 信息搜集与漏洞扫描 Week9
- 前端学习(2995):vue+element今日头条管理--代码测试规范
- 2020年10月DB-Engines排行:商业开源平分秋色 并驾齐驱四大天王
- VO(DTO)模式在架构设计中是否需要
- 用python爬小说_5分钟带你用Python爬完《剑来》小说(附完整代码)!
- [数据预处理] onehot编码:是什么,为什么,怎么样
- SchemaCrawler 9.4 发布,数据库结构输出
- 重构:改善既有代码的设计 精彩书评一
- python ray定时任务_python定时任务APScheduler
- 连接上局域网打开计算机卡,win7怎么玩局域网游戏,win7怎么玩局域网游戏卡
- 如何转换图片格式?建议收藏这两个方法
- 计算机信息处理技术的发展历程,中文信息处理技术发展简史.docx
- 第二章-连接到WAN
- 软件性能测试方案模板,性能测试方案模板
- 解析“Web3悖论”的内在机理与突破路径(上篇·悖论)
热门文章
- Arduino从DHT11读取温湿度数据并显示在1602LCD
- 正整数分解为几个连续自然数之和
- 分配的访问权限的展台应用:最佳做法
- EMOS 如何停止反病毒和防垃圾邮件功能
- 演示:EIGRP非等价负载均衡(故障分析与解决篇)
- 【翻译】WF从入门到精通(第六章):加载和卸载实例
- 高清网络摄像机主流芯片方案之安霸、TI和海思对比
- 静态链接库LIB和动态链接库DLL的区别 创建和示例
- 有限元笔记02:第三章
- mysql cmake错误_MySQL5.5安装出现CMake错误找不到CMakelists.txt原因-阿里云开发者社区...