ESP8266结合blinker使用小爱同学电脑远程开机-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6956|回复: 10

ESP8266结合blinker使用小爱同学电脑远程开机

[复制链接]
发表于 2021-6-6 19:20 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2021-6-6 22:19 编辑

blinker是点灯科技开发的面向广大物联网爱好者和创客公司研发的APP,可以安全快速有效的部署物联网解决方案。跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储。
材料清单:一枚ESP8266,一台小米手机或者小米智能音箱,两根跳线。
接线:gpio2和gnd接电脑主板开机跳线对柱。
1,电脑环境配置:
电脑端安装Arduino IDE 1.8.15,Arduino core for ESP8266 WiFi chip 3.0.0,blinker 库版本 0.3.8
远程开机3.jpg

远程开机4.jpg
2,手机端配置:
(A)blinker APP 2.5.5配置,设置网络接入的独立设备,选择点灯科技的服务器,在APP设备管理中将名称改为电脑远程开机,牢记密钥,

远程开机1a.jpg

(B)小爱音箱APP配置,进入智能家居,添加点灯科技,然后同步设备。刚才在blinker上设置的电脑远程开机已经妥妥的同步到了小爱音箱APP。

远程开机2a.jpg


3,blinker API语音识别应用简介:点灯科技小爱同学接口函数,目前支持多彩灯,单插座,多联插座,传感器,风扇,空气净化器等的语音智能控制。电脑远程开机也就开机和关机两个动作,可以理解成单插座(outlet)就OK了。

4,实际操作:
ESP8266程序如下:
[pre]#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET

#include <Blinker.h>

char auth[] = "blinker设备密钥";
char ssid[] = "电脑环境的WiFi名称";
char pswd[] = "电脑环境的WiFi密码";

bool oState = false;

void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, HIGH);

        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();

        oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, LOW);

        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();
}[/pre]
按下小米手机AI键或者对着小爱音箱,说:小爱同学打开电脑远程开机。ESP8266接在gpio2输出高电平,电脑就开机了。如果说:小爱同学关闭电脑远程开机,ESP8266接在gpio2输出低电平,电脑就关机了。本地ESP8266端串口显示点灯科技服务器对语音智能识别动作后回文的显示,如下图。
远成电脑5.jpg


发表于 2021-6-7 18:14 | 显示全部楼层
大佬,我插在继电器上行吗
发表于 2021-6-7 18:19 | 显示全部楼层
成功了,牛逼大佬牛逼
 楼主| 发表于 2021-6-7 23:01 | 显示全部楼层
youdongkiang 发表于 2021-6-7 18:19
成功了,牛逼大佬牛逼

一起学习,一起进步。
发表于 2021-6-26 17:32 | 显示全部楼层
这样也能打开电脑???有些太牵强太肤浅了!!!即使是物理打开,那打开电脑是点动模式,你程序不符合!该该吧!还有光是语音控制也不行,需要APP手动的也同时存在,最好还有机械按钮.....
 楼主| 发表于 2021-6-26 21:21 | 显示全部楼层
ESP8266的GPIO口接在电脑的开机柱上,给高电平就是等于手动按下开机键。blinker使用小爱同学是利用小米手机的智能语音识别开启已经关联的API,远程MQTT发送指令。youdongkiang也做出来了,用事实说话。
发表于 2021-6-27 06:36 | 显示全部楼层
你打开电脑时,你的手指一直按下不挪开了???试试看会怎样?
发表于 2021-7-25 18:31 | 显示全部楼层
楼主,问一下,你的设备会异常离线吗?我做了一个开机棒,刚上电没啥问题,但是运行一段时间后就离线没法上线了,只能重启
 楼主| 发表于 2021-7-26 23:52 | 显示全部楼层
林早睡 发表于 2021-7-25 18:31
楼主,问一下,你的设备会异常离线吗?我做了一个开机棒,刚上电没啥问题,但是运行一段时间后就离线没法上 ...

我没长时间远行过,只要可以开机就ok了。
发表于 2021-9-22 00:36 来自手机 | 显示全部楼层
这个太绕弯子了、直接一个esp01继电器不就OK了?话说远程打开电脑干什么事?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:46 , Processed in 0.196577 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表