本節書摘來自華章出版社《用于物聯網的arduino項目開發:實用案例解析》一 書中的第2章,第2.4節,作者[美]安德爾·傑韋德(adeel javed),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
yún(雲)是很進階的arduino型号,是為物聯網而設計的。對于初學者來說,arduino yún可能比arduino uno要複雜一些,不過它有内置的以太網和無線功能,是以就不再需要額外的盾闆了。
在第1章中介紹過,本書會始終使用arduino uno。這一節隻是給手上有arduino yún,又想用它來實作本書所介紹的原型作品的讀者提供一個參考。盡管在本書的其他部分都不會再提到arduino yún,下載下傳的代碼還是會帶有arduino yún相容的部分。
把arduino yún連接配接到網際網路上并不需要任何額外的硬體,是以圖2-7中隻有arduino yún。
為了寫網際網路連接配接代碼,需要arduino ide 1.6.4或更新版本的軟體。
與arduino uno不同,uno需要插一塊無線或以太網盾闆,arudino yún則自帶了内置的以太網和無線連接配接功能。arduino yún可以像電腦一樣直接接入有線或無線的網絡。是以,不需要為它寫連接配接網際網路的代碼,而是需要配置它來連接配接到你的網絡上去。本節就來介紹arduino yún的無線設定。
1.用micro usb線把arduino yún與電腦相連。
2.arduino yún也能以熱點的方式工作,是以在你的電腦上,搜尋arduino yún的wifi信号。由于所購arduino yún的不同,在電腦能看到的wifi連接配接中的名稱可能會是arduinoyunxxxxxxxxxxxx或lininoxxxxxxxxxxxx。如圖2-8所示,讓電腦無線連接配接上arduino yún。
4.如果這是你第一次通路這塊arduino yún,就輸入預設的密碼arduino(如果這個密碼不行,試試doghunter,再不然就得檢視廠家的文檔了)。如圖2-10所示,單擊“log in”(登入)按鈕。
5.成功登入後,就會跳轉至arduino yún的配置頁面,如圖2-11所示。單擊這裡的“configure”(配置)按鈕。
6.如圖2-12所示,你可以修改arduino yún闆子的名字、密碼和時區。在“wireless parameters”(無線參數)中,從“detected wireless networks(檢測到的無線網絡)”中選擇你常用的無線網絡,并選擇加密類型,然後輸入網絡密碼。之後,單擊“configure & restart”(配置并重新開機)按鈕。
7.arduino yún重新開機後,會采用新的設定,如圖2-13所示。
8.如圖2-14所示,在重新開機過程中,arduino yún會為你顯示一條消息,表示連接配接到了常用的無線網絡。重新開機之後,就能用無線路由器配置設定給arduino yún的ip位址來通路它了。如果你無法找出這個配置設定的ip位址,先按照下面的步驟操作,然後把2.4.4節中給出的代碼上傳,那個代碼會列印出連接配接資料。
9.打開arduino ide,確定arduino yún已認證micro usb線與電腦相連。按照圖2-15所示的步驟,在“工具?開發闆”中,選擇“arduino yún”。
10.按照圖2-16所示的步驟,從“工具?端口”中,選擇标着“arduino yún”的端口。
這樣arduino yún已經連接配接到了無線網絡,就可以寫代碼來讓arduino發送和接收網際網路上的資料了。因為arduino yún已經連接配接到了網際網路,所需的代碼就非常少了。不需要代碼來做連接配接,隻要用來使用無線連接配接就可以了。
啟動arduino ide,輸入下面的代碼,或者從本書的網站下載下傳代碼檔案然後打開。所有的檔案都在單個源檔案(*.ino)中,不過為了便于了解和重用,這個代碼被分成以下三個部分:
外部庫
網際網路連接配接(無線)
标準函數
程式2-11是代碼的第一部分,引入了運作這個代碼所需的所有外部庫。對arduino yún而言,使得程式可以通路已經建立起來的網際網路連接配接。另外還需要使用來列印出連接配接資料。arduino ide已經安裝了這兩個庫。
程式2-12是代碼的第二部分,定義了将要用來顯示連接配接資料的函數。因為arduino已經連接配接到了無線網絡,調用printconnectioninformation()函數就會列印出無線連接配接的資料。
最後,程式2-13給出了第三部分的代碼。它實作了arduino的标準的setup()和loop()函數。對這個作品而言,隻需要列印出網際網路連接配接資料,是以loop()是空的。
這個代碼和之前的arduino uno的代碼的不同是,你需要用bridge.begin()來初始化橋接部分,這樣就能通路到arduino yún的網際網路連接配接了。
至此,完成了編寫arduino代碼。
要測試這個應用,按照第1章所介紹的,校驗然後上傳代碼到arduino。一旦代碼上傳完,打開序列槽螢幕,就可看到如圖2-17所示的日志消息。