70
物聯網開發板 WF8266R0lu http://www.wf8266.com Union U Inc.

WF8266R IoT DEV Board 物聯網開發版

Embed Size (px)

Citation preview

Page 1: WF8266R IoT DEV Board 物聯網開發版

物聯網開發板WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 2: WF8266R IoT DEV Board 物聯網開發版

AGENDA➤ WF8266R.js 介紹

➤ 環境及連線

➤ 基礎課程

➤ 單元⼀ : 連上網路

➤ 單元⼆ : 點亮 LED

➤ 單元三 : 亮度調整

➤ 單元四 : PWM 調⾊

➤ 單元五 : 閃亮 LED

➤ 單元六 : 串列 Serial

➤ 單元七 : 事件 Event

Page 3: WF8266R IoT DEV Board 物聯網開發版

AGENDA➤ 元件

➤ DHT

➤ 超⾳波

➤ DS18B20

➤ IoT

➤ ThingSpeak

➤ IFTTT

Page 4: WF8266R IoT DEV Board 物聯網開發版

物聯網研習材料

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 5: WF8266R IoT DEV Board 物聯網開發版

材料準備

WF8266R DHT11 DS18B20 HSR04 LED

RGB LED SW520D麵包板

Relay 公杜邦線

Page 6: WF8266R IoT DEV Board 物聯網開發版

基礎課程➤ 單元一 : 連上網路

➤ 單元二 : 點亮 LED

➤ 單元三 : 亮度調整

➤ 單元四 : PWM 調色

➤ 單元五 : 閃亮 LED

➤ 單元六 : 串列 Serial

➤ 單元七 : 事件 Event

Page 7: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元⼀ : 連接網路

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 8: WF8266R IoT DEV Board 物聯網開發版

物聯雲 APP : 手機連接WF8266R AP➤ 手機 Wi-Fi -> UNU-WF8266R-XXXX (XXXX為SN後4碼)

➤ 透過 APP 將 WF8266R 連上可連通 Internet 的AP基地台

UNU-WF8266R-XXXXWi-Fi

Access Point

Page 9: WF8266R IoT DEV Board 物聯網開發版

物聯雲 APP : 加入裝置

Page 10: WF8266R IoT DEV Board 物聯網開發版

物聯雲 APP : 查看設備IP➤ 確認手機可連上 Internet ,打開物聯雲 APP 首頁的設備清單確定 IP 位址

Page 11: WF8266R IoT DEV Board 物聯網開發版

物聯雲 APP : 網路連接概念

AP 192.168.4.1Local x.x.x.x

IP x.x.x.x

Internet

WF8266Rhttp://www.wf8266.com

Union U Inc.

MQTT

Internet AP

Page 12: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元⼆ : 點亮 LED

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 13: WF8266R IoT DEV Board 物聯網開發版

點亮 LED :材料➤ 透過 LED 的亮滅來學習 GPIO 腳位輸出 高電位 和 低電位. 就像水往低處流, 當我們控

制 PIN5 腳輸出高電位時, 電流由 LED 正腳位(長;Pin5)流向負腳位(短;Gnd) LED 便會

亮起; 反之, 當 PIN5 輸出為低電位時, LED 二腳間是相等的低電位, 不會有流動產生, 所

以 LED 自然就不會亮.

Page 14: WF8266R IoT DEV Board 物聯網開發版

點亮 LED : 配線➤ LED 長的接 PIN5 短的接 GND

➤ 在 WF8266R 開發板中的下面有6的小圓孔, 由左到右分別是 GND 5 4 12 13 5V

Page 15: WF8266R IoT DEV Board 物聯網開發版

點亮 LED : 程式解說➤ API 類型 : WebComponent

➤ 目的 : 初學程式的人也可以輕鬆上手, 我們將 Web API 包裝成 <wf8266r-button> 標

籤, 只需要透過 標籤(TAG) 的定義就能使用. 而且可在任何裝置上瀏覽自行設計的控制

頁.

<wf8266r-button type="腳位類型" pin="編號" value="值">說明</wf8266r-button>

type

gpio : 數位輸出

pwm : 數位類比輸出

read : 讀取腳位

adc : 類比輸入

Page 16: WF8266R IoT DEV Board 物聯網開發版

點亮 LED : 打開和關閉 LED 燈➤ 打開 LED,將 5 號腳位設為 1

➤ 關閉LED,將5號腳位設為 0

➤ 教學網站 : http://wf8266.com/wf8266r/tutorials/02_Light

<wf8266r-button type="gpio" pin="5" value="1">打開 LED</wf8266r-button>

<wf8266r-button type="gpio" pin="5" value="0">關閉</wf8266r-button>

