esp8266开发线路

线路一: 掉发型
需要自己写相关传感器的代码,解决各种依赖库。需要购买公网服务器,解决内网穿透等问题。耗时耗力,工作效率差。
线路二:有手型
即有手即可,我们可以借助blinker等平台连接我们的设备。官方提供的代码库比较丰富,开发者也比较多。无需购买公网服务器,并且和国内各个手机平台的语音助手对接比较方便。如小爱同学、天猫精灵等。

前期准备

硬件准备

  • esp8266 (几块钱一个 还包邮 必须)
  • 杜邦线 (必须
  • 传感器 马达 舵机等 (根据你的实际情况购买)

软件准备

  • Arduino IDE
  • blinker APP(用于操作物联网设备)

环境配置

运行开发工具Arduino IDE 点击文件-首选项-开发板管理地址填写下面域名:https://arduino.me/packages/esp8266.json(后期可根据自身实际情况,自行增减。)
开发环境
然后点击工具-选择其他开发板根据你的板子情况如我的是8266进行搜索。


选择对应的板子后,自动下载或手动下载对应的库(推荐手动下载,网络不行的话就挂代理)

加载Blinker库
因为我们要基于Blinker开发,因而需要下载他的库,下载地址(https://diandeng.tech/dev)下载完成后,通过Arduino IDE 菜单>项目>加载库>添加.ZIP库 导入到库,如图:

到此,开发环境配置完成。

Hello Word

01 在app中添加设备,获取Secret Key

进入App,点击右上角的“+”号,然后选择 添加设备点击选择Arduino > WiFi接入复制申请到的Secret Key

02 编译并上传示例程序

打开Arduino IDE,通过 文件>示例>Blinker>Blinker_Hello/Hello_WiFi 打开例子。
在程序中找到如下变量,填入您申请到的Secret Key(auth)和要连接的WiFi热点名(ssid)、密码(pswd)

char auth[] = "abcdefghijkl"; //上一步中在app中获取到的Secret Key
char ssid[] = "逍遥子大表哥"; //您的WiFi热点名称
char pswd[] = "123456789"; //您的WiFi密码

配置完成后,先编译后上传。

然后你在手机APP中就可以看到设备已经上线了。

当然名称和图标都是可以改的。

03 DIY界面

在设备列表页,点击设备图标,进入设备控制面板,首次进入设备控制面板,会弹出向导页,在向导页点击 载入示例,即可载入示例组件。

实战之基于ESP8266的远程开关机

首先来看看最终效果吧。

准备

  • esp8266开发板
  • 杜邦线
  • 电压表(可选)
  • 充电宝(可选)

    食用方法

    编译下面代码到固件。两个线一头连接开发板的GND(负极)和GPIO0一头连接主板的电源插口。

#define BLINKER_WIFI 
#define BLINKER_MIOT_OUTLET

#include 
char auth[] = "5fdb51bc1d31";
char ssid[] = "PDCN";
char pswd[] = "1234567890";
int GPIO = 0; #定义脚针为gpio0
// 新建按钮对象 和你diy页面中按钮的名字一样,即为kali
BlinkerButton Button1("kali");
int counter = 0;
//diy按钮的代码,如果你只想用小爱,这里可以直接删掉。
void button1_callback(const String & state)
{
//开机事件
  BLINKER_LOG("get button state: ", state);
  if (state == BLINKER_CMD_BUTTON_TAP) {//响应短按
    if (digitalRead(LED_BUILTIN) == HIGH) { //IF 高电平状态
      digitalWrite(LED_BUILTIN, LOW);  //灯灭
      digitalWrite(GPIO, HIGH);  //关闭高电平
      BLINKER_LOG("Button tap!");
     delay(300);  //定义3s
     digitalWrite(LED_BUILTIN, HIGH); //重新启动高电平
      digitalWrite(GPIO, LOW);  //高电平输入灯亮
      Button1.color("#FFC800");
      Button1.text("运行中");
      Button1.print();
    }

    
  }
//关机事件
  else if (state == BLINKER_CMD_BUTTON_PRESSUP) {//响应长按 初始化状态为关机

    if (digitalRead(LED_BUILTIN) == LOW) { //若电脑是开启状态(电脑通过APP启动)
       digitalWrite(LED_BUILTIN, LOW);//继电器接通
      BLINKER_LOG("Button pressed!");
      Blinker.delay(5000);
      digitalWrite(LED_BUILTIN, HIGH);//eps-01s灯灭
      digitalWrite(GPIO, LOW);//5秒后继电器断开,相当于长按电脑开机键5秒
      Button1.color("#CCCCCC");
      Button1.text("初始化");
      Button1.print();
    }
    
  }
}
//按钮事件结束
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}
//引入小爱
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);
    if (state == BLINKER_CMD_ON) {
       digitalWrite(LED_BUILTIN, LOW);
        BlinkerMIOT.powerState("off");
        delay(500); 
        digitalWrite(LED_BUILTIN, HIGH);
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
       
    }
    else if (state == BLINKER_CMD_OFF) { 
         digitalWrite(LED_BUILTIN, LOW);
        BlinkerMIOT.powerState("off");   
        BlinkerMIOT.print();
    }
}

void setup()
{
    // 初始化串口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback); //初始化按钮的参数
    BlinkerMIOT.attachPowerState(miotPowerState);//初始化小爱的参数
}

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

核心代码解读

digitalWrite(LED_BUILTIN, LOW);
BlinkerMIOT.powerState("off");
delay(500); 
digitalWrite(LED_BUILTIN, HIGH);
BlinkerMIOT.powerState("on");

电脑电脑的开机,两线接通头需断开连接。因此这里我加了时间参数delay(500); 先给设备通电,然后500ms后,在断电就行了。

面临的问题

因为电脑关机后,主板上也会没有点,给esp8266供电是个大问题。因此你需要借助电压表测量在电脑关机状态下,那个脚针存在3v以上的电压。然后利用主板给esp8266供电就行了。但是我的主板是二十年前的主板,一顿操作猛如虎,结果发现只有一个针脚电压0.8v。在没有办法的情况下,我用光猫的USB口直接给esp8266进行供电。算是解决了吧!

对接小爱

  • 1打开米家App。通过 我的>其他平台设备>点击添加>点灯科技>绑定账号 ,绑定blinker账号
  • 2.绑定成功后,支持小爱控制的blinker设备会出现在 我的>其他平台设备>点灯科技 设备列表中
  • 3.现在可以使用小爱控制该设备了

最后修改:2023 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