ESP-01S
為安信可封裝的ESP8266系列模組之一,使用簡單方便,搭配繼電器模組、溫溼度模組,輕鬆DIY屬於自己的開關插座、溫溼度計。
以下為透過點燈科技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();}