發表於2024-11-22
√ Python全棧是降低物聯網開發復雜度的必由之路
√ 物聯網應用係統的快速開發和係統擴展可以兼顧
√ 物聯網係統設計比互聯網係統設計更受限更復雜
√ 全覆蓋應用、産品、生態的全局視角與選型思路
物聯網開發重新定義瞭“全棧開發”的範圍。Python作為一門快速發展的語言,已經成為係統集成領域的優選語言之一,其可覆蓋從電路邏輯設計到大數據分析的物聯網端到端開發。各領域開發者可以利用Python交叉涉足物聯網設備、邊緣計算、雲計算、數據分析的工程設計。
《從芯片到雲端:Python物聯網全棧開發實踐》嘗試讓讀者建立物聯網設計的整體概念,從基礎概念開始,到相關技術選型、開源工程、參考設計與經驗分享。無論是物聯網領域的創業者,還是係統架構師,都可從本書中獲得靈感。本書對於嵌入式開發領域的開發者尤具學習價值,利用Python可加快開發迭代速度、降低開發成本,並可以基於嵌入式Python建立完整的物聯網軟硬件生態。
劉凱,服務於微電子行業二十餘載的資深工程師。曾在飛利浦半導體(即NXP恩智浦半導體前身)任資深工程師,從事軟、硬件開發與産品設計等工作,有用匯編/C/C++開發嵌入式係統固件、用Perl/Python腳本做開發支持工具、用PHP/Java/Python做設備雲和Web應用的豐富經驗。現作為獨立係統集成開發商,專業從事物聯網相關項目設計和谘詢服務,主攻嵌入式、RFID、微控製器、物聯網、WSN、Linux、Python、開源等領域。
前幾年國內引進瞭Chris Anderson的《創客:新工業革命》。打那時候開始,國內流行起“創客”風潮。“創客”這個詞果真是一個洋氣的舶來品,很多國人姑且把它看成硬件創業的預備役。但是大洋彼岸原産地的人們倒是樸實得可愛:織個毛衣,搞個室內大棚蔬菜。當然高科技類的自然少不瞭搗鼓一下機床,焊一塊闆子,這更像是一種DIY的懷舊文化:更加純粹和快樂。做一名純粹的創客並不容易,畢竟要抽齣一定的時間和精力。直到現在我依然惦記著自己那颱完成瞭一半的 3D 粉末打印機,而它就靜靜地躺在儲物箱裏。那時候的我已經開始為創業做前期準備,但商業項目和自己在創客空間玩的東西沒啥關係,終究自娛自樂和商業有差彆。
遇見 Allan 的時候,他也在努力從創客轉變成創業者。我很驚詫於他雖然技術嫻熟,也曾負責NXP産品技術與市場,卻依然對技術保持著孩童般的初心,真的不多見啊。離開NXP後,Allan決定成為一名自由職業者。靠著自己紮實的技術,從前端到後颱,從硬件到軟件,他一個人搞起瞭物聯網的項目和産品。我們時不時在綫上談論可行的産品和市場策略。雖然我對硬件不熟悉,但是由於自己當時就職於PTC,擁有些許物聯網後颱軟件的認知,就這樣我們相互參照著學習,並努力將其付諸實踐。
2015年5月,我離開瞭PTC並投身於機器視覺領域的創業,但依然保有對物聯網的熱情,尤其關注工業物聯。而 Allan 在這幾年的實踐中積纍瞭全棧開發的經驗。終於有一天,他覺得是時候將他獨自一人的全棧開發經驗記錄下來,並傳播給這個領域的開發者瞭。我自然非常支持他,但是獨自寫一本技術類的書,這是多麼考驗人呀。之後和 Allan 的交流變少瞭,我想象得齣他獨自在房間碼格子的情形。半年後,這本書的初稿終於紮紮實實地完成瞭。
創業者和分析師們總愛重復地問一個問題:物聯網的風口有沒有來?我們很難精準地去預判某個時間節點,但假如物聯網是一個不遠不近的方嚮的話,我們當下能夠做的便是順著産業的脈搏而跳動。類比一下 PC 和移動互聯網,我們依然處於物聯網大規模商業化的早期。但是最終我們會迎來萬物互聯。讓我激動的是萬物互聯的基礎架構成熟後,在各個行業以及各個利基市場將會湧現齣各種“新物種”,推動著商業和産業進一步提高效率,進一步打破邊界。而對於希望投身於這個行業的技術人員來說,應該盡量拋棄這些華麗的時髦術語,迴歸技術本身。這本書平實地記錄瞭讀者需要瞭解和掌控的基礎知識;與此同時,它從單一語言全棧開發的概念齣發梳理瞭一個完整的流程,而全局觀的梳理能夠更好地幫助技術人員去理解技術的本質。
技術總是在飛速地發展,書本記載的技能需要不斷地升級更新。但是我能感受到 Allan 更希望傳達的創客精神。創客願意從零開始建一棟樓,他們或許不能建成一座摩天大廈,但至少也會築成一幢彆具一格的小樓房。這種純粹的樂趣隻有從動手實踐中纔體會得齣來。但人們的生活節奏總是很匆忙,有這麼一本類似於“寶典”的書,可以加快看官您動手的速度和效率。但願您能享受從零開始搭建一個物聯網項目或者産品的過程。
張成 上海疊層科技聯閤創始人
第1章 物聯網簡介 1
1.1 物聯網定義 1
1.2 物聯網發展趨勢 1
1.3 物聯網應用與技術 2
1.3.1 物聯網核心價值 2
1.3.2 物聯網發展階段 3
1.3.3 物聯網分層 5
1.3.4 物聯網數據傳輸與網絡拓撲 5
1.3.5 物聯網實施所需技術棧 8
1.3.6 標準、現狀與未來 10
1.4 本章小結 16
第2章 Python語言基礎 17
2.1 Python的由來與特徵 19
2.1.1 概述 19
2.1.2 設計定位與哲學 19
2.1.3 優點與缺點 20
2.2 Python與物聯網開發 22
2.3 獲取Python資源 24
2.3.1 Python主程序 24
2.3.2 Python文檔 24
2.3.3 Python PyPI 24
2.4 Python解釋器運行環境 26
2.4.1 REPL交互模式 26
2.4.2 直接運行與模塊運行 26
2.4.3 腳本文件直接運行 27
2.4.4 源程序文字編碼與結束符 28
2.5 Python類型與語法 29
2.5.1 動態類型 29
2.5.2 傳值與傳引用 30
2.5.3 數據類型 31
2.5.4 內置類型 32
2.5.5 內置類型的普適操作 34
2.5.6 數值類型 35
2.5.7 布爾類型 37
2.5.8 迭代器類型 37
2.5.9 生成器類型 38
2.5.10 yield錶達式 39
2.5.11 序列類型 39
2.5.12 set集閤類型 54
2.5.13 映射類型 55
2.5.14 其他類型 56
2.5.15 控製流 59
2.5.16 內置函數 61
2.5.17 用戶自定義函數 62
2.5.18 模塊 65
2.5.19 輸入/輸齣 68
2.5.20 麵嚮對象編程 74
2.5.21 進程和綫程 82
2.5.22 錯誤和異常 90
2.6 Python標準庫概覽 93
2.7 本章小結 94
第3章 Python語言進階 95
3.1 HOWTO:常見任務和解決方案 95
3.1.1 數據類型轉換 96
3.1.2 數據的調試打印 100
3.1.3 數據類型資源優化 102
3.1.4 數據結構與算法 102
3.1.5 數據緩存 103
3.1.6 數據多路復用和解復用 104
3.1.7 數據序列化和反序列化 107
3.1.8 數據壓縮和解壓縮 119
3.1.9 數據加密 120
3.1.10 數據傳輸 121
3.1.11 數據後處理 121
3.1.12 數據持久化 121
3.1.13 數據交換 122
3.2 HOWTO:函數式編程 123
3.2.1 高階函數 123
3.2.2 map函數 124
3.2.3 reduce函數 124
3.2.4 filter函數 124
3.2.5 sorted函數 125
3.2.6 返迴函數 125
3.2.7 閉包 126
3.2.8 匿名函數 126
3.2.9 裝飾器 127
3.3 HOWTO:並發運行模型 131
3.3.1 協程 131
3.3.2 I/O模型 134
3.4 HOWTO:日期與時間 136
3.4.1 類型轉換 136
3.4.2 時區的處理 138
3.5 Python版本遷移 139
3.5.1 Python 2與Python 3的區彆 140
3.5.2 Python 2到Python 3的流程 140
3.5.3 多個Python版本共存 140
3.5.4 virtualenv 141
3.5.5 Windows多個版本共存 141
3.5.6 Linux多個版本共存 142
3.6 其他常見技巧 143
3.6.1 常數類型的模擬 143
3.6.2 枚舉類型的模擬 143
3.6.3 開發自定義模塊 144
3.7 Python與其他語言 145
3.8 Python語言擴展 151
3.8.1 C語言擴展Python 151
3.8.2 ctypes訪問Windows DLL 153
3.8.3 Jython訪問Java類 154
3.8.4 IronPython訪問.NET 155
3.9 Python加速 157
3.9.1 PyPy 158
3.9.2 Cython 159
3.9.3 PyCUDA 159
3.9.4 PyOpenCL 159
3.9.5 Theano 159
3.9.6 Nuitka 159
3.10 本章小結 160
第4章 嵌入式係統開發 161
4.1 嵌入式係統硬件分類 162
4.1.1 MCU 162
4.1.2 MPU 163
4.1.3 DSP 163
4.1.4 SMP 164
4.1.5 異構大小核 164
4.1.6 FPGA原型 165
4.1.7 SoPC 165
4.1.8 GPU 167
4.1.9 哈佛結構和馮?諾依曼結構 168
4.2 電路原型設計 168
4.2.1 集成電路設計流程 170
4.2.2 模擬電路原型設計 170
4.2.3 數字電路原型設計 175
4.3 常見嵌入式微控製器(MCU) 179
4.3.1 MCU市場狀況 179
4.3.2 Arduino/Wiring 180
4.3.3 ARM mbed 181
4.3.4 設計專屬架構和專屬MCU 182
4.3.5 ARM MCU差異化競爭 182
4.4 常見嵌入式處理器和主闆 184
4.4.1 ARM架構 185
4.4.2 其餘的ARM Linux主闆 188
4.4.3 MIPS開發闆 190
4.4.4 x86 mini-ITX 191
4.5 常見傳感器和執行器 192
4.5.1 虛擬傳感器 193
4.5.2 智能傳感器 193
4.5.3 專用傳感器 194
4.5.4 執行器 195
4.6 物聯網通信集成電路 196
4.7 嵌入式係統開發語言演進 197
4.7.1 從匯編到嵌入式C 197
4.7.2 從C到C++ 199
4.7.3 壓縮C++的係統消耗 199
4.7.4 C++適閤物聯網開發 200
4.8 C/C++的編程模式和技巧 204
4.8.1 C/C++設計模式 205
4.8.2 迴調函數 206
4.8.3 有限狀態機模型 209
4.8.4 善用結構體 211
4.8.5 C/C++協程 214
4.9 開發生態選擇 215
4.9.1 工業標準與廠傢私有指令集架構 215
4.9.2 硬件與軟件平颱選擇 215
4.9.3 編譯器選擇 216
4.10 常見操作係統 217
4.10.1 無操作係統 217
4.10.2 RTOS的優勢 218
4.10.3 uC/OS 219
4.10.4 Keil RTX 219
4.10.5 mbed RTOS與mbed OS 220
4.10.6 FreeRTOS 221
4.10.7 Linux是開發復雜聯網設備的現實選擇 222
4.11 物聯網中間件 227
4.11.1 WSN堆棧 227
4.11.2 TCP/IP 227
4.11.3 USB 227
4.11.4 FAT/FS 228
4.11.5 GUI 228
4.11.6 Terminal 228
4.11.7 MQTT 228
4.11.8 CoAP 229
4.12 物聯網安全性 230
4.12.1 安全相關芯片 230
4.12.2 安全中間件 231
4.12.3 Python安全算法 232
4.13 設備固件更新 232
4.13.1 固件更新技術發展史 232
4.13.2 本地固件更新 234
4.13.3 遠程固件更新 234
4.13.4 固件升級定製 234
4.14 各類串口實現聯網 235
4.14.1 串口協議的選擇 235
4.14.2 模擬串口設備 236
4.14.3 其他類型虛擬設備 238
4.14.4 ISP編程器 238
4.14.5 串口設備監控器 239
4.15 本章小結 239
第5章 設備連接和編程接口 240
5.1 設備連接概述 240
5.1.1 嵌入式係統連接層次 240
5.1.2 選擇正確的連接方案 241
5.1.3 具體落實連接設計 241
5.1.4 本章內容安排 242
5.2 連接能力匯總 242
5.2.1 連接由芯片開始 243
5.2.2 芯片內部係統總綫 245
5.2.3 芯片間連接技術 246
5.2.4 設備間連接 249
5.2.5 設備組網 250
5.2.6 設備組網與聯網的無綫技術 253
5.2.7 連接性迴顧 266
5.3 Linux文件係統 266
5.3.1 設備即文件 266
5.3.2 設備文件係統 267
5.3.3 Linux設備文件的演變 268
5.3.4 文件I/O操作 271
5.3.5 Linux硬件編程 272
5.4 並行接口 273
5.4.1 老舊的PC並行接口 274
5.4.2 高速總綫 274
5.4.3 GPIO 274
5.4.4 Linux訪問GPIO 275
5.4.5 GPIO的Python包 276
5.5 串行接口 277
5.5.1 異步通信串行口 277
5.5.2 I2C總綫 284
5.5.3 SPI總綫 290
5.5.4 與其他硬件平颱相關的Python包 294
5.6 USB總綫 296
5.6.1 USB Endpoints 297
5.6.2 USB Device/Host/OTG 297
5.6.3 USB 3.0 297
5.6.4 libUSB 297
5.6.5 PyUSB 298
5.6.6 標準化USB橋接 299
5.6.7 與USB相關的其他設計 301
5.7 Linux網絡設備驅動 301
5.7.1 TCP/IP套接字編程 301
5.7.2 IEEE 802.3到IEEE 802.11 302
5.7.3 網絡通信實現方案 302
5.7.4 私有通信協議棧 305
5.7.5 短距離無綫連接 307
5.8 工業總綫 310
5.8.1 CAN總綫 310
5.8.2 LIN總綫 312
5.8.3 其他ASIC 313
5.8.4 定製Python擴展 313
5.8.5 Windows DLL 314
5.9 本章小結 314
第6章 嵌入式Python虛擬機 315
6.1 嵌入式高級語言平颱大薈萃 315
6.1.1 高級語言與二次開發 315
6.1.2 BASIC 319
6.1.3 Java 319
6.1.4 Lua 322
6.1.5 JavaScript 322
6.1.6 .NET 323
6.2 前一代Python虛擬機 323
6.2.1 Telit GPRS模塊 323
6.2.2 Symbian 325
6.2.3 Windows CE 325
6.2.4 OpenMoko 325
6.3 深嵌入式Python平颱 326
6.3.1 LEGO EV3 326
6.3.2 TinyPy 326
6.3.3 嵌入式Python的局限 327
6.4 PyMite 328
6.4.1 硬件平颱 328
6.4.2 維護者 329
6.4.3 pymbed分支 329
6.4.4 開發現狀 331
6.4.5 文檔 332
6.4.6 源碼樹 333
6.4.7 使用流程 335
6.4.8 實踐 336
6.4.9 工程小結 337
6.4.10 網絡資源 338
6.5 VIPER/Zerynth 338
6.5.1 硬件平颱 339
6.5.2 Zerynth Studio 340
6.5.3 與標準Python的區彆 341
6.5.4 快速啓動 342
6.5.5 坎坷的使用過程 342
6.5.6 Zerynth目錄結構 343
6.5.7 硬件相關庫 344
從芯片到雲端:Python物聯網全棧開發實踐 下載 mobi epub pdf txt 電子書 格式從芯片到雲端:Python物聯網全棧開發實踐 下載 mobi pdf epub txt 電子書 格式 2024
從芯片到雲端:Python物聯網全棧開發實踐 下載 mobi epub pdf 電子書國內難得的講全棧開發的書,非常值得鼓勵,謝謝
評分題目感覺有點大,但是作者的知識麵還是很廣的,可以知道較多的東西。
評分書的質量很好,正是我需要的,京東送貨速度很快。
評分大緻翻瞭下,感覺還不錯
評分挺好的,買瞭好多本
評分好
評分開始好好學習啊,努力努力
評分支持作者,書沒得說,很有幫助!
評分專業綜閤網上購物商城,銷售超數萬品牌、4020萬種商品
從芯片到雲端:Python物聯網全棧開發實踐 mobi epub pdf txt 電子書 格式下載 2024