查看: 1553|回复: 4

blinker物联网教程——9、blinker语音识别芝麻开门

[复制链接]

该用户从未签到

发表于 2021-3-10 21:14 | 显示全部楼层 |阅读模式
本帖最后由 海神 于 2021-6-7 11:05 编辑

简介

blinker APP自带的语音识别功能,与定时任务相似,语音识别功能也可以与按键控件绑定使用,当识别成功后就触发按键控件的相应动作。
设置方法如下: 在编辑模式下,点击按键,进入组件编辑页面,选择 语音设置>添加语音指令 即可添加一条语音指令,语音指令可对应“on”“off”“tap”三种动作。
如选择动作”on”,该按键组件key“btn-abc”,则触发该语音指令时,APP会向设备发送指令:{“btn-abc”:”on”}
APP设备列表页,点击右下角的语音按键,即可输入语音指令。
那么本节我们利用语音识别功能来制作一个芝麻开门项目,我们自己设置语音密码,当识别到语音“芝麻开门”,就打开门板,识别到语音“芝麻关门”,就关闭门板。将门板想办法固定在舵机轴上,我们就可以通过切换舵机轴的运动来实现开门、关门的动作。

硬件

wifiduino主板*1
wifiduino拓展板*1
9g舵机*1

软件

blinker app

代码

  1. #define BLINKER_WIFI
  2. #include <Blinker.h>
  3. #include <Servo.h>
  4. #define servoPIN D2

  5. char auth[] = "d8bdbx0fxxx";
  6. char ssid[] = "mosxxn";
  7. char pswd[] = "1803808xxxx";
  8. BlinkerButton Button1("btn-abc");// 新建组件对象,键名为'btn-abc'
  9. Servo myservo; //新建一个对象用于控制舵机
  10. int counter = 0;
  11. // 按下按键即会执行该函数
  12. void button1_callback(const String & state)
  13. {
  14. if (state == BLINKER_CMD_ON) { //按键被按下不放
  15. BLINKER_LOG("Button pressed!");
  16. Button1.color("#0000FF"); //按键颜色显示为蓝色
  17. Button1.text("yellow");
  18. myservo.write(180); //开门
  19. Button1.print("on");
  20. delay(100); //延时一点时间
  21. }
  22. else if (state == BLINKER_CMD_OFF) { //按键长按下后松开
  23. BLINKER_LOG("Button released!");
  24. Button1.color("#00FFFF");; //按键颜色显示为灰色
  25. Button1.text("gray");
  26. myservo.write(0); //关门
  27. Button1.print("off");
  28. delay(100); //延时一点时间
  29. }
  30. }
  31. void setup()
  32. {
  33. // 初始化串口
  34. Serial.begin(115200);
  35. BLINKER_DEBUG.stream(Serial);
  36. // 初始化blinker
  37. Blinker.begin(auth, ssid, pswd);
  38. Button1.attach(button1_callback);
  39. myservo.attach(servoPIN); //舵机连接引脚
  40. }
  41. void loop() {
  42. Blinker.run();
  43. }
复制代码
定制blinker软件界面

编辑app界面,添加一个按键,修改按键的参数特征,选择样式为开关按钮,数据键名为程序中定义的“btn-abc”,按键类型设置为开关按键
zmkm1.png
点击语音设置,添加2个语音内容,并于对应的开关相对应。语音内容为芝麻开门对应的是按键的on状态,芝麻关门对应是按键的off状态。
点击右上角的勾,确认编辑。点击解锁,完成编辑。
zmkm2.png
硬件连接

将扩展板连接在wifiduino上,并将舵机通过连接线连接在扩展板上的D2接口中。
(注意舵机接线 信号 —VCC  —GND 对应连接在扩展板上的 D2 (白针)VCC (红针)GND(黑针)上)
zmkm3.png
观察现象

回到主界面,点击语音按钮。对着手机喊芝麻开门芝麻开门。观察门的运动情况。
zmkm5.png zmkm4.png
进阶

我们可以给程序进行升级,添加一个蜂鸣器的模块,当识别成功后,首先让蜂鸣器发出一段音乐,然后在转动舵机进行开门,这样在搭建芝麻开门会更形象生动。

代码


硬件连接

················



blinker物联网教程目录

该用户从未签到

发表于 2021-5-4 16:45 | 显示全部楼层
这个语音控制普通版是否可以实现?

点评

可以  详情 回复 发表于 2021-5-6 08:53

该用户从未签到

 楼主| 发表于 2021-5-6 08:53 | 显示全部楼层
lizjuee 发表于 2021-5-4 16:45
这个语音控制普通版是否可以实现?

可以

签到天数: 1 天

[LV.1]初来乍到

发表于 2021-5-6 16:04 | 显示全部楼层
回到主界面,点击语音按钮。对着手机喊“芝麻开门” 和“芝麻开门”。观察门的运动情况。

芝麻关门。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

esp32s2 在Arduino IDE调试USB CDC
esp32s2 在Arduino IDE调
各位大佬好,最近尝试弄清如何使用esp32s2的usb功能。然后在Github上找的代码,放到自
一直想做个飞行器,但是出了电小问题
一直想做个飞行器,但是出
这是主函数的源码 extern uint8_t PWM_PIN[8]; void initOutput();//初始化函数 void
Arduino mega2560 usb串口01被modbus master库占用,无法下载程序
Arduino mega2560 usb串口
Arduino mega2560 用来测试modbus master通信,因未发现串口可选择,直接下载了串口(
DIY炫彩灯带,竟如此简单,更有硬件开发工具免费领!
DIY炫彩灯带,竟如此简单
什么是涂鸦Arduino SDK? Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Ardui
.h .cpp源代码转.ino草图
.h .cpp源代码转.ino草图
在Github上下载了源码,是.h 和.cpp文件,请问一下,如何才可以转成可以在arduinoIDE
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表