Page 17: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元三 : 亮度調整 PWM

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 18: WF8266R IoT DEV Board 物聯網開發版

亮度調整 PWM:材料➤ 上個單元我們學會了如何控制電的流動, 這個單元要介紹如何控制電的流量, 就和開水

龍頭相同, 想要水大些你會把開關開大. 同樣的原理, 透過 PWM 可以控制這個流量, 當

PWM = 0 時最小, PWM = 1023 時最大.

Page 19: WF8266R IoT DEV Board 物聯網開發版

亮度調整 PWM : 配線➤ LED 長的接 PIN5 短的接 GND

➤ 在 WF8266R 開發板中的下面有6的小圓孔, 由左到右分別是 GND 5 4 12 13 5V

Page 20: WF8266R IoT DEV Board 物聯網開發版

亮度調整 PWM : 程式解說➤ API 類型 : WebComponent

➤ 目的 : 初學程式的人也可以輕鬆上手, 我們將 Web API 包裝成 <wf8266r-button> 標

籤, 只需要透過 標籤(TAG) 的定義就能使用. 而且可在任何裝置上瀏覽自行設計的控制

頁.

<wf8266r-button type="腳位類型" pin="編號" value="值">說明</wf8266r-button>

type

gpio : 數位輸出

pwm : 數位類比輸出

read : 讀取腳位

adc : 類比輸入

Page 21: WF8266R IoT DEV Board 物聯網開發版

亮度調整 PWM : 調整 LED 光的亮度➤ 調整 LED,將 5 號腳位設為 0 ∼ 1023

➤ 教學網站 : http://wf8266.com/wf8266r/tutorials/03_LightPWM

<wf8266r-button type="pwm" pin="5" value="0">LED 亮度調整</wf8266r-button>

Page 22: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元四 : PWM 調⾊

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 23: WF8266R IoT DEV Board 物聯網開發版

調色:材料➤ 上個單元我們學會了控制流量, 這個單元我們把流量轉換為 RGB 調色控制, 就像 紅+綠

= 黃

➤ RGB LED 燈的腳位由圖片上左到右分別是 Blue(藍) Green(綠) Common(共陰極)

Red(紅)

Page 24: WF8266R IoT DEV Board 物聯網開發版

調色 : 配線➤ LED 最長的接 GND 短的由左到右接 12(B) 4(G) 5(R)

➤ 這顆 RGB LED 是共陰極的規格, 所以最長的腳位是接 GND, 因此 GPIO 5 4 12 需要輸

出高電位才可將LED點亮.

Page 25: WF8266R IoT DEV Board 物聯網開發版

調色 : 程式解說➤ API 類型 : WebComponent

➤ 目的 : 初學程式的人也可以輕鬆上手, 我們將 Web API 包裝成 <wf8266r-button> 標

籤, 只需要透過 標籤(TAG) 的定義就能使用. 而且可在任何裝置上瀏覽自行設計的控制

頁.

<wf8266r-button type="腳位類型" pin="編號" value="值">說明</wf8266r-button>

type

gpio : 數位輸出

pwm : 數位類比輸出

read : 讀取腳位

adc : 類比輸入

Page 26: WF8266R IoT DEV Board 物聯網開發版

調色 : 調整 LED 光的色度➤ 設定3個腳位分別控制 R G B 3 色的輸出量

➤ 教學網站 : http://wf8266.com/wf8266r/tutorials/04_LightColor

<wf8266r-button id="ledR" type="pwm" pin="5" value="0">LED 紅⾊</wf8266r-button>

<wf8266r-button id="ledG" type="pwm" pin="4" value="0">LED 綠⾊</wf8266r-button>

<wf8266r-button id="ledB" type="pwm" pin="12" value="0">LED 藍⾊</wf8266r-button>

Page 27: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元五 : 閃亮 LED

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 28: WF8266R IoT DEV Board 物聯網開發版

閃亮 LED:材料➤ LED x 1

➤ WF8266R x 1

➤ 之前的單元都學會了嗎, 接下來要讓 LED 燈閃動起來, 這個需要一點點程式幫忙. 這個

單元你將學會如何透過程式來隨心控制 GPIO 而不必限制在前面的物件功能.

Page 29: WF8266R IoT DEV Board 物聯網開發版

閃亮 LED : 配線

Page 30: WF8266R IoT DEV Board 物聯網開發版

閃亮 LED : 程式解說➤ API 類型 : WebComponent

➤ 目的 : 學習 GPIO 物件的使用和操作

document.addEventListener('wf8266r-ready', function (e) {

...

}, false);

