雲用的是 GAE 平臺,也由三部分組成:數據庫;面向設備控制的接口(HTTP POST 方式,數據以簡單的字符串爲主);面向用戶瀏覽器的接口(同樣是 POST 方式,前端 Html + ‎jQuery 向後臺輪循數據併更新界面)。
雲端用的網頁代碼是從設備端 copy 過來的,改動不大:比如在標題後面加了設備是否在線的提示。
最後有兩種方式操作該系統:
手機或電腦與加熱器在同一個局域網(AP 與 STA 模式),通過用瀏覽器打開 http://heater.local 可直接訪問加熱器自帶的服務器,然後就可以控制。xxxx.local 是蘋果開發的一種免 IP 的訪問方式,默認只有蘋果產品、安裝 avahi 的 Linux 系統(多數發行版有預裝)或安裝了 mdns 的 windows 系統可以使用,否則只能通過 IP 來訪問。
另外,有一點經歷想分享,我以前 DIY 的大多都是只用單片機(或更底層用 FPGA)的東西,再往上也只能是串口與 PC 通訊,PC 上也只能做一個界面超級寒酸的 DEMO 軟件,後來想用 USB 通訊傳數據簡直難到不能再難,僅僅是 Windows 驅動編寫就已經是一座無法逾越的大山(非 HID 設備),記得當時寫驅動要用一些需要付費的軟件自動生成一堆代碼,代碼很多,不知所以然,最終放棄。
後來越來越發現在 Windows 下編程是一件非常困難、痛苦且得不到提升的事情,後來就下決心轉 Linux 方向,從一開始如何安裝常用軟件都不知道,慢慢到後來在手機上安裝(實爲在手機上編譯) Gentoo 系統,從寫一些簡單的腳本與命令行下的 C 程序到 GTK、QT 等圖形界面編程再到內核驅動開發,所以現在對我來說 USB 通訊簡直弱到爆,甚至將 Linux 上編程經驗與工具拿回到 Windows 上用,比如可以直接調用 libusb 庫與 USB 設備通訊,根本就不需要自己寫驅動;界面也可以用一些跨平臺的圖形庫來做,不再侷限於複雜到爆的 MFC;所以現在 DIY 一些東西的時候,可以將重心放在核心邏輯與算法上,站在巨人肩上,不必重複造輪子。