WF8266R.js Web DevKit

Web DevKit 包含了 Web APIs, Web Components, Web Socket 等等多種 Web 操作模式, 將 IoT(Internet of Things) 提升到 WoT(Web of Things)。依據實際需求和情節選擇適合的通訊方式和 WF8266R 溝通. 當然在你的網路環境中必需要連的到 WF8266R, 也就是說如果 WF8266R 取到的 IP 不是真實的, 那就無法在戶外或不同網域中連線到 WF8266R, 此時需要透過 MQTT 協定進行 操作.

服務 Port : 如果您發現無法由外網連線和控制, 請確定 MQTT 1883 和 9001 這2個 PORT 是否開啟

1. WEB : 80
2. WebSocket : 81
3. MQTT : 1883
4. MQTT for App : 9001
        


使用網址 Query string 的方式下達命令, 回傳 JSON 格式. 跨平台能力強, 如有要定時快速長時間要求資料時, 建議使用 Web Socket 穩定度較高


 /timer

Ver. 2018.02.13 增加

Write 內部計時器(無連網可用)

參數

id : 計時器編號 0-3 共四組(預設0)

pin : 資料腳位(預設 [0]:5, [1]:4, [2]:12, [3]:13)

sec : 秒數, 0:取消計時

type : 輸出電位模式0-4(預設2)

例如 : 使用第 1 組計時器, 5分鐘後將腳位12變換狀態

http://wf8266r.local/timer?id=0&pin=12&sec=300&type=2

回傳

{"eventTime":121528,"systemTime":116528,"pin":12,"type":2}

 /rc/send

Ver. 2017.08.06 增加

Write 發送 RC 315/433MHz 按鍵碼

參數

pin : 資料腳位(預設 14)

code : 按鍵碼

例如 : 由 14 腳送出按鍵碼 54631308

http://wf8266r.local/rc/send?code=54631308&pin=14

回傳

{"code":"54631308","pin":14}

 /rc/code

Ver. 2017.07.16 增加

Read RC 插座 315/433MHz 按鍵碼

參數

pin : 資料腳位(預設 14)

支援協定 SC5262 / SC5272 / HX2262 / HX2272 / PT2262 / PT2272 / EV1527 / RT1527 / FP1527 / HS1527 / HT6P20X

讀取 RC 315/433MHz 插座遙控器按鍵值

http://wf8266r.local/rc/code?pin=14

回傳

{"code":"5583296","pin":14}

 /key

Ver. 2017.06.11 增加

Read WFCloud Key

參數

token : 設備通行碼

註冊 WFCloud 使用權, 才能授權呼叫 文字命令

http://wf8266r.local/key?token=xxxx

查看已指定的 KEY

http://wf8266r.local/key

 /ktype

Ver. 2017.03.16 增加

Read 讀取熱電偶溫度(MAX6675 K)

參數

clk : 12, cs : 13, so : 14

例如:讀取目前溫度

http://wf8266r.local/ktype
{"C":24.50,"F":76.10}

 /socket

Ver. 2017.01.26 增加

Read TCP/IP Socket 連線

連線成功主動送出 產品別,SN

例如:連線到 Socket Server 192.168.31.59, Port 9999

http://wf8266r.local/socket?ip=192.168.31.59&port=9999
{"State":1}

 /socket/send

Ver. 2017.01.26 增加

Read 透過 TCP/IP Socket 傳送資料

參數 : text

例如: 傳送 ABC 到 SERVER

http://wf8266r.local/socket/send?text=ABC
{"ip":"192.168.31.59","text":"ABC"}

 /socket/stop

Ver. 2017.01.26 增加

Read 中止 TCP/IP Socket 連線

http://wf8266r.local/socket/stop
{"State":0}

 /renewip

Ver. 2017.01.26 增加

Read 套用自訂網路組態

例如:讀取自訂組態

http://wf8266r.local/renewip
{"IP":"192.168.31.106","CIP":"0.0.0.0","MASK":"255.255.255.0","GATEWAY":"192.168.31.1","DNS":"168.95.1.1"}

 /ipconfig

Ver. 2017.01.26 增加

Read 讀取或設定網路組態

參數

CIP : 自訂 IP

GW : Gateway, Default 192.168.1.1

MASK : 子網路, Default 255.255.255.0

DNS : DNS, Default 168.95.1.1

例如:讀取自訂組態

http://wf8266r.local/ipconfig
{"IP":"192.168.31.106","CIP":"0.0.0.0","MASK":"255.255.255.0","GATEWAY":"192.168.31.1","DNS":"168.95.1.1"}

例如:設定自訂 IP 192.168.31.101, Gateway 192.168.31.1, Mask 255.255.255.0, DNS 168.95.1.1

http://wf8266r.local/ipconfig?CIP=192.168.31.101&GW=192.168.31.1&MASK=255.255.255.0&DNS=168.95.1.1
{"IP":"192.168.31.106","CIP":"192.168.31.101","MASK":"255.255.255.0","GATEWAY":"192.168.31.1","DNS":"168.95.1.1"}

 /wfs

Ver. 2017.01.21 增加

Read 讀取 WF8266R.js Sensor 回傳資料

參數

type : 感測器名稱

  • RFID

http://wf8266r.local/wfs?type=RFID

 /pixel/init

Ver. 2016.11.03 增加

Write 初始化 WS2812(NeoPixel)

參數

num : LED 數量, 預設 8

預設 I2S 腳位 3(Rx)

例如 : 連接4顆 LED

http://wf8266r.local/pixel/init?num=4

 /pixel/set

Ver. 2016.11.03 增加

Write 寫入顯示色碼

參數

index : 0 ~ n, 位址從 1 開始算, 0 控制全部燈

r : 紅色 0~255

g : 綠色 0~255

b : 藍色 0~255

例如 : 控制第 1 顆顯示 最亮紅色

http://wf8266r.local/pixel/set?index=1&r=255

例如 : 控制全部顯示 最亮藍色

http://wf8266r.local/pixel/set?index=0&b=255

 /pixel/clear

Ver. 2016.11.03 增加

Write 全部關閉 WS2812(NeoPixel)

http://wf8266r.local/pixel/clear

 /time/show

Ver. 2016.10.23 增加

KD, WF8266T Write 時間顯示

打開 KD 和 WF8266T 時間顯示

http://wf8266r.local/time/show

 /time/off

Ver. 2016.10.23 增加

KD, WF8266T Write 關閉時間顯示

關閉 KD 和 WF8266T 時間顯示

http://wf8266r.local/time/off

 /encoder/init

Ver. 2016.08.31 增加

Read 初始 旋轉編碼器 Rotary Encoder

參數

a : 相位 A 腳位(預設12)

b : 相位 B 腳位(預設13)

ppr : 編碼器脈衝數(預設600)

circle : 輪子周長 cm (預設30公分)

http://wf8266r.local/encoder/init

回傳 JSON

{"a":12,"b":13,"ppr":600,"circle":30}

 /encoder/reset

Ver. 2016.08.31 增加

Read 重置 旋轉編碼器 Rotary Encoder

http://wf8266r.local/encoder/reset

回傳 JSON

{"countA":0,"countB":0,"cmA":0,"cmB":0,"cm":0,"yd":0,"ft":0}

 /encoder/value

Ver. 2016.08.31 增加

Read 取得旋轉編碼器資料

http://wf8266r.local/encoder/value

回傳 JSON

countA/B : 順/逆 時脈衝數

cmA/B : 順/逆 時累計公分

cm : 累計 公分

yd : 累計 碼

ft : 累計 呎

{"countA":31304,"countB":1,"cmA":1565.20,"cmB":0.05,"cm":1565.15,"yd":17.12,"ft":51.35}

 /acs712

Ver. 2017.03.19 修改

Read 電流檢測

例如 : 開啟 ACS712-30A 電流計算

http://wf8266r.local/acs712

回傳 JSON

A : 安培數

AT : 最大安培數

W : 功率

LastHour : 前小時

LastDay : 昨日

AVG : 日平均

{"adc":620,"A":0.13,"AT":8.13,"W":13.75,"LastHour":0.00,"LastDay":0.00,"AVG":2.37}

 /tone/play

Ver. 2016.08.05 增加

Write Buzzer 發出音調

參數 :

pin : 發聲腳位(預設13)

f : 頻率(預設 523)

t : 時長(預設 1000,單位毫秒)

例如 : 13 腳位發出 1 秒 Do(523) 的聲音

http://wf8266r.local/tone/play?pin=13&f=523&t=1000

回傳 JSON

{"pin":13,"f":523,"t":1000}

 /tone/off

Ver. 2016.08.05 增加

Write 關閉 Buzzer 音調


 /relaystate/on

Ver. 2016.03.27 增加

Write 啟用 繼電器 自動載入最後狀態


 /relaystate/off

Ver. 2016.03.27 增加

Write 停用 繼電器 自動載入最後狀態


 /ota/on

Ver. 2016.03.27 增加

Write 啟用 上線後自動更新 WF8266R.js


 /ota/off

Ver. 2016.03.27 增加

Write 停用 上線後自動更新 WF8266R.js


 /sleepmode/on

Ver. 2016.03.27 增加

Write 啟用 元件上傳雲端後自動休眠

支援事件系統 元件監聽 且 觸發 呼叫網址 服務, 定時 > 180 秒才會啟動自動上傳後休眠功能 

 /sleepmode/off

Ver. 2016.03.27 增加

Write 停用 元件上傳雲端後自動休眠


 /ble/reset

Ver. 2016.03.21 增加

Write 重置 BLE Layer

參數 :

baud : 設定時的使用速率. 預設 115200


 /ble/init

Ver. 2016.03.16 增加

Write 初始化 BLE Layer 注意:需在藍燈閃動時設定才有效

參數 :

name : 藍芽顯示名稱 長度<11. 預設 BLE-Layer

password : 配對密碼. 預設 888888 (長度6碼 000000~999999)

baud : 設定時的使用速率. 預設 9600


 /kd/on

Ver. 2016.02.21 增加

Write 啟用 WF8266RKD 顯示 DS 溫度


 /kd/off

Ver. 2016.02.21 增加

Write 關閉 WF8266RKD 顯示


 /kd/display