setInterval(function(){

要做的事情寫在這裡

},毫秒);

GPIO.pin(5,pin5Value,function(){}); //將⽬前存在 pin5Value 裡的⾼或低電位送到 PIN5 腳

},1000);

Page 31: WF8266R IoT DEV Board 物聯網開發版

閃亮 LED : 開始閃動➤ 1秒要換一個狀態, 需要一個變數, 名字叫 pin5Value 存放 GPIO5 腳的電位值

➤ 然後要判斷 如果是高電位 就把 pin5Value 設成低, 反之設為高. 如此就會有 高低高低 ...

一直這樣變化下去, 而這個時間就是 1000 毫秒 也就是 1 秒鐘.

➤ 教學網站 : http://wf8266.com/wf8266r/tutorials/05_LightShiny

Page 32: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元六 : UART

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 33: WF8266R IoT DEV Board 物聯網開發版

UART : 概念➤ 序列(串口) 傳輸

➤ WF8266R 可以透過 Tx(該裝置的輸出訊號腳位) 和 Rx(該裝置的接收訊號腳位) 二腳和

外部序列裝置進行資料互傳

Device 1 Device 2

Tx

Rx

Rx

Tx

BAUD

Page 34: WF8266R IoT DEV Board 物聯網開發版

UART : 材料➤ USB 轉 TTL 晶片 FTDI:用來和電腦溝通

➤ WF8266R

Page 35: WF8266R IoT DEV Board 物聯網開發版

UART : 調整速度 BAUD➤ WF8266R 預設的傳輸率是 115200

➤ 輸入 wf8266r.local 可查看 WF8266R 的內部資料

➤ 更改速率

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

範例

http://wf8266.com/wf8266r/Code?templateName=06_SerialBaud.html

Page 36: WF8266R IoT DEV Board 物聯網開發版

UART : READ➤ WF8266R 目前配置了 255 個字元讀取緩衝區, 所以一次發送的最大長度為 255. 這裡示

範由電腦端發送 Hello WF8266R 字串, 並透過 GPIO 物件的 serialRead 讀取.

➤ 讀取

》文字 : http://wf8266r.local/serial/read?text=

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

範例

http://wf8266.com/wf8266r/Code?templateName=06_SerialRead.html

Page 37: WF8266R IoT DEV Board 物聯網開發版

UART : WRITE➤ WF8266R 可透過 GPIO.serialWrite 或是加上 換行 GPIO.serialWriteln 這二個方法將

資料送到其他設備.

➤ 寫入

》文字 : http://wf8266r.local/write?text=

》HEX : http://wf8266r.local/write?hex=

範例

http://wf8266.com/wf8266r/Code?templateName=06_SerialWrite.html

Page 38: WF8266R IoT DEV Board 物聯網開發版

物聯網基礎課程

單元七 : EVENT 事件系統

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 39: WF8266R IoT DEV Board 物聯網開發版

事件系統 : 概念➤ 讓 WF8266R 自主處理一些簡易的控制,不需要長期開啟 APP 或 網頁監控。

監聽 觸發

腳位

時間

元件

腳位

GPIO

溫濕度

DHT11

溫濕度

DHT22

超音波

HSR

流明

BH1750

溫度

DS

PM2.5

G1 G3 G5

腳位

呼叫網址

傳送事件

Self Call

推送 Device Call

Page 40: WF8266R IoT DEV Board 物聯網開發版

事件系統 : 服務➤ 讀取事件清單

http://wf8266r.local/when

➤ 清空事件清單

http://wf8266r.local/when?=

➤ 將事件清單寫入 ROM

http://wf8266r.local/save

➤ 加入事件

http://wf8266r.local/listen

Page 41: WF8266R IoT DEV Board 物聯網開發版

事件系統 : APP 小幫手➤ 事件系統參數較多,如果一時無法掌握也沒關係。

➤ 使用物聯雲 APP 快速建立事件行為。

Page 42: WF8266R IoT DEV Board 物聯網開發版

案例 1 : 按下 WF8266R(GPIO0) 白色按鍵後關閉 GPIO5 上的 LED 燈

➤ 這裡有個關念要說明, 在按鍵電路上 WF8266R 的 GPIO 0 4 5 12 13 都是輸出高電位, 所

以判別條件都是以低電位做為依據. 將上述目的轉換為 Event 參數如下:

eventType=1 //預設值可不填

eventValue=0,0 //GPIO0 = 0 時成⽴

trigerType=1 //使⽤腳位觸發動作

trigerValue=5,0 //觸發腳為 GPIO5 輸出低電位

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

Page 43: WF8266R IoT DEV Board 物聯網開發版

