産品特色
內容簡介
本書以Arduino 這個著名的開放式軟硬件平颱為工具,結閤豐富的範例,係統全麵地介紹瞭物聯網的三大要素“物”“聯”和“網”的産品開發和具體實現。書中涵蓋瞭物聯網的概念與技術,主控端、傳感端、通信和聯網等模塊的硬件集成、軟件開發和軟硬件整閤等。另外,雲下載資源中還提供瞭範例程序、電路圖等資源,以配閤本書的學習和實踐。
本書適閤物聯網産品開發從業者與技術人員使用,也可以用作高校學生學習硬件設計的實踐教程。
內頁插圖
目錄
01 淺談物聯網
物聯網 (Internet of Things,IoT)這個名詞可以解釋得很簡單,物品能夠連上網絡就算是物聯網。
1-1 物聯網的起源與發展 2
1-2 新時代新思維 6
1-3 關於本書 9
02 全麵感知的聯網節點
點是構成平麵最重要也是最基本的單位。它的結構看似簡單,卻必須擔負起、承、轉、結尾等不同的角色。藉助數以百計、數以韆計的點,可以變化齣無窮盡的網絡世界。
2-1 基礎節點的組成 12
2-2 控製核心的選擇 14
2-3 介紹 Arduino 22
2-4 Arduino 的軟件介紹與第一次下載 27
2-5 如何感知信號 31
2-6 係統規劃與優化 45
03 物物相連的關鍵
數以萬計的點灑落在空間中,彼此之間有著默契的相連,幾個之間組成一個網絡。這樣的網絡連接非常有價值,點與點、網絡與網絡間共享著信息與數據,帶給空間無窮無盡的變化。
3-1 淺談物聯網通信 56
3-2 通信種類介紹 60
3-3 串行通信 64
3-4 I2C通信 81
3-5 SPI通信 90
3-6 網絡通信 92
3-7 小結 105
04 無所不在的連接
在物聯網中,無所不在的通信占有大部分的版圖,其中又以無綫通信被視為物聯網設置的基本配備。所有感測到的數據要能夠不受限製地往上傳遞,靠的就是部署完善的通信網絡,目前在大都市中,移動通信網絡(Cellular communication)和Wi-Fi無綫網絡覆蓋範圍最為廣泛,有許多的應用因此孕育而生。
4-1 初入無綫通信 108
4-2 RF通信 115
4-3 2.4G RF 通信(nRF24L01) 122
4-4 藍牙通信 130
4-5 XBee 143
4-6 Wi-Fi 無綫網絡 156
4-7 小結 164
05傢庭自動化物聯係統
本章以3種無綫技術為引子,分彆引入不同的應用到傢庭自動化的開發中,通過前麵學習的傳感與控製方式,完成一個完整的解決方案。
5-1 事前準備 166
5-2 RFID 168
5-3 NFC 202
5-4 GPRS 208
5-5 小結 217
06愛上雲計算
物聯網的最後一公裏,數據的集成與應用,纔是發揮物聯網價值的所在。為山九仞豈能功虧一簣。
6-1 通往雲計算的道路 220
6-2 RESTful 222
6-3 MQTT 226
6-4 MQTT to Cloud 230
APPENDIX A?如何破壞 Arduino
APPENDIX B?如何進行除錯
APPENDIX C?ASCII字元碼
APPENDIX D?物聯網套件組閤包
前言/序言
物聯網這個名詞真是讓人又愛又恨。這個名詞絕對是這幾年最常被人 提齣來討論的議題之一,但是因為它所涉及的範圍廣,聽得越多反而越不知道什麼是物聯網真正的應用所在。其實它早在我們生活周圍瞭!智能手機,不!我們應該稱之為智能終端,因為手機早已不隻是手機,它可以讓用戶隨時隨地通過因特網得到所有想知道的信息,以及隨時隨地和朋友互動,這就是物聯網的應用之一。我們把物聯網細分成3部分:“物”,各種各樣的設備,甚至包括人類都是其中一部分;“聯”,將所有的物品通過有綫或無綫的方式連接在一起,彼此能夠交換信息;“網”,將物物相連成網,這個網將成為應用與價值的所在。
筆者接觸 Arduino 也快 10 年瞭,看著它開始在中國颱灣落地萌芽,到 現在百花齊放,每天都有人發錶新的應用和新的想法,Arduino 不再隻是冷冰冰的硬件,而是實現大傢心中夢想的最佳墊腳石。以 Arduino 來展開物聯網的介紹,無疑是希望用最簡單的東西讓大傢能夠體驗物聯網的無所不及。本書篇幅有限,隻能點齣每種應用的關鍵與角色,書中有太多太多主題可以再單獨深入研究下去。坦白地說,筆者也無法將每個技術或領域研究透徹,因此本書若有錯誤或引用不當之處,歡迎隨時來信指教。
希望以此書拋磚引玉,吸引更多玩傢一起悠遊物聯網的世界。
Scott Sun
2016夏
雲端啓航:Linux係統管理與自動化運維實戰指南 在這個數字化浪潮奔湧的時代,服務器作為信息時代的基石,其穩定、高效的運行是一切業務得以開展的前提。而Linux,作為開源操作係統的王者,憑藉其強大的穩定性、靈活性和廣泛的應用領域,早已成為企業級IT架構的核心。從互聯網巨頭到傳統行業的數字化轉型,Linux無處不在。本書並非聚焦於某一特定發行版或某一技術棧的入門,而是旨在構建一套係統性的Linux運維知識體係,通過深入淺齣的理論講解和貼近實際的案例分析,幫助讀者建立起紮實的Linux基礎,掌握核心的係統管理技能,並邁嚮高效、智能的自動化運維之路。 我們將從最基礎的Linux哲學齣發,帶您領略開源社區的魅力,理解Linux係統架構的精髓。這不僅是學習命令的堆砌,更是理解“為什麼”的過程。我們將深入探索Linux的文件係統,理解其層級結構、權限管理以及不同文件係統的特性(如ext4, XFS),並學習如何進行高效的文件查找、復製、移動和壓縮,為後續的係統管理打下堅實基礎。 核心係統管理能力構建: 本書將重點講解Linux係統管理的核心要素,這些要素是任何一名閤格的Linux運維人員都必須熟練掌握的。 進程管理與資源監控: 您將學習如何查看、管理和優化係統進程,理解CPU、內存、磁盤I/O等關鍵資源的消耗情況,並掌握top, htop, vmstat, iostat, free等工具的使用,能夠快速定位性能瓶頸,保障係統平穩運行。 用戶與權限管理: 深入理解Linux的用戶、組、權限模型,學習如何創建、刪除用戶,配置用戶組,以及使用chmod, chown, chgrp等命令進行精細化的文件權限控製。我們將探討SUID, SGID, Sticky Bit等特殊權限的應用場景,以及ACLs(訪問控製列錶)如何提供更靈活的權限管理方案。 軟件包管理: 掌握主流的Linux軟件包管理工具(如yum/dnf, apt),學習如何安裝、更新、卸載軟件,解決依賴關係問題,並理解RPM和DEB軟件包的工作原理。我們將探討如何配置軟件源,以及如何使用本地倉庫來提高效率。 係統日誌分析: 日誌是係統健康狀況的晴雨錶。您將學會如何查找、分析和理解係統日誌(syslog, journald),識彆潛在的錯誤和安全隱患,並掌握配置日誌轉發和集中管理的技巧,例如使用rsyslog或syslog-ng。 網絡基礎與服務配置: 理解TCP/IP協議棧的基本概念,掌握Linux下的網絡配置(IP地址、網關、DNS),並深入學習SSH遠程管理、SCP文件傳輸等常用網絡工具。我們將講解常見的網絡服務配置,如HTTP(Apache/Nginx)、DNS(BIND)、DHCP等,理解其工作原理並學會基礎的配置和故障排除。 存儲管理: 學習Linux的磁盤分區、格式化、掛載操作,理解LVM(邏輯捲管理)的優勢,並掌握如何創建、擴展和管理邏輯捲。我們將探討RAID(冗餘獨立磁盤陣列)的原理和配置,以及NFS(網絡文件係統)和Samba等文件共享技術的應用。 走嚮自動化運維: 在自動化浪潮席捲IT行業的今天,手動執行重復性任務已經成為瓶頸。本書將循序漸進地引導您進入自動化運維的世界。 Shell腳本編程: Bash腳本是Linux運維的靈魂。您將從零開始學習Shell腳本的語法,包括變量、條件判斷、循環、函數等,並掌握如何編寫實用腳本來自動化日常管理任務,如係統備份、服務重啓、日誌清理等。我們將通過豐富的實例,演示如何將復雜的命令序列轉化為簡潔高效的腳本。 版本控製(Git): 代碼管理是協作和效率的基石。我們將引入Git版本控製係統,學習其基本概念(倉庫、提交、分支、閤並),並掌握如何在團隊中有效地使用Git進行協作開發和管理配置文件。 自動化配置管理入門: Ansible作為當前最流行的自動化配置管理工具之一,將是本書的重點。您將學習Ansible的核心概念(Playbooks, Roles, Modules, Inventory),並掌握如何使用Ansible來自動化部署應用、配置服務器、管理服務,從而顯著提高運維效率,減少人為錯誤。我們將通過具體的用例,演示如何編寫Ansible Playbooks來完成常見的運維任務。 監控與告警: 係統的穩定運行離不開有效的監控。您將瞭解Nagios, Zabbix, Prometheus等主流監控係統的基本原理和應用,學習如何配置監控項、觸發告警,並理解構建一個完善的監控體係的重要性。 實踐齣真知: 本書強調理論與實踐相結閤。我們精心設計瞭大量的實操練習和案例分析,涵蓋瞭從搭建Web服務器、配置數據庫,到部署應用、排查故障等各種真實場景。每一章都配有清晰的操作步驟和結果驗證,讓您在動手實踐中鞏固所學知識。通過模擬真實環境,您將有機會: 搭建高可用Web服務: 學習如何配置Nginx/Apache集群,實現負載均衡和故障轉移。 部署與管理數據庫: 掌握MySQL/PostgreSQL等常用數據庫在Linux上的安裝、配置、備份與恢復。 容器化基礎(Docker入門): 瞭解容器化的概念,學習Docker的基本命令,以及如何使用Docker來打包和部署應用,為後續的容器編排打下基礎。 故障排除實戰: 通過分析各種常見的係統故障場景,學習如何運用所學的知識和工具,快速定位問題並給齣解決方案。 進階思考與職業發展: 在掌握瞭Linux係統管理和自動化運維的基礎之後,本書還將引導您思考更廣闊的領域。我們將簡要介紹雲原生技術(如Kubernetes)的概念,以及DevOps文化對現代IT運維的影響,為您的職業發展指明方嚮。理解如何將自動化運維與DevOps理念相結閤,是成為一名優秀的現代IT工程師的關鍵。 本書適閤誰? IT新手: 渴望進入IT運維領域,但對Linux一無所知,需要一個係統性的入門。 初級運維工程師: 希望鞏固Linux基礎,提升自動化運維能力,嚮資深運維轉型。 開發人員: 希望更好地理解服務器端運維,能夠獨立完成部署和排查,與運維團隊更高效協作。 技術愛好者: 對Linux係統和自動化技術充滿好奇,希望係統地學習和掌握相關技能。 本書的價值: 本書不是一本純粹的命令手冊,也不是一本隻講理論的枯燥讀物。它是一座連接您與高性能、高薪資IT運維職業的橋梁。通過本書的學習,您將能夠: 建立堅實的Linux係統知識體係。 掌握核心的係統管理與故障排除能力。 熟練運用Shell腳本和自動化工具提升工作效率。 為應對更復雜的雲原生和DevOps挑戰做好準備。 提升個人在IT行業中的競爭力,為職業生涯的騰飛奠定基礎。 在這個快速變化的IT世界裏,持續學習和掌握核心技能是至關重要的。讓我們一起踏上這段激動人心的Linux運維探索之旅,在雲端啓航,成為一名具備高價值的IT專業人士!
讀完這本書,最大的感受是它真的把“入門”做到瞭實處,又巧妙地引申齣瞭“進階”的門道。一開始,我對RHEL 7的一些基礎概念,比如啓動流程、服務管理(systemd)以及核心的命令行工具,都覺得很陌生。但書中通過大量的實際操作示例,一步步地引導我,讓我能夠親手實踐,比如如何安裝和配置網絡服務,如何管理用戶和組,如何設置防火牆規則。其中關於SELinux的部分,剛開始覺得非常復雜,但作者用瞭一個非常生動的比喻,加上幾個實際的故障排除案例,讓我豁然開朗,理解瞭它在係統安全中的重要性。更讓我驚喜的是,這本書並沒有止步於基礎操作,而是花瞭相當一部分篇幅講解瞭自動化運維的概念,比如如何使用Ansible進行批量部署和配置。這讓我意識到,現代運維不僅僅是手動敲命令,更需要利用工具來提高效率和可靠性。書中關於日誌分析和性能監控的內容也很有價值,讓我開始思考如何主動地去發現和解決潛在問題,而不是被動地等待故障發生。我特彆喜歡書中關於“故障排除思維模式”的章節,它提供瞭一種係統性的方法來分析和解決問題,這對我以後獨立處理實際運維場景非常有幫助。這本書真的讓我看到瞭Linux運維不僅僅是枯燥的技術操作,更是一種解決問題的藝術。