發表於2024-11-24
用於物聯網的Arduino項目開發:實用案例解析 pdf epub mobi txt 電子書 下載
物聯網遠不止是把東西連接到互聯網上那麼簡單。物聯網給沉默呆滯的東西加上感知、通信和響應的能力,從而把它們變得更加智能。本書來自於作者對物聯網的個人體驗。全書包含兩個部分,第壹部分介紹構建物聯網應用的基礎知識,第二部分采用基於項目的方法介紹物聯網應用的開發。在每一章的後,讀者都會得到一個物聯網應用的可用原型。
譯者序
前言
第一部分 基礎
第1章 Arduino入門 2
1.1 學習目標 2
1.2 硬件需求 2
1.3 軟件需求 4
1.3.1 工具欄 5
1.3.2 狀態窗口 6
1.3.3 串口監視器窗口 6
1.4 Arduino編程語言參考 6
1.4.1 執行Arduino代碼 9
1.5 小結 10
第2章 互聯網連接 11
2.1 學習目標 11
2.2 Arduino Uno的有綫連接(以太網) 12
2.2.1 硬件需求 12
2.2.2 軟件需求 12
2.2.3 電路 12
2.2.4 代碼(Arduino) 13
2.2.5 最終的作品 15
2.3 Arduino Uno的無綫連接(WiFi) 16
2.3.1 硬件需求 16
2.3.2 軟件需求 17
2.3.3 電路 17
2.3.4 代碼(Arduino) 17
2.3.5 最終的作品 20
2.4 Arduino Yún的無綫連接(WiFi) 21
2.4.1 硬件需求 21
2.4.2 軟件需求 21
2.4.3 無綫設置 21
2.4.4 代碼(Arduino) 26
2.4.5 最終的作品 28
2.5 小結 28
第3章 通信協議 29
3.1 學習目標 29
3.2 HTTP 29
3.2.1 代碼(Arduino) 30
3.2.2 最終的作品 34
3.3 MQTT 35
3.3.1 入侵檢測係統 35
3.3.2 遠程燈光控製 36
3.3.3 代碼(Arduino) 37
3.3.4 最終的作品 39
3.4 小結 40
第二部分 原型
第4章 復雜流程:Node-RED 42
4.1 學習目標 44
4.2 硬件需求 44
4.3 軟件需求 44
4.4 電路 45
4.5 Node-RED流 46
4.6 代碼(Arduino) 55
4.6.1 外部庫 55
4.6.2 互聯網連接(無綫) 55
4.6.3 讀取傳感器數據 55
4.6.4 數據發布 56
4.6.5 標準函數 57
4.7 最終的作品 58
4.8 小結 58
第5章 物聯網模式:實時客戶端 59
5.1 學習目標 60
5.2 硬件需求 60
5.3 軟件需求 61
5.4 電路 61
5.5 代碼(Arduino) 62
5.5.1 外部庫 62
5.5.2 互聯網連接(無綫) 63
5.5.3 讀取傳感器數據 63
5.5.4 數據發布 65
5.5.5 標準函數 66
5.6 代碼(安卓) 66
5.6.1 項目設置 66
5.6.2 屏幕布局 70
5.6.3 屏幕邏輯 74
5.6.4 MQTT客戶端 76
5.7 最終的作品 84
5.8 小結 86
第6章 物聯網模式:遙控 87
6.1 學習目標 88
6.2 硬件需求 88
6.3 軟件需求 88
6.4 電路 89
6.5 代碼(安卓) 90
6.5.1 項目設置 90
6.5.2 屏幕布局 94
6.5.3 屏幕邏輯 98
6.5.4 MQTT客戶端 99
6.6 代碼(Arduino) 104
6.6.1 外部庫 104
6.6.2 互聯網連接(無綫) 104
6.6.3 數據訂閱 105
6.6.4 控製燈光 105
6.6.5 標準函數 106
6.7 最終的作品 107
6.8 小結 109
第7章 物聯網模式:點播客戶端 110
7.1 學習目標 111
7.2 硬件需求 111
7.3 軟件需求 112
7.4 電路 112
7.5 數據庫錶(MySQL) 112
7.6 代碼(PHP) 114
7.6.1 數據庫連接 115
7.6.2 接收和保存傳感器數據 115
7.6.3 停車位數量 117
7.7 代碼(Arduino) 118
7.7.1 外部庫 118
7.7.2 互聯網連接(無綫) 119
7.7.3 讀取傳感器數據 119
7.7.4 數據發布 120
7.7.5 標準函數 121
7.8 代碼(iOS) 122
7.8.1 項目設置 122
7.8.2 屏幕布局 124
7.8.3 屏幕邏輯 130
7.9 最終的作品 136
7.10 小結 138
第8章 物聯網模式:網頁應用 139
8.1 學習目標 139
8.2 硬件需求 140
8.3 軟件需求 140
8.4 電路 141
8.5 數據庫錶(MySQL) 142
8.6 代碼(PHP) 143
8.6.1 數據庫連接 143
8.6.2 接收和保存傳感器數據 144
8.6.3 儀錶盤 145
8.7 代碼(Arduino) 148
8.7.1 外部庫 149
8.7.2 互聯網連接(無綫) 149
8.7.3 讀取傳感器數據 149
8.7.4 數據發布 150
8.7.5 標準函數 151
8.8 最終的作品 152
8.9 小結 153
第9章 物聯網模式:位置感知 154
9.1 學習目標 155
9.2 硬件需求 155
9.3 軟件需求 155
9.4 電路 156
9.5 數據庫錶(MySQL) 156
9.6 代碼(PHP) 158
9.6.1 數據庫連接 158
9.6.2 接收和保存傳感器數據 159
9.6.3 地圖 161
9.7 代碼(Arduino) 164
9.7.1 外部庫 164
9.7.2 互聯網連接(無綫) 164
9.7.3 獲得GPS坐標 164
9.7.4 數據發布 166
9.7.5 標準函數 167
9.8 最終的作品 168
9.9 小結 169
第10章 物聯網模式:人-機交互 170
10.1 學習目標 170
10.2 硬件需求 171
10.3 軟件需求 171
10.4 電路 172
10.5 代碼(Arduino) 173
10.5.1 外部庫 173
10.5.2 互聯網連接(無綫) 174
10.5.3 讀取傳感器數據 174
10.5.4 數據發布 175
10.5.5 標準函數 176
10.6 Effektif工作流 177
10.6.1 創建過程 177
10.6.2 配置過程 178
10.7 Node-RED流 184
10.8 最終的作品 188
10.9 小結 190
第11章 物聯網模式:機-機交互 191
11.1 學習目標 192
11.2 光綫傳感器 192
11.2.1 代碼(Arduino) 192
11.3 燈光控製設備 195
11.3.1 代碼(Arduino) 195
11.4 最終的作品 19
Preface分析傢預測,到瞭2020年,會有超過500億的聯網物(設備),在物聯網領域的總營收會輕鬆超過1.5萬億美元。
數字看上去巨大,但是物聯網究竟是什麼呢?是不是就隻是把東西連接到互聯網上呢?為什麼連接後的東西就有意義瞭呢?物聯網遠不止是把東西連接到互聯網上那麼簡單。物聯網給沉默呆滯的東西加上感知、通信和響應的能力,從而把它們變得更加智能。人有五官——我們可以看、聽、嘗、聞和觸摸。同樣,如果把這些傳感器加到東西身上,它們也就可以有同樣的感知瞭。比如,加上攝像頭,東西就能看見;加上聲音傳感器,東西就能聽見;加上揚聲器,東西就能說話。東西能用的傳感器比我們的多多瞭。把這些東西連接到互聯網上,就能與我們交流,與其他東西交流。接下去,下一個前沿方嚮就是它們也可以運用人工智能來思考瞭。物聯網有大量的應用,下麵舉兩個例子來說明物聯網是如何改善人類生活的:
監視用於監測生命體徵的腕帶,發現任何異常,就立刻通知你和你的醫生。
監視你傢房子的保安係統,發現任何入侵行為,就通知你和安保機構。
本書的內容本書來自於我開始接觸物聯網的個人體驗。本書包含兩個部分,第一部分介紹構建物聯網應用的基礎知識,而第二部分采用基於項目的方法介紹物聯網應用開發方法。在每一章的最後,你會得到一個物聯網應用的可用原型。
第一部分:基礎第1~3章覆蓋瞭物聯網的基礎知識。
第1章介紹本書所用的Arduino原型平颱。
第2章討論瞭把東西連入互聯網的幾個方案。
第3章介紹通信協議,哪些是物聯網能用的協議。
第二部分:原型第4~12章用瞭第一部分的資料來構建物聯網應用的原型。
第4章介紹Node-RED,這是一個可視化的設計軟件,用來減少物聯網應用所需的代碼量。
第5章討論的是可以實時給用戶提供數據的物聯網應用的構建,教你如何構建一個入侵檢測係統。
第6章討論可以遙控東西的物聯網應用,比如燈光控製係統。
第7章展示瞭用來構建點播物聯網應用所需的各種元件。本章要構建一個智能停車係統。
第8章教你適閤網頁應用的場景,所用的例子是溫度監視係統。
第9章討論位置感知裝置的重要性。在本章中,你將學習如何開發一個牲畜跟蹤係統。
第10章是關於需要人的響應的場景,在本章中,你將構建一個廢物管理係統。
第11章討論瞭物聯網的一種模式,當東西越來越智能時,這種模式會非常常見。該章的示例是一個節能係統。
第12章介紹有助於加速進入物聯網領域的一些平颱。這一章的例子是構建一個土壤水分控製係統。
閱讀本書前的準備工作物聯網應用需要硬件和軟件,可以涉及很多不同的技術,所以本書用到瞭不少技術。不過,我們已經盡力讓所用的技術簡單、精簡。
硬件需求請參考每一章所提供的完整的說明,因為基於不同的作品,某些元器件不是必需的。
ArduinoUno或ArduinoYu?n以太網盾闆WiFi(無綫)盾闆麵包闆跳綫(麵包綫,針連針或針連孔的)光綫傳感器運動傳感器(HC-SR501)LED220Ω電阻接近傳感器(超聲波測距HC-SR04)溫度傳感器(TMP36)GPS模塊(NEO6MV2)土壤水分傳感器軟件需求ArduinoIDENode-REDMQTT代理(本書用瞭EclipseFoundation提供的免費公開的代理)AndroidStudioXcode/SwiftPHP服務器MySQL服務器文本編輯器EffektifBPM(基於雲的,需要免費賬戶)Xively(基於雲的,需要免費賬戶)Zapier(基於雲的,需要免費賬戶)為瞭能更好地幫到你,我們還專門為這本書建立瞭一個網站(http://codifythings.com)。這個網站有書中所開發的原型的各種變化和增強版本,還有其他的原型作品。
本書的讀者對象本書是為想要進入物聯網世界的愛好者和專業人士所寫的。本書所述的知識需要讀者掌握一些Arduino或類似的元器件的基礎知識,也需要讀者具備一些編程經驗。我們用瞭基礎的硬件元器件,而且給齣瞭逐步搭建電路的說明。我們保持代碼簡單、可讀和簡潔,以幫助新手理解概念、開發齣可用的原型。全書的代碼風格是一緻的,在需要的地方,都加入瞭詳細的代碼注釋。
TheTranslator’sWords?譯者序這是一本角度獨特的書。
大多數和Arduino相關的書會把重點放在Arduino編程或各種外部傳感器、動作器的使用上;大多數和物聯網相關的書會把重點放在各種外部傳感器的使用和通信模塊的編程上。這本書確實是講物聯網的原型開發的,確實是用Arduino來做原型開發的,也涉及通信模塊和傳感器、動作器,但是這本書誌不在此。
那麼,這本書到底講瞭哪些東西呢?這得從下麵四條綫來講。
通信綫物聯網總是需要一定的通信方式來聯網的,本書關心的通信方式隻是:
通信手段:WiFi或以太網。這兩者的一緻之處就是TCP/IP網絡,這本書並不涉及藍牙、ZigBEE、LoRa、NB-IoT這些通信手段,它隻關心WiFi或以太網這些在傢居條件下最容易部署和實現的方式。
通信協議:HTTP或MQTT。物聯網設備用HTTP協議配閤JSON格式來嚮服務器發送數據已經是常見的手段瞭,而MQTT則可能是更為輕巧的方式。MQTT(http://mqtt.org)是一種物聯網連接協議,用於實現非常輕量級的發布/訂閱方式的消息傳輸,隻需要很少的代碼和很小的網絡流量就可以實現。本書並沒有介紹如何自行搭建MQTT代理服務器,而是使用免費開放的Eclipse基金會所架設的MQTT服務器(iot.eclipse.org)。
流程綫很多作者隻關心如何把傳感器的數據送到服務器上,之後就不管瞭。而本書還關心數據到服務器之後再怎樣做:要不要存儲進數據庫?要不要發郵件或推特通知?要不要發給其他物聯網設備來形成對應的動作?一個數據從傳感器采集到最後被某個應用或設備處理,這中間怎麼走,也就是物聯網應用的流程問題。這樣的流程是在服務器上運行的,但是並不需要寫專門的服務器程序來實現,現在有一些專門的流程服務來替你完成,你隻需要配置就可以瞭。這本書介紹的流程服務包括:
Node-RED(http://nodered.org)。Node-RED是IBM新興技術服務團隊創建的物聯網流程配置可視化工具。這是一個齣色的拖曳式的可重用代碼的工具集,每個任務流從收到一個或多個輸入開始,比如HTTP、MQTT和TCP;在一個或多個輸齣任務上結束,比如HTTP迴復、MQTT發布、推特等。
SignavioWorkflow(https://www.signavio.com/products/workflow/)。這是一個雲端的平颱,能自動快速地把工作流和過程導入應用。同樣的功能過去常常需要一條企業數據總綫和幾名開發人員,而現在非技術人員都能可視化地部署消息的轉發過程。
Xively(https://www.xively.com)。這是一個開放的通用物聯網平颱,通過這個PaaS雲平颱,可將應用、設備、虛擬電子物體、數據及用戶鏈接在一起,從而創建方案,與物理世界的物體交互。
傳統的Apache+PHP+MySQL:本書還介紹瞭傳統的LAMP模式,解釋瞭如何構建自己的服務器來接收通過HTTP方式傳輸的數據,並保存在MySQL數據庫中,之後可以通過PHP腳本來查詢和訪問。
終端綫物聯網的兩端,可能是機器——傳感器和動作器,也可能是人。本書介紹瞭連接在物聯網的兩端的四種終端:
Arduino安卓iOS網頁模式綫物聯網應用雖然韆變萬化、紛繁復雜,但是萬變不離其宗,作者總結瞭幾種常見的模式:
實時模式:傳感器的數據實時地推送到終端。
點播模式:終端需要的時候纔會拉取傳感器的數據。
遙控模式:從終端控製動作器。
位置感知:利用GPS獲得地理位置,將坐標實時發送給服務器,並形成後續的流程動作。
機器->人:傳感器的數據需要人工介入來完成數據的處理和後續流程。
機器->機器:傳感器的數據直接發給動作器實現相應的響應。
本書分成瞭兩個部分:第一個部分適閤對Arduino及其網絡通信還不熟悉的讀者;第二部分則是具體展開各種模式。閱讀本書時,不需要從頭到尾逐章地讀,它不是連續劇而是係列劇,你完全可以直接閱讀自己感興趣的章節。
翁愷2017年2月
用於物聯網的Arduino項目開發:實用案例解析 pdf epub mobi txt 電子書 下載