案例 2 : 按下 WF8266R(GPIO0) 白色按鍵後關閉 GPIO5 上的 LED 燈, 5秒後再亮起

➤ 現在 LED 燈是熄滅的狀態, 但希望 5 秒後再亮起, 我們可以使用 timer 來控制

eventType=1 //預設值可不填

eventValue=0,0 //GPIO0 = 0 時成⽴

trigerType=1 //使⽤腳位觸發動作

trigerValue=5,1 //觸發腳為 GPIO5 輸出低電位

timer=5000 //成⽴後5秒觸發

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

Page 44: WF8266R IoT DEV Board 物聯網開發版

案例 3 : 按下 WF8266R(GPIO0) 白色按鍵後關閉另一塊 WF8266R GPIO5 上的 LED 燈

➤ 另一塊 WF8266R 的 IP為 192.168.0.21 使用 WebAPIs 方式控制 GPIO, 我們可以這樣使

用 :

➤ 在了解之後, 轉換為事件參數如下 :

http://192.168.0.21/gpio?5=0

eventType=1 //預設值可不填

eventValue=0,0 //GPIO0 = 0 時成⽴

trigerType=2 //使⽤ Request 觸發動作, 位址⼀定要最後做

trigerValue=192.168.0.21:80,gpio?5=0 //觸發另⼀塊 WF8266R 腳為 GPIO5 輸出低電位

http://wf8266r.local/when/listen?eventValue=0,0&trigerType=2&trigerValue=192.168.0.21:80,gpio?5=0

Page 45: WF8266R IoT DEV Board 物聯網開發版

案例 5 : 按下 WF8266R(GPIO0) 白色按鍵後通知網頁端訂閱者 PIN0_CLICK

➤ 事件訂閱會需要使用到 WF8266R.js 的 GPIO 物件. 透過 e.Action 獲得目前通知的事件

➤ 在了解之後, 轉換為事件參數如下 :

GPIO.events(function(e){

$("#message").text(e.Action).fadeIn().delay(100).fadeOut();

});

eventType=1 //預設值可不填

eventValue=0,0 //GPIO0 = 0 時成⽴

trigerType=3 //使⽤ WebSocket 通知訂閱者

trigerValue=PIN0_Click //⾃訂事件名稱 傳送到 GPIO.events 裡的 e.Action

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

Page 46: WF8266R IoT DEV Board 物聯網開發版

案例 6 : 每個小時的 0 分 關閉 LED, 5 分 打開 LED➤ 時間的監控是使用 eventType=2

➤ 在了解之後, 轉換為事件參數如下 :

eventType=2 //時間監控

eventValue=:0 //時間的分鐘數 = 0 時成⽴

trigerType=1 //使⽤腳位輸出

trigerValue=5,0 //將 GPIO5 輸出低電位

// 0 分時關閉

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

// 5 分時打開

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

// 晚上 8 點 使⽤ WebSocket 訂閱通知

http://wf8266r.local/when/listen?eventType=2&eventValue=20:0&trigerType=3&trigerValue=PM8

Page 47: WF8266R IoT DEV Board 物聯網開發版

元件➤ DHT

➤ 超音波

➤ DS18B20

Page 48: WF8266R IoT DEV Board 物聯網開發版

物聯網元件

DHT11/DHT22

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 49: WF8266R IoT DEV Board 物聯網開發版

DHT :材料➤ 型號:DHT11

➤ 濕度 : 20% ~ 95%

➤ 溫度 : 0 ~ 50 度C

➤ 誤差 : 濕度 5% 溫度

2%

➤ VCC : 3~5V

Page 50: WF8266R IoT DEV Board 物聯網開發版

DHT : 配線

Page 51: WF8266R IoT DEV Board 物聯網開發版

DHT : 程式解說➤ 要透過 DHT11 讀取目前的溫濕度時需要使用 GPIO.dht11 功能, 並指定 DHT11 的

Data 腳接在 WF8266R 的哪個腳位. 這個範例我們將 Data 接在 Pin 14. 所以我希望 5 秒

取一次目前的環境 溫度 和 濕度 時就需要用到 setInterval 幫手.

➤ 除了 DHT11 以為, 同樣可以使用 GPIO.dht 方式自訂感測器型別 11(DHT11),

22(DHT22), 21(DHT21,AM2301)

GPIO.dht(12,11,function(dht){

$("#Humidity").text(dht.Humidity + " %");

$("#C").text(dht.C);

$("#F").text(dht.F);

});

Page 52: WF8266R IoT DEV Board 物聯網開發版

DHT : 實做➤ 教學網站 : http://wf8266.com/wf8266r/Code?templateName=31_DHT.html

