『壹』 Arino 與樹莓派 Raspberry Pi 相比各自有什麼優缺點
因為近兩年內有家裝的需求,考察了市面上的智能家居方案,要麼不靠譜看不上眼,要麼價格高得離譜。想著自己原來也搞過一段時間單片機,Linux 靠著 Google 和 StackOverflow 也能解決一些問題。於是開始嘗試 Arino 和 RPi 在家居控制方面的各種實踐。總結一些想法給大家作為參考:
RPi 和 Arino 兩個完全不同運算水平的平台。畢竟 RPi 使用的是一顆運行在 700MHZ 的 ARM11 CPU;而常用的 Arino UNO 則是一顆在工業控制領域常見的 8-bit ATmega328,最高運行頻率僅 20MHz。
RPi 可以運行完整的操作系統,如 Debian 等常見 Linux 發行版 - RPi Distributions。這意味著你可以使用你熟練的語言(如 Python、Java)和熟悉的庫來進行開發,同時後台運行多個進程也毫無壓力。而 Arino 作為一款真正傳統意義上的單片機系統,一次只能運行一個你燒進去的程序,功能也相對單一。
RPi 自帶的介面比較全面,USB-host、RJ45、HDMI、SD讀卡器等常用介面都有;而 Arino 比較單純,與外部設備打交道需要另外采購介面板。
RPi 因為是一個相對完整的「電腦」,其成本肯定比 Arino 高,目前 B 版在淘寶普遍 280 元左右;而常用的 Arino UNO 40 元搞定。
RPi 擁有更完整的操作系統,這也意味著每次復電後所需的啟動時間很長,而且還不能保證重啟後你寫的相關服務都能正常啟動(Linux 大拿可能會覺得是我技術渣);但 Arino 因為用途單一,重啟速度超快,而且重啟結束後立即就在運行你讓它做的事。
綜合考慮後,我的選擇是:
RPi 作為家居中央控制伺服器,負責與互聯網的通信、采樣存儲 Arino 上報的狀態數據、處理數據量大的工作(如音頻、視頻、圖片相關)、提供 API 給 iOS 及 Android 以方便用手機控制家居。RPi 與 Arino 間通過乙太網和 Zigbee 進行數據傳輸。
Arino 負責家居感測器采樣,如光線強度、溫度、人體紅外感應等。有的模塊比較獨立,比如人體感應的夜間走廊燈,單個 Arino 可以自己實現監控加控制,就不需要上報數據給 RPi 了。需要上報和接收數據的 Arino ,通過 Zigbee 及乙太網和 RPi 進行通信。
這樣的好處就是投資小,而且把計算任務都放在了 RPi 上,算是物盡其用。