Author:AXYZdong 自動化專業 工科男
有一點思考,有一點想法,有一點理性!
定個小小目標,努力成爲習慣!在最美的年華遇見更好的自己!
CSDN@AXYZdong,CSDN首發,AXYZdong原創
唯一博客更新的地址爲: 👉 AXYZdong的博客 👈
ESP8266(NodeMCU) + Blinker + 天貓精靈
【ESP8266 + Blinker +天貓精靈】讓天貓精靈開燈
文章目錄
文章基於 點燈|Blinker (點燈科技) 開源社區整理,並親身實踐,歡迎交流學習。
Blinker官網
:點我跳轉天貓精靈接入流程
:點我跳轉
1. 開發環境準備
1.1 Arduino開發環境
- 安裝地址:Arduino IDE
備註:安裝1.8.7或更新版本,這個軟件是免費使用的,直接在官網下載安裝最新版本即可。
1.2 安裝ESP8266的擴展
- 如果你的電腦能夠科學上網的話,使用這個方法很簡便,在首選項中輸入一個網址,然後添加庫即可。否則參考方法二。
-
啓動Arduino並打開“首選項”窗口。
-
輸入
https://arduino.esp8266.com/stable/package_esp8266com_index.json
- 從工具 主板菜單打開Boards Manager並安裝esp8266平臺(安裝後不要忘記從工具主板菜單中選擇ESP8266主板)。
方法二:下載打包的esp8266安裝包,直接運行並解壓即可。
鏈接:https://pan.baidu.com/s/1Eu0qhlP5xu6GgQMdwflfAw 提取碼:3x1f
備註:如果安裝過其他版本的esp8266sdk,請先刪除,再使用本安裝包,解壓完成後,再打開Arduino IDE,即可在 菜單欄 工具 開發板 中找到你使用的esp8266開發板
1.3 安裝 blinker Arduino庫
官網安裝 :點此下載
- Windows:將下載好的 blinker庫 解壓到 我的電腦 文檔 Arduino libraries 文件夾中
- Mac OS:將下載好的 blinker庫 解壓到 文稿 Arduino libraries 文件夾中
安裝成功之後重啓Arduino軟件,可以在示例的第三方庫庫中找到。
1.4 安裝 blinker APP
- Android下載:點我下載 或 在android應用商店搜索“blinker”下載安裝
- IOS下載:在app store中搜索
“blinker”
下載
2. 配置 App
2.1 在app中添加設備,獲取Secret Key
- 下載完 App 後註冊賬號
- 進入App,點擊右上角的
“+”
號,然後選擇添加設備
- 點擊選擇 Arduino WiFi接入
- 選擇要接入的服務商
- 複製申請到的
Secret Key
2.2 DIY界面
- 在設備列表頁,點擊設備圖標,進入設備控制面板
- 首次進入設備控制面板,會彈出嚮導頁
- 在嚮導頁點擊
載入示例
,即可載入示例組件
3. Arduino代碼編寫
打開Arduino IDE,通過 文件 示例 Blinker AliGenie_OUTLET 打開例程
在程序中找到如下變量,填入你申請到的 Secret Key(auth)
和要連接的WiFi熱點名 (ssid)
、密碼(pswd)
,如:
char auth[] = "abcdefghijkl"; //上一步中在app中獲取到的Secret Key
char ssid[] = "abcdefg"; //你的WiFi熱點名稱
char pswd[] = "123456789"; //你的WiFi密碼
例程中宏 LED_BUILTIN
爲開發板廠家定義的連接板載LED的引腳,如果你選擇的開發板沒有定義LED_BUILTIN
,可以自行修改爲你要使用的引腳
NodeMCU(CH340串口)開發板有一個LED,接在 GPIO16 也就是 D0 口
只需在例程中加個宏定義,並將所有的LED_BUILTIN
改掉
#define LED D0
- 完整代碼(親測有用)
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_ALIGENIE_OUTLET
#include <Blinker.h>
char auth[] = "abcdefghijkl"; //上一步中在app中獲取到的Secret Key
char ssid[] = "abcdefg"; //你的WiFi熱點名稱
char pswd[] = "123456789"; //你的WiFi密碼
bool oState = false; //天貓精靈插座的狀態
#define LED D0
BlinkerButton Button1("btn-abc"); // 新建組件對象
// 按下按鍵即會執行該函數
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(LED, !digitalRead(LED));
Blinker.vibrate();
}
//天貓精靈電源的狀態
void aligeniePowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
digitalWrite(LED, HIGH);
BlinkerAliGenie.powerState("on");
BlinkerAliGenie.print();
oState = true;
}
else if (state == BLINKER_CMD_OFF) {
digitalWrite(LED, LOW);
BlinkerAliGenie.powerState("off");
BlinkerAliGenie.print();
oState = false;
}
}
//天貓精靈狀態查詢
void aligenieQuery(int32_t queryCode)
{
BLINKER_LOG("AliGenie Query codes: ", queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_ALL_NUMBER :
BLINKER_LOG("AliGenie Query All");
BlinkerAliGenie.powerState(oState ? "on" : "off");
BlinkerAliGenie.print();
break;
case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
BLINKER_LOG("AliGenie Query Power State");
BlinkerAliGenie.powerState(oState ? "on" : "off");
BlinkerAliGenie.print();
break;
default :
BlinkerAliGenie.powerState(oState ? "on" : "off");
BlinkerAliGenie.print();
break;
}
}
//數據讀取
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print(BlinkerTime);
Blinker.print("millis", BlinkerTime);
}
// 初始化串口,並開啓調試信息
void setup()
{
Serial.begin(115200);
#if defined(BLINKER_PRINT)
BLINKER_DEBUG.stream(BLINKER_PRINT);
#endif
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
BlinkerAliGenie.attachPowerState(aligeniePowerState);
BlinkerAliGenie.attachQuery(aligenieQuery);
Button1.attach(button1_callback);
}
void loop()
{
Blinker.run();
}
編譯後上傳就OK了。
4. 天貓精靈接入流程
官網鏈接
:點我進入
5. 總結
雖然這只是一個點燈的小歷程,但是能向外圍擴展的東西很多。
比如可以用來控制繼電器,從而來控制各種家電,實現智能家居等。
知道的越多,不知道的也就越多!
【參考文獻】
[1]:https://blog.csdn.net/qq_36243942/article/details/104833831
[2]:https://diandeng.tech/doc/tmallgenie
[3]:開發環境準備 中的部分圖片來源於 這篇文章
本次的分享就到這裏
好書不厭百回讀,熟讀自知其中意。將學習成爲習慣,用知識改變命運,用博客見證成長,用行動證明努力。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏”
一鍵三連哦!
聽說 👉 點贊 👈 的人運氣不會太差,每一天都會元氣滿滿呦!^ _ ^ ❤️ ❤️ ❤️
碼字不易,大家的支持就是我堅持下去的動力。點贊後不要忘了👉關注👈我哦!
更多精彩內容請前往 AXYZdong的博客