Ver. 2017.05.21 增加

Write WF8266RKD 顯示模式

參數 : 長按 KD 上面 D 按鍵1秒可切換各種模式

mode : [0] 時間, [1] DS18B20/SHT溫度, [2] PM2.5
http://wf8266r.local/kd/display?mode=2

 /kd/show

Ver. 2016.02.21 增加

Write 顯示 WF8266RKD 目前顯示訊息

參數 :

msg : 設定顯示的8位數字

_ : 不顯示
空格(%20) : 保留原值不異動
                

例如 : 8_8 8_8_

http://wf8266r.local/kd/show?msg=8_8%208_8_

讀取目前顯示

http://wf8266r.local/kd/show

回傳 JSON

{"msg":"23500000"}

 /ir/rec

Ver. 2016.02.02 增加

Write 複製紅外線遙控器按鍵

參數 :

pin : 紅外線接收器 DATA 腳位

index : 存放位址 0 ~ 254

例如 : 由腳位 5 讀取紅外線碼, 並存放在資料位址 0

http://wf8266r.local/ir/rec?pin=5&index=0

回傳 JSON

{"pin":5,"index":0}

 /ir/code

Ver. 2017.07.09 修改

Read 讀取目前收到的紅外線遙控器按鍵值

參數 :

pin : 紅外線接收器 DATA 腳位

mode : [0]16進位 [1]原始碼

type 為 UNKNOWN 時顯示 紅外線原始碼, 格式為 長度,資料1,資料2,資料n

例如 : 由腳位 14 讀取紅外線碼, 預設回傳 16 進位碼

http://wf8266r.local/ir/code?pin=14

回傳 JSON

{"type":"NEC","code":"AB00CCDD"}

 /ir/read

Ver. 2016.02.02 增加

Read 讀取紅外線遙控器按鍵碼

參數 :

index : 存放位址 0 ~ 254

例如 :讀取放在資料位址 0 的按鍵碼

http://wf8266r.local/ir/read?index=0

回傳 JSON

{"code":[32,300,5000,250,600,400,4850,350,650,350,5800,400,4100,200,1500,300,4950,300,750,150,4200,200,650,350,5050,300,700,300,4850,350,1500,350],"index":0}

 /ir/send

Ver. 2016.08.05 修改

Read 發送按鍵碼

參數 :

pin : 紅外線發射器腳位

index : 存放位址 0 ~ 254

f : 發送頻率(預設38)

mode : 1 發送時寫入存放位址

code : 直接發送紅外線碼(目前僅支援 NEC, 和長度限制內的原始碼, 長度太長請使用 POST)

例如 : 由腳位4發送放在資料位址 0 的按鍵碼

http://wf8266r.local/ir/send?pin=4&index=0

回傳 JSON

{"pin":4,"index":0,"size":32,"f":38}

例如 : 由腳位 15 發送 NEC 編碼的資料 906FA25D

http://wf8266r.local/ir/send?pin=15&code=906FA25D

例如 : 由腳位 15 發送 原始碼
17,8100,2700,5400,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,5400

http://wf8266r.local/ir/send?pin=15&code=17,8100,2700,5400,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,5400

例如 : 由腳位 15 發送 原始碼並寫入位址 0
17,8100,2700,5400,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,5400

http://wf8266r.local/ir/send?index=0&mode=1&pin=15&code=17,8100,2700,5400,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,5400

 /reset

Ver. 2016.01.20 增加

Write 清空設定資料

刪除 WF8266R 設定資料, 回到出廠設置狀態

http://wf8266r.local/reset

 /ds

Ver. 2015.11.12 增加

Read 感測器 Dallas DS18xxx

取得 Dallas 溫度感測器 : DS18S20 DS18B20 DS1822

參數 : pin 腳位, index 序列號(default:0) 不加或0時列出全部

例如 : GPIO 14 串接了 2 顆 DS18B20 例出全部資料明細

http://wf8266r.local/ds?pin=14

回傳 JSON 格式

{"Count":2,"Devices":[{"Addr":"28FF4857A2150389","Chip":"DS18B20","C":29.31,"F":84.76},{"Addr":"28FFDAEE5015037D","Chip":"DS18B20","C":29.00,"F":84.20}]}

例如 : GPIO 14 串接了 2 顆 DS18B20 例出 第2顆 資料

http://wf8266r.local/ds?pin=14&index=2

回傳 JSON 格式

{"C":28.50,"F":83.30}

 /mac

Ver. 2015.11.06 增加

Read Mac Address

取得裝置 MAC 位址

http://wf8266r.local/mac

回傳 JSON 格式

{"mac":"00:11:23:45:aa:ee"}

 /sleep

Ver. 2016.03.15 修改

Write 休眠

參數 : time 單位 秒

例如 : 休眠 5 秒後醒來

注意 : RST 和 GPIO16 要相接

如時間設太長無法喚醒請在上電前將 GPIO16 接 GND 可取消休眠

http://wf8266r.local/sleep?time=5

回傳 JSON 格式

{"msg":5}

 /time

Ver. 2015.09.15 增加

Write 手動設置內部時間

參數 : UTC 請給定 Unix time

http://wf8266r.local/time?utc=1442290011

回傳 JSON 格式

{"msg":"OK","UTC":1442290011,"time":"2015/9/15 12:6:51"}

 /rst

Ver. 2015.07.26 增加

Write 重啟 WF8266R

重新開機.


 /firmware

Ver. 2015.07.10 增加

Write Firmware 更新介面

選擇由 Release 下載的 WF8266R.xxx.bin 並按下 Upload, 等待上傳完畢後看到提示訊息.


 /servo

Ver. 2015.10.13 修改

Write Servo 伺服馬達

pin 腳位編號

degree 角度(180度) | 角度(360度) [0 正轉最快] [100 停止], [200 反轉最快]

p1 0 度時的頻率 Default : 570

p2 180 度時的頻率 Default : 2500

以 SG90 為例 接在腳位5, 並轉到 90 度

http://wf8266r.local/servo?pin=5&degree=90

回傳 JSON 格式

{"action":"servo","pin":4,"degree":0,"p1":570,"p2":2500}

以 DS04-NFC 360度為例 正轉最快

http://wf8266r.local/servo?pin=5&degree=0

使用 87 正轉最慢

http://wf8266r.local/servo?pin=5&degree=87

使用 104 反轉最慢

http://wf8266r.local/servo?pin=5&degree=104

使用 200 反轉最快

http://wf8266r.local/servo?pin=5&degree=200

 /version

Ver. 2015.06.27 增加

Read 查看 WF8266R 目前版本號

http://wf8266r.local/version

回傳 JSON 格式

{"Version","2015.06.27"}

 /user/get


Read 查看 WF8266R 整體運作參數資訊

http://wf8266r.local/user/get

 /user/set


Write 連網設定

    上網 AP 連線資訊
  • ssid : 上網 AP 的名稱.
  • password : 上網 AP 的密碼
  • 以上如有+號字元請換為 %2B
    WF8266R Soft AP 連線資訊
  • ssidAP : WF8266R AP 顯示名稱
  • passwordAP : WF8266R AP 的密碼 (長度需 > 10)
http://wf8266r.local/user/set?ssid=xxx&password=xxx&ssidAP=xxx&passwordAP=xxx

 /sw

Ver. 2016.10.23 增加

Relay Write 繼電器控制 開(低電位輸出)

繼電器開關 R1 R2 R3 R4 如果同時開啟繼電器 1 和 關閉 2 可以下達

http://wf8266r.local/sw?1=0&2=1

 /sw/on


Relay Write 繼電器控制 開(低電位輸出)

WF8266R(ESP12E) 繼電器腳位為 PIN5(1) PIN4(2) PIN12(3) PIN13(4), 如果同時開啟繼電器 1 和 2 可以下達

http://wf8266r.local/sw/on?1=&2=

4 路全開可以這樣使用

http://wf8266r.local/sw/on?1=&2=&3=&4=

 /sw/off


Relay Write 繼電器控制 關(高電位輸出)

WF8266R(ESP12E) 繼電器腳位為 PIN5(1) PIN4(2) PIN12(3) PIN13(4), 如果同時關閉繼電器 1 和 2 可以下達

http://wf8266r.local/sw/off?1=&2=

4 路全關可以這樣使用

http://wf8266r.local/sw/off?1=&2=&3=&4=

 /scan


Read 取得附近 AP 清單並設置連線


 /ap/on


Write 打開 WF8266R Soft AP


 /ap/off


Write 關閉 WF8266R Soft AP


 /gpio


Write GPIO 腳位輸出 高 或 低 電位

參數 : n = 0 ~ 4 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 相關 GPIO 只能使用這11個腳位

0 : 低電位
1 : 高電位
2 : 互換電位
3 : 按鍵式 0 -> 1 -> 0
4 : 按鍵式 1 -> 0 -> 1

想要讓 GPIO 0 1 2 輸出高電位, GPIO 3 4 5 輸出低電位 可以這樣使用

注意 如果該腳位已經使用 PWM 請先將 PWM 設為 0 才能回到 高 低 電位使用, 不然會無效

http://wf8266r.local/gpio?0=1&1=1&2=1&3=0&4=0&5=0

 /gpio/pwmfreq

Ver. 2016.12.24 增加

SET Write PWM 頻率

修改 PWM 輸出頻率

參數 : freq = 1000 (預設1000 1KHz)

http://wf8266r.local/gpio/pwmfreq?freq=500

 /gpio/pwm


Write GPIO 腳位輸出 0~1023 的電位值

參數 : n = m 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 | m 可以指定 0 ~ 1023

想要讓 GPIO 5 4 12 13 輸出漸亮的亮度階層 可以這樣使用

http://wf8266r.local/gpio/pwm?5=100&4=300&12=600&13=1023

 /gpio/read


Read 讀取 GPIO 腳位狀態 高 或 低 電位

參數 : pinmode = 0 或 1 | 0 : INPUT(default), 1 : OUTPUT

參數 : n = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 相關 GPIO 只能使用這11個腳位

想要讀取 GPIO 0 1 2 的目前狀態 可以這樣使用

http://wf8266r.local/gpio/read?0=&1=&2=

