如何使用Arduino和蓝牙的语音控制LED

使用语音命令控制 led 似乎是一项艰巨的任务,但它很容易,您可以快速构建它。我们只需要一个arduino uno与hc-06蓝牙模块串行通信,智能手机就可以向蓝牙模块hc-06发送语音命令。为了接收语音命令,我们正在使用“arduino蓝牙语音控制器”android应用程序。
所需材料
arduino uno
hc-06 蓝牙模块
指示灯(红色和绿色)
电阻器 220 欧姆(2 个)
arduino蓝牙语音控制器
面包板
连接线
hc-06 蓝牙模块:
蓝牙可以在以下两种模式下运行:
命令模式
操作模式
在命令模式下,我们将能够配置蓝牙属性,例如蓝牙信号的名称,密码,操作波特率等。操作模式是我们能够在pic微控制器和蓝牙模块之间发送和接收数据的模式。因此,在本教程中,我们将只玩弄操作模式。命令模式将保留默认设置。设备名称将是hc-05(我正在使用hc-06),密码将是0000或1234,最重要的是,所有蓝牙模块的默认波特率为9600。
模块采用 5v 电源供电,信号引脚工作在 3.3v,因此模块本身存在一个 3.3v 稳压器。因此,我们不必担心。在六个引脚中,只有四个将在操作模式下使用。引脚连接表如下所示
s.no hc-05/hc-06 上的引脚 mcu 上的引脚名称 pic 中的引脚编号
1 vcc vdd 第 31 针
2 vcc 格德 第 32 针
3 德克萨斯 rc6/tx/ck 第 25 针
4 接收 rc7/rx/dt 第 26 针
5 州 数控 数控
6 英文(使能) 数控 数控
电路图
下面给出了此语音控制灯的电路图,在arduino uno中上传代码时,断开rx和tx引脚,并在上传代码后再次连接。
代码和说明
语音控制led的完整arduino代码在末尾给出。在这里,我们将解释代码的几个部分。
在这里,在下面的代码中,我们将定义 rx 和 tx 的引脚。
int txd = 11;
int rxd = 10;
现在,设置引脚 2德·和 3rd的 arduino 作为输出。
pinmode(2, output);
pinmode(3, output);
在空回路功能中,arduino将始终检查输入值,并根据语音命令控制led。arduino将根据给定的语音命令打开或关闭led。我们将所有收到的命令保存在变量“value”中
如果值为“所有 led 打开”,则两个 led 都打开,像这样,我们已经编码了其他语音命令来打开或关闭单个 led。查看本文后面的完整工作和演示视频。
if (bluetooth.available())
{
value = bluetooth.readstring();
if (value == all led turn on){
digitalwrite(2, high);
digitalwrite(3, high); 
}
if (value == all led turn off){
digitalwrite(2, low);
digitalwrite(3, low);      
}
if (value == turn on red led){
digitalwrite(2, high);
}
if (value == turn on green led){
digitalwrite(3, high);      
}
if (value == turn off red led){
digitalwrite(2, low);
}
if (value == turn off green led){
digitalwrite(3, low);      
}
}
工作程序:
第 1 步:-按照电路图连接所有组件;上传代码时断开 rx 和 tx 引脚的连接。
第 2 步:-下载名为“arduino蓝牙语音控制器”的应用程序,该应用程序在play商店中免费。
第 3 步:-打开应用程序并按照下图进行操作,例如首先单击“连接到蓝牙设备”并选择您的蓝牙模块并检查它是否已连接。然后单击麦克风图标说话并将语音命令发送到hc-06模块。
注意:当您第一次将蓝牙模块与智能手机连接时,它会询问密码,请使用 0000 或 1234。
第 4 步:-设置完所有内容后,您只需使用应用程序发送语音命令,该应用程序进一步发送到蓝牙模块hc-06,hc-06与arduino uno串行通信,然后按照命令执行任务。下面显示了命令和命令要执行的操作:
s. 否。 命令 行动
1. 所有指示灯亮起 红色和绿色 led 均亮起
2. 所有指示灯熄灭 红色和绿色 led 均熄灭
3. 打开红色指示灯 红色指示灯亮起
4. 打开绿色指示灯 绿色指示灯亮起
5. 熄灭红色指示灯 红色指示灯熄灭
6. 熄灭绿色指示灯 绿色指示灯熄灭
#include
string value;
int txd = 11;
int rxd = 10;
int servoposition;
softwareserial bluetooth(txd, rxd);
void setup() {
pinmode(2, output);
pinmode(3, output);
serial.begin(9600); // start serial communication at 9600bps
bluetooth.begin(9600);
}
void loop() {
serial.println(value);
if (bluetooth.available())
{
value = bluetooth.readstring();
if (value == all led turn on){
digitalwrite(2, high);
digitalwrite(3, high);
}
if (value == all led turn off){
digitalwrite(2, low);
digitalwrite(3, low);
}
if (value == turn on red led){
digitalwrite(2, high);
}
if (value == turn on green led){
digitalwrite(3, high);
}
if (value == turn off red led){
digitalwrite(2, low);
}
if (value == turn off green led){
digitalwrite(3, low);
}
}
}

基于LT5581 RMS射频检测器解决射频功率检测的问题挑战
关于拼接大屏和LED大屏的显示单元色差问题
服务器的带宽大小应该如何进行选择
ADI推出业界首款商用三轴加速度计 精确测量冲击力
KT携手西班牙电信澳大利亚电信和中国联通共同开展了5G MEC技术验证
如何使用Arduino和蓝牙的语音控制LED
科通技术助力睿尔曼布局工业机器人市场
gps卫星信号的组成原理
三相四线漏电保护器的接线方法
开放实验室:测量LCR及阻抗特性
创客云集,脑洞大开!Maker Faire NVIDIA 专场研讨会等你来切磋
为什么USB接口不直接设计成正反插的
快速理解什么是Linux内核,能看懂Linux内核
Redmi未来将会从产品的体验和品质发力打造出极致性价比的第一品牌
TCL华星或将携带多款高端电竞显示器,亮相UDE2020
工业以太网技术的网络优势
怎样延长桌上型恒温恒湿试验箱的使用寿命
TD-SCDMA入网性质测试6月启动
城市路灯无线通信监控解决方案
华为在5G研发和设备制造方面取得什么成果?