注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信從芯片到云端:Python物聯(lián)網(wǎng)全棧開發(fā)實(shí)踐

從芯片到云端:Python物聯(lián)網(wǎng)全棧開發(fā)實(shí)踐

從芯片到云端:Python物聯(lián)網(wǎng)全棧開發(fā)實(shí)踐

定 價(jià):¥119.00

作 者: 劉凱 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)?網(wǎng)絡(luò) 網(wǎng)絡(luò)與數(shù)據(jù)通信

ISBN: 9787121311277 出版時(shí)間: 2017-11-01 包裝: 平裝
開本: 16 頁(yè)數(shù): 724 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  物聯(lián)網(wǎng)開發(fā)重新定義了“全棧開發(fā)”的范圍。Python作為一門快速發(fā)展的語言,已經(jīng)成為系統(tǒng)集成領(lǐng)域的優(yōu)選語言之一,其可覆蓋從電路邏輯設(shè)計(jì)到大數(shù)據(jù)分析的物聯(lián)網(wǎng)端到端開發(fā)。各領(lǐng)域開發(fā)者可以利用Python交叉涉足物聯(lián)網(wǎng)設(shè)備、邊緣計(jì)算、云計(jì)算、數(shù)據(jù)分析的工程設(shè)計(jì)。 《從芯片到云端:Python物聯(lián)網(wǎng)全棧開發(fā)實(shí)踐》嘗試讓讀者建立物聯(lián)網(wǎng)設(shè)計(jì)的整體概念,從基礎(chǔ)概念開始,到相關(guān)技術(shù)選型、開源工程、參考設(shè)計(jì)與經(jīng)驗(yàn)分享。無論是物聯(lián)網(wǎng)領(lǐng)域的創(chuàng)業(yè)者,還是系統(tǒng)架構(gòu)師,都可從本書中獲得靈感。本書對(duì)于嵌入式開發(fā)領(lǐng)域的開發(fā)者尤具學(xué)習(xí)價(jià)值,利用Python可加快開發(fā)迭代速度、降低開發(fā)成本,并可以基于嵌入式Python建立完整的物聯(lián)網(wǎng)軟硬件生態(tài)。

作者簡(jiǎn)介

  劉凱,服務(wù)于微電子行業(yè)二十余載的資深工程師。曾在飛利浦半導(dǎo)體(即NXP恩智浦半導(dǎo)體前身)任資深工程師,從事軟、硬件開發(fā)與產(chǎn)品設(shè)計(jì)等工作,有用匯編/C/C++開發(fā)嵌入式系統(tǒng)固件、用Perl/Python腳本做開發(fā)支持工具、用PHP/Java/Python做設(shè)備云和Web應(yīng)用的豐富經(jīng)驗(yàn)?,F(xiàn)作為獨(dú)立系統(tǒng)集成開發(fā)商,專業(yè)從事物聯(lián)網(wǎng)相關(guān)項(xiàng)目設(shè)計(jì)和咨詢服務(wù),主攻嵌入式、RFID、微控制器、物聯(lián)網(wǎng)、WSN、Linux、Python、開源等領(lǐng)域。

圖書目錄

