內容提要
《完美圖解物聯網技術》系列圖書是當前物聯網開發技術套用的集大成者。《完美圖解物聯網IoT實操:使用JavaScript,Node.JS,Arduino,Raspberry Pi》內容強調串聯網路軟體和微電腦控制板,以JavaScript 為主軸,開發網路應用程式、手機App、互動網頁、資料庫程式和操控微電腦。《完美圖解物聯網IoT實操:使用JavaScript,Node.JS,Arduino,Raspberry Pi》包含網頁式遠程遙控LED 燈、即時溫濕度網站、自動感測拍照蒐證、網頁式遠程LED 繪圖板、即時影像監控網站、影像辨識擺頭控制攝像機雲台、雲端溫濕度監控、即時信息動態圖表等多元化範例。 希望《完美圖解物聯網IoT實操:使用JavaScript,Node.JS,Arduino,Raspberry Pi》能幫助讀者了解物聯網程式設計,進而開發出自己的雲端物聯網套用。
目錄
0無所不在的JavaScript 與物聯網設備 1
0.1 JavaScript 與物聯網.3
0.2 MPU、MCU 與SoC 介紹 6
0.3 章節導讀 9
1 JavaScript 入門 13
1.1 JavaScript 入門14
1.2 JavaScript 語言基礎19
1.3 函式定義與事件處理程式. 29
1.4 定時產生隨機數 32
1.5 Array(數組)對象. 34
1.6 認識Object(對象)類型. 36
1.7 BOM(瀏覽器對象模型)與DOM(文檔對象模型)41
動手做 操作網頁對象 43
1.8 在網頁中嵌入JavaScript 44
1.9 事件觸發程式 46
2 認識jQuery 庫 53
2.1 jQuery 簡介 54
2.2 jQuery 語法基礎 59
2.3 AJAX 技術:動態更新HTML 內容 64
動手做 從Arduino 輸出純文本溫度 66
2.4 網頁訊息交換格式 69
2.5 Arduino 輸出JSON 訊息 73
2.6 調整燈光亮度的網頁界面 76
動手做 接收調光值的Arduino 網站程式 76
2.7 使用jQuery UI 附加網頁用戶界面元素 79
動手做 製作滑塊界面網頁 82
2.8 AJAX 的安全限制 85
3 Node.js 入門 91
3.1 在電腦以及樹莓派上安裝Node.js 94
3.2 Node 編程起步 99
3.3 使用http 模組創建網站伺服器程式 103
3.4 事件驅動、非阻塞I/O 示範:讀取檔案 107
3.5 global(全局)對象與模組檔案 113
3.6 安裝與管理模組:使用npm 工具程式115
3.7 使用Express 框架開發網站應用程式 118
3.8 接收URL 數據. 122
3.9 接收與處理POST 數據 125
3.10 使用package.json 管理Node 項目的模組程式 129
動手做 從Arduino 傳遞溫濕度值給Node 網站 131
3.11 使用JSONP 格式跨網域訪問信息 136
4 Node.js 串口通信與樹莓派GPIO 控制 143
4.1 安裝編譯Node 模組所需的軟體144
4.2 安裝C/C++ 編譯器147
動手做 Node.js 串口通信 150
動手做 從Node.js 傳送串口數據 154
4.3 通過Node.js 運行系統指令(運行raspistill 指令拍照) 157
4.4 樹莓派的GPIO 簡介 162
4.5 Node.js 程式GPIO 控制:使用onoff 模組 166
動手做 GPIO 輸入/ 輸出信號練習:按開關閃爍LED 167
動手做 通過紅外感測模組拍攝照片 170
4.6 樹莓派GPIO 集成Arduino 控制板 172
4.7 5V 和3.3V 電壓準位轉換 182
4.8 MOSFET 邏輯電位轉換電路原理解說 185
5 使用霹靂五號操控Arduino 189
5.1 霹靂五號:用JavaScript 控制Arduino. 190
動手做 用霹靂五號指揮Arduino 閃爍LED 192
動手做 啟用上拉電阻並讀取開關信號200
動手做 模擬輸入與PWM 輸出程式實驗 201
動手做 檢測溫度203
動手做 控制舵機 207
動手做 控制LED 矩陣顯示圖像.209
5.2 使用socket.io 創建實時連線 211
動手做 創建實時通信程式 214
動手做 瀏覽器與矩陣LED 作畫 217
6 電子郵件、串流視頻、計算機視覺與操控舵機 227
6.1 通過Node 傳送電子郵件 228
動手做 雲蒐證:拍照自動傳送E-mail. 233
動手做 串流視頻:推播實時影像 234
6.2 使用MJPG 壓縮與串流視頻. 240
6.3 控制舵機雲台 246
動手做 使用方向鍵操控舵機雲台 247
動手做 攝像頭雲台的Node 伺服器代碼 249
6.4 使用觸控螢幕幕虛擬搖桿操控攝像頭雲台 250
6.5 瀏覽器連線遊戲控制器(電玩控制器) 254
動手做 使用gamepad.js 庫創建遊戲器操作的網頁程式255
6.6 計算機視覺(computer vision)套用260
6.7 使用tracking.js 偵測人臉. 264
動手做 臉孔偵測與舵機聯動 270
動手做 偵測顏色 273
7 使用MongoDB 資料庫以及ejs 模板引擎創建動態網頁279
7.1 資料庫簡介. 280
7.2 安裝MongoDB 285
7.3 MongoDB 的基本操作 289
7.4 查詢數據 294
7.5 更新與刪除數據. 298
7.6 使用mongoose 包連線MongoDB 資料庫299
7.7 連線MongoDB 並讀取數據的程式 303
動手做 存儲Arduino 上傳的溫濕度數據 307
7.8 認識模板引擎309
動手做 在ejs 模板中顯示最近10 筆溫濕度數據 315
動手做 分頁顯示數據 318
8 數據可視化——使用C3.js 與D3.js 繪製圖表321
8.1 使用C3.js 繪製圖表. 322
8.2 顯示動態平移的實時線條圖 327
動手做 使用資料庫數據描繪折線 331
8.3 動態顯示Arduino 檢測模擬值 334
8.4 簡易數字濾波. 340
8.5 使用D3 庫 344
8.6 認識SVG 348
8.7 使用D3 繪製SVG 圖像 353
8.8 使用動態數據繪製折線圖355
8.9 結合數據動態附加HTML 元素 364