一、前期准备

1. D1 UNO R3 WIFI 开发板,
2. 继电器
3. 电源
4. 小度音箱
5. Blinker 账户
6. 百度账户
7. Arduino IDE
8. Blinker library 0.3.4
9. ESP8266 开发板支持库 2.7.1

二、设备及接线图

三、程序

 /******************************************** 本代码采用D1 UNO R3 WIFI + 继电器板通过测试*/
/************************************************************
很多时候,#define 后只有一个参数,经常出现在头文件的开始处。
解释:
定义宏,并在预处理过程中将其替换为空字符串(即删除)。
这样做主要是为了标记某些内容,使程序阅读者能够清楚标记表明的意义,同时又不影响被编译的源代码。
也就是说,用法同define后接两个参数,只是后一个参数为空字符串。用途包括:
(1)定义一个符号用来给#if(n)def判断。
(2)多文件编译中防止头文件被重复包含。**********************************************************************/
#define BLINKER_WIFI
#define BLINKER_PRINT Serial
//此句允许小度APP扫描到此设备
#define BLINKER_DUEROS_OUTLET#include <Blinker.h>
//设备连接BLINKER及家中的WIFI
char auth[] = "Blink app生成的密钥";
char ssid[] = "wifi名字";
char pswd[] = "wifi密码";bool oState = false;
//Blinker APP中控制继电器的按钮
BlinkerButton btn_TVP("btn-TVP");int TV_Pin = D5;
//与小度APP进行电源状态交互
void duerPowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(TV_Pin, HIGH);BlinkerDuerOS.powerState("on");BlinkerDuerOS.print();oState = true;}else if (state == BLINKER_CMD_OFF) {digitalWrite(TV_Pin, LOW);BlinkerDuerOS.powerState("off");BlinkerDuerOS.print();oState = false;}
}
//用户自定义设备查询的回调函数:
void duerQuery(int32_t queryCode)
{BLINKER_LOG("DuerOS Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("DuerOS Query All");BlinkerDuerOS.powerState(oState ? "on" : "off");BlinkerDuerOS.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("AliGenie Query Power State");BlinkerDuerOS.powerState(oState ? "on" : "off");BlinkerDuerOS.print();break;default :BlinkerDuerOS.powerState(oState ? "on" : "off");BlinkerDuerOS.print();break;}
}void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);Blinker.vibrate();uint32_t BlinkerTime = millis();Blinker.print("millis", BlinkerTime);
}
//Blinker APP 按钮控制命令
void btn_TVP_callback(const String & state)     //点灯app内控制按键触发
{BLINKER_LOG("get button state: ", state);digitalWrite(TV_Pin, !digitalRead(TV_Pin));
}
void setup()
{Serial.begin(115200);//debug 命令BLINKER_DEBUG.stream(BLINKER_PRINT);BLINKER_DEBUG.debugAll();//继电器接入公共端和常开端口,电压初始化为低电压,接入高电压后吸合供电pinMode(TV_Pin, OUTPUT);digitalWrite(TV_Pin, LOW);Blinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);BlinkerDuerOS.attachPowerState(duerPowerState);BlinkerDuerOS.attachQuery(duerQuery);btn_TVP.attach(btn_TVP_callback);
}void loop()
{Blinker.run();
}

以上程序基于Arduino IDE–实例–Blinker–Blinker_AliGenie–AliGenie_OUTLET修改而来。
Blinker APP 中设置一个按钮,命名为“btn_TVP”,语音设置:打开电视机–on,关闭电视机–off

四 、采过的坑

1.  关于开发板,最初想为了一步到位,买了带WIFI的D1开发板,结果发现与UNO R3的基础板有很大不同,为了找到相关资料饶了很多弯路。最终才找到了下图的参数


2. 在修改程序的过程中,一直处于修改,上传,修改,上传的境地,自己细心都不够,没有一次行修改完成。

五、目前修在的问题

 1. 语音控制目前不稳定,初步怀疑为家里网络的质量差导致。

注:以上信息全部来自互联网,如果涉及版权请告知即删。转载请注明出处。谢谢!

