前言
在前面已經(jīng)將Arduino配置esp8266開發(fā)環(huán)境以及esp8266接入Blinker介紹了以后只是能在手機端看到在線。本文介紹如何給esp8266添加功能。
提示:本篇文章參考點燈科技官方文檔進行應(yīng)用 https://diandeng.tech/doc/arduino-support
一、按鍵控制
一切開始都要從點燈開始,接下來介紹如何用點燈科技APP遠程控制一個燈
1.APP設(shè)置
要使用APP遠程控制一個燈就要先在界面當(dāng)中添加開關(guān)組件,如下圖操作。
上圖為按鍵編輯界面,圖中組件名是需要添加到代碼中,按鍵類型中普通按鍵就是相當(dāng)于一個按鈕,開關(guān)即是兩種狀態(tài)(on或者off),其他的都可以自己設(shè)置。
1.代碼配置
完整代碼如下:
#define BLINKER_WIFI//以WiFi方式接入blinker
#include <Blinker.h>
#include <Wire.h>
char auth[] = "*********";//設(shè)備密鑰
char ssid[] = "*********";//WiFi名稱
char pswd[] = "*********";//WiFi密碼
// 新建組件對象
BlinkerButton Button1("btn-n40");
// 按下按鍵即會執(zhí)行該函數(shù)
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
if (state=="on") {
digitalWrite(LED_BUILTIN, LOW);
// 反饋開關(guān)狀態(tài)
Button1.print("on");
} else if(state=="off"){
digitalWrite(LED_BUILTIN, HIGH);
// 反饋開關(guān)狀態(tài)
Button1.print("off");
}
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, !LOW);
Button1.attach(button1_callback);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
}
void loop() {
//Blinker運行
Blinker.run();
}
將在APP中添加的按鍵的組件鍵名添加到新建組件對象中
BlinkerButton Button1("btn-n40");
將代碼燒錄到板子上遠行,就能通過按鍵控制esp8266自帶的燈啦,同樣需要改變按鍵功能也可以在按鍵函數(shù)中進行修改。
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
if (state=="on") {
digitalWrite(LED_BUILTIN, LOW);
// 反饋開關(guān)狀態(tài)
Button1.print("on");
} else if(state=="off"){
digitalWrite(LED_BUILTIN, HIGH);
// 反饋開關(guān)狀態(tài)
Button1.print("off");
}
}
其中反饋開關(guān)狀態(tài)是反饋到APP端,因為我設(shè)置按鍵為開關(guān)按鍵,所以當(dāng)狀態(tài)改變時手機端也會跟著改變。
二、數(shù)據(jù)反饋
esp8266讀取到的數(shù)據(jù)上傳到點燈科技APP中進行顯示。
1.APP配置
跟按鍵控制一樣要使用APP遠程顯示esp8266數(shù)據(jù)就要先在界面當(dāng)中添加數(shù)據(jù)組件,如下圖操作。
上圖為數(shù)據(jù)組件編輯界面,圖中組件名是需要添加到代碼中,其他的都可以自己設(shè)置。
2.代碼配置
代碼如下(示例):
#define BLINKER_WIFI//以WiFi方式接入blinker
#include <Blinker.h>
#include <Wire.h>
char auth[] = "*********";//設(shè)備密鑰
char ssid[] = "*********";//WiFi名稱
char pswd[] = "*********";//WiFi密碼
// 新建組件對象
BlinkerNumber num("num-vks");
// 心跳包函數(shù)
void heartbeat()
{
num.print(num_read);
sl.print(sl_read);
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
//心跳包函數(shù)
Blinker.attachHeartbeat(heartbeat);
}
void loop() {
Blinker.run();
for(float i=100;i>=0;i=i-0.01)
{
float h = i;
if (isnan(h))
{
BLINKER_LOG("Failed to read from DHT sensor!");
}
else
{
BLINKER_LOG("numdity: ", h, " %");
num_read = h;
}
Blinker.delay(1000);
}
}
代碼中我并沒有真正讀取數(shù)據(jù)而是用循環(huán)函數(shù)來模擬電量變化的數(shù)據(jù),將代碼燒錄到板子中,打開點燈科技就可以看到數(shù)據(jù)顯示。
三、給微信發(fā)送消息
在點燈科技官方文檔中有給微信發(fā)送消息的功能。
Blinker.wechat("Title: button", "State: pressed", "Message: hello blinker");
模板消息中依次為標題, 狀態(tài), 消息內(nèi)容
注: 每個用戶微信推送使用限制為 10條/天/人
*限制 1次/分鐘
使用此功能需要提前綁定微信公眾號,綁定流程如下:
1、關(guān)注 點燈物聯(lián) 微信公眾號
2、打開 點燈物聯(lián) 微信公眾號, 點擊主頁右下角 Blinker
3、輸入賬號密碼完成綁定
示例
用此功能開發(fā)了一個火焰檢測報警裝置進行演示,代碼如下:
#define BLINKER_WIFI//以WiFi方式接入blinker
#include <Blinker.h>
#include <Wire.h>
char auth[] = "*********";//設(shè)備密鑰
char ssid[] = "*********";//WiFi名稱
char pswd[] = "*********";//WiFi密碼
#define hy 13
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
pinMode(LED_BUILTIN, OUTPUT);
pinMode(hy,INPUT);
digitalWrite(LED_BUILTIN, !LOW);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
}
void loop()
{
Blinker.run();
int dhy;
dhy=digitalRead(hy);
if(dhy==0)
{
Blinker.wechat("hello word", "明火警告", "發(fā)現(xiàn)明火,處理完成后請重啟");
while(1)
{
digitalWrite(LED_BUILTIN, LOW);
Blinker.delay(1000);
BLINKER_LOG("等待重啟");
digitalWrite(LED_BUILTIN, !LOW);
Blinker.delay(1000);
} //等待重啟
}
Blinker.delay(1000);
}
當(dāng)火焰?zhèn)鞲衅鳈z測到明火后便會向微信發(fā)送一條消息,如下圖所示:文章來源:http://www.zghlxwxcb.cn/news/detail-436201.html
總結(jié)
目前用esp8266結(jié)合Blinker實現(xiàn)遠程控制、數(shù)據(jù)回傳、微信提醒等功能基本滿足目前遠程控制需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-436201.html
到了這里,關(guān)于esp8266連接blinker進行控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!