夏天来了,给自己做个智能小风扇吧 ESP8266+继电器+小电机=智能风扇[可通过手机app控制,也可通过小爱同学语音控制]
文章目录
实现效果
智能小风扇
接下来开始实战教程
一、必备硬件与软件
1.软件部分
如图,各种需要的软件已经打包
下载地址:https://pan.baidu.com/s/1aMCTJkIw4lV5z_pxMxb8jA?pwd=6666
2.硬件部分
电池盒,面包板,小电机+扇叶,ESP8226-01S,ESP-01/01S 继电器,ESP-01/01S 下载器(CH340C烧录器)
ESP8226-01S
ESP-01/01S 继电器
模块工作电压:DC 5V
继电器负载能力:10A 250VAC 10A 125VAC 10A 30VDC 10A 28VDC
ESP-01/01S 下载器(CH340C烧录器)
二、实战教程
1.安装软件&导入库文件
(1)解压arduino-ide_2.3.2_Windows_64bit.zip文件
(2)双击安装esp8266开发板
(3)双击打开压arduino-ide
(4)设置语言为中文
(5)导入点灯科技库文件
2.下载电灯科技APP进行配置
APP下载地址:http://dd.clz.me:1080/blinker-2.6.5-3.apk
(1)添加设备
(2)复制配置到自己的开发板上
点击设备进入设置
(3)进入界面配置,复制粘贴下面的信息进去
{¨version¨¨2.0.0¨¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/headerbg.jpg¨¨isFull¨«}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨far fa-fan-table¨¨mode¨Ê¨t0¨´´¨t1¨¨文本2¨¨bg¨É¨cols¨Ë¨rows¨Ë¨key¨¨btn-abc¨´x´Ì´y´Ï¨speech¨|÷}{ßC¨deb¨ßGÉßKÉßLÑßMÌßN¨debug¨´x´É´y´Ë}÷¨actions¨|÷¨triggers¨|÷}
3.选择ESP8266开发板,修改程序
(1)选择ESP8266开发板
(2)复制下面的代码到IDE
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#include <Blinker.h>
#define LED 0 //定义继电器输入引脚为GPIO0
//填入自己的信息
char auth[] = "点灯科技 添加设置的key";
char ssid[] = "WiFi名称";
char pswd[] = "WiFi密码";
bool wsState;
// 新建组件对象
BlinkerButton Button1("btn-abc"); //注意:要和APP组件’数据键名’一致
// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String & state )
{
BLINKER_LOG("串串灯状态: ", state);
if (state=="on") {
digitalWrite(LED, LOW);
Button1.color("#00FF11"); //按钮按下时,app按键颜色状态显示是绿色
Button1.text("已开灯"); // 反馈开关状态
Button1.print("on");
wsState=true;
} else if(state=="off"){
digitalWrite(LED, HIGH);
Button1.color("#000000"); //按钮没有按下时,app按键颜色状态显示是黑色
Button1.text("已关灯"); // 反馈开关状态
Button1.print("off");
wsState=false;
}
Blinker.vibrate();
}
//小爱同学 的回调查询函数,照抄即可。主要是查询 当前灯的状态
void miotQuery(int32_t queryCode)
{
BLINKER_LOG("MIOT Query codes: ", queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_ALL_NUMBER :
BLINKER_LOG("MIOT Query All");
BlinkerMIOT.powerState(wsState ? "on" : "off");
BlinkerMIOT.color(0);
BlinkerMIOT.mode(0);
BlinkerMIOT.colorTemp(1000);
BlinkerMIOT.brightness(1);
BlinkerMIOT.print();
break;
case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
BLINKER_LOG("MIOT Query Power State");
BlinkerMIOT.powerState(wsState ? "on" : "off");
BlinkerMIOT.print();
break;
default :
BlinkerMIOT.powerState(wsState ? "on" : "off");
BlinkerMIOT.color(0);
BlinkerMIOT.mode(0);
BlinkerMIOT.colorTemp(1000);
BlinkerMIOT.brightness(1);
BlinkerMIOT.print();
break;
}
}
//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON)
{
digitalWrite(LED, LOW);
Button1.color("#00FF11"); //按钮按下时,app按键颜色状态显示是绿色
Button1.text("已开风扇"); // 反馈开关状态
Button1.print("on");
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
wsState=true;
}
else if (state == BLINKER_CMD_OFF)
{
digitalWrite(LED, HIGH);
Button1.color("#000000"); //按钮没有按下时,app按键颜色状态显示是黑色
Button1.text("已关风扇"); // 反馈开关状态
Button1.print("off");
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
wsState=false;
}
}
void setup() {
// 初始化串口,并开启调试信息,调试用可以删除
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// 初始化IO
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
Button1.color("#000000"); //按钮没有按下时,app按键颜色状态显示是黑色
Button1.text("已关风扇"); // 反馈开关状态
Button1.print("off");
//初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
//注册回调函数
BlinkerMIOT.attachPowerState(miotPowerState);
BlinkerMIOT.attachQuery(miotQuery);
}
void loop() {
Blinker.run();
}
4.烧录程序
(1)改好信息后,点击上传程序
(2)上传成功标志
(3)接线
BlinkerMIOT.attachQuery(miotQuery);
}
void loop() {
Blinker.run();
}
4.烧录程序
(1)改好信息后,点击上传程序
(2)上传成功标志
(3)接线