第1章 物聯(lián)網(wǎng)簡(jiǎn)介 1
1.1 物聯(lián)網(wǎng)定義 1
1.2 物聯(lián)網(wǎng)發(fā)展趨勢(shì) 1
1.3 物聯(lián)網(wǎng)應(yīng)用與技術(shù) 2
1.3.1 物聯(lián)網(wǎng)核心價(jià)值 2
1.3.2 物聯(lián)網(wǎng)發(fā)展階段 3
1.3.3 物聯(lián)網(wǎng)分層 5
1.3.4 物聯(lián)網(wǎng)數(shù)據(jù)傳輸與網(wǎng)絡(luò)拓?fù)?5
1.3.5 物聯(lián)網(wǎng)實(shí)施所需技術(shù)棧 8
1.3.6 標(biāo)準(zhǔn)、現(xiàn)狀與未來 10
1.4 本章小結(jié) 16
第2章 Python語言基礎(chǔ) 17
2.1 Python的由來與特征 19
2.1.1 概述 19
2.1.2 設(shè)計(jì)定位與哲學(xué) 19
2.1.3 優(yōu)點(diǎn)與缺點(diǎn) 20
2.2 Python與物聯(lián)網(wǎng)開發(fā) 22
2.3 獲取Python資源 24
2.3.1 Python主程序 24
2.3.2 Python文檔 24
2.3.3 Python PyPI 24
2.4 Python解釋器運(yùn)行環(huán)境 26
2.4.1 REPL交互模式 26
2.4.2 直接運(yùn)行與模塊運(yùn)行 26
2.4.3 腳本文件直接運(yùn)行 27
2.4.4 源程序文字編碼與結(jié)束符 28
2.5 Python類型與語法 29
2.5.1 動(dòng)態(tài)類型 29
2.5.2 傳值與傳引用 30
2.5.3 數(shù)據(jù)類型 31
2.5.4 內(nèi)置類型 32
2.5.5 內(nèi)置類型的普適操作 34
2.5.6 數(shù)值類型 35
2.5.7 布爾類型 37
2.5.8 迭代器類型 37
2.5.9 生成器類型 38
2.5.10 yield表達(dá)式 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 內(nèi)置函數(shù) 61
2.5.17 用戶自定義函數(shù) 62
2.5.18 模塊 65
2.5.19 輸入/輸出 68
2.5.20 面向?qū)ο缶幊?74
2.5.21 進(jìn)程和線程 82
2.5.22 錯(cuò)誤和異常 90
2.6 Python標(biāo)準(zhǔn)庫(kù)概覽 93
2.7 本章小結(jié) 94
第3章 Python語言進(jìn)階 95
3.1 HOWTO:常見任務(wù)和解決方案 95
3.1.1 數(shù)據(jù)類型轉(zhuǎn)換 96
3.1.2 數(shù)據(jù)的調(diào)試打印 100
3.1.3 數(shù)據(jù)類型資源優(yōu)化 102
3.1.4 數(shù)據(jù)結(jié)構(gòu)與算法 102
3.1.5 數(shù)據(jù)緩存 103
3.1.6 數(shù)據(jù)多路復(fù)用和解復(fù)用 104
3.1.7 數(shù)據(jù)序列化和反序列化 107
3.1.8 數(shù)據(jù)壓縮和解壓縮 119
3.1.9 數(shù)據(jù)加密 120
3.1.10 數(shù)據(jù)傳輸 121
3.1.11 數(shù)據(jù)后處理 121
3.1.12 數(shù)據(jù)持久化 121
3.1.13 數(shù)據(jù)交換 122
3.2 HOWTO:函數(shù)式編程 123
3.2.1 高階函數(shù) 123
3.2.2 map函數(shù) 124
3.2.3 reduce函數(shù) 124
3.2.4 filter函數(shù) 124
3.2.5 sorted函數(shù) 125
3.2.6 返回函數(shù) 125
3.2.7 閉包 126
3.2.8 匿名函數(shù) 126
3.2.9 裝飾器 127
3.3 HOWTO:并發(fā)運(yùn)行模型 131
3.3.1 協(xié)程 131
3.3.2 I/O模型 134
3.4 HOWTO:日期與時(shí)間 136
3.4.1 類型轉(zhuǎn)換 136
3.4.2 時(shí)區(qū)的處理 138
3.5 Python版本遷移 139
3.5.1 Python 2與Python 3的區(qū)別 140
3.5.2 Python 2到Python 3的流程 140
3.5.3 多個(gè)Python版本共存 140
3.5.4 virtualenv 141
3.5.5 Windows多個(gè)版本共存 141
3.5.6 Linux多個(gè)版本共存 142
3.6 其他常見技巧 143
3.6.1 常數(shù)類型的模擬 143
3.6.2 枚舉類型的模擬 143
3.6.3 開發(fā)自定義模塊 144
3.7 Python與其他語言 145
3.8 Python語言擴(kuò)展 151
3.8.1 C語言擴(kuò)展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 本章小結(jié) 160
第4章 嵌入式系統(tǒng)開發(fā) 161
4.1 嵌入式系統(tǒng)硬件分類 162
4.1.1 MCU 162
4.1.2 MPU 163
4.1.3 DSP 163
4.1.4 SMP 164
4.1.5 異構(gòu)大小核 164
4.1.6 FPGA原型 165
4.1.7 SoPC 165
4.1.8 GPU 167
4.1.9 哈佛結(jié)構(gòu)和馮??諾依曼結(jié)構(gòu) 168
4.2 電路原型設(shè)計(jì) 168
4.2.1 集成電路設(shè)計(jì)流程 170
4.2.2 模擬電路原型設(shè)計(jì) 170
4.2.3 數(shù)字電路原型設(shè)計(jì) 175
4.3 常見嵌入式微控制器(MCU) 179
4.3.1 MCU市場(chǎng)狀況 179
4.3.2 Arduino/Wiring 180
4.3.3 ARM mbed 181
4.3.4 設(shè)計(jì)專屬架構(gòu)和專屬M(fèi)CU 182
4.3.5 ARM MCU差異化競(jìng)爭(zhēng) 182
4.4 常見嵌入式處理器和主板 184
4.4.1 ARM架構(gòu) 185
4.4.2 其余的ARM Linux主板 188
4.4.3 MIPS開發(fā)板 190
4.4.4 x86 mini-ITX 191
4.5 常見傳感器和執(zhí)行器 192
4.5.1 虛擬傳感器 193
4.5.2 智能傳感器 193
4.5.3 專用傳感器 194
4.5.4 執(zhí)行器 195
4.6 物聯(lián)網(wǎng)通信集成電路 196
4.7 嵌入式系統(tǒng)開發(fā)語言演進(jìn) 197
4.7.1 從匯編到嵌入式C 197
4.7.2 從C到C++ 199
4.7.3 壓縮C++的系統(tǒng)消耗 199
4.7.4 C++適合物聯(lián)網(wǎng)開發(fā) 200
4.8 C/C++的編程模式和技巧 204
4.8.1 C/C++設(shè)計(jì)模式 205
4.8.2 回調(diào)函數(shù) 206
4.8.3 有限狀態(tài)機(jī)模型 209
4.8.4 善用結(jié)構(gòu)體 211
4.8.5 C/C++協(xié)程 214
4.9 開發(fā)生態(tài)選擇 215
4.9.1 工業(yè)標(biāo)準(zhǔn)與廠家私有指令集架構(gòu) 215
4.9.2 硬件與軟件平臺(tái)選擇 215
4.9.3 編譯器選擇 216
4.10 常見操作系統(tǒng) 217
4.10.1 無操作系統(tǒng) 217
4.10.2 RTOS的優(yōu)勢(shì) 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是開發(fā)復(fù)雜聯(lián)網(wǎng)設(shè)備的現(xiàn)實(shí)選擇 222
4.11 物聯(lián)網(wǎng)中間件 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 物聯(lián)網(wǎng)安全性 230
4.12.1 安全相關(guān)芯片 230
4.12.2 安全中間件 231
4.12.3 Python安全算法 232
4.13 設(shè)備固件更新 232
4.13.1 固件更新技術(shù)發(fā)展史 232
4.13.2 本地固件更新 234
4.13.3 遠(yuǎn)程固件更新 234
4.13.4 固件升級(jí)定制 234
4.14 各類串口實(shí)現(xiàn)聯(lián)網(wǎng) 235
4.14.1 串口協(xié)議的選擇 235
4.14.2 模擬串口設(shè)備 236
4.14.3 其他類型虛擬設(shè)備 238
4.14.4 ISP編程器 238
4.14.5 串口設(shè)備監(jiān)控器 239
4.15 本章小結(jié) 239
第5章 設(shè)備連接和編程接口 240
5.1 設(shè)備連接概述 240
5.1.1 嵌入式系統(tǒng)連接層次 240
5.1.2 選擇正確的連接方案 241
5.1.3 具體落實(shí)連接設(shè)計(jì) 241
5.1.4 本章內(nèi)容安排 242
5.2 連接能力匯總 242
5.2.1 連接由芯片開始 243
5.2.2 芯片內(nèi)部系統(tǒng)總線 245
5.2.3 芯片間連接技術(shù) 246
5.2.4 設(shè)備間連接 249
5.2.5 設(shè)備組網(wǎng) 250
5.2.6 設(shè)備組網(wǎng)與聯(lián)網(wǎng)的無線技術(shù) 253
5.2.7 連接性回顧 266
5.3 Linux文件系統(tǒng) 266
5.3.1 設(shè)備即文件 266
5.3.2 設(shè)備文件系統(tǒng) 267
5.3.3 Linux設(shè)備文件的演變 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 與其他硬件平臺(tái)相關(guān)的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 標(biāo)準(zhǔn)化USB橋接 299
5.6.7 與USB相關(guān)的其他設(shè)計(jì) 301
5.7 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng) 301
5.7.1 TCP/IP套接字編程 301
5.7.2 IEEE 802.3到IEEE 802.11 302
5.7.3 網(wǎng)絡(luò)通信實(shí)現(xiàn)方案 302
5.7.4 私有通信協(xié)議棧 305
5.7.5 短距離無線連接 307
5.8 工業(yè)總線 310
5.8.1 CAN總線 310
5.8.2 LIN總線 312
5.8.3 其他ASIC 313
5.8.4 定制Python擴(kuò)展 313
5.8.5 Windows DLL 314
5.9 本章小結(jié) 314
第6章 嵌入式Python虛擬機(jī) 315
6.1 嵌入式高級(jí)語言平臺(tái)大薈萃 315
6.1.1 高級(jí)語言與二次開發(fā) 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虛擬機(jī) 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平臺(tái) 326
6.3.1 LEGO EV3 326
6.3.2 TinyPy 326
6.3.3 嵌入式Python的局限 327
6.4 PyMite 328
6.4.1 硬件平臺(tái) 328
6.4.2 維護(hù)者 329
6.4.3 pymbed分支 329
6.4.4 開發(fā)現(xiàn)狀 331
6.4.5 文檔 332
6.4.6 源碼樹 333
6.4.7 使用流程 335
6.4.8 實(shí)踐 336
6.4.9 工程小結(jié) 337
6.4.10 網(wǎng)絡(luò)資源 338
6.5 VIPER/Zerynth 338
6.5.1 硬件平臺(tái) 339
6.5.2 Zerynth Studio 340
6.5.3 與標(biāo)準(zhǔn)Python的區(qū)別 341
6.5.4 快速啟動(dòng) 342
6.5.5 坎坷的使用過程 342
6.5.6 Zerynth目錄結(jié)構(gòu) 343
6.5.7 硬件相關(guān)庫(kù) 344
6.5.8 其他特性 355
6.6 MicroPython 356
6.6.1 工程背景知識(shí) 356
6.6.2 在線評(píng)估網(wǎng)頁(yè) 358
6.6.3 官方硬件平臺(tái)分支 358
6.6.4 衍生項(xiàng)目 359
6.6.5 UNIX版本 360
6.6.6 MicroPython庫(kù) 363
6.6.7 STM32HAL分支 365
6.6.8 NUCLEO-F401RE適配 367
6.6.9 pyboard評(píng)估 372
6.6.10 異步處理和中斷處理 389
6.6.11 中斷處理的普遍問題 392
6.6.12 使用心得 395
6.6.13 商品化與知識(shí)產(chǎn)權(quán) 396
6.6.14 BBC microbit 396
6.7 Linux與Python 398
6.7.1 Linux中Python的運(yùn)行環(huán)境 398
6.7.2 交叉編譯CPython 401
6.7.3 交叉編譯MicroPython 402
6.7.4 Jython運(yùn)行環(huán)境 404
6.7.5 Android SL4A 406
6.8 本章小結(jié) 407
第7章 Python應(yīng)用APP 408
7.1 基于字符的人機(jī)界面 409
7.1.1 命令行參數(shù) 409
7.1.2 字符終端開發(fā) 410
7.1.3 ncurses 411
7.2 桌面GUI開發(fā) 412
7.2.1 Tkinter 413
7.2.2 wxPython 414
7.2.3 Boa Constructor 415
7.2.4 wxGlade 416
7.2.5 PyGTK 417
7.2.6 PyQt 419
7.2.7 PySide 420
7.2.8 Enthought 421
7.2.9 Cocoa+PyObjC 423
7.2.10 Java AWT 424
7.2.11 IronPython與WPF 425
7.2.12 其他UI 425
7.3 本地Web GUI 426
7.3.1 與WebKit相關(guān)的Python包 427
7.3.2 OneRing 427
7.3.3 Pyjs 427
7.3.4 Python Flexx 428
7.4 本地可執(zhí)行文件 429
7.4.1 Linux可執(zhí)行文件 429
7.4.2 Mac OS X應(yīng)用程序包 430
7.4.3 Windows可執(zhí)行文件 430
7.4.4 pyinstaller 430
7.4.5 py2exe 430
7.4.6 py2app 430
7.4.7 cx_Freeze 431
7.4.8 Windows系統(tǒng)服務(wù) 431
7.4.9 Windows定時(shí)任務(wù) 432
7.4.10 Linux系統(tǒng)服務(wù) 433
7.4.11 Linux定時(shí)任務(wù) 435
7.5 移動(dòng)APP開發(fā) 436
7.5.1 響應(yīng)式網(wǎng)頁(yè) 437
7.5.2 PhoneGAP應(yīng)用開發(fā) 437
7.5.3 SL4A 437
7.5.4 QPython開發(fā) 441
7.5.5 Kivy 443
7.5.6 其他開發(fā)方式 449
7.6 本章小結(jié) 449
第8章 Python開發(fā)輔助支持 451
8.1 物聯(lián)網(wǎng)開發(fā)需要不斷優(yōu)化 452
8.2 專屬小工具 452
8.3 原型驗(yàn)證 458
8.4 代碼生成器 459
8.5 軟件測(cè)試 461
8.6 文檔生成器 468
8.7 文檔操縱 477
8.8 國(guó)際化與本地化 479
8.9 配置管理 484
8.10 數(shù)據(jù)與素材處理 486
8.11 通信報(bào)文分析 495
8.12 與Arduino/mbed相關(guān)的Python包 497
8.13 虛擬儀器 509
8.14 3D/VR/AR 512
8.15 本章小結(jié) 515
第9章 物聯(lián)網(wǎng)服務(wù)器端設(shè)計(jì) 516
9.1 物聯(lián)網(wǎng)計(jì)算模型 517
9.2 物聯(lián)網(wǎng)與互聯(lián)網(wǎng)設(shè)計(jì)異同 526
9.3 物聯(lián)網(wǎng)網(wǎng)關(guān)與邊緣服務(wù)器 535
9.3.1 Python socket服務(wù)器 536
9.3.2 pyserial RFC2217 536
9.3.3 SubGHz網(wǎng)關(guān)panStamp 537
9.3.4 Rascal micro 538
9.3.5 Java IoT網(wǎng)關(guān) 539
9.4 物聯(lián)網(wǎng)設(shè)備接入?yún)f(xié)議 540
9.5 高可用性與高并發(fā)性 575
9.7 Web開發(fā)框架 589
9.8 物聯(lián)網(wǎng)安全 597
9.9 服務(wù)器交付 603
9.10 服務(wù)器運(yùn)維 605
9.11 物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)實(shí)踐 614
9.12 本章小結(jié) 625
第10章 融合應(yīng)用與數(shù)據(jù)分析 626
10.1 物聯(lián)網(wǎng)是可編程的 626
10.2 數(shù)據(jù)統(tǒng)計(jì)、分析和挖掘 630
10.3 采集整理自有數(shù)據(jù) 633
10.4 采集第三方數(shù)據(jù) 637
10.5 數(shù)據(jù)分析 647
10.6 數(shù)據(jù)可視化 663
10.7 本章小結(jié) 682
推薦書目與結(jié)束語 683

(篇幅有限,完整目錄請(qǐng)查看本書)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)