愛伊米

ESP-01S接入小愛同學控制 示例程式碼1

ESP-01S

為安信可封裝的ESP8266系列模組之一,使用簡單方便,搭配繼電器模組、溫溼度模組,輕鬆DIY屬於自己的開關插座、溫溼度計。

ESP-01S接入小愛同學控制 示例程式碼1

ESP-01S接入小愛同學控制 示例程式碼1

ESP-01S接入小愛同學控制 示例程式碼1

以下為透過點燈科技blinker平臺,接入小愛同學控制繼電器開關的示例程式碼:

/* ***************************************************************** * * 簡介:ESP-01S+Relay,繼電器低電平觸發,使用ESP-01S GPIO0引腳控制 * 作者:MOLUN * 抖音:tymishop * 部落格:https://molun。cf/ * * *****************************************************************/

#define BLINKER_WIFI#define BLINKER_MIOT_OUTLET

#include

char auth[] = “cb5******1cf”; // Blinker APP中新增裝置時生成的Secret Keychar ssid[] = “tymishop”; // WIFI名稱char pswd[] = “155****2425”; // WIFI密碼

// 新建元件物件BlinkerButton Button1(“btn-abc”);BlinkerNumber Number1(“num-abc”);

int counter = 0;

int GPIO = 0; // 定義繼電器輸入引腳為GPIO/0

bool oState = false;

// 按下按鍵即會執行該函式void button1_callback(const String & state){ BLINKER_LOG(“get button state: ”, state); digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); digitalWrite(GPIO, !digitalRead(GPIO));}

// 小愛電源類的操作介面// 使用者自定義電源類操作的回撥函式void miotPowerState(const String & state){ BLINKER_LOG(“need set power state: ”, state);

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

BlinkerMIOT。powerState(“on”); BlinkerMIOT。print();

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

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); counter++; Number1。print(counter);

Blinker。vibrate();

uint32_t BlinkerTime = millis();

Blinker。print(“millis”, BlinkerTime);}

void setup(){ // 初始化串列埠 Serial。begin(115200); BLINKER_DEBUG。stream(Serial); BLINKER_DEBUG。debugAll();

// 初始化有LED的IO pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); pinMode(GPIO, OUTPUT); // 設定GPIO0為輸出引腳 digitalWrite(GPIO, HIGH); // 設定GPIO0為高電位

// 初始化blinker Blinker。begin(auth, ssid, pswd); Blinker。attachData(dataRead);

Button1。attach(button1_callback);

BlinkerMIOT。attachPowerState(miotPowerState); // 註冊小愛電源類操作回撥函式 BlinkerMIOT。attachQuery(miotQuery); // 註冊小愛裝置查詢的回撥函式}

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