今天,我想我會確切地解釋我如何使用一些 JavaScript , Processing,和 Arduino 來實現這一目標。我將概述該方法不需要以太網屏蔽你的Arduino,我會提供完整的代碼樣品供您還可以使用
要求:
Arduino
點亮以控制Arduino上的適當電路;看到您的PC或Mac
網站托管
基本的編碼技巧我周圍背光從上周部件的電路圖和故障教程。
處理軟件使用JavaScript和PHP,盡管我將提供您可以自定義的完整代碼。
Arduino設置
首先,請參考上周的Arduino方面的教程東西我們將使用的代碼是相同的,因為我使用的是相同的RGB LED燈帶控制電路,因此在此不再贅述??偠灾?,Arduino將通過USB串行連接讀取RGB值到計算機。
處理應用
我們將要使用的處理應用非常簡單(PASTEBIN);它采用了基本的 loadStrings()函數讀取存儲在遠程網絡地址的文本文件 - 在這種情況下,我使用的 http://jamesbruce.me/lights/LED.txt 。在您的虛擬主機上創建一個示例文本文件進行測試,然后進行相應調整。文本文件應僅為R,G和B的3行值。
您還需要將串行端口更改為USB連接的端口。和以前一樣,應用程序要做的第一件事是將串行端口列表輸出到控制臺–選中要使用的串行端口,然后重新運行。
Arduino Web控件
在Web控件方面,我選擇了一個名為Spectrum的simplecolorpicker jQuery插件;還有其他人,但是我覺得這很簡單,可以在移動設備上進行觸摸操作,而其他我卻沒有。將在 spectrum.js 和 spectrum.css 在同一個目錄中的一切文件的(我做了一個/lightssub-directoryon我的服務器,以保持干凈的東西)。 我們將使用PHP既顯示web控制,并處理的 LED.txt 文件寫入如果變量是在POST請求中給出。當用戶訪問此頁面并選擇一種顏色時,它會向AAAX請求發送一個帶有顏色變量的顏色。這將整個內容保留在一個文件中。完整的PHP/HTML可以在此pastebin (連同其他文件保存在子目錄中的 index.php )中找到,但是讓我簡要介紹一下
PHP :檢測是否存在名為“ colors”的發布變量。如果是這樣,請打開LED.txt文件進行寫入,然后用post變量覆蓋。
HTML :導入 jQuery , Spectrum.js 下,和 Spectrum.css
的的JavaScript :的getRGB函數返回逗號的陣列分離RGB值給出各種不同的CSS色彩格式,例如 #aaaaa
的的JavaScript :創建頻譜控制,并附加AJAX調用選擇的顏色已更改的事件。 Ajax調用由控制給出的RGB值這個處理程序文件。
最后,確保您的 LED.txt 文件是可寫的由服務器。應該具有 655 或 777 權限。啟動文件,并給它一展身手;處理應用程序將需要運行,并將每秒刷新一次文件。如果頁面上沒有出現顏色選擇器,請檢查JavaScript控制臺是否有錯誤。
陷阱和進一步的工作
正如我所提到的,此方法不是故意使用以太網屏蔽的,所以任何人基本的網站托管服務可以使其設置非??焖偾页杀镜土?。但是,這確實意味著我們需要使用Processing應用程序作為獲取數據的網關。如果沒有運行PC,它將無法正常工作。通過添加以太網orWiFishield的,我們可以將Arduino的任何地方而不被拴在PC,并在遠端讀取命令或直推他們到Arduino一點點端口轉發。我改天再說。還有并發的問題 - 我們把它設置方式是,該文件將僅僅是overwrittenevery timesomeone選擇一個新的顏色,顏色的變化之間的延遲的處理代碼決定。如果要讓許多用戶不斷調整顏色,則帶有數據庫的排隊系統可能更合適;如果更新的發生頻率高于刷新文件的頻率,則使用平面文件存儲值可能會導致某些更改被忽略。然后,當然,除非您正在觀看我們的現場直播,否則您無法知道它是否還可以正常工作。理想情況下,應該在控制頁面上設置并嵌入一個網絡攝像頭。不過,作為技術演示,我認為這很棒。我希望您能看到通過Arduino遠程控制互聯網上任何東西的潛力。賈斯汀建議我們移交對我的烤箱的控制權;我拒絕了您是否有任何有趣的項目對您有幫助?
責任編輯:wv
-
Arduino
+關注
關注
187文章
6464瀏覽量
186681
發布評論請先 登錄
相關推薦
評論