/* *****************************************************************
*
* Download latest Blinker library here:
* https://github.com/blinker-iot/blinker-library/archive/master.zip
*
*
* Blinker is a cross-hardware, cross-platform solution for the IoT.
* It provides APP, device and server support,
* and uses public cloud services for data transmission and storage.
* It can be used in smart home, data monitoring and other fields
* to help users build Internet of Things projects better and faster.
*
* Make sure installed 2.7.4 or later ESP8266/Arduino package,
* if use ESP8266 with Blinker.
* https://github.com/esp8266/Arduino/releases
*
* Make sure installed 1.0.5 or later ESP32/Arduino package,
* if use ESP32 with Blinker.
* https://github.com/espressif/arduino-esp32/releases
*
* Docs: https://diandeng.tech/doc
*
*
* *****************************************************************
*
* Blinker 庫下載地址:
* https://github.com/blinker-iot/blinker-library/archive/master.zip
*
* Blinker 是一套跨硬件、跨平臺的物聯網解決方案,提供APP端、設備端、
* 服務器端支持,使用公有云服務進行數據傳輸存儲。可用於智能家居、
* 數據監測等領域,可以幫助用戶更好更快地搭建物聯網項目。
*
* 如果使用 ESP8266 接入 Blinker,
* 請確保安裝了 2.7.4 或更新的 ESP8266/Arduino 支持包。
* https://github.com/esp8266/Arduino/releases
*
* 如果使用 ESP32 接入 Blinker,
* 請確保安裝了 1.0.5 或更新的 ESP32/Arduino 支持包。
* https://github.com/espressif/arduino-esp32/releases
*
* 文檔: https://diandeng.tech/doc
*
* 繼電器
* 8266
* *****************************************************************/
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = "";
char ssid[] = "";
char pswd[] = "";
// 新建組件對象
BlinkerButton Button1("btn-open");
BlinkerButton Button2("btn-close");
BlinkerButton Button3("btn-abd");
BlinkerNumber Number1("num-abc");
int GPIO = 0;
int counter = 0;
// 關閉水泵
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(GPIO, HIGH);
Blinker.delay(500);//操作延時
}
// 開水泵
void button2_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(GPIO, LOW);
Blinker.delay(500);//操作延時
}
//led燈
void button3_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
// 如果未綁定的組件被觸發,則會執行其中內容
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
// 初始化有LED的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// 初始化控制繼電器的GPIO引腳
pinMode(GPIO, OUTPUT);
//digitalWrite(GPIO, LOW);//低電平默認繼電器關閉
digitalWrite(GPIO, HIGH);//低電平默認繼電器關閉
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
}
void loop() {
Blinker.run();
}