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

树莓派外设开发之接入语音模块相关推荐

  1. 树莓派——3、树莓派外设开发编程

    树莓派外设开发接口文档参考 wringPi库(特定平台,特定功能的接口)树莓派wiringPi库详解 - lulipro - 博客园 (cnblogs.com) 一.树莓派的接口 IO口:input/ ...

  2. 树莓派外设开发基础(wiringPi库)

    参考:树莓派外设开发基础篇 作者:丶PURSUING 发布时间:2021-02-05 18:20:53 网址:https://blog.csdn.net/weixin_44742824/article ...

  3. 树莓派外设开发——超声波

    1.综述 树莓派外设开发需要用的wiringPi()库函数 在调用时需要包含#include<wiringPi.h>文件 使用wiringPi()库函数时需要将其初始化,方法为:调用 in ...

  4. 树莓派外设开发(快速上手)

    树莓派外设开发 wiringPi库的使用 例子---接收指令让继电器工作 HC-SR04超声波测距模块简单应用 跨平台文件传输 FileZilla软件 linux环境自带的scp指令 串口交互 修改c ...

  5. 树莓派外设开发之超声波

    树莓派超声波测距 树莓派Gpio引脚图: 注意:这里代码中使用的是wiringPi编码,图中GPIO 针脚定义为根据BCM编码定义 超声波模块介绍: 接线参考:模块除了两个电源引脚外,还有Trig,E ...

  6. 树莓派外设开发基础—串口通信

    文章目录 一.串口通信的一些概念 二.树莓派串口通信设置 三.树莓派串口通信API 四.树莓派与PC通信 1.接线 2.程序与测试 拓展 一.串口通信的一些概念 串口通信通常用在多机通信中. 串口通信 ...

  7. 树莓派外设开发之控制继电器(组)

    目录 控制继电器 控制继电器组 控制继电器 选择7号引脚作为继电器信号输出控制端. 代码: #include <wiringPi.h> #include <stdio.h> # ...

  8. 树莓派外设开发之玩传感器

    参考:用树莓派玩传感器 作者:LEO-max 发布时间: 2021-02-24 16:30:46 网址:https://blog.csdn.net/zouchengzhi1021/article/de ...

  9. 树莓派外设开发——舵机控制

    1.综述 普通舵机的角度控制需要用到PWM实现,这里用到Linux定时器产生PWM波形,关于Linux定时器,这篇文章有一个简单的介绍 Linux定时器 舵机控制原理大致如下: 2.代码 #inclu ...

最新文章

  1. Linux 工具进阶
  2. 在此服务器找不到请求的url,在此服务器上找不到请求的URL /.阿帕奇
  3. pyqt 获取 UI 中组件_初级UI需注意10个移动端的关键原则
  4. 【图像分割应用】设备自动化(一)——自动驾驶
  5. Hibernate执行原理总结
  6. 20165214 2018-2019-2 《网络对抗技术》Exp6 信息搜集与漏洞扫描 Week9
  7. 前端学习(2995):vue+element今日头条管理--代码测试规范
  8. 2020年10月DB-Engines排行:商业开源平分秋色 并驾齐驱四大天王
  9. VO(DTO)模式在架构设计中是否需要
  10. 用python爬小说_5分钟带你用Python爬完《剑来》小说(附完整代码)!
  11. [数据预处理] onehot编码:是什么,为什么,怎么样
  12. SchemaCrawler 9.4 发布,数据库结构输出
  13. 重构:改善既有代码的设计 精彩书评一
  14. python ray定时任务_python定时任务APScheduler
  15. 连接上局域网打开计算机卡,win7怎么玩局域网游戏,win7怎么玩局域网游戏卡
  16. 如何转换图片格式?建议收藏这两个方法
  17. 计算机信息处理技术的发展历程,中文信息处理技术发展简史.docx
  18. 第二章-连接到WAN
  19. 软件性能测试方案模板,性能测试方案模板
  20. 解析“Web3悖论”的内在机理与突破路径(上篇·悖论)

热门文章

  1. Arduino从DHT11读取温湿度数据并显示在1602LCD
  2. 正整数分解为几个连续自然数之和
  3. 分配的访问权限的展台应用:最佳做法
  4. EMOS 如何停止反病毒和防垃圾邮件功能
  5. 演示:EIGRP非等价负载均衡(故障分析与解决篇)
  6. 【翻译】WF从入门到精通(第六章):加载和卸载实例
  7. 高清网络摄像机主流芯片方案之安霸、TI和海思对比
  8. 静态链接库LIB和动态链接库DLL的区别 创建和示例
  9. 有限元笔记02:第三章
  10. mysql cmake错误_MySQL5.5安装出现CMake错误找不到CMakelists.txt原因-阿里云开发者社区...