前言
近年來,IoT(Internet of Things)正受到眾人的矚目.顧名思義,所謂IoT裝置就是機器之間可以經由網路互相溝通的電子儀器(裝置或是設備).人與人之間的溝通可以經由電話、社交軟體、電子郵件等達成,而我們也即將進入IoT裝置之間可以不假人手自行溝通的時代。網路上可以找到各種IoT的相關雜誌報導,但是製作IoT裝置的解說類書籍卻並不多.本書作為IoT裝置設計的實務類入門書籍,是以設計IoT裝置的企業工程師及電子工作者為主要讀者.本書將以實際案例為中心,以淺顯易懂的方式解說IoT裝置的設計與實裝。硬體上採用了被用於Arduino的高汎用性AVR微電腦,應用程式語言則採用了在初學者間有相當好評的Python,而Python中有著來自全球的許多開放原始碼的程式館(Library)與封包.
舉例來說就有以下三種:
實際使用於自動駕駛等技術的開放原始碼影像處理封包「OpenCV」、
應用了人工智慧技術的開放原始碼機器學習封包「scikit-learn」、
被使用於大數據統計分析的「statsmodels」。
其他還有嵌入了模仿人類大腦功能的深度學習(深度神經網路)等困難算法的開放原始碼封包.
本書重視的是程式館的使用方法,就算讀者們不能理解開放原始碼封包內所使用的困難算法及內容,也可以做到IoT裝置的設計與實裝.
比較麻煩的一點,在於IoT裝置所不可或缺的雲端存取需要複雜的OAuth 2.0認證.然而,只要使用開放原始碼程式館(pydrive)就可以簡單地得到OAuth 2.0認證.
網路上有許多AVR微電腦的相關資訊,但是對初學者而言,有幾個地方較容易卡關。本書會一邊指出初學者較易卡關的重點,一邊淺顯易懂地說明解決方式.另外,不只是AVR微電腦,我們還會說明使用32位元ARM 微電腦(Raspberry Pi2)藉由3G或LTE通訊來進行IoT裝置設計與實裝。
設計與實裝IoT裝置應用程式需要依以下4個步驟進行:
1.整理出希望用 IoT裝置解決什麼樣的問題(找出問題)
2.考慮各種開放原始碼程式館,大致上將IoT裝置與應用程式分類(大致上的解決問題)
3.以開放原始碼程式館為基礎,選擇感測器與驅動器,完成IoT裝置設計(這樣就解決了IoT裝置的設計)
4.利用開放原始碼程式館Python,完成IoT裝置的應用程式(這樣就解決了應用程式的設計).
當卡住的時候,會不斷重復以上4個步驟,但是一但習慣之後,就會練出分辨使用開放原始碼的眼力,遇到問題也就能比較簡單地解決了.
簡單來說,本書的特徴為以下3點.
●只要能學會本書的內容,靈活運用AVR微電腦(Arduino)、Raspberry Pi2嵌入系統(Linux)、各種感測器、開放原始碼軟體,就算不懂回路設計知識、感測器特性、通訊協定等困難的內容,只要學會了靈活運用開放原始碼的方法,就算沒有基礎知識的初學者也可以在短時間內學會IoT裝置的設計與實裝.
●利用Python開放原始碼程式館的scikit-learn與OpenCV等封包,就算不懂內容的初學者,也可以把最近蔚為話題的大數據、人工智慧、機器學習、影像處理功能等嵌入系統,並做出想要的系統.請將本書中所介紹的Python程式館作為構築系統的部品來靈活運用.
●本書的目的是讓各位讀者練就分辨使用開放原始碼的眼光。
安裝前為了以防萬一,重要檔案一定要備份,這是鐵則。為了練就分辨使用開放原始碼的眼光,請儘量挑戰.
※本書中的資訊為2015年8月當時的資訊.
2015年8月
作者謹誌