小爱同学控制开关灯

笔记
171 0
在整理东西时,我发现了一个闲置的开发版ESP8266。这个小小的芯片,曾经陪伴我度过了许多探索物联网的时光。我忽然想到,可以用它来实现宿舍远程开关灯的功能。

材料清单

ESP8266(CH340)

SG90舵机(0-180度通用)

杜邦线(公对母)

接线端子(一进二出)

应用软件

米家

小爱同学

点灯·blinker

编程软件

Arduino

操作步骤

1.接线步骤,示意图

线路图.png

2.电脑操作,示意图

QQ截图202310270100145.png

代码

#define BLINKER_MIOT_LIGHT
#define BLINKER_WIFI

#include <Blinker.h>
#include<Servo.h>
char auth[] = "";//电灯科技的key
char ssid[] = "402";//wifi名称
char pswd[] = "";//wifi密码

// 新建组件对象
//BlinkerButton Button1("btn-z4h");//把点灯科技的组件键名输入进去
//BlinkerNumber Number1("num-abc");
Servo myservo1,myservo2;//定义舵机对象
//int counter = 0;

// 按下按键即会执行该函数
//void button1_callback(const String & state) {
//    BLINKER_LOG("get button state: ", state);
//   // digitalWrite(D4, !digitalRead(D4));
//    myservo1.write(180);
//    delay(2000);
//    myservo1.write(0);
//}
void mioPowerState(const String & state){
  BLINKER_LOG("ee",state);
  if(state==BLINKER_CMD_OFF){//如果语音接受到的是关灯就执行的动作
    //digitalWrite(D4, !digitalRead(D4));
    myservo1.write(90);//把舵机1设置为90度
    BlinkerMIOT.powerState("off");//反馈状态
    BlinkerMIOT.print();
     delay(2000);//延迟2秒
    myservo1.write(0);//把舵机1设置为0度
 }
 else if(state==BLINKER_CMD_ON){//如果语音接受到的是开灯就执行的动作
   //digitalWrite(D4, !digitalRead(D4));
 
    myservo2.write(90);//把舵机2设置为90度
    BlinkerMIOT.powerState("on");//反馈状态
   BlinkerMIOT.print();  
      delay(2000);//延迟2秒
    myservo2.write(0);//把舵机2设置为0度
 }
}
// 如果未绑定的组件被触发,则会执行其中内容
//void dataRead(const String & data)
//{
//    BLINKER_LOG("Blinker readString: ", data);
//    counter++;
//    Number1.print(counter);
//}

void setup() {
    
 //   Serial.begin(115200);// 初始化串口
    myservo1.attach(D3);//舵机信号线接口
    myservo2.attach(D4);
    myservo1.write(0);//把舵机初始角度设为0度
    myservo2.write(0);
    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif
    
    // 初始化有LED的IO
   // pinMode(D4, OUTPUT);
   // digitalWrite(D4, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);//连接wifi以及电灯科技
   // Serial.print("li");
 //   Blinker.attachData(dataRead);
  //  Button1.attach(button1_callback);
    BlinkerMIOT.attachPowerState(mioPowerState);
}

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

3.手机操作,示意图

最后更新 2023-10-27
评论 ( 0 )
OωO
隐私评论