树莓派外设开发之接入语音模块

参考:树莓派接入语音模块控制继电器组
作者:糯米啊啊
发布时间: 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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php程序里如何实现图片翻页,php图片上传代码一例-php 生成翻页链接(页码)列表的...-带多种分页方式的php分页类_169IT.COM...

Class PAGE {//类开始/********************************************************* $total 记录总数* $pageNum 每页显示的条数* $url 链接* $page->StartPage(显示分类统计,字符分类/数字分页,跳转);* $page->StartPage(true/false, true/false, true/f…

图片圆角

2019独角兽企业重金招聘Python工程师标准>>> //切图为圆角 public static Bitmap removeYuanjiao(Bitmap bitmap,int pixels){ int width bitmap.getWidth(); int height bitmap.getHeight(); Bitmap creBitmap Bitmap.createBitmap(width, height, android.grap…

Java和.NET(C#)的开发用到的技术对比总结

前言 声明&#xff1a;我指的是一般的Java和.NET(C#)的后台开发用到的技术总结 最近一直在应聘ing&#xff0c;楼主的项目还是.NET(C#)项目居多&#xff0c;Java项目相对少&#xff0c;在这也吐槽下&#xff0c;招.NET(C#)的公司实在是少的可怜&#xff0c;其实非常喜欢C#语法和…

python测试用例管理模块_python-selenium并发执行测试用例(方法一 各模块每一条并发执行)...

总执行代码: # codingutf-8 import unittest,os,time import HTMLTestRunner import threading import sys sys.path.append(C:/Users/Dell/Desktop/CARE/program)#使用编辑器&#xff0c;要指定当前目录&#xff0c;不然无法执行第20行代码 def creatsuite(): casedir [] lis…

全国计算机等级考试题库二级C操作题100套(第71套)

第71套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;将形参s所指字符串中的所有数字字符顺序前移&#xff0c;其他字符顺序后移&#xff0c;处理后新字符串的首地址作为函数值返回。 例如&#xff0c;s所指字符串为&#xff1a;asd123fgh5##43df&#xff0…

修改oracle用户资源限制,RHEL5中安装Oracle11gR2修改用户SHELL限制、环境配置、内核参数...

修改用户的SHELL的限制[rootlocalhost &#xff5e;]# vi /etc/security/limits.conf# /etc/security/limits.conf##Each line describes a limit for a user in the form:## ##Where:# can be:# - an user name# - a group name, with group syntax#…

input 赋值_FPGA基础设计:Verilog行为级建模(过程赋值)

来源&#xff1a;CSDN文章使用逻辑门和连续赋值对电路建模&#xff0c;是相对详细的描述硬件的方法。使用过程块可以从更高层次的角度描述一个系统&#xff0c;称作行为级建模(behavirol modeling)。1. 过程赋值阻塞赋值和非阻塞赋值的区别都很熟悉了。这里记录两个特性。1.1 特…

本地配置DNS服务器(MAC版)

转自https://www.cnblogs.com/skylor/p/7483959.html作为一个前端开发者&#xff0c;会遇到使用cookie的情况&#xff0c;常见的如&#xff1a;登录&#xff0c;权限控制&#xff0c;视频播放&#xff0c;图形验证码等&#xff0c;这时候本地开发者在PC上会使用修改hosts的方式…

全国计算机等级考试题库二级C操作题100套(第72套)

第72套&#xff1a; 给定程序中&#xff0c;函数fun的功能是计算下式 例如&#xff0c;若形参e的值为1e-3&#xff0c;函数的返回值2.735678。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意&#xff1a;源程序存放在考生文件夹下的BLANK1.C中…

JAVA操作Excel表格

一、JExcelApi 可以从文件或者输入流进行读取操作。 基本步骤&#xff1a; 1.由文件或者输入流创建一个workbook; 2.由workbook的getSheet()方法创建一个工作表Sheet&#xff08;两种方法&#xff0c;下标和名字&#xff0c;下标从0开始&#xff09;&#xff1b; 3.由Sheet的ge…

Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册

Oracle监听介于Oracle的数据库和客户端之间的通道。因为数据库本身不对外提供服务&#xff0c;所以需要通过监听器来实现。几个相关的参数&#xff1a;local_listenerdb_domainremote_listenerservice_names相关命令&#xff1a;监听命令&#xff1a;lsnrctl参数&#xff1a;1、…

mme设备内部错误_华为拟安装“俄版安卓”;百度回应内部贪腐;Android Studio 3.5 RC2 发布 | 极客头条...

快来收听极客头条音频版吧&#xff0c;智能播报由标贝科技提供技术支持。「CSDN 极客头条」&#xff0c;是从 CSDN 网站延伸至官方微信公众号的特别栏目&#xff0c;专注于一天业界事报道。风里雨里&#xff0c;我们将每天为朋友们&#xff0c;播报最新鲜有料的新闻资讯&#x…

[spring mvc]Hello World入门

1.新建项目 File->New->Other,选择Dynamic web project&#xff1a; 项目建好之后&#xff0c;目录结构如下&#xff1a; 2.WEB-INF/web.xml 中配置 dispatcherServlet <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"ht…

Mysql日期函数使用大全

为什么80%的码农都做不了架构师&#xff1f;>>> 1.1 获得当前日期时间&#xff08;date time&#xff09;函数&#xff1a;now() 除了 now() 函数能获得当前的日期时间外&#xff0c;MySQL 中还有下面的函数&#xff1a; current_timestamp() current_timestamp …

全国计算机等级考试题库二级C操作题100套(第73套)

第73套&#xff1a; 给定程序中&#xff0c;函数fun的功能是计算下式 例如&#xff1a;若形参e的值为1e-3&#xff0c;函数的返回值为0.551690。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意&#xff1a;源程序存放在考生文件夹下的BLANK1.C…

oracle修改数据库国际字符集,Oracle修改数据库字符集

1.(Window&#xff1a;)cmd下输入set ORACLE_SID你想进入的数据库的那个sid(Linux&#xff1a;)切换到oracle用户&#xff1a;export ORACLE_SID你想进入的数据库的那个sid2.输入 sqlplus /nolog3.将数据库启动到RESTRICTED模式下做字符集更改&#xff1a;SQL> conn /as sy…

input点击事件不能用_用js简单写一个计算器

嗨&#xff0c;大家好&#xff0c;今天给大家带来的是一个计算器首先要知道我们常用的计算器都有哪些按键&#xff0c;有0~9&#xff0c; , - , *, /&#xff0c;还有 和.&#xff0c;基本是这些按键&#xff0c;然后我们去创建一些按键。之后我们去设置样式&#xff0c;设置完…

全国计算机等级考试题库二级C操作题100套(第74套)

第74套&#xff1a; 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是&#xff1a;找出指定出生年份的人员&#xff0c;将其数据放在形参k所指的数组中&#xff0c;由主函数输出&#xff0c;同时由函数值返回满足指定条件…

入驻支付宝开放平台并创建应用的基本流程

https://www.csweigou.com/article/1990.html 转载于:https://www.cnblogs.com/DixinFan/p/9519876.html

php判断信用卡,php校验信用卡卡号代码

[php]代码库// This function will take a credit card number and check to make sure it// contains the right amount of digits and uses the Luhn Algorithm to// weed out made up numbersfunction validateCreditcard_number($credit_card_number){// Get the first dig…