ITPub博客

首页 > 数据库 > 数据库开发技术 > Esp8266配合小爱控制SG90舵机

Esp8266配合小爱控制SG90舵机

原创 数据库开发技术 作者:逍遥子 时间:2023-05-23 08:02:38 0 删除 编辑

本文,我们还是用小爱同学来实现操控SG90舵机。从而简单的实现利用舵机开门,开灯等一些列骚操作。

材料准备

  • ESP8266
  • SG90舵机
  • 杜邦线

线路连接

舵机三根电线 黄线->接信号(D4),红线->接正极(5V),褐线->接负极(G)

效果

代码

#include <Servo.h> 
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Blinker.h>
 
char auth[] = "064****a9";   //binker key
char ssid[] = "PDCN";             //wifi名称
char pswd[] = "1234567890";      //wifi密码
 
// 新建组件对象
BlinkerButton Button1("btn-max");   //最大值按钮
BlinkerButton Button2("btn-min");   //最小值按钮
Servo myservo;
BlinkerSlider Slider3("ser-num");   //实时位置 滑块 数据键名  范围1-180

int servo_max,servo_min,ser_num,time_num;
  
void button1_callback(const String & state) {    //最大值按钮功能
    BLINKER_LOG("get button state: ", servo_max);
    myservo.write(servo_max);
    Blinker.vibrate();
}
  
void button2_callback(const String & state) {   //最小值按钮功能
    BLINKER_LOG("get button state: ", servo_min); 
    myservo.write(servo_min);
    Blinker.vibrate();
}
void slider3_callback(int32_t value) //滑块功能
{
    ser_num = value;
    myservo.write(ser_num);
    Blinker.delay(100);
    BLINKER_LOG("get slider value: ", value);
}
//小爱功能
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
    BLINKER_LOG("get button state: ", servo_max);
    myservo.write(servo_max);
    Blinker.vibrate();
    }
    else if (state == BLINKER_CMD_OFF) {
    BLINKER_LOG("get button state: ", servo_min); 
    myservo.write(servo_min);
    Blinker.vibrate();
    }
}



void setup() {


    Serial.begin(115200);    
    BLINKER_DEBUG.stream(Serial);
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Slider3.attach(slider3_callback);
    BlinkerMIOT.attachPowerState(miotPowerState);
    myservo.attach(2); //servo.attach():设置舵机数据引脚
    myservo.write(10); //servo.write():设置转动角度
    servo_max=150;//旋转的度数,这里我的范围为0-150°
    servo_min=0;
    time_num=500;

}

void loop() {

  Blinker.run();

    
}

关于引脚 可以参考下图

效果

更多精彩文章 欢迎关注我们

原文作者:Kali笔记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-01-22

  • 博文量
    760
  • 访问量
    444513