Relay 「Environment」把 Relay 運作所需要的設定、快取儲存庫、還有網路處理結合在一起。 大部分應用程式會建立一個 Environment 實例並從頭到尾使用它。不過在一些特定的狀況下,你可以會想要為了不同的目的建立多個 environment。例如,你可以在任何時候使用者登入登出時建立一個新的 environment 實例,來防止不同使用者的資料被快取在一起。同樣地,一個被伺服器 render 的應用程式可以針對每個請求建立新的 environment 實例,這樣的話每個請求都能有自己的快取,使用者的資料就不會互相覆蓋。或者,你可能有許多的產品或功能在一個大型應用程式中,而你希望每一個可以有針對特定產品的網路處理或是快取。 簡單範例 #要在 Relay Modern 中建立一個
environment 實例,只要使用 const { Environment, Network, RecordSource, Store, } = require('relay-runtime'); const source = new RecordSource(); const store = new Store(source); const network = Network.create(); const handlerProvider = null; const environment = new Environment({ handlerProvider, network, store, }); 關於建立 Network 的細節,請查看 NetworkLayer 指南。 一旦你有了一個 environment 了,你就可以把它傳進你的 添加 handlerProvider #上面的範例沒有設定 如果你想要提供自己的
const { ConnectionHandler, ViewerHandler, } = require('relay-runtime'); function handlerProvider(handle) { switch (handle) { case 'connection': return ConnectionHandler; case 'viewer': return ViewerHandler; } throw new Error( `handlerProvider: No handler provided for ${handle}` ); } 繼電器繼電器是一種電子控制器件,它具有控制系統和被控制系統,通常應用於自動控制電路中,是用較小的電流去控制較大電流的一種「自動開關」,在電路中起著自動調節、安全保護、轉換電路等作用。當我們開始用 Webduino 控制繼電器,就可以非常簡單的做出利用網頁控制的智慧插座或自動開關。 範例影片展示接線與實作開始接線前,先認識一下繼電器,繼電器的內部構造有一個電磁鐵,
藉由這個方式,我們就可以很容易的控制電器用品的開和關。 因為是用小電流控制大電流,所以在這個範例會用到兩組電源,其中一組電源提供 Webduino 開發板使用,另外一組電源則是供應繼電器使用。在繼電器上頭有紅燈綠燈的一側,具有三個腳位,將 VCC 接在 Webduino 3.3V 的腳位,GND 接在 GND 的腳位,IN 接在 9 的位置,繼電器的另外一側需要用十字螺絲起子來接線 ( 因為這一側通常會接大電流的電器 ),將風扇的其中一條電線接在繼電器的「常開」,另外一條電線和電源接上,而電源的另外一條線則接在繼電器的「公共端」。
馬克一號接線示意圖: Fly 接線示意圖: 繼電器的大電流一端的接線,利用十字螺絲起子,將電線旋緊。 實際接線照片: 斷路時繼電器會亮紅色的燈,通路時會亮綠色的燈。 基本操作打開 Webduino Blockly 編輯工具 ( https://blockly.webduino.io ),在畫面中放入開發板積木,填入 Device ID,在開發板內放入 繼電器的積木,腳位設定 11,變數名稱設定為 relay。
如果要讓繼電器打開 ( 使其通電 ),在繼電器積木的後方,放入「relay 設定狀態 on」的積木。 由於繼電器和 LED 一樣,都是透過數位腳的 1 和 0 控制開和關,所以把繼電器的積木,換成 LED 的積木一樣是可以運作的。不過繼電器不支援「強弱」,只能純粹的開、關、閃爍。 填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,就可以看到繼電器通電,連接繼電器的電扇或電器也會啟動。
網頁燈泡圖片控制繼電器更進一步我們可以透過網頁操控 LED,這時可以打開 Webduino Blockly 的網頁互動測試區,下拉選單選擇「點擊燈泡」,畫面裡會打開一個內嵌的網頁燈泡圖片,在左側的積木目錄內,可以看到最下方出現了一個「點擊燈泡」的選單,點選展開可以看到操控網頁燈泡圖片的控制積木。 接著為了確保開發板上線的時候,繼電器和網頁燈泡圖片的狀態一致 ( 都是關或都是開 ),先放入 relay 狀態為 off 和燈泡狀態為 off 的積木,讓它們一開始都是熄滅的狀態。 把「點擊燈泡執行」的積木放到畫面中,放入邏輯「如果、否則」的積木,邏輯積木可以點選「藍色小齒輪」,增加判斷的條件 ( 如下圖 )。
在第一個邏輯判斷,放入「燈泡現在狀態是 on」的積木,表示「如果燈泡圖片是亮燈的」,執行的內容就將燈泡圖片狀態設為 off,relay 也設為 off,反之「如果燈泡圖片是熄滅的」,執行的內容就將燈泡圖片狀態設為 on,relay 狀態也設為 on。 其實更簡單的方法是直接用 LED 的積木來控制繼電器,透過「狀態切換」可以直接切換把 off 狀態變成 on,把 on 變成 off。 填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,並開始點按網頁互動區裡的燈泡圖片,就可以輕鬆地控制 連接繼電器的電器了。
相關參考
聯絡我們如果對於 Webduino 產品有興趣,歡迎透過下列方式購買:
如果對於這篇教學有任何問題或建議,歡迎透過下列方式聯繫我們:
|