回傳 JSON 格式

{"0":"1","1":"0","2":"1"}

想要讀取 GPIO 5 的目前狀態 並且將 pinMode 指定為 OUTPUT

http://wf8266r.local/gpio/read?pinmode=1&5=

回傳 JSON 格式

{"5":"0"}

 /gpio/adc


Read 讀取 ADC 類比 腳位狀態 0 ~ 1023

http://wf8266r.local/gpio/adc

回傳 文字 Text 格式

316

注意 WF8266R 的 ADC 電壓輸入範圍在 0V ~ 3.3V, ESP8266 原本的 ADC 是 0V ~ 1V, 請特別留意


 /serial


Write Baud 傳輸率 預設 115200

參數 : baud = n 其中 n 可以指定 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200

http://wf8266r.local/serial?baud=115200

 /serial/buffer


Write 修改 Serial 中暫存資料

參數 : text

http://wf8266r.local/serial/buffer?text=WF8266R.js

 /serial/read


Read 讀取 WF8266R Serial buffer 裡的資料

Buffer 可保留 255 個字元

http://wf8266r.local/serial/read

回傳 JSON 格式

{"text":"your data"}

參數 : hex 讀取 16 進位

http://wf8266r.local/serial/read?hex=

回傳 JSON 格式

{"hex":"your HEX data"}

 /serial/write


Write 將資料由 Tx 腳送到其他裝置

參數 : text = 內容

參數 : hex = 大寫 16 進位, 1個位元組(Byte) 為2個字元, 例如 255 : 0xFF, 0 : 0x00

http://wf8266r.local/serial/write?text=your data
http://wf8266r.local/serial/write?hex=F10001FA

 /serial/writeln


Writeln 將資料由 Tx 腳送到其他裝置 結束加上換行, 當 WF8266R 開機完畢時會傳送 WF8266R.Ready

參數 : text = 文字內容

參數 : hex = 大寫 16 進位, 1個位元組(Byte) 為2個字元, 例如 255 : 0xFF, 0 : 0x00

http://wf8266r.local/serial/writeln?text=your data

 /dht11


Read 感測器 溫濕度感測元件

參數 : n = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 DHT11 的 DATA 腳位

假設將 DHT11 的 DATA 接在 GPIO 5 可以這樣使用

http://wf8266r.local/dht11?5=

回傳 JSON 格式

{"Humidity":"55","C":"32.00","F":"89.00"}

相關教學 : http://wf8266.com/wf8266r/tutorials/31_DHT


 /dht


Read 感測器 溫濕度感測元件

參數 : pin = 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 DHTxx 的 DATA 腳位

參數 : type = 可以指定 11(DHT11), 22(DHT22), 21(DHT21,AM2301)

假設將 DHT22 的 DATA 接在 GPIO 5 可以這樣使用

http://wf8266r.local/dht?pin=5&type=22

回傳 JSON 格式

{"Humidity":"55","C":"32.00","F":"89.00"}

 /distance


Read 感測器 超音波測距元件

參數 : echo = n trig = n, 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 Echo Trig 腳位

假設將 超音波測距元件 的 Echo 接在 GPIO 5, Trig 接在 GPIO 4 可以這樣使用

http://wf8266r.local/distance?echo=5&trig=4

回傳 JSON 格式

{"distance":"30"}

相關教學 : http://wf8266.com/wf8266r/tutorials/32_Distance


 /light


Read 感測器 I2C 流明度量元件

WF8266R 的 I2C 腳位定義在 PIN4 SDA 和 PIN5 SCL

http://wf8266r.local/light

回傳 JSON 格式

{"light":"100"}

相關教學 : http://wf8266.com/wf8266r/tutorials/33_Light


 /pm25

Ver. 2016.03.29 修改

Read 感測器 PM2.5 感測器

型號 : GP2Y1010AU0F

http://wf8266r.local/pm25?pin=16
1(V-LED) 3.3V
2(LED-GND) GND
3(LED) WF8266R PIN
4(S-GND) GND
5(Vo) ADC
6(Vcc) 3.3V

回傳 JSON 格式

{"PM25":36,"Unit":"ug/m3"}

相關教學 : http://wf8266.com/wf8266r/Code?templateName=PM25.html


 /pm25s

Ver. 2016.08.07 增加

Read 感測器 Dust 感測器

型號 : Shinyei Model PPD42NS

http://wf8266r.local/pm25s?pin=15
1(GND) GND
3(5V) WF8266R VCC
4(Data) WF8266R PIN

回傳 JSON 格式

{"Dust":267.15,"PM25":10}

相關教學 : http://wf8266.com/wf8266r/Code?templateName=PM25s.html


 /pm25g

Ver. 2016.01.28 增加

Read 感測器 PM2.5 感測器

型號 : 攀藤 G1 G3 G5 感測器

http://wf8266r.local/pm25g

回傳 JSON 格式

{"PMCF10":52,"PMCF25":75,"PMCF100":83,"PMAT10":36,"PMAT25":53,"PMAT100":67,"PMCount03":7869,"PMCount05":2259,"PMCount10":382,"PMCount25":36,"PMCount50":3,"PMCount100":1}

 /sht

Ver. 2016.08.05 增加

Read SHT3X 溫濕度感測器 I2C 流明度量元件

WF8266R 的 I2C 腳位定義在 PIN4 SDA 和 PIN5 SCL

例如 : 讀取 SHT 溫濕度

http://wf8266r.local/sht

回傳 JSON

{"Humidity":60.5,"C":32,"F":89}


事件的功能主要讓 WF8266R 能獨立判斷條件並觸發特定行為, 也就是不需要 WEB 也能自主運作. WF8266R 可存 6 組事件的定義, 你可以將要監聽的事件新增在 WF8266R, 當事件發生時執行. 例如:

  • 當 GPIO5 低電位時將 GPIO4 設為高電位
  • 當 GPIO5 低電位時呼叫 http://domain.com/sendmail 網址
  • 當 GPIO5 低電位時呼叫 http://wf8266r.local/gpio?4=0 觸發別台 WF8266R Web API 達到電位切換
  • 當 GPIO5 低電位時將自訂事件透過 WebSocket 傳回 GPIO.events 自行處理後續動作

 /when/listen

Ver. 2015.10.10

