夏天来了,给自己做个智能小风扇吧 ESP8266+继电器+小电机=智能风扇[可通过手机app控制,也可通过小爱同学语音控制]

夏天来了,给自己做个智能小风扇吧 ESP8266+继电器+小电机=智能风扇[可通过手机app控制,也可通过小爱同学语音控制]

实现效果

智能小风扇

接下来开始实战教程

一、必备硬件与软件

1.软件部分

如图,各种需要的软件已经打包

下载地址:https://pan.baidu.com/s/1aMCTJkIw4lV5z_pxMxb8jA?pwd=6666

image-20240331173157853

2.硬件部分

电池盒,面包板,小电机+扇叶,ESP8226-01S,ESP-01/01S 继电器,ESP-01/01S 下载器(CH340C烧录器)

ESP8226-01S

image-20240331174014727

ESP-01/01S 继电器

image-20240331174031928

模块工作电压:DC 5V
继电器负载能力:10A 250VAC 10A 125VAC 10A 30VDC 10A 28VDC

ESP-01/01S 下载器(CH340C烧录器)

image-20240331174201724

二、实战教程

1.安装软件&导入库文件

(1)解压arduino-ide_2.3.2_Windows_64bit.zip文件

image-20240331174457768

(2)双击安装esp8266开发板

image-20240331174719475

(3)双击打开压arduino-ide

image-20240331174817347

(4)设置语言为中文

image-20240331175357365

(5)导入点灯科技库文件

image-20240331175052768

image-20240331175224296

2.下载电灯科技APP进行配置

APP下载地址:http://dd.clz.me:1080/blinker-2.6.5-3.apk

(1)添加设备

image-20240331180929820

image-20240331181011993

image-20240331181032366

image-20240331181053405

(2)复制配置到自己的开发板上

点击设备进入设置

image-20240331181241500

image-20240331181324958

image-20240331181620631

(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¨|÷}

image-20240331181840610

3.选择ESP8266开发板,修改程序

(1)选择ESP8266开发板

image-20240331175642185

(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)改好信息后,点击上传程序

image-20240331182118595

(2)上传成功标志

image-20240331182342326

(3)接线

BlinkerMIOT.attachQuery(miotQuery);

}

void loop() {
Blinker.run();
}

4.烧录程序

(1)改好信息后,点击上传程序

image-20240331182118595

(2)上传成功标志
image-20240331182342326

(3)接线

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值