![實體腳位](https://itcgs.tcgs.tc.edu.tw/ischool/resources/WID_121_1_d0d8660ed0b4309f2198e7213a58ac79bfa5cc90/CLS_121_1_bdffbc2262499f25f46db2a763207641be6dfc96/651c024cb43f130129779b4cbb0d5b55.jpg)
Datastreams 是 Device 裝置與 Blynk 雲端之間資料傳輸的通道,以 Datastreams 直接讀取或是設定控制板的實體腳位,雖較為簡單直接,但這會綁定特定開發板之腳位,如日後改使用不同的開發板,可能需要重新修改對應,且使用實體腳位無法搭配程式做更多的程序動作,較無擴展性與靈活性,因此建議 Datastreams 使用虛擬腳位。
NodeMCU 上有一個内建的 LED 燈,它連接到 ESP8266 D4(GPIO2)的腳位,此範例為 Blynk 以 Datastreams 實體腳位連結 GPIO2 直接控制 NodeMCU 上內建的 LED 燈。
![Datastreams](https://itcgs.tcgs.tc.edu.tw/ischool/resources/WID_121_1_d0d8660ed0b4309f2198e7213a58ac79bfa5cc90/CLS_121_1_bdffbc2262499f25f46db2a763207641be6dfc96/287dd987b0cf443e5ee12ffad2f07cab.jpg)
![LED Pin](https://itcgs.tcgs.tc.edu.tw/ischool/resources/WID_121_1_d0d8660ed0b4309f2198e7213a58ac79bfa5cc90/CLS_121_1_bdffbc2262499f25f46db2a763207641be6dfc96/95937cecff2972e3b6a677b2193e7369.jpg)
![LED Datastreams](https://itcgs.tcgs.tc.edu.tw/ischool/resources/WID_121_1_d0d8660ed0b4309f2198e7213a58ac79bfa5cc90/CLS_121_1_bdffbc2262499f25f46db2a763207641be6dfc96/de7616018ac0545498a6085f5c29ad69.jpg)
![Blynk Blink](https://itcgs.tcgs.tc.edu.tw/ischool/resources/WID_121_1_d0d8660ed0b4309f2198e7213a58ac79bfa5cc90/CLS_121_1_6e290552a629f7922b879bd9042eeec9ef99c4ba/4521d8bffd14d5ae4f32459a986942f8.jpg)
查看 Template ID、Template Name、AuthToken 資訊:
![BLYNK_TEMPLATE_ID](https://itcgs.tcgs.tc.edu.tw/ischool/resources/WID_121_1_d0d8660ed0b4309f2198e7213a58ac79bfa5cc90/CLS_121_1_ba7b53820b55fa4ff8b31ae900319f2354636b56/404103e0d849fdf5415a6c7f43072fd9.jpg)
// Template ID、Template Name、Auth Token 一定要放在程式的最前面
#define BLYNK_TEMPLATE_ID "TMPLoKYO0Ki-"
#define BLYNK_TEMPLATE_NAME "Quickstart Template"
#define BLYNK_AUTH_TOKEN "JW2j1JiRW1br2gR6JdwIPk9bo8NGSRyb"
#include "ESP8266WiFi.h" // 匯入WiFi程式庫
#include "BlynkSimpleEsp8266.h" // 匯入Blynk程式庫
char ssid[] = "TCGS-IOT"; // 無線基地台SSID名稱
char pass[] = "22205108"; // 無線基地台密碼
void setup()
{
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); // 連接到Blynk伺服器
}
void loop()
{
Blynk.run(); // 執行Blynk
}