Page 53: WF8266R IoT DEV Board 物聯網開發版

物聯網元件

超⾳波測距 HSR04

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 54: WF8266R IoT DEV Board 物聯網開發版

超音波測距 :材料➤ 型號:HC-SR04

➤ 探測的距離 : 2cm-400cm

➤ 精度 : 0.3 cm

➤ 感應角度 : 15 度

➤ VCC : 5V

Page 55: WF8266R IoT DEV Board 物聯網開發版

DHT : 配線

Page 56: WF8266R IoT DEV Board 物聯網開發版

DHT : 程式解說➤ 利用 setInterval 這個幫手來每秒鐘取一次目前的距離. 其中會透過 GPIO.distance 這個

功能向 WF8266R 發出請求, 當資料回傳時便會儲存在 data 物件中, 只需透過

data.distance 就可以拿到距離值了. 在使用 distance 時會傳入2個參數, 分別是 Echo 和

Trig, 這個範例我們是將 Echo 接在 Pin 13 所以第一個參數代 13, Trig 則是 12.

setInterval(function(){

GPIO.distance(13,12,function(data){ // Echo, Trig

$("#distanceValue").text(data.distance);

});

},1000); //試著改改時間 1 秒 = 1000

}, false);

Page 57: WF8266R IoT DEV Board 物聯網開發版

DHT : 實做➤ 教學網站 : http://wf8266.com/wf8266r/Code?templateName=32_Distance.html

Page 58: WF8266R IoT DEV Board 物聯網開發版

物聯網元件

溫度 DS18B20

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 59: WF8266R IoT DEV Board 物聯網開發版

DS18B20 溫度感測 :材料➤ DS 系列是一款數位式高精度的

溫度感測器, 數位化的好處是受

距離影響較低, 使用 One-Wire

方式通訊, 這種方式只需要一個

IO 就可以串接多個感測器。 在

市面上比較常看到2種型式, 一種

是本章介絕的, 另一種是帶金屬

探頭做液態量測的, 都是同一個

晶片。

➤ 規格 : -55度 ~ 125度

Page 60: WF8266R IoT DEV Board 物聯網開發版

DS18B20 : 配線

Page 61: WF8266R IoT DEV Board 物聯網開發版

DS18B20 : 實作

Page 62: WF8266R IoT DEV Board 物聯網開發版

DS18B20 : 配合事件控制繼電器開關➤ 希望繼電器第1路(GPIO5)在 第1顆溫度 > 32 度時關閉(GPIO5=1), 第1顆溫度 < 30 度時

打開(GPIO5=0), 可以下達以下2組事件定義 :

➤ APP 教學資料

http://wf8266.com/wf8266r/tutorials/35_DS

關閉 http://wf8266r.local/when/listen?eventType=3&eventValue=4:1:32^2,14:1&trigerType=1&trigerValue=5,1&timer=1000

打開 http://wf8266r.local/when/listen?eventType=3&eventValue=4:1:30^1,14:1&trigerType=1&trigerValue=5,0&timer=1000

Page 63: WF8266R IoT DEV Board 物聯網開發版

IOT 平台➤ IFTTT

➤ THINGSPEAK

Page 64: WF8266R IoT DEV Board 物聯網開發版

物聯網IOT 平台

IFTTT

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 65: WF8266R IoT DEV Board 物聯網開發版

IFTTT :註冊➤ 註冊 IFTTT 的好處是他目前完全免費, 並且可以讓 WF8266R 跨界使用更多熱門服務.

IFTTT 簡單來說就是 當 什麼 發生時 就做 什麼 事, 這 2 個 什麼 就是服務, 並且可以交

互訂閱.

Page 66: WF8266R IoT DEV Board 物聯網開發版

IFTTT : EMAIL 通知➤ 繼電器或腳位觸發時發送 EMail 通知

➤ 教學

http://wf8266.com/wf8266r/tutorials/52_GPIO_MAIL

Page 67: WF8266R IoT DEV Board 物聯網開發版

物聯網IOT 平台

thingspeak.com

WF8266Rhttp://www.wf8266.com

Union U Inc.

Page 68: WF8266R IoT DEV Board 物聯網開發版

THINGSPEAK :註冊➤ https://thingspeak.com/

Page 69: WF8266R IoT DEV Board 物聯網開發版

THINGSPEAK : 資料上傳➤ 將資料存放在雲端平台

➤ 教學

http://wf8266.com/wf8266r/tutorials/0A_WT

Page 70: WF8266R IoT DEV Board 物聯網開發版

WF8266Rhttp://www.wf8266.com

Union U Inc.