blinker语音控制Arduino/esp8266开关灯-滑动条使用-文本框交互
总链接: https://www.arduino.cn/thread-78393-1-1.html
语音控制:https://doc.blinker.app/?file=005-App%E4%BD%BF%E7%94%A8/04-%E8%AF%AD%E9%9F%B3%E6%8E%A7%E5%88%B6
### 软件准备
**下载并安装Arduino IDE** ()
[点击去下载](https://www.arduino.cn/thread-5838-1-1.html)
**下载并安装esp8266扩展**
[点击去下载](https://www.arduino.cn/thread-76029-1-1.html)
**下载并加载Blinker-library**
[点击去下载](https://github.com/blinker-iot/blinker-library)
**下载并安装blinker APP**
android下载:[点击下载](https://github.com/blinker-iot/app-release/releases)
IOS下载:app store中搜索“blinker”下载
1**下载并安装Arduino IDE** ()
[点击去下载](https://www.arduino.cn/thread-5838-1-1.html)
我用的是1.8.3本版
2**下载并安装esp8266扩展**
[点击去下载](https://www.arduino.cn/thread-76029-1-1.html)
解压到默认路径,别乱改
之后重启Arduino IDE,会看到WIFIDUINO
3**下载并加载Blinker-library**
[点击去下载](https://github.com/blinker-iot/blinker-library)
首先查看原有自带库文件在哪里放置
把下载的库压缩包放在Arduino的库文件下
C:\Users\dongdong\Documents\Arduino\libraries
Arduino添加压缩包库文件
选择Add.ZIP Library 压缩文件,导入成功
4**下载并安装blinker APP**
android下载:[点击下载](https://github.com/blinker-iot/app-release/releases)
IOS下载:app store中搜索“blinker”下载
## 编辑界面
1. 点击进入设备界面,点击右上角编辑键,切换到界面编辑模式
2. 添加一个开关组件,点击开关组件,设置语音指令,如图:
==可以设置多条语音指令,使用这些指令都可以执行对应的动作==
3. 设置好后点击右下的确定键,再点击右上角的锁定图标,即可保存界面及语音指令
## 编译上传示例程序
将示例程序上传到Arduino中
#define BLINKER_PRINT Serial
#define BLINKER_MQTT #include <Blinker.h> char auth[] = "9a02fc93f6cf";
char ssid[] = "dongdong";
char pswd[] = "ldd123456";
#define TOGGLE_1 "tog-00d" // 滑块按键
#define BUTTON_1 "btn-qc4" // 按压按键 void setup() {
Serial.begin(115200); pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); Blinker.begin(auth, ssid, pswd);
Blinker.wInit(BUTTON_1, W_BUTTON);
} void loop()
{
Blinker.run(); if (Blinker.available()) {
BLINKER_LOG2("Blinker.readString(): ", Blinker.readString()); uint32_t BlinkerTime = millis(); Blinker.beginFormat();
Blinker.vibrate();
Blinker.print("millis", BlinkerTime);
Blinker.endFormat();
} if (Blinker.button(BUTTON_1)) {// 按压按键监测
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
Serial.println("111111111111");
} if (Blinker.toggle(TOGGLE_1)) { // 滑块按键检测
//digitalWrite(LED_BUILTIN, LOW);
Serial.println("down");
}
else {
Serial.println("on");}
}
}
其中宏TOGGLE_1对应的字符串需要修改为你添加的开关组件的键名,如:
#define TOGGLE_1 "tog-0kn"
autu填写你添加设备时获取到的SecretKey
ssid和pswd需写入你当前WiFi的ssid和密码,如:
char auth[] = "45563323dacb";
char ssid[] = "blinkerap";
char pswd[] = "blinkerpassword";
## 大功告成
现在在app中点击语音按键,说出你设定的语音指令,即可控制开关灯了
你可以根据需求修改接入方式和控制逻辑
更多语音控制介绍,可见语音控制文档
更多blinker教程文档,可见 https://doc.blinker.app/
手机按键或者语音交互,电脑监测结果
控件不同,使用检测的函数不同,自定义功能那个不同。
使用方法
点击我的设备页面右下角的麦克风图标,即可进入语音控制界面,然后说出指令即可
DIY设备语音指令设置方法
DIY设备中的语音指令和组件是绑定的,目前可以绑定语音指令的组件有:按键组件、开关组件
在界面编辑状态下,点击组件,即可设置语音指令:
查询语音指令
在语音控制界面,点击左下的"?"图标,可以列出当前可用的语音指令。
指令较多时,可以上下拖拽滚动查看
滑动条使用-不支持语音
#define BLINKER_PRINT Serial
#define BLINKER_MQTT #include <Blinker.h> char auth[] = "9a02fc93f6cf";
char ssid[] = "dongdong";
char pswd[] = "ldd123456"; #define BUTTON_1 "btn-qc4"
#define RGB1 "rgb"
#define SLIDER_1 "SliderKey" void setup() {
Serial.begin(115200); pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); Blinker.begin(auth, ssid, pswd);
Blinker.wInit(BUTTON_1, W_BUTTON);
Blinker.wInit(RGB1, W_RGB);
Blinker.wInit(SLIDER_1, W_SLIDER);
} void loop()
{
Blinker.run();
if (Blinker.available()) {
BLINKER_LOG2("Blinker.readString(): ", Blinker.readString());
uint32_t BlinkerTime = millis();
Blinker.beginFormat();
Blinker.vibrate();
Blinker.print("millis", BlinkerTime);
Blinker.endFormat();
}
if (Blinker.button(BUTTON_1)) {
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
Serial.println("button use!");
}
uint8_t colorR = Blinker.rgb(RGB1,R);
uint8_t colorG = Blinker.rgb(RGB1,G);
uint8_t colorB = Blinker.rgb(RGB1,B);
uint8_t brightness = Blinker.slider(SLIDER_1);
colorR = map(colorR, 0, 255, 0, brightness);Serial.print(" colorR"); Serial.print(colorR);
colorG = map(colorG, 0, 255, 0, brightness);Serial.print(" colorG"); Serial.print(colorG);
colorB = map(colorB, 0, 255, 0, brightness);Serial.print(" colorB"); Serial.println(colorB);
Blinker.delay(100);
}
- 在我的设备页面点击设备,进入控制面板
- 点击右上角 编辑界面 按钮
- 添加 RGB组件和滑动条组件
- 点击RGB组件将数据键名修改为“rgb”;点击滑动条组件将数据键名修改为“SliderKey”
- 点击界面右上角保存界面布局
- 操作组件即可控制滑动条数据了
https://doc.blinker.app/?file=008-%E9%A1%B9%E7%9B%AE%E5%AE%9E%E8%B7%B5/01-%E8%93%9D%E7%89%99%E6%B0%9B%E5%9B%B4%E7%81%AF
文本框使用-不支持语音
源码说明
1在Config中找到阿里云对应的域名+端口,但是MQTT服务器采用动态认证模式,ID和密钥是程序自己从远程HTTP服务器获取,然后解析出来连接MQTT服务器。
blinker语音控制Arduino/esp8266开关灯-滑动条使用-文本框交互的更多相关文章
- 如何实现上下左右键盘控制焦点使之落在相邻文本框或下拉框中-Web开发/JavaScript
我用jquery只实现了文本框的移动(暂时上下移动等同于左右移动) $(function () { var cols = 1;//按一下跳几个控件 var obj = $("input[id ...
- 第15.44节、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...
- PyQt(Python+Qt)学习随笔:QSlider滑动条部件功能简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Horizo ...
- 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转
(一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分, ...
- arduino 语音音箱 :语音控制、MP3播放、报时、回复温湿度情况
arduino 语音音箱 :语音控制.MP3播放.报时.回复温湿度情况 效果图 线路图 包装后的效果 功能 需要材料 arduino板 MP3播放模块及喇叭 时钟模块 温湿度模块 语音识别模块 面包板 ...
- 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
- OpenCV3添加滑动条和鼠标事件到图形界面
鼠标事件和滑动条控制在计算机视觉和OpenCV中非常有用,使用这些控件,用户可以直接与图形界面交互,改变输入图像或者变量的属性值. /* In this section, we are going t ...
- Slider 滑动条效果
转载自:http://www.cnblogs.com/cloudgamer/archive/2008/12/24/Slider.html 这个滑动条(拖动条)效果,一开始是参考了BlueDestiny ...
- Unity3D 之UGUI 滑动条(Slider)
这里来讲解下UGUI 滑动条(Slider)的用法 控件下面有三个游戏对象 Background -->背景 Fill Area --> 前景区域 Handle Slide Area -- ...
随机推荐
- asp.net前台页面与后台之间传值,
在前台用 js 获取到的 “值 ”需要传到后台,在后台调用, ****** 原有传入的 “值 ” 不要被覆盖 1.最简单的在页面写一个隐藏表单,隐藏标签,把获取到的值赋给隐藏标签之后 ...
- 【Java每日一题】20161205
package Dec2016; import java.util.HashSet; public class Ques1205 { public static void main(String[] ...
- java多线程关键字volatile、lock、synchronized
--------------------- 本文来自 旭日Follow_24 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xuri24/article/detail ...
- JS如何判断一个数组是否为空、是否含有某个值
一.js判断数组是否为空 方法一: arr.length let arr = []; if (arr.length == 0){ console.log("数组为空") }els ...
- sessionStorage记录返回前端的数据,用于解决登录拦截器刷新页面的问题
1.问题出现的场景与解决 实现一个登录拦截器,重写doFilter方法,判断用户的登录状态,在用户长时间未操作或者异地登录时前端进行提示,完整代码如下 public class LoginValida ...
- python爬虫入门---第一篇:获取某一网页所有超链接
这是一个通过使用requests和BeautifulSoup库,简单爬取网站的所有超链接的小爬虫.有任何问题欢迎留言讨论. import requests from bs4 import Beauti ...
- JS实现页面分享代码share,不需要第三方接口
在开发一个页面的时候常常会有这么一个小功能,就是分享该页面中的信息. 常见的分享代码有百度分享,JiaThis分享插件(现在貌似不能用了),bshare分享插件等,我主要分享一下自定义分享代码,如下: ...
- AppBoxPro(权限管理框架--FineUIPro基础版+工厂模式+ADO.NET+存储过程)
FineUIPro基础版火爆来袭,特献上ADO.NET纯SQL方式AppBoxPro,希望大家能够喜欢! 下载源码请到[知识星球] https://t.zsxq.com/3rrNFyv
- 一个Web页面的问题分析
几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更可维护的代码,就是这篇文章 ...
- Oracle 11g数据库详细安装过程
1.Oracle 11g下载 官方网址为:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.h ...