天天看點

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

本節書摘來自華章出版社《用于物聯網的arduino項目開發:實用案例解析》一 書中的第2章,第2.3節,作者[美]安德爾·傑韋德(adeel javed),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

這一節要給arduino uno安裝一塊無線盾闆,然後寫代碼通過wifi連接配接到網際網路。

如果你使用的arduino闆子有内置的無線功能,比如arduino yún,那麼就不需要額外的無線盾闆。arduino yún的網際網路連接配接設定在本章後面介紹。

圖2-4給出了通過無線盾闆把arduino uno連接配接到網際網路上所需的全部硬體。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

為了寫網際網路連接配接代碼,需要arduino ide 1.6.4或更新版本的軟體。

以下是我們要搭建通過wifi連接配接網際網路所需的電路。

1.首先确認arduino沒有連接配接任何電源、usb線和電池。

2.把wifi盾闆(也就是無線盾闆)插在arduino上。所有的引腳都要對齊。

插好無線盾闆後應如圖2-5所示。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

現在,你的arduino就能連接配接到無線網絡了,接下來要寫能夠讓arduino在網際網路上收發資料的代碼。

啟動arduino ide,輸入下面的代碼,或者從本書的網站下載下傳代碼檔案然後打開。所有的檔案都在單個源檔案(*.ino)中,不過為了便于了解和重用,這個代碼被分成以下三個部分:

外部庫

網際網路連接配接(無線)

标準函數

程式2-6給出了代碼的第一部分,它引入了運作這個代碼所需的全部外部庫。因為要通過wifi來連接配接到網際網路,這個代碼主要依賴的是。arduino ide應該已經自帶wifi庫了。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

代碼的第二部分定義了連接配接網際網路要用到的變量、常量和函數。

為了把arduino連接配接到你的無線路由器,要像程式2-7那樣來設定無線網絡的ssid和密碼(密碼)。另外還要建立一個wificlient變量以供網際網路連接配接之用。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

程式2-8給出了無線連接配接設定的代碼。connecttointernet()函數首先檢查是否接上了wifi盾闆,然後它不斷地嘗試連接配接到無線網絡。一旦arduino成功地連接配接到了無線網絡,這個循環就結束了,同時這個函數也就結束了。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)
《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

一旦arduino成功連接配接無線網絡,程式2-9中的printconnectioninformation()函數就會被調用,它會在序列槽螢幕視窗中列印出ssid、路由器的mac位址、信号強度(rssi)、arduino的ip位址和arduino的mac位址。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)
《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

最後,程式2-10給出了第三部分的代碼。它實作了arduino的标準的setup()和loop()函數。對這個作品而言,隻要把arduino連入網際網路就行了,沒有後續的事情要做,是以loop()是空的。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)

至此,完成了編寫arduino代碼。

要測試這個應用,按照第1章所介紹的,校驗然後将代碼上傳到arduino。上傳後,打開序列槽螢幕,就會看見如圖2-6所示的日志消息。

《用于物聯網的Arduino項目開發:實用案例解析》—— 2.3 Arduino Uno的無線連接配接(WiFi)