(含代码)ESP8266+舵机 制作wifi灯控开关(arduino,点灯科技,小爱同学/天猫精灵实现)

目录

项目涉及的主代码

前言

一、环境搭建

二、开发步骤

1.注册点灯科技平台

2.在点灯科技平台注册设备,获取Secret Key

 3.在Arduino IDE中编写代码,写入ESP8266

4.编译固件,烧入到ESP8266中

5.将舵机连接至ESP8266

6.绑定小爱同学/天猫精灵

总结


项目涉及的主代码

度盘共享地址:

https://pan.baidu.com/s/1UB_7as3BYeOaI437SRX3QA   

提取码: 87cc 

CSDN共享地址:

小爱同学/天猫精灵控制舵机_基于ESP8266+Arduino+点灯科技-单片机文档类资源-CSDN下载小爱同学/天猫精灵控制舵机_基于ESP8266+Arduino+点灯科技,详情介绍:更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/u010102747/85313577

前言

使用ESP8266,连接点灯科技,绑定小爱同学或天猫精灵,控制舵机,实现远程开关灯操作。


一、环境搭建

需要搭建Arduino环境,并下载安装blinker-Arduino库

Arduino环境的搭建参考:

ESP32,ESP8266 Arduino环境搭建_无害菌的博客-CSDN博客_esp32 esp8266ESP32,ESP8266 arduino环境搭建,主要以ESP32为例https://blog.csdn.net/luckyfungi/article/details/117743983

Blinker—Arduino库的导入参考:

小爱同学脱离局域网远程控制开关?_弓长于水的博客-CSDN博客_小爱同学 远程控制小爱同学脱离局域网远程控制开关?这是几个月前做的一个小项目,也是从大佬那里学来的,为了防止忘记过程,自己做个记录,同时分享给需要的人这个项目需要用到的东西有:电脑端Arduino IDE,小米手机小爱同学,手机APP点灯·blinker,esp8266nodemcu,以及杜邦线面包板小灯1、Arduino下载地址:https://www.arduino.cc/en/Main/Software根据自己的系统安装合适的版本 我目前用的是1.8.9版本安装esp8266拓展,这里点灯科技提供了资源:hhttps://blog.csdn.net/qq_44419932/article/details/106131905

二、开发步骤

1.注册点灯科技平台

点灯科技-点灯物联网解决方案blinker是一套专业且快捷的、跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储。可用于多种领域,可以帮助用户更好更快地搭建物联网项目。https://www.diandeng.tech/home

2.在点灯科技平台注册设备,获取Secret Key

第一步,选择右上角加号添加设备

第二步,选择添加独立设备

第三步,选择网络接入

第四步,复制key,完成设备注册

 3.在Arduino IDE中编写代码,写入ESP8266

此处以“小爱同学”控制为例进行说明,“天猫精灵”控制方式相同,修改回调函数即可

必需修改的三个部分:点灯科技设备Key,wifi名称,wifi密码

选择修改的两个部分:打开时的舵机旋转角度,关闭时的舵机旋转角度

具体实现代码如下:

#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Servo.h>
#include <Blinker.h>
#define PIN_SERVO D0 //舵机信号线
 
Servo myservo;
 
char auth[] = "123";//修改为你的点灯科技设备Key
char ssid[] = "123";//Wifi名称
char pswd[] = "123";//Wifi密码
 
bool oState = false;

//小爱同学电源类回调
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);
    myservo.attach(PIN_SERVO);
 
    if (state == BLINKER_CMD_ON) {
        myservo.write(-45);//命令为打开时,控制舵机旋转角度
        delay(1000); 
 
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
 
        oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
        myservo.write(90);//命令为关闭时,控制舵机旋转角度
        delay(1000); 
 
        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();  
 
        oState = false;
    }
}

 //小爱同学语音命令反馈
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(oState ? "on" : "off");
            BlinkerMIOT.print();
            break;
        case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
            BLINKER_LOG("MIOT Query Power State");
            BlinkerMIOT.powerState(oState ? "on" : "off");
            BlinkerMIOT.print();
            break;
        default :
            BlinkerMIOT.powerState(oState ? "on" : "off");
            BlinkerMIOT.print();
            break;
    }
}
 
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
 
    Blinker.vibrate();
    
    uint32_t BlinkerTime = millis();
    
    Blinker.print("millis", BlinkerTime);
}
 
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
 
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
 
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    
    BlinkerMIOT.attachPowerState(miotPowerState);
    BlinkerMIOT.attachQuery(miotQuery);
}
 
void loop()
{
    Blinker.run();
}

天猫精灵版本的函数,请参考文章开头提供的源代码文件。 

4.编译固件,烧入到ESP8266中

 选择对应的COM口,并点击上传按钮,将固件烧录到硬件中,完毕后等待上传成功提示。

5.将舵机连接至ESP8266

ESP8266示意图

 舵机线路示意图

 线路定义:红色---VCC;棕色:GND;橙色:信号线 

实物连接图

代码中定义D0口为舵机信号线控制口,因此分别连接舵机的D0,3V,GND,完成连接后上电

6.绑定小爱同学/天猫精灵

小爱同学实现控制,需要下载米家APP,登陆账号后绑定点灯科技

 若使用天猫精灵实现,需要在天猫精灵APP中绑定点灯科技

完成设备绑定后,即可使用语音控制舵机,实现灯的开关控制。

例如:小爱同学,关闭开关 


总结

通过实验,学习通过Arduino编程实现对ESP8266的控制,实现相应效果。

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yali2388

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值