Write 事件 > 150ms 成立

  • (選填) eventType = n 監聽類型, 預設為 1 其中 n 如下所示:
    • 1 : GPIO 本機腳位監聽 eventValue = n:,m
    • 2 : TIME 時間監聽 eventValue = n:m:s,1234567
    • 3 : 元件監聽 eventValue = id:parameter:value^op,pin1:pin2
    • @resetEventIndex 重啟計數行為的事件編號 [0]:全部 [1~6]:事件編號
  • eventValue =
    • n^,m 監聽條件, 其中 n 為腳位編號 m 為 | 0 低電位 | 1 高電位 | 2 電位異動. (其中 ^ 表示腳位為 INPUT, 未指定為 OUTPUT)
    • GPIO 腳位值 參數碼 {1}
    • n:m:s,1234567 監聽條件, 其中 n 為 小時 m 為 分鐘 s 為秒. 小時可留空白 表示只依據分鐘和秒判斷. 1234567 表示星期 日一二三四五六
    • id:parameter:value^op,pin1^:pin2 監聽條件(其中 pin1後的 ^ 表示腳位為 INPUT, 未指定為 OUTPUT)
      op=0, "="
      op=1, "<"
      op=2, ">"
      op=3, "介於"
      op=9, "不設條件,以時間定時觸發"
    • id:value^op :
      • 0 : GPIO 參數碼 {1}.
        例如:ADC>500, 格式為 0:1:500^2,20
      • 1 : DHT 參數碼 C{1} F{2} H{3}.
        例如:濕度H<50, 1:3:50^1
      • 2 : 超音波測距 參數碼 {1}.
        例如:距離>15公分, 2:1:15^2
      • http://wf8266r.local/when/listen?eventType=3&eventValue=2:1:15^2,13:12&trigerType=1&trigerValue=5,0&timer=1000
      • 3 : 流明度 參數碼 {1}.
        例如:流明度>100, 3:1:100^2
      • 4 : DS 溫度感測 參數碼 C{1} F{2}.
        例如:14腳位第2顆 > 30 度C, 4:1:30^2,14,2
      • http://wf8266r.local/when/listen?eventType=3&eventValue=4:1:30^2,14:1&trigerType=1&trigerValue=5,0&timer=1000
      • 5 : PM2.5 G1 G3 G5 參數碼 PMCF10{1} PMCF25{2} PMCF100{3} PMAT10{4} PMAT25{5} PMAT100{6} PMCount03{7} PMCount05{8}
      • 6 : KD 按鍵值{1}
      • 7 : IR 按鍵值{1}
      • 8 : SHT 參數碼 C{1} F{2} H{3}
      • 9 : Dust 參數碼 Dust{1} PM25{2}
      • 10 : ACS 參數碼 電流 A{1} 最大電流 AT{2} 時間 timespan{3} 日平均 AVG{4} 前小時 LastHour{5} 昨日 LastDay{6}
      • 11 : Encoder 編碼器 參數碼 長度 cm{1}
      • 12 : Thingspeak 雲參數 參數值 {1} (頻率1分鐘)
      • 13 : WF8266R.js Sensor RFID, 卡片碼{1}
      • 14 : 熱電偶 參數碼 C{1} F{2}
      • 15 : 語音命令 參數碼 命令值{1}
      • 16 : RC 按鍵值{1}
      • 255 : 序列 參數碼 IoT+{1:value},{2:value}...,{8:value}
    • pin1:pin2 感測腳位
      • pin1, GPIO腳位 ADC=20
      • pin1:pin2, pin:type 其中 pin 為 DHT 資料腳位, type 為感測器型號 11(DHT11), 22(DHT22), 21(DHT21,AM2301)
      • pin1:pin2, echo:trig 超音波測距腳位
      • pin1:pin2, pin:index 其中 pin 為 DS 資料腳位, index 為串列中第幾顆感測器 1 ~ 4
  • trigerType = n 其中 n 如下所示:
    • 1 : 本機腳位輸出
    • 2 : Request URI 要求某網址, 不支援 localhost 本機服務, 如需使用請改用 Self Call
    • 3 : WebSocket 事件訂閱
    • 4 : Self Call
    • 5 : Device Call
    • 6 : Wolf Cloud 文字命令
  • trigerValue = 觸發動作 等於 以下情況, 需配合 trigerType
    • n,m 其中 n 為腳位編號 m 為 0 或 1
    • 5,0
      條件成立時 GPIO5 設為 低電位輸出
                                  
    • host:port,parameter 其中 host 為 IP 或 Domain name
    • 192.168.0.12:80,gpio?5=0
      條件成立時 呼叫 http://192.168.0.12:80/gpio?5=1 
      WF8266R 會透過 POST 協定傳送到您自行撰寫的服務, 請依 POST 協定實作.
    • n 其中 n 為 WebSocket 訂閱的事件名
    • PIN4_Click
      當條件成立時回傳 PIN4_Click 到 GPIO.events
    • id,param1:param2:... 其中 id 為 WebAPI 服務編號, param1 ~ paramN 為 參數值
    • * 為條件成立時會一直發送, 未加 * 的只會發送一次(適用於 2017.02 之前版本, 之後採次數控制)

             101 /rst 重新開機
             102 /ap/on 開啟 AP
             103 /ap/off 關閉 AP
             104,text /serial/write 序列傳送                            
             105,text /serial/writeln 序列傳送+換行
             106,pin:degree /servo 伺服馬達
             107,time /sleep 休眠 單位秒
             *108,value /sw/on 繼電器整體控制 0:全開 1:全關 *2:互換
             109 /config APP 設備清單自訂訊息
             110,pin:index /ir/send 發送紅外線 pin:腳位 index:按鍵編號
             *111,pin:value GPIO 數位腳位輸出 value:0~1023
             
      0 : 低電位
      1 : 高電位
      2 : 互換電位
      3 : 按鍵式 0 -> 1 -> 0
      4 : 按鍵式 1 -> 0 -> 1
      5~1023 : PWM
      111 多腳位輸出使用 . 相隔, 例如: 5 輸出高電位, 4 輸出 低電位按鍵, 12 PWM輸出500, 13 輸出0, 14 反向
      5.4.12.13.14:1.3.500.0.2
             
      112,number /kd/show KD 顯示訊息 113,state /kd/on off clear KD 開關 state=1 開啟 state=0 關閉 state=2 清除顯示不停用 114,index:value 事件開關 index 事件編號 value=0 開啟 value=9 關閉 115,pin:code /ir/send 發送 NEC 紅外線碼 pin:腳位 code:按鍵編碼 116,pin:f.t /tone/play 發出音調 pin:腳位 f:頻率 t:時間 *117,pin1:pin2 數位腳位同步, 讓 pin1 = pin2, !:反向同步 *118 /encoder/reset 重置編碼器統計數值 119,pin:degree 雲參數轉控伺服馬達並顯示在KD, degree 0-180 區間對應角度 0-180 120,index 清除事件計數限制 index:事件編號 [0 全部] 121,pin:code /rc/send 發送 RC 按鍵碼 pin:腳位 code:按鍵碼 122,pin:code.t /rc/send 每隔200ms發送 RC 按鍵碼 pin:腳位 code:按鍵碼 t:次數 123,pin.sec:type.id /timer 內部計時器 pin:腳位 sec:秒數 id:計時器0-3 type:0-4 腳位狀態 201 /wf8266t/on 打開時間顯示 202 /wf8266t/off 關閉時間顯示 203 /wf8266t/dht/on 打開溫濕度顯示 204 /wf8266t/dht/off 關閉溫濕度顯示 205 /wf8266t/sound/on 打開聲音 206 /wf8266t/sound/off 關閉聲音 *207,id:number /wf8266t/display 顯示訊息 cid = id+100 208,level /wf8266t/light 調整 WF8266T/KD 亮度 亮度 0~7 209, /wf8266t/sec/on 秒數顯示 210, /wf8266t/sec/off 關閉秒數 *211,time:times /wf8266t/sound 警示音 time:單音時長 times:次數 *212,key:time /wf8266t/apps 物聯顯示 key: ThingHTTP API KEY time:顯示秒數 213,mode /wf8266t/hud/mod 投射模式 mode=1 開啟 mode=0 關閉
      例如 : 每 1 秒監聽 ADC < 800 時開閉 AP
      http://wf8266r.local/when/listen?eventType=3&eventValue=0:1:800^1,20&trigerType=4&trigerValue=103&timer=1000
    • Self Call id,param1:param2:deviceId
    • 例如 : 每隔10秒將 WF8266R 感測到 PM2.5 數值傳送到 WF8266T 設備顯示, 使用 SelfCall 207 服務顯示
      其中 {0} 會被自動以感測值代入
      http://wf8266r.local/when/listen?eventType=3&eventValue=5:5:0^9,3&trigerType=5&trigerValue=207,4:{0}:xxxxxxxx&timer=10000
  • (選填) timer = n 延時觸發, 其中 n 單位為毫秒. 預設 timer=0
  • (選填) index = n 強制修改事件清單 n, 其中 n 為事件清單索引鍵.
  • (選填) times = n 執行次數, 其中 n 為 1~255, 預設 times=255 表示永久執行

範例 : 當 GPIO0(WF8266R 白色按鍵) 低電位時將 GPIO5 設為低電位

http://wf8266r.local/when/listen?eventValue=0,0&trigerType=1&trigerValue=5,0

範例 : 當 GPIO0 低電位時呼叫(Request) http://mydomain/sendMail?mail=x@mail&title=Alert

http://wf8266r.local/when/listen?eventValue=0,0&trigerType=2&trigerValue=mydomain:80,sendMail?mail=x@mail%26title=Alert
http://wf8266r.local/when/listen?eventValue=0,0&trigerType=2&trigerValue=code.unumobile.com:80,wf8266r/api/mail/myMaill@gmail.com/TEST

範例 : 當 GPIO0 低電位時將 PIN4_Click 使用 WebSocket 通知所有監聽者, 再由監聽者進行後續動作

http://wf8266r.local/when/listen?eventValue=0,0&trigerType=3&trigerValue=PIN4_Click

範例 : 每天每個小時的 5 分開啟 GPIO5 高電位

http://wf8266r.local/when/listen?eventType=2&eventValue=:5,2345671&trigerType=1&trigerValue=5,1

範例 : 星期1到5的晚上 6 點開啟 GPIO5 高電位

http://wf8266r.local/when/listen?eventType=2&eventValue=18:0,23456&trigerType=1&trigerValue=5,1

以上統一回傳 JSON

eventCount : 事件編號 1~6

{"eventCount":1,"eventType":1,"eventValue":"4,0","trigerType":1,"trigerValue":"5,0"}

 /when

Ver. 2015.07.06 增加

Read 查看事件清單

http://wf8266r.local/when

回傳 JSON

