Download presentation
Presentation is loading. Please wait.
Published byGonzalo Río Ortega Modified 5年之前
2
第十六章 網路家電控制 使用Webduino程式庫建立微型網站 Webduino的微網站程式碼 自訂錯誤訊息網頁 監控遠端的溫濕度值
使用Streaming程式庫輸出字串 建立網頁表單 認識GET和POST方法 從瀏覽器控制遠端燈光開關 控制家電開關
3
使用Webduino程式庫建立微型網站 Arduino內建的乙太程式庫程式,比較不容易維護;在Webduino程式庫則透過
命令(command)處理各種請求,每個命令相當於一個HTML頁面。 參閱 16-2
4
使用Webduino程式庫建立微型網站 參閱 16-3
5
撰寫Webduino的命令 命令就是自訂函數,最基本的格式:
Webduino程式至少要有一個自訂命令。底下的自訂命令defaultCmd,將送出事先儲存的HTML內容給用戶端。 參閱 16-4
6
Webduino的微網站程式碼 Webduino是基於官方Ethernet程式庫的加強版程式,因此沿用了部分語法, 基本的網站伺服器程式碼:
參閱 16-6
7
自訂錯誤訊息網頁 錯誤訊息"EPIC FAIL"定義在Webduino.h程式檔,我們可以自訂此訊息: 也能用圖像代替錯誤訊息: 參閱
16-8
8
影像與超連結標籤 參閱 16-9
9
監控遠端的溫濕度值(一) 沿用第十五章的乙太網路模組接線,加入DHT11溫濕度感測器: 參閱 16-11
10
監控遠端的溫濕度值(二) 此defaultCmd命令採用Streaming的程式庫,輸出HTML中的變動部分 (顯示最新的溫濕度值): 參閱
16-13
11
使用Streaming程式庫輸出字串 Streaming程式庫的語法,能在同一行敘述合併輸出字串和變數值,它也能用在LCD顯示器以及乙太網路卡等模組的程式庫,取代print()指令。 參閱 16-13
12
輸出帶小數點的溫濕度值 「傳統」的C程式語言中,把浮點數字轉換成字串的函數叫做sprintf();Arduino採用的轉換函數叫做dtostrf()。 參閱 16-15
13
讓瀏覽器自動更新顯示溫濕度值 參閱 16-16
14
傳遞資料給網站伺服器 從用戶端傳遞資料給網站伺服器,主要有超連結和表單(form)兩種途徑。
表單是網頁上讓使用者輸入資料的介面,基本的表單元素類型如下: 參閱 16-17
15
建立網頁表單 表單元素放在HTML本體的<form>標籤之中: 呈現結果: 參閱 16-18
16
認識傳遞資料的GET方法和查詢字串 附加在網址後面的傳遞資料,稱為「查詢字串(query string)」:
參閱 16-21
17
認識POST方法 GET方法會把傳遞資料附加在網址後面,傳送的資料量有限(最大通常是2KB)。
POST方法則沒有限制上傳資料的大小(實際情況由網站伺服器決定,通常都大於2MB)。 底下是發出GET請求時,附加資料的方式: POST方法則是把資料附加在請求內文: 參閱 16-22
18
建立接收POST表單資料的自訂命令(一)
使用Webduino程式庫撰寫一個處理POST表單資料的程式,在瀏覽器上呈現用戶輸入的資料,以及點選的「開」或「關」選項值。 參閱 16-23 讀取POST資料的指令名稱與格式如下,只要有讀取到POST資料,readPOSTparam()將傳回true:
19
建立接收POST表單資料的自訂命令(二)
新增一個名叫postCmd的自訂命令的程式片段: 參閱 16-24 在setup()函數,透過addCommand()設定觸發此命令的網址路徑名稱:
20
從瀏覽器控制遠端燈光開關 在接收參數值的程式裡加入判斷條件式,讓此網站伺服器根據用戶的輸入值來開、關LED: 參閱 16-26
21
控制遠端燈光開關的程式 比較兩個字串時,必須使用strcmp()函數;若字串相同,此函數將傳回0: 參閱 16-28
22
控制家電開關 繼電器是「用電磁鐵控制的開關」,控制端和被控制設備的電源是分離的:
繼電器通常需要透過電晶體驅動,市售現成的控制模組上面已包含電晶體。 加裝繼電器控制模組,即可透過網路控制家電開關: 參閱 16-33
23
使用繼電器控制家電開關 參閱 16-36 參閱 16-38
24
電源線的連接方式 參閱 16-37
Similar presentations