物聯網編程實戰:應用Raspberry Pi和Java
內容描述
<內容簡介>
為個人愛好和專業應用創建嵌入式項目以基於項目構建嵌入式Java應用的方式加入物聯網大潮!由兩位知名Java專家聯袂撰寫的物聯網編程實戰應用Raspberry Pi和Java呈現一系列低成本DIY項目,可幫助你逐步提升開發技能。你將學習如何搭建及配置Raspberry Pi、連接外部硬件、使用NetBeans IDE以及編寫和嵌入強大的Java應用。本書涵蓋大量業餘應用及專業級家庭和企業應用。
主要內容
通過連接硬件和編寫Raspberry Pi程序來釀造一杯醇美咖啡
使用Pi的GPIO功能創建二進制定時器
通過魔法帽項目探討可穿戴設備的程序設計
在Makeblock機器人技術平臺上編寫程序來創建自主機器人
接上高精度電子秤、溫度傳感器和觸摸屏來設計一套泡茶用具
使用Pi替換簡單四軸飛行器的大腦使其蛻變為功能強大的無人機
在Raspberry Pi上開發一款運行經典遊戲的模擬器
使用複古風格的3D打印品組裝便攜式遊戲機
<章節目錄>
第1章烘焙Pi 1
1.1啟動Raspberry Pi 2
1.1.1選購兼容的SD卡3
1.1.2格式化SD卡4
1.2安裝Raspbian 6
1.2.1將Raspberry Pi接入網絡6
1.2.2如何判斷Raspberry Pi工作正常8
1.3安裝帶有NOOBS的Raspbian 10
1.4 Raspberry Pi入網16
1.4.1通過以太網連接16
1.4.2通過本地計算機網絡連接16
1.4.3通過無線網絡連接19
1.4.4更新和升級21
1.4. 5設置主機名21
1.4.6通過SSH連接到Raspberry Pi上22
1.5創建一個簡單的Raspberry Pi應用25
第2章第一個Java項目27
2.1材料清單28
2.2 NetBeans入門28
2.2.1下載並配置NetBeans 29
2.2.2 HelloRaspberryPi回顧31
2.3烹煮Java 35
2.3.1與USB電子秤通信35
2.3.2咖啡計算器44
2.3.3異步通信47
2.3.4咖啡釀造配方51
2.4商業許可56
第3章二進制定時器59
3.1材料清單60
3.2通過Java訪問GPIO 62
3.2.1安裝Device I/O庫63
3.2.2 Device I/O的引腳分配65
3.2.3 Device I/O庫LED測試68
3.3使用Pi4J 74
3.3. 1 Pi4J引腳分配74
3.3.2 Pi4J LED測試76
3.4以二進制倒計時78
3.4.1實現一個二進制定時器78
3.4.2麵包板佈線82
3.4.3二進制定時器算法87
3.4.4完整的二進制定時器97
3.5紅利:GPIO性能揭秘98
第4章物聯網禮帽107
4.1材料清單108
4.2設置Raspberry Pi A+ 110
4.3 Raspberry Pi對NFC/RFID的支持111
4.3.1為I2C、SPI和UART配置Raspberry Pi 112
4.3. 2連接智能卡讀卡器114
4.3.3配置NFC庫121
4.3.4編譯和安裝libnfc 121
4.3.5編譯並安裝ifdnfc 125
4.4從Java讀智能卡128
4.5物聯網禮帽的物理結構132
第5章循跡小車139
5.1物料清單140
5.2組裝機器小車142
5.3循跡小車程序設計152
5.3.1 Makeblock/ARPI600引腳映射153
5.3.2脈衝寬度調製156
5.3.3紅外控制器159
5.3.4循跡163
5.3.5障礙物檢測166
5.4小結169
第6章茶棧171
6.1物料清單172
6.1.1選擇電子秤172
6.1.2溫度探測175
6.1.3觸摸屏顯示175
6.1.4茶葉供應商177
6.1.5雜項資料178
6.2基於串行電子秤的精密測量179
6.2.1連接串行電子秤180
6.2.2借助Minicom進行測試183
6.3通過Java訪問電子秤187
6.3.1通過Pi4J讀串行數據188
6.3.2電子秤的串行實現191
6.4高精度溫度傳感器197
6.4.1單總線串行接口198
6.4.2測試DS18B20 199
6.4.3通過Java訪問溫度傳感器202
6.5茶葉配方206
6.6 JavaFX UI 210
第7章自主飛行的無人機221
7.1硬件材料清單222
7.2所需軟件225
7.3構建自主飛行的無人機227
7.3.1安裝Raspberry Pi 227
7.3.2在Raspberry Pi和無人機之間建立無線網絡連接,
把Raspberry Pi配置成一個無線訪問熱點(WAP) 227
7.3.3組裝並固定無人機的硬件234
7.3.4編寫一個包含飛行指令的Java方法236
7.3.5通過NetBeans連接到Raspberry Pi上並遠程部
署Java應用程序和支持庫237
7.3.6調用Java應用程序來控制無人機飛行238
7.4實現更高級別的自治238
7.4.1在三維空間中定位無人機239
7.4.2實現控制迴路239
第8章復古視頻遊戲模擬器241
8.1物料清單242
8.1.1 Raspberry Pi 243
8.1.2顯示和適配器243
8.1.3揚聲器和音頻244
8.1.4導航和按鈕245
8.1.5佈線和工具247
8.2創建GPIO控制器248
8.2.1控制器佈線249
8.2.2焊接Kippah 252
8.2.3連接Kippah 255
8.2.4連接揚聲器258
8.3模擬NES 260
8.3.1運行模擬器261
8.3.2 Raspberry Pi超頻265
8.3.3 NES自動啟動266
第9章NightHacking RetroPi 267
9.1物料清單268
9.1.1供電268
9.1.2 3D打印機269
9.2 RetroPi外殼的建造272
9.2.1 Autodesk Fusion 360 3D建模274
9.2.2打印外殼278
9.3組裝RetroPi 281
9.3.1直接連接音頻281
9.3.2便攜式電源282
9.3.3按鈕重新佈線285
9.3.4安裝內部硬件288
9.3.5連接顯示屏293
序言
Raspberry Pi在嵌入式開發領域引發了一次變革,它降低了計算機程序員搭建與外部物理世界交互的設備的入門難度。Java SE和Java ME的嵌入式應用以Raspberry Pi作為參考平臺,使其成為進入嵌入式應用開發的Java開發者的可選平臺。官方Raspbian鏡像中同樣預裝了Java,並使其成為適用於Raspberry Pi的性能最好的高級語言。本書的作者充分考慮了這一點,利用Java對Raspberry Pi進行程序設計,幫助讀者快速開展物聯網方面的開發,參與這場物聯網變革。
本書讀者對像不論是經驗豐富的業餘愛好者還是老練的專業人士,你都會發現,本書有助於提升你創建運行於嵌入式設備上的應用程序的能力。我們有意識地選擇低成本項目和硬件,降低入門難度。我們同時採用一種考慮了漸進學習曲線的、基於項目的學習方法,使本書更通俗易懂。
本書主要內容本書列舉了幾個項目,設計這些項目旨在提升嵌入式應用的開發能力,這些嵌入式應用可以用到不同的家庭和工業場合。下麵是關於本書主要內容的綱要。
第1章:剖析Pi該章介紹Raspberry Pi的配置過程,以及如何將其連接到計算機上,並通過一個簡單的Java應用進行測試。
第2章:第一個Java項目該章將在計算機上建立一個Java集成開發環境(Integrated Development Environment,IDE),具體說就是NetBeans。在Raspberry Pi上使用這個IDE來開發和遠程部署Java應用程序。同時還會創建一個不錯的項目,借助Java和Pi釀造一杯完美的咖啡。
第3章:二進制定時器該章利用Raspberry Pi的GPIO(通用I/O)功能創建一個二進制定時器。在這個過程中學習如何使用Robert Savage編寫的Pi4J庫,來快速完成離散設備I/O項目。
第4章:物聯網禮帽該章通過對魔法帽子設計過程的逐步指導,演示不同形式的設備I/O。該項目是可穿戴計算的一個有趣的例子,也是一個能夠使你的朋友印象深刻的例子。
第5章:循跡小車該章將通過Makeblock機器人技術平臺創建一個自主機器人,當然,還要用到Raspberry Pi和Java。
第6章:茶棧重溫第2章的咖啡釀造項目,該章將使用更高精度的設備以及一塊觸摸屏來沖泡一杯香氣怡人的茶。
第7章:自主飛行的無人機通過為四軸飛行器加裝一個Rasp- berry Pi大腦,將其轉變為一臺自主飛行的無人機。
第8章:復古視頻遊戲模擬器該章將創建一個由Java驅動的模擬器,可以使我們在Raspberry Pi上玩經典的紅白機(Nintendo Entertainment System,NES)遊戲。
第9章:NightHacking RetroPi該章介紹如何將第8章介紹的NES模擬器轉換成由3D打印機製造的複古風格的便攜式遊戲機,使我們在現代硬件設備上重溫經典遊戲。
在為業餘愛好以及專業物聯網應用創建嵌入式項目時,我們希望本書能夠成為一個有價值的資源。翻開書頁,由此開始!