{"events":[
{"eventIndex":1,"eventType":1,eventValue":"0,0","trigerType":1,"trigerValue":"5,0","timer":0,"state":0},
{"eventIndex":2,"eventType":1,eventValue":"4,0","trigerType":1,"trigerValue":"5,0","timer":0,"state":0},
{"eventIndex":3,"eventType":1,eventValue":"4,0","trigerType":1,"trigerValue":"5,1","timer":5000,"state":0}
]}

 /when?=

Ver. 2015.07.06 增加

Write 清空事件清單

http://wf8266r.local/when?=

 /save

Ver. 2015.07.06 增加

Write 寫入 WF8266R

如果希望永久保存事件, 可以將事件寫入 WF8266R 的記憶體中, 不怕重開或斷電時要再重新設定事件組合

http://wf8266r.local/save

回傳 JSON

{"size":"1136"}

以 Socket 方式直接和 WF8266R 連線, 適合做大量資料傳輸時使用. 連結位址 ws://wf8266r.local:81/api

以下是使用 Web Socket 的基本架構

線上範例 : http://wf8266.com/wf8266r/Code?templateName=Socket.html

<html>
<head>
<script>
    function init() {
        var connection = new WebSocket('ws://wf8266r.local:81/api', ['wf8266r']);
        connection.onopen = function (e) {
            //連線成功送出命令        
            connection.send("gpio/adc");
        };
        connection.onclose = function (e) {
            //連線關閉
        };
        connection.onmessage = function (e) {
            //收到來自 WF8266R 的訊息
            console.log(e.data);
        };
        connection.onerror = function (e) {
            //不明的錯誤
        };
    }
</script>
</head>
<body onload="init()"></body>

</html>
                

 gpio

Ver. 2015.06.27 增加

Write GPIO 腳位輸出 0 或 1 電位

參數 : n = 0 或 n = 1 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 相關 GPIO 只能使用這11個腳位

例如 將 GPIO5 輸出為 低電位

connection.send("gpio,5=0");

回傳 JSON

{"Action":"gpio","5":"0"}

 gpio/pwm

Ver. 2015.06.27 增加

Write GPIO 腳位輸出 0~1023 的電位值

參數 : n = m 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 | m 可以指定 0 ~ 1023

例如 將 GPIO5 輸出為半亮

connection.send("gpio/pwm,5=500");

回傳 JSON

{"Action":"gpio/pwm","5":"500"}

 gpio/read

Ver. 2015.06.27 增加

Read 讀取 GPIO 腳位狀態 高 或 低 電位

參數 : n = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 相關 GPIO 只能使用這11個腳位

例如 讀取 GPIO5 的狀態

connection.send("gpio/read,5=");

回傳 JSON

{"Action":"gpio/read","5":"1"}

 gpio/readAll

Ver. 2015.07.26 增加

Read 一次讀取 GPIO 0,2,4,5,12,13,14,15,16,ADC 狀態

單次傳回 最後傳 空白

例如 讀取 所有腳位狀態

connection.send("gpio/readAll");

回傳 JSON

{"Action":"gpio/readAll","gpio":0,"value":1}
{"Action":"gpio/readAll","gpio":2,"value":1}
{"Action":"gpio/readAll","gpio":4,"value":1}
{"Action":"gpio/readAll","gpio":5,"value":1}
{"Action":"gpio/readAll","gpio":12,"value":1}
{"Action":"gpio/readAll","gpio":13,"value":1}
{"Action":"gpio/readAll","gpio":14,"value":1}
{"Action":"gpio/readAll","gpio":15,"value":1}
{"Action":"gpio/readAll","gpio":16,"value":1}
{"Action":"gpio/readAll","gpio":"ADC","value":1}
"" 空白
                

 gpio/readAllBatch


Read 一次讀取 GPIO 0,2,4,5,12,13,14,15,16,ADC 狀態

整批傳回

例如 讀取 所有腳位狀態

connection.send("gpio/readAllBatch");

回傳 JSON

{"Action":"gpio/readAllBatch","value":"1,1,1,1,1,1,1,1,1,1"}

 gpio/adc


Read 讀取 ADC 類比 腳位狀態 0 ~ 1023

connection.send("gpio/adc");

回傳 JSON

{"Action":"gpio/adc","ADC":"316"}

 dht11

Ver. 2015.06.27 增加

Read 溫濕度感測元件

參數 : n = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 DHT11 的 DATA 腳位

假設將 DHT11 的 DATA 接在 GPIO 5 可以這樣使用

connection.send("dht11,5=");

回傳 JSON

{"Action":"dht11","Humidity":"0","C":"0.00","F":"32.00"}

 dht

Ver. 2015.10.08 增加

Read 溫濕度感測元件

參數 : pin = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 DHT 的 DATA 腳位

參數 : type = 可以指定 11(DHT11), 22(DHT22), 21(DHT21,AM2301)

假設將 DHT22 的 DATA 接在 GPIO 5 可以這樣使用

connection.send("dht,pin=5&type=22");

回傳 JSON

{"Action":"dht","Humidity":"0","C":"0.00","F":"32.00"}

 distance

Ver. 2015.06.27 增加

Read 超音波測距元件

參數 : echo = n trig = n, 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 Echo Trig 腳位

假設將 超音波測距元件 的 Echo 接在 GPIO 5, Trig 接在 GPIO 4 可以這樣使用

connection.send("distance,echo=5&trig=4");

回傳 JSON

{"Action":"distance","distance":"10"}

 light

Ver. 2015.06.27 增加

Read 流明度量元件

WF8266R 的 I2C 腳位定義在 PIN4 SDA 和 PIN5 SCL

connection.send("light");

回傳 JSON

{"Action":"light","light":"0"}

 ds

Ver. 2015.11.13 增加

Read 溫度感測器 DS18S20 DS18B20 DS1822

注意 : 每一顆需要 800 ms 等待時間, 串接多顆時請控制好時間間隔

參數 : n = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 DS 的 DATA 腳位

假設將 DS 的 DATA 接在 GPIO 14 取回第1顆溫度時,可以這樣使用

connection.send("ds,pin=14&index=1");

回傳 JSON

{"Action":"ds1","C":28.81,"F":83.86}

 pm25

Ver. 2016.03.24 增加

Read PM2.5 感測器 型號 : GP2Y1010AU0F

參數 : n = 其中 n 可以指定 GPIO 0,1,2,3,4,5,12,13,14,15,16 接到 GP2Y1010AU0F 的 腳位3

假設將 GP2Y1010AU0F 的 腳位3 接在 GPIO 14 可以這樣使用

connection.send("pm25,pin=14");

回傳 JSON

{"Action":"pm25","PM25":30}

 pm25g

Ver. 2016.03.24 增加

Read PM2.5 感測器 型號 : A1 G1 G3 G5 等

參數 : 接 WF8266R 的 Rx 腳, 並指定 WF8266R baud = 9600

connection.send("pm25g");

回傳 JSON

{"Action":"pm25g","PMAT25":30}

 pm25s

Ver. 2016.08.06 增加

Read PM2.5 感測器 型號 : Grove - Dust Sensor : Shinyei Model PPD42NS

參數 : pin = 15 可指定任何腳位

connection.send("pm25s,pin=15");

回傳 JSON

{"Action":"pm25g","PMAT25":30}

 sht

Ver. 2016.08.06 增加

Read 溫濕度 感測器 型號 : SHT3X

參數 : I2C 腳位

connection.send("sht");

回傳 JSON

{"Action":"sht","Humidity":80,"C":28.81,"F":83.86}

 ir/code

Ver. 2016.08.06 增加

Read 紅外線 感測器

參數 : pin = 14 可指定任何腳位

type 為 UNKNOWN 時顯示 紅外線原始碼, 格式為 長度,資料1,資料2,資料n

connection.send("ir/code,pin=14");

回傳 JSON

{"Action":"ir/code","type":"UNKNOWN","code":"F2A4B1EE"}

 ir/send

Ver. 2016.08.06 增加

Read 紅外線 發射器

參數 : pin = 15 可指定任何腳位, index = 存碼編號

發送存在 WF2866R 中的紅外線碼

connection.send("ir/send,pin=15&index=0");

回傳 JSON

{"Action":"ir/send","index":"0"}

 ir/sendCode

Ver. 2016.08.06 增加

Read 紅外線 發射器

參數 : pin = 15 可指定任何腳位, code = 按鍵碼

發送紅外線碼

connection.send("ir/sendCode,pin=15&code=906FA25D");

回傳 JSON

{"Action":"ir/sendCode","code":"906FA25D"}

 uart/tx

Ver. 2016.08.06 增加

Write WebSocket to UART

參數 : type = text | hex 文字或16進位, data = 資料

透過 WebSocket 經 WF8266R Tx 送出

connection.send("uart/tx,type=text&data=Hello");

回傳 JSON

{"Action":"uart/tx","value":"Hello"}

 servo

Ver. 2016.08.06 增加

Write 伺服馬達

參數 : pin = any, degree = 0~180

控制伺服馬達角度

connection.send("servo,pin=5°ree=0");

回傳 JSON

{"Action":"servo","pin":5,"degree":0}

 selfcall

Ver. 2016.08.19 增加

Write 事件系統 SelfCall 支援

參數 : ID=VALUE 其中 ID = 服務號 VALUE = 資料內容

例如 : 呼叫 111 多腳位輸出服務, 將 5 4 12 13 腳位設為反向狀態輸出

connection.send("selfcall,111=5.4.12.13:2.2.2.2");

回傳 JSON

{"Action":"servo","pin":5,"degree":0}

 encoder

Ver. 2016.09.01 增加

Write 編碼器

參數 : a b 相位腳位, rpm 編碼器脈衝數, circle : 輪子周長

例如 : 取得編碼器資料

connection.send("encoder,a=b&rpm=circle");

回傳 JSON

{"Action":"encoder","countA":1,"countB":0,"cm":0.05}

 encoder/reset

Ver. 2016.09.01 增加

Write 重置編碼器

例如 : 重置編碼器資料

connection.send("encoder/reset,=");

回傳 JSON

{"Action":"encoder/reset","countA":0,"countB":0,"cm":0}

 wfs

Ver. 2017.01.21 增加

Write 讀取 WF8266R.js Sensor 回傳資料

例如 : 讀取 RFID 資料

connection.send("wfs,RFID");

回傳 JSON

{"Action":"wfs","Type":"RFID","Value":"4028D76D"}

 ktype

Ver. 2017.03.16 增加

Write 讀取 熱電偶 溫度

例如 : 讀取 熱電偶 資料, 預設腳位 clk : 12, cs : 13, so : 14

connection.send("ktype");

回傳 JSON

{"Action":"wfs","Type":"RFID","Value":"4028D76D"}

核心在 WF8266R.js 提供 Web Component 和 javascript 二種開發方式, 常用功能已包裝為 <wf8266r-button></wf8266r-button> TAG, 還有 透過 javascript 調用的 GPIO 物件.

使用方式 : 引入 jQuery.js wf8266r.js wf8266r.css

<script src="http://wf8266.com/wf8266r/webcomponent/jquery-2.1.4.min.js"></script>
<script src="http://wf8266.com/wf8266r/webcomponent/wf8266r/wf8266r.js"></script>
<link href="http://wf8266.com/wf8266r/webcomponent/wf8266r/wf8266r.css" rel="stylesheet" />
                

範本

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
    <title>WF8266R</title>

    <!-- Imports WF8266R -->
    <script src="http://wf8266.com/wf8266r/webcomponent/jquery-2.1.4.min.js"></script>
    <script src="http://wf8266.com/wf8266r/webcomponent/wf8266r/wf8266r.js"></script>
    <link href="http://wf8266.com/wf8266r/webcomponent/wf8266r/wf8266r.css" rel="stylesheet" />

    <script>
        $(function () {
            //載入 WF8266R 元件
            GPIO.init();
        });
    </script>

</head>
<body>
    <unu-wf8266r ip="wf8266r.local" websocket uuid="xxxx" device="xxxx"></unu-wf8266r>
</body>
</html>
                

 <unu-wf8266r></unu-wf8266r>


Webcomponents WF8266R 參數管理元件

  • ip : 目標 IP 位址, 可以是 IP 或 Domain name. wf8266r.local 只能在電腦上使用, 手機不支援 .local 的 mDNS 協定.
  • websocket : 使用 Web Socket 協定. 沒有加使用 Web APIs.
  • uuid : 唯一識別碼.
  • device : 服務識別碼.
<unu-wf8266r ip="wf8266r.local" websocket uuid="xxxx" device="xxxx"></unu-wf8266r>

 <wf8266r-button></wf8266r-button>


Webcomponents WF8266R 行為元件

  • id : 控制項編號
  • type : n 控制行為. 其中 n 可以是以下 :
  • pin : 腳位編號
  • value : 值 (read時 0:INPUT 1:OUTPUT)
  • watch : 定時更新時間 單位:毫秒
  • >顯示文字<

例如 : 顯示 SW ON 的按鍵, 按下後將 GPIO5 設為 0

<wf8266r-button type="gpio" pin="5" value="0">SW1 ON</wf8266r-button>

例如 : 顯示 LED PWM 的接桿, 移動後將 GPIO2 設為 拉動值

<wf8266r-button id="pwm" type="pwm" pin="2" value="0">LED PWM</wf8266r-button>

例如 : 每隔 2秒 顯示 GPIO5 的電位在畫面上的 PIN5 文字後

<wf8266r-button id="gpio5" type="read" pin="5" value="1" watch="2000">PIN5 </wf8266r-button>

例如 : 每隔 1秒 顯示 ADC 的電位值 0~1023 在畫面上的 ADC 文字後

<wf8266r-button id="adc" type="adc" value="0" watch="1000">ADC </wf8266r-button>

 GPIO


JS GPIO 物件, 其中 pin 腳位編號, value 值, callback 用來接收傳回的 JSON 物件

  • GPIO.init() | 初始化
  • GPIO.init(ip, isWebsocket, socketPort, restPort) | 示範教學
    使用 NAT 時初始化
    [isWebsocket]:true 使用 WebSocket,false 使用 RESTful
    [socketPort]:由哪個 port 轉到 81
    [restPort]:由哪個 port 轉到 80
  • GPIO.relay(device, uuid, pin, value) | Sample code
  • GPIO.pin(pin, value, callback) | Sample code | JS TextBox
  • GPIO.pwm(pin, value, callback) | Sample code
  • GPIO.adc(callback) | Sample code
  • GPIO.read(pin, callback) | Sample code
  • GPIO.dht11(pin, callback)
  • GPIO.dht(pin, type, callback) 其中 type = 可以指定 11(DHT11), 22(DHT22), 21(DHT21,AM2301) | Sample code
  • GPIO.distance(echo, trig, callback) | Sample code
  • GPIO.light(callback) | Sample code
  • GPIO.ktype(callback)
  • GPIO.ds(pin, callback)
  • GPIO.ds(pin, index, callback)
  • GPIO.serialBaud(value, callback) | Sample code
  • GPIO.serialRead(callback) | Sample code
  • GPIO.serialWrite(value, callback) | Sample code
  • GPIO.serialWriteln(value, callback)
  • GPIO.events(callback) 事件系統中用事件觸發的接收者 | Sample code
  • GPIO.servo(pin, value, callback) | Sample code
  • GPIO.pir(pin, callback) 人體紅外線感測器
  • GPIO.pm25(pin, callback) | GP2Y1010AU0F | Sample code
  • GPIO.pm25g(callback) | 攀藤系 A1 G1 G3 G5 G7 等 | Sample code
  • GPIO.pm25s(callback) | Shinyei Model PPD42NS | Sample code
  • GPIO.sht(callback) | Sample code
  • GPIO.irStop(callback)
  • GPIO.irCode(pin, callback) | Sample code
  • GPIO.irSend(pin, index, callback) | Sample code
  • GPIO.irSendCode(pin, code, callback) | Sample code
  • GPIO.encoderReset(callback)
  • GPIO.encoder(a, b, callback) | Sample code
  • 牆壁開關 | Sample code

針對沒有真實 IP 又想在不同網域控制 WF8266R GPIO 腳位時使用, 目前僅提供 GPIO 4,5,12,13 繼電器模組腳位, 以便在戶外可透過手機 及 IFTTT 控制開關.


 http://wf8266.com/wf8266r/api/service


GET WF8266R 繼電器腳位控制

格式 :

http://wf8266.com/wf8266r/api/service/SN/relay/value

其中有 3 個參數, 分為是 :

  • SN : 裝置編號, 可以在包裝袋中找到 SN. xxxx
  • realy : 控制目標, 可置換為
    • Relay : 全部, 表示 GPIO 5,4,12,13
    • Relay1 : 表示 GPIO 5
    • Relay2 : 表示 GPIO 4
    • Relay3 : 表示 GPIO 12
    • Relay4 : 表示 GPIO 13
  • value : 輸出值, 可以是 [0:開啟] [1:關閉] [2:反向 Toggle] [3:按鍵 0->1] [4:按鍵 1->0]

例如 : 將繼電器1號打開(GPIO5=0)

http://wf8266.com/wf8266r/api/service/XXXX/Relay1/0

GET 要求 WF8266R 回傳繼電器腳位狀態資料

格式 :

http://wf8266.com/wf8266r/api/service/SN/RequestState/0

GET 顯示 WF8266R 回傳繼電器腳位狀態資料

格式 :

http://wf8266.com/wf8266r/api/service/SN/Info/0

回傳

[{"UUID":"1e38c4c2-349d-4a41-93de-95d5c782d2c","ChipId":"14431740","LocalIp":"192.168.0.15","GPIO5":1,"GPIO5_Name":null,"GPIO4":1,"GPIO4_Name":null,"GPIO12":1,"GPIO12_Name":null,"GPIO13":1,"GPIO13_Name":null,"UpdateTime":"2016-03-02T14:28:15.29"}]

 由 Tx 傳送訊息


Ver. 2016.03.01 增加

POST 將資料由 Tx 腳位傳出

格式 :

POST http://wf8266.com/wf8266r/api/service
                    ChipID : XXXXXXXX 裝置序號 SN
                    Value : 要傳送的文字
                

GET 方式

http://wf8266.com/wf8266r/api/service/SN/Message/Demo

結尾加上換行符號 \r\n 改用 Messageln

http://wf8266.com/wf8266r/api/service/SN/Messageln/Demo

例如 : 由遠端傳送 Demo 文字到 WF8266R 再由 Tx 腳傳送到 Arduino 或其他 MCU Rx 腳

POST http://wf8266.com/wf8266r/api/service
                    ChipID : 14431234
                    Value : Demo
                

會收到以下訊息

Demo


 由 Tx 傳送16進位資料


Ver. 2016.03.01 增加

POST 將資料由 Tx 腳位傳出

格式 :

POST http://wf8266.com/wf8266r/api/service
                    ChipID : SN 裝置序號
                    Action : HEX
                    Value : 要傳送的文字
                

GET 方式

http://wf8266.com/wf8266r/api/service/SN/HEX/FF00A1

例如 : 由遠端傳送 Demo 文字到 WF8266R 再由 Tx 腳傳送到 Arduino 或其他 MCU Rx 腳

POST http://wf8266.com/wf8266r/api/wf8266r
                    ChipID : 14431234
                    Action : HEX
                    Value : FF00A1
                

會收到以下訊息

FF 00 A1

 讀取 WF8266R Serial 資料

Web 是沒有狀態的, 關於有回傳值的方法都需要先呼叫 Request 開頭的方法, 要求設備回報目前狀態. 因此, 回傳時間因網路傳輸不定可能會有1~10秒的差距才會看到新回傳的資料, 所以會藉由 UpdateTime 欄位判斷功能與否。


Ver. 2016.03.01 修改

GET

  • RequestMessage : 要求設備回傳 Serial 的暫存資料
  • http://wf8266.com/wf8266r/api/service/SN/RequestMessage/0
  • ResponseMessage : 取得最近回傳的 Serial 資料
  • http://wf8266.com/wf8266r/api/service/SN/ResponseMessage/0

    回傳資料在 Data 欄位, 透過 UpdateTime 欄位判別資料是否是最新回傳

    [{"UUID":"xxx-xx-xx","ChipId":"xxxx","LocalIp":"192.168.0.16","Action":"ResponseMessage","Data":"Demo","UpdateTime":"2015-11-15T20:55:44.44"}]

 傳送存放在 WF8266R 的紅外線碼

Ver. 2016.08.01 增加

GET 方式

http://wf8266.com/wf8266r/api/service/SN/IRSend/Pin,Index

例如 : 遠端呼叫 WF8266R 由 15 腳傳送放在位址0的紅外線碼

http://wf8266.com/wf8266r/api/service/SN/IRSend/15,0

REST MQTT 提供 RESTful 網址呼叫的方式轉接 MQTT 協定, 讓你可以在有網路的地方就能操作 WF8266R. 例如你在使用 IFTTT 服務時利用 WEB REQUEST 網址調用的方式便能幫助你轉接到 WF8266R 設備.

注意:使用此服務需先將設備註冊到 WFCloud https://cloud.wf8266.com
註冊教學

 https://service.wf8266.com/api/mqtt/SN/CMD/KEY/DATA

SN : 設備序號前面不含0
CMD : 指令
KEY : 請將設備註冊到 https://cloud.wf8266.com, 可取得授權金鑰
DATA : 參數資料

GET WF8266R 繼電器腳位控制

格式 :

https://service.wf8266.com/api/mqtt/SN/relay/key/value

其中有 3 個參數, 分為是 :

  • SN : 裝置編號, 可以在包裝袋中找到 SN. xxxx
  • relay : 控制目標, 可置換為
    • Relay : 全部, 表示 GPIO 5,4,12,13
    • Relay1 : 表示 GPIO 5
    • Relay2 : 表示 GPIO 4
    • Relay3 : 表示 GPIO 12
    • Relay4 : 表示 GPIO 13
  • value : 輸出值, 可以是 [0:開啟] [1:關閉] [2:反向 Toggle] [3:按鍵 0->1->0] [4:按鍵 1->0->1]

例如 : 將繼電器1號打開(GPIO5=0)

https://service.wf8266.com/api/mqtt/SN/Relay1/key/0

回傳目前腳位狀態 : 依序為 5 4 12 13 2 1 3 14 15 16 0

{"data":["1","1","1","1","0","0","0","1","0","1","1"],"code":1}

GET 腳位控制

格式 :

https://service.wf8266.com/api/mqtt/SN/GPIO/key/pin,value

例如 : 將腳位 5 使用高電位的按鍵輪出 [3:按鍵 0->1]

https://service.wf8266.com/api/mqtt/SN/GPIO/key/5,3

GET 要求 WF8266R 回傳所有腳位狀態資料

格式 :

https://service.wf8266.com/api/mqtt/SN/RequestState/key

回傳

{"data":["1","1","1","1","0","0","0","1","0","1","1"],"code":1}

 由 Tx 傳送訊息


Ver. 2016.03.01 增加

GET 方式

https://service.wf8266.com/api/mqtt/SN/Message/key/Demo

結尾加上換行符號 \r\n 改用 Messageln

https://service.wf8266.com/api/mqtt/SN/Messageln/key/Demo

例如 : 由遠端傳送 Demo 文字到 WF8266R 再由 Tx 腳傳送到 Arduino 或其他 MCU Rx 腳

會收到以下訊息

Demo

 由 Tx 傳送16進位資料


Ver. 2016.03.01 增加

GET 方式

https://service.wf8266.com/api/mqtt/SN/HEX/key/FF00A1

例如 : 由遠端傳送 Demo 文字到 WF8266R 再由 Tx 腳傳送到 Arduino 或其他 MCU Rx 腳

會收到以下訊息

FF 00 A1

 讀取 WF8266R Serial 資料


Ver. 2016.03.01 修改

GET

RequestMessage : 要求設備回傳 Serial 的暫存資料

https://service.wf8266.com/api/mqtt/SN/RequestMessage/key

回傳資料在 Data 欄位

{"data":["test1,"],"code":1}

 傳送存放在 WF8266R 的紅外線碼


Ver. 2016.08.01 增加

GET 方式

https://service.wf8266.com/api/mqtt/SN/IRSend/key/Pin,Index

例如 : 遠端呼叫 WF8266R 由 15 腳傳送放在位址0的紅外線碼

https://service.wf8266.com/api/mqtt/SN/IRSend/key/15,0

 傳送 RC 按鍵碼


Ver. 2016.08.10 增加

GET 方式

https://service.wf8266.com/api/mqtt/SN/RCSend/key/Pin,Code

例如 : 由 15 腳發送 54631308 碼

https://service.wf8266.com/api/mqtt/SN/RCSend/key/15,54631308

 傳送一定次數 RC 按鍵碼


Ver. 2016.08.10 增加

GET 方式

https://service.wf8266.com/api/mqtt/SN/RCSendSW/key/Pin,Code.Times

例如 : 每 200ms 由 15 腳發送 54631308 碼共 4 次

https://service.wf8266.com/api/mqtt/SN/RCSendSW/key/15,54631308.4

 其它操作指令


GET 方式

https://service.wf8266.com/api/mqtt/SN/CMD/KEY/DATA

CMD 說明如下, 請注意大小寫

系統

文字命令 : APP,CMD,SYS,{CMD} 其中 {CMD} 可置換為以下指令
RST : 重新啟動設備
UTC : 指定系統時間
REG : 上線後是否自動關閉 AP 
SleepMode : 是否啟用休眠
AutoUpdate : 是否啟用上線自動更新
KeepRelayState : 是否啟用上電載入最後腳位電位
OTA : 推送更新(需配合WFCloud)
DC : 呼叫 SelfCall 服務
CONFIG : 讀取 SelfCall 109 所設定的感測數值
RequestHUDRT : 讀取 抬頭顯示器 行車資訊
Voice : 將文字轉成語音播放(需配合語音模組)
Message : 透過 UART 送出字元
Messageln : 透過 UART 送出字元+換行

資訊

文字命令 : APP,CMD,{CMD} 其中 {CMD} 可置換為以下指令
IRSend : 送出紅外線碼
IRSendCode : 送出 NEC 編碼. 例如由 15 腳送出 12340000 編碼. 
APP,CMD,IRSendCode,15,12340000
RCSend : 送出 RF 碼 RCSendSW : 送出多次 RF 碼. 何如由 16 腳每隔200ms送出16000001共5次.
APP,CMD,RCSendSW,16,16000001.5
GPIO : 腳位控制 查詢類 TEMP : 溫濕度和 PM2.5 PM10 AIR : {0} 警示語, {1} PM2.5, {2} 溫度, {3} 濕度, {4} PM10, {5} 二氧化碳(CO2), {6} 揮發性TVOC, {7} 甲醛HCHO, {8} 電量

WF8266R Sensor 專用

OLEDFont : 顯示繁簡中英文字, DATA : x,y,font size,text
例如在 0,0 位置顯示 16 級大小的 物聯雲 文字
https://service.wf8266.com/api/mqtt/2718259/OLEDFont/KEY/0,0,16,物聯雲
OLEDString : 顯示英數文字, 字級 10 16 24, DATA : x,y,font size,text OLEDClear : 清空畫面

溫控模組(WF8266R30, WF8266KD)

RequestDS : 讀取 目前溫度
RequestDSConfig : 讀取 溫控設定
WatchTemp : 是否啟用溫控, DATA : [0]禁用 [1]啟用                                       
SetDSConfig : 溫控及倒數時間設定, DATA : [啟動溫度:停止溫度:倒數時間]
R30Alarm : 時間到數警報設置, DATA : [0]禁用 [1]啟用
KD : 是否啟用 KD 顯示
KDMsg : 將 8 位數字顯示在 KD 顯示器上
GetKDKey : 讀取目前 KD 按鍵值
GetLightLevel : 讀取目前亮度等級
SetLightLevel : 設置亮度等級

語音模組

Voice : 文字轉語音(支援繁簡中文) 需傳送 UTF8 格式
VoiceName : 喚醒命令(4個字中文)
VoiceTip : 喚醒語音,無法試表語音 001~046
VoicePlayTip : 內建語音試聽 001~046
VoiceMode : 喚醒模式 [0] 按鍵 [1] 無喚醒 [2] 關鍵詞
VoiceVol : 音量 0~9
VoiceCMD : 語句關鍵字, 格式 : 開門 001|關門 002|open-door 003|
VoiceEcho : 回應語句, 格式 : |001 馬上開門|002 門關好了
VoiceConfig : 靈敏度調整 識別距離(1-3),匹配度(1-5),識別等待時間(0-30000),錄音時間(0-6000)
識別距離 : [1] 20公分以內, [2] 20公分-3公尺, [3] 3公尺以上
匹配度 : [1] 最高(識別難) [5] 最低(誤判高), 建議 2-4 預設為 4
識別等待時間 : 喚醒後等待使用者說話時間 單位 ms, 預設為 06000 6秒, 固定5位數
錄音時間 : 喚醒後錄使用者說話的時間長度 單位 ms, 預設為 6000 6秒, 固定4位數 
MP3Play : 放 TF 卡裡的音樂. 檔名需為 0001~9999 MP3Stop : 停止

腳位

PinMode : 設置腳位模式
Read : 數位讀取特定腳位值
ADC : 類比讀取 ADC 腳位值

事件

ReadEvent : 讀取事件清單

WFS

Sensor001 : 讀取 RFID 碼

 呼叫 WFCloud 的文字命令


GET

執行 WFCloud 自訂好的文字命令

https://service.wf8266.com/api/cmd/key/文字命令名稱

回傳資料在 Data 欄位

{"data":{"cmd":"APP,CMD,GPIO,5,0","deviceId":"15760000","name":"電捲門"},"code":1}

例如 : 呼叫 芝麻開門 命令

https://service.wf8266.com/api/cmd/your key/芝麻開門

 語音助理


POST

WFRobot 語音助理

文字命令輔助詞, 其中 XXX 為文字命令

XXX 如何
溫度調整 XXX
幫我 XXX
開 XXX
關閉 XXX
                
https://service.wf8266.com/api/voice

傳送 JSON 物件

{"text":"對談文字","deviceId":"your id","key":"your key"}

回傳資料在 Data 欄位

{"data":"助理回傳的資訊","code":1}

 同步設備到 Google Home


GET

手動同步 WFCloud 上的設備到 Google Home

https://service.wf8266.com/api/googlehome/sync/key

 天貓精靈智慧家居組態


GET 設定設備要在天貓精靈顯示的 設備名稱 型式 和 地點

https://service.wf8266.com/api/smarthome/tmall/config/key/SN/name/type/zone

SN : 設備序號, 如果是多腳位如 WF8266R/R2/R4 格式為 SN_PIN

例如:指定 WF8266R4 sn:12345678 第 5 號腳位為智能設備時, SN 應為 12345678_5

其中 設備名稱 請查閱: https://open.bot.tmall.com/oauth/api/aliaslist

其中 型式 可以是:

television, light, aircondition, airpurifier, outlet, switch, roboticvacuum, curtain, humidifier, fan, bottlewarmer, soymilkmaker, kettle, watercooler, cooker, waterheater, oven, waterpurifier, fridge, STB, sensor, washmachine, smartbed, aromamachine, window, kitchenventilator, fingerprintlock, telecontroller, dishwasher, dehumidifier

其中 地點 請查閱: https://open.bot.tmall.com/oauth/api/placelist

GET 查詢設備組態

https://service.wf8266.com/api/smarthome/tmall/config/key/SN
{"deviceName": "床頭燈", "deviceType": "light", "zone": ""}

DELETE 刪除

https://service.wf8266.com/api/smarthome/tmall/config/key/SN


物聯雲 APP 服務


 /app/info


Read 取得裝置明細


 /app/scan


Read 取得裝置附近的 WI-FI 基地台


 /app/reg


Write 將設備標記為 己註冊。 已註冊的 WF8266R 在上線後會自動關閉 AP 模式。


WF8266T 是一款基於 ESP8266 晶片設計的物聯網開發實驗板, 也是一款LED點陣的開發板。韌體預燒了WF8266R服務核心,透過 WF8266R 所提供的各項服務讓你立即透過 App 控制家裡的設備或顯示一些資訊在屏幕上


 /wf8266t/on


Write 打開時間顯示


 /wf8266t/off


Write 關閉時間顯示


 /wf8266t/sec/on


Write 秒數顯示


 /wf8266t/sec/off


Write 關閉秒數顯示


 /wf8266t/dht/on


Write 打開溫濕度顯示


 /wf8266t/dht/off


Write 關閉溫濕度顯示


 /wf8266t/sound/on


Write 打開聲音提示


 /wf8266t/sound/off


Write 關閉聲音提示


 /wf8266t/sound


Write 提示聲音

參數 : time = 0 ~ 65535 , 每個聲音的時間長

參數 : times = 0 ~ 255 , 重覆次數(default:3)

參數 : vol = 0 ~ 860 , 音量(default:250)

例如 : 提示 5 個 0.1 秒的聲音

http://wf8266t.local/wf8266t/sound?time=100&times=5

回傳 JSON

{"msg":"OK","time":100,"times":5,"vol":250}

 /wf8266t/display


Write 顯示 5 個數字和一個 icon

例如 : 顯示 % 圖示 + 3個空白 2個5, 顯示時間是5秒, 下圖所示

id = 0~9 系統圖示, timer = 顯示時間(default=5000), number = 數字顯示 空白為 _

cid = 0~255, 顯式 /wf8266t/icon 中的自訂圖示

支援符號

- 顯示 -
+ 顯示 不顯示
C 顯示 度數符號
_ 顯示 空格
: 顯示 :
. 顯示 .
http://wf8266t.local/wf8266t/display?id=1&timer=5000&number=___55

回傳 JSON

{"msg":"OK","id":1,"timer":5000,"number":"___55"}

如果只想顯示7位數字5秒時

http://wf8266t.local/wf8266t/display?number=1234567

 /wf8266t/icon


Write 自訂 icon

例如 : 將自訂圖示寫入自訂圖示區

如下圖利用線上編輯自訂圖示, 按下計算產生代碼, 最後6碼即是圖示代碼.

將這個圖示代碼寫入到編號 0, 以供之後取用

id = 0~255 : 自訂 icon 編號

data : 圖示陣列 6 碼 0,240,129,193,97,31 請去除空白

http://wf8266t.local/wf8266t/icon?id=0&data=0,240,129,193,97,31

回傳 JSON

{"id":0,"data":"0,240,129,193,97,31"}

讀取 編號為 0 的圖示

http://wf8266t.local/wf8266t/icon?id=0

回傳 JSON

{"id":0,"data":"0,240,129,193,97,31"}

顯示自訂圖示在 WF8266T, 改用 cid 參數

http://wf8266t.local/wf8266t/display?cid=0&timer=5000

 /wf8266t/light


Write 亮度

參數 : level = 0 ~ 7, 0是最暗 7是最亮(value=0時有效)

參數 : value = 0 ~ 1023, 自動亮度參考值, 預設為0. 如果設為500, 那麼亮度感測器 > 500 時會調為亮度 7 反之為亮度 2

http://wf8266t.local/wf8266t/light?level=7

回傳 JSON

{"msg":"OK","level":7,"value":0}

 /wf8266t/apps


Write 提示聲音

    參數 : key = ThingHTTP API Key
  • 加權股價 TSE : 8W6G9ZKK1OZH6P0O
  • 下週油價漲跌 : EM18B52PSHXZB4DD

參數 : time = 顯示秒數(default:5秒)

id : 系統圖示

cid : 自訂圖示

例如 : 顯示加權指數 10 秒

http://wf8266t.local/wf8266t/apps?key=8W6G9ZKK1OZH6P0O&time=10

回傳 JSON

{"msg":"8445.96"}

例如 : 顯示加權指數 10 秒 和使用系統圖示 6 (訊息圖示)

http://wf8266t.local/wf8266t/apps?key=8W6G9ZKK1OZH6P0O&time=10&id=6

例如 : 顯示加權指數 10 秒 和使用自訂圖示 0

http://wf8266t.local/wf8266t/apps?key=8W6G9ZKK1OZH6P0O&time=10&cid=0


提供外部設備(Arduino, 8051, ARM, PI 等 MCU)透過 UART 傳送 WT+ 開頭命令將資料傳送到指定服務.


 WTGET+


Request 使用 GET 要求某個服務網址並經由 Rx 取回內容

假如要透過 Arduino UART 取得以下網址資料, 直接由 Arduino 發送 WTGET+ 命令並填上各參數值即可(注意參數名稱需為大寫字母,結尾需為\r\n換行).

http://www.wf8266.com/data/getinfo?a=1&b=2
WTGET+HOST:www.wf8266.com,PORT:80,URI:data/getinfo,DATA:a=1&b=2
    參數(大寫) 最大長度 255
  • HOST : 主機 IP 或 Domain name
  • PORT : 連接埠
  • URI : 服務網址
  • DATA : 參數
  • 命令結尾 : \r\n

 WTPOST+


Update 使用 POST 方法上傳資料到指定服務網址並經由 Rx 取回回應結果

假如要透過 Arduino UART 上傳資料到以下網址服務, 直接由 Arduino 發送 WTPOST+ 命令並填上各參數值即可(注意參數名稱需為大寫字母,結尾需為\r\n換行).

http://www.wf8266.com/data/getinfo
DATA : a=1&b=2
WTPOST+HOST:www.wf8266.com,PORT:80,URI:data/getinfo,DATA:a=1&b=2
    參數(大寫) 最大長度 255
  • HOST : 主機 IP 或 Domain name
  • PORT : 連接埠
  • URI : 服務網址
  • DATA : 參數
  • 命令結尾 : \r\n

 WTGPIO+


GPIO WF8266R 腳位控制

假如要透過 Arduino UART 控制開發板腳位, 直接由 Arduino 發送 WTGPIO+ 命令並填上各參數值即可(注意參數名稱需為大寫字母,結尾需為\r\n換行).

WTGPIO+TYPE:D,RW:W,PIN:5,VALUE:0
    參數(大寫) 最大長度 255
  • TYPE : D(Digital), A(Analog)
  • RW : R(Read) 或 W(Write)
  • PIN : 腳位編號, ADC = 20
  • VALUE : 值
  • 命令結尾 : \r\n

 WTCONN+


Wi-Fi 設定透過哪一台基地台連接 Internet

.

WTCONN+SSID:SSID NAME,PASSWORD:12345678
    參數(大寫) 最大長度 255
  • SSID : 基地台名稱
  • PASSWORD : 密碼
  • 命令結尾 : \r\n
  • 設定完自動重開並連結指定的 AP

 WTUART+


UART 設定 UART 參數

WTUART+BAUD:9600
    參數(大寫) 最大長度 255
  • BAUD : 傳輸率
  • 命令結尾 : \r\n

 WTCMD+

2016.03.20 增加


AT AT指令

指令集
MAC : 回傳 MAC 位址
RESET : 重置 WF8266R 資料
RST : 重開機
VERSION : WF8266 版本
PRODUCT : WF8266 產品型號
HEAP : WF8266 RAM 剩下空間
SN : 產品序號
SCAN : 取得 AP 清單
AP : AP 開關, VALUE : [0:關閉] [1:開啟]
SLEEP : 休眠, VALUE : 休眠秒數
TIME : 設定時間, VALUE : UTC 格式(0 回傳目前時間)

2016.04.05 新增
IP : 目前位址
RSSI : 訊號強度
CHANNEL : 使用頻道

2017.01.25 新增
CIP : 固定 IP, DATA : IPV4
GW : Gateway, DATA : IPV4
MASK : Mask, DATA : IPV4
DNS : DNS, DATA : IPV4
RENEWIP : 套用自訂 IP 設定組態
SOCKET : TCP/IP, DATA : IP@PORT
SEND : Socket 傳送資料, DATA : 資料內容
    參數(大寫) 最大長度 255
  • AT : 命令集
  • VALUE : 參數值
  • 命令結尾 : \r\n

例如 : 取回 MAC 網路位址

WTCMD+AT:MAC

例如 : 休眠 60 秒

WTCMD+AT:SLEEP,VALUE:60

 WTSEN+


SERVO 指定伺服馬達角度

WTSEN+SERVO:PIN,VALUE:90
    參數(大寫) 最大長度 255
  • PIN : 腳位
  • VALUE : 角度 0~180
  • 命令結尾 : \r\n

IRSendCode 發送紅外線 NEC 編碼

WTSEN+IRSendCode:PIN,DATA:906FA25D
    參數(注意大小寫) 最大長度 255
  • PIN : 腳位
  • DATA : 紅外線 NEC 編碼
  • 命令結尾 : \r\n

TTS 發送文字給語音模組讀出

WTSEN+TTS:Voice,DATA:16進位文字
    參數(注意大小寫) 最大長度 255
  • Voice : 聲線 0-5
  • DATA : 16進位文字編碼, 利用以下網址轉換
  • https://service.wf8266.com/api/voice/主人你好
    D6F7C8CBC4E3BAC3
  • 命令結尾 : \r\n

VCMD 語音模組操作指令集

WTSEN+VCMD:CMD,DATA:VALUE
    參數(注意大小寫) 最大長度 255
  • CMD : 指令名稱
  • DATA : 參數
  • 命令結尾 : \r\n
Volume : 音量, DATA: 0-9
PlayFlashText : 自訂語音命令回應語句, DATA: 001-999
PlayFLASH : 播放內置語音提示音, DATA: 0001-0046
PlayTF : 播放TF卡內的 MP3, DATA: 0001-9999
StopPlaying : 停止播放

WFS 接收 WF8266R.js Sensor 模組回傳感測資料

WTSEN+WFS:TYPE,DATA:906FA25D
    參數(大寫) 最大長度 255
  • TYPE : 感測器類型
    • RFID
  • DATA : 資料
  • 命令結尾 : \r\n

例如 : 取得 RFID 碼 4028D76D

WTSEN+WFS:RFID,DATA:4028D76D

Download Unity 3D : http://unity3d.com

提供 Unity 3D 開發物聯網及互動遊戲的通道.


 gpio


回傳 腳位電位資料


 gpio/pwm


回傳 腳位電位資料


 gpio/read


回傳 腳位電位資料


 gpio/adc


回傳 ADC 資料


WF8266R.js 提供了相當豐富的 API, 也因如此在硬體資源限制下無法納入太多的感測器, 為了解決這個問題, WF8266R.js 提出了 WFS 架構。WFS 是 WF8266R.js Sensor Service 縮寫, 提供讓 WF8266R 變身為感測中心, 透過 UART 將感測資料傳到 WF8266R.

使用說明 : https://sites.google.com/view/wfs


RFID

SPI 通訊, MFRC522

教學課程 : http://wf8266.com/wf8266r/tutorials/3D_RFID

 rfid/init


初始化 RFID


 rfid/read


請取卡片值


OLED

I2C 介面, SSD1306 驅動

 oled/font


顯示 繁體 簡體 英數

參數

x : x座標, y : y座標, size : 字級(預設16), lang : 字型(TW:繁中, CN:繁簡中), data : 顯示文字

 oled/string


顯示 英數

參數

x : x座標, y : y座標, size : 字級 10 16 24 (預設16), data : 顯示文字

 oled/clear


清空畫面


 oled/code


上傳 16 進位碼畫出點陣