Arduino 继电器控制(Blinker+ 小度)相关推荐

  1. <硬件>——Arduino继电器控制实例

    继电器原理:弱电控制强电 ---引脚图 NC:常闭端  NO:常开端  COM:公共端 VCC:电源正极  GND:电源负极  IN:信号输入端 ---工作图 一般情况下NC是闭合,当IN收到信号是低 ...

  2. arduino继电器控制风扇_如何使用Arduino开发板制作温度控制的风扇

    在本篇文章中,我们将主要介绍如何使用DHT22传感器和继电器制作一款Arduino温控风扇.使用DHT22传感器获取温度值,然后将在LCD显示屏上打印此温度值.我们将检查温度值是否大于35,如果温度大 ...

  3. arduino——继电器控制LED

    操作 继电器是具有两种状态的电子开关:线圈无动力和线圈供电.默认情况下,线圈未通电.您可以通过在引脚 COIL1 和 COIL2 之间施加电压来为线圈供电. 当线圈未通电时,P1 连接到 NC1,P2 ...

  4. arduino声音传感器与二极管_如何将声音传感器与Arduino连接 并实现继电器控制项目...

    简介 我前段时间已经实现了声音相关项目,称为 如何制作简单的CLAP SWITCH .该项目基于着名的555定时器IC. 在这个项目中,我将使用不同的声音传感器(虽然想法是一样的),它对声音如大声,拍 ...

  5. 【Proteus仿真】Arduino UNO+继电器控制照明设备

    [Proteus仿真]Arduino UNO+继电器控制照明设备 -基于 VSM Studio Proteus仿真演示 示例代码 /* Main.ino file generated by New P ...

  6. Arduino通过继电器控制电机(5V小马达)ESP8266-12F同理(小白初学)

    用Arduino/ESP8266-12F控制电机 一.实验环境 IDE:Arduino 材料:Arduino UNO/ESP82266-12F.4.5V电池盒子.继电器(6脚).5V电机一个(5V小马 ...

  7. Arduino基础入门篇24—继电器控制

    继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...

  8. esp-01s接入天猫精灵与relay继电器控制电灯

    esp-01s接入天猫精灵与relay继电器控制电灯 学习arduino已经两个多月了,第一次动手做了一个天猫精灵控制的台灯,并且记录和分享一下学习的过程,做的不好,有什么不对的地方还请多多指正 这两 ...

  9. ESP8266 01S 继电器控制智能灯实现

    ESP8266 01S 继电器控制 智能灯实现(使用小度音响) 最近研究esp8266,发现可以通过wifi连接物联网云平台实现远程控制,同时也可以加入小度语音DIY简单的智能家居. 前言 本人也是刚 ...

最新文章

  1. 关于全连接层梯度的链式法则
  2. #HTTP协议学习# (七)代理
  3. 第五章 python中正则表达式的使用
  4. gsoap中的数据结构中不允许有野指针
  5. daterangepicker 使用方法总结
  6. 画出18*18的棋盘以及用不同颜色绘制出同心圆(python实现)
  7. 汇编语言(四)之比较字符串
  8. 07.移动先行之谁主沉浮----控件之轮流轰炸——布局类控件
  9. HTML标记特定,制作asp:标记特定的HTML标记
  10. 鸿蒙系统官网电脑版,华为鸿蒙系统官网下载-华为鸿蒙系统下载pc版v2.0 电脑版下载-955游戏网...
  11. springmvc整合UReport2
  12. 使用 Python爬虫+OpenCV 通过摄像头 二维码识别 来得到官方接口的反馈数据 从而实现实时准确地 检测健康码状态(获取JS动态数据)
  13. SAP 与 3大财务报表
  14. ROS 基础知识(一)
  15. 深入浅出即时通讯(1)_即时通讯协议对比
  16. 用力一瞥Android渲染机制-黄油计划
  17. CCCP(convex-concave procedure)优化算法的一些理解
  18. 【ML】第二章 端到端机器学习项目
  19. 博彩游戏(tyvj 1519)
  20. 生活中常给自己的心理暗示:

热门文章

  1. 设计模式之原型模式以及深浅拷贝的区别
  2. 程序开发、科学危机以及人类灭亡
  3. [linux]summary
  4. linux外接光驱下载文件,Linux 从光驱拷贝文件以及加载新的硬盘
  5. 各大CMS采集资源站网址
  6. 你会不会被贾跃亭坑?
  7. 51单片机—详细(存储器RAM/ROM、引脚、中断系统、定时/计数器、串行口通信)
  8. Angular安装以及项目客户端搭建
  9. rust自我解脱_深夜的阴谋
  10. 从造芯惨败到万亿帝国,苹果用了三十年