從芯片到云端 Python物聯網全棧開發實踐epub

圖書網
9780
文章
1286
評論
2019年12月27日21:17:31 評論 37
摘要

√ Python全棧是降低物聯網開發復雜度的必由之路
√ 物聯網應用系統的快速開發和系統擴展可以兼顧
√ 物聯網系統設計比互聯網系統設計更受限更復雜
√ 全覆蓋應用、產品、生態的全局視角與選型思路

從芯片到云端 Python物聯網全棧開發實踐 作者:劉凱

從芯片到云端 Python物聯網全棧開發實踐 出版社: 電子工業出版社

從芯片到云端 Python物聯網全棧開發實踐 內容簡介

物聯網開發重新定義了“全棧開發”的范圍。Python作為一門快速發展的語言,已經成為系統集成領域的優選語言之一,其可覆蓋從電路邏輯設計到大數據分析的物聯網端到端開發。各領域開發者可以利用Python交叉涉足物聯網設備、邊緣計算、云計算、數據分析的工程設計。

《從芯片到云端:Python物聯網全棧開發實踐》嘗試讓讀者建立物聯網設計的整體概念,從基礎概念開始,到相關技術選型、開源工程、參考設計與經驗分享。無論是物聯網領域的創業者,還是系統架構師,都可從本書中獲得靈感。本書對于嵌入式開發領域的開發者尤具學習價值,利用Python可加快開發迭代速度、降低開發成本,并可以基于嵌入式Python建立完整的物聯網軟硬件生態。

從芯片到云端 Python物聯網全棧開發實踐 目錄

前言

第1章 物聯網簡介

1.1 物聯網定義

1.2 物聯網發展趨勢

1.3 物聯網應用與技術

1.3.1 物聯網核心價值

1.3.2 物聯網發展階段

1.3.3 物聯網分層

1.3.4 物聯網數據傳輸與網絡拓撲

1.3.5 物聯網實施所需技術棧

1.3.6 標準、現狀與未來

1.4 本章小結

第2章 Python語言基礎

2.1 Python的由來與特征

2.1.1 概述

2.1.2 設計定位與哲學

2.1.3 優點與缺點

2.2 Python與物聯網開發

2.3 獲取Python資源

2.3.1 Python主程序

2.3.2 Python文檔

2.3.3 Python PyPI

2.4 Python解釋器運行環境

2.4.1 REPL交互模式

2.4.2 直接運行與模塊運行

2.4.3 腳本文件直接運行

2.4.4 源程序文字編碼與結束符

2.5 Python類型與語法

2.5.1 動態類型

2.5.2 傳值與傳引用

2.5.3 數據類型

2.5.4 內置類型

2.5.5 內置類型的普適操作

2.5.6 數值類型

2.5.7 布爾類型

2.5.8 迭代器類型

2.5.9 生成器類型

2.5.10 yield表達式

2.5.11 序列類型

2.5.12 set集合類型

2.5.13 映射類型

2.5.14 其他類型

2.5.15 控制流

2.5.16 內置函數

2.5.17 用戶自定義函數

2.5.18 模塊

2.5.19 輸入/輸出

2.5.20 面向對象編程

2.5.21 進程和線程

2.5.22 錯誤和異常

2.6 Python標準庫概覽

2.7 本章小結

第3章 Python語言進階

3.1 HOWTO:常見任務和解決方案

3.1.1 數據類型轉換

3.1.2 數據的調試打印

3.1.3 數據類型資源優化

3.1.4 數據結構與算法

3.1.5 數據緩存

3.1.6 數據多路復用和解復用

3.1.7 數據序列化和反序列化

3.1.8 數據壓縮和解壓縮

3.1.9 數據加密

3.1.10 數據傳輸

3.1.11 數據后處理

3.1.12 數據持久化

3.1.13 數據交換

3.2 HOWTO:函數式編程

3.2.1 高階函數

3.2.2 map函數

3.2.3 reduce函數

3.2.4 filter函數

3.2.5 sorted函數

3.2.6 返回函數

3.2.7 閉包

3.2.8 匿名函數

3.2.9 裝飾器

3.3 HOWTO:并發運行模型

3.3.1 協程

3.3.2 I/O模型

3.4 HOWTO:日期與時間

3.4.1 類型轉換

3.4.2 時區的處理

3.5 Python版本遷移

3.5.1 Python 2與Python 3的區別

3.5.2 Python 2到Python 3的流程

3.5.3 多個Python版本共存

3.5.4 virtualenv

3.5.5 Windows多個版本共存

3.5.6 Linux多個版本共存

3.6 其他常見技巧

3.6.1 常數類型的模擬

3.6.2 枚舉類型的模擬

3.6.3 開發自定義模塊

3.7 Python與其他語言

3.8 Python語言擴展

3.8.1 C語言擴展Python

3.8.2 ctypes訪問Windows DLL

3.8.3 Jython訪問Java類

3.8.4 IronPython訪問.NET

3.9 Python加速

3.9.1 PyPy

3.9.2 Cython

3.9.3 PyCUDA

3.9.4 PyOpenCL

3.9.5 Theano

3.9.6 Nuitka

3.10 本章小結

第4章 嵌入式系統開發

4.1 嵌入式系統硬件分類

4.1.1 MCU

4.1.2 MPU

4.1.3 DSP

4.1.4 SMP

4.1.5 異構大小核

4.1.6 FPGA原型

4.1.7 SoPC

4.1.8 GPU

4.1.9 哈佛結構和馮·諾依曼結構

4.2 電路原型設計

4.2.1 集成電路設計流程

4.2.2 模擬電路原型設計

4.2.3 數字電路原型設計

4.3 常見嵌入式微控制器(MCU)

4.3.1 MCU市場狀況

4.3.2 Arduino/Wiring

4.3.3 ARM mbed

4.3.4 設計專屬架構和專屬MCU

4.3.5 ARM MCU差異化競爭

4.4 常見嵌入式處理器和主板

4.4.1 ARM架構

4.4.2 其余的ARM Linux主板

4.4.3 MIPS開發板

4.4.4 x86 mini-ITX

4.5 常見傳感器和執行器

4.5.1 虛擬傳感器

4.5.2 智能傳感器

4.5.3 專用傳感器

4.5.4 執行器

4.6 物聯網通信集成電路

4.7 嵌入式系統開發語言演進

4.7.1 從匯編到嵌入式C

4.7.2 從C到C++

4.7.3 壓縮C++的系統消耗

4.7.4 C++適合物聯網開發

4.8 C/C++的編程模式和技巧

4.8.1 C/C++設計模式

4.8.2 回調函數

4.8.3 有限狀態機模型

4.8.4 善用結構體

4.8.5 C/C++協程

4.9 開發生態選擇

4.9.1 工業標準與廠家私有指令集架構

4.9.2 硬件與軟件平臺選擇

4.9.3 編譯器選擇

4.10 常見操作系統

4.10.1 無操作系統

4.10.2 RTOS的優勢

4.10.3 uC/OS

4.10.4 Keil RTX

4.10.5 mbed RTOS與mbed OS

4.10.6 FreeRTOS

4.10.7 Linux是開發復雜聯網設備的現實選擇

4.11 物聯網中間件

4.11.1 WSN堆棧

4.11.2 TCP/IP

4.11.3 USB

4.11.4 FAT/FS

4.11.5 GUI

4.11.6 Terminal

4.11.7 MQTT

4.11.8 CoAP

4.12 物聯網安全性

4.12.1 安全相關芯片

4.12.2 安全中間件

4.12.3 Python安全算法

4.13 設備固件更新

4.13.1 固件更新技術發展史

4.13.2 本地固件更新

4.13.3 遠程固件更新

4.13.4 固件升級定制

4.14 各類串口實現聯網

4.14.1 串口協議的選擇

4.14.2 模擬串口設備

4.14.3 其他類型虛擬設備

4.14.4 ISP編程器

4.14.5 串口設備監控器

4.15 本章小結

第5章 設備連接和編程接口

5.1 設備連接概述

5.1.1 嵌入式系統連接層次

5.1.2 選擇正確的連接方案

5.1.3 具體落實連接設計

5.1.4 本章內容安排

5.2 連接能力匯總

5.2.1 連接由芯片開始

5.2.2 芯片內部系統總線

5.2.3 芯片間連接技術

5.2.4 設備間連接

5.2.5 設備組網

5.2.6 設備組網與聯網的無線技術

5.2.7 連接性回顧

5.3 Linux文件系統

5.3.1 設備即文件

5.3.2 設備文件系統

5.3.3 Linux設備文件的演變

5.3.4 文件I/O操作

5.3.5 Linux硬件編程

5.4 并行接口

5.4.1 老舊的PC并行接口

5.4.2 高速總線

5.4.3 GPIO

5.4.4 Linux訪問GPIO

5.4.5 GPIO的Python包

5.5 串行接口

5.5.1 異步通信串行口

5.5.2 I2C總線

5.5.3 SPI總線

5.5.4 與其他硬件平臺相關的Python包

5.6 USB總線

5.6.1 USB Endpoints

5.6.2 USB Device/Host/OTG

5.6.3 USB 3.0

5.6.4 libUSB

5.6.5 PyUSB

5.6.6 標準化USB橋接

5.6.7 與USB相關的其他設計

5.7 Linux網絡設備驅動

5.7.1 TCP/IP套接字編程

5.7.2 IEEE 802.3到IEEE 802.11

5.7.3 網絡通信實現方案

5.7.4 私有通信協議棧

5.7.5 短距離無線連接

5.8 工業總線

5.8.1 CAN總線

5.8.2 LIN總線

5.8.3 其他ASIC

5.8.4 定制Python擴展

5.8.5 Windows DLL

5.9 本章小結

第6章 嵌入式Python虛擬機

6.1 嵌入式高級語言平臺大薈萃

6.1.1 高級語言與二次開發

6.1.2 BASIC

6.1.3 Java

6.1.4 Lua

6.1.5 JavaScript

6.1.6.NET

6.2 前一代Python虛擬機

6.2.1 Telit GPRS模塊

6.2.2 Symbian

6.2.3 Windows CE

6.2.4 OpenMoko

6.3 深嵌入式Python平臺

6.3.1 LEGO EV3

6.3.2 TinyPy

6.3.3 嵌入式Python的局限

6.4 PyMite

6.4.1 硬件平臺

6.4.2 維護者

6.4.3 pymbed分支

6.4.4 開發現狀

6.4.5 文檔

6.4.6 源碼樹

6.4.7 使用流程

6.4.8 實踐

6.4.9 工程小結

6.4.10 網絡資源

6.5 VIPER/Zerynth

6.5.1 硬件平臺

6.5.2 Zerynth Studio

6.5.3 與標準Python的區別

6.5.4 快速啟動

6.5.5 坎坷的使用過程

6.5.6 Zerynth目錄結構

6.5.7 硬件相關庫

6.5.8 其他特性

6.6 MicroPython

6.6.1 工程背景知識

6.6.2 在線評估網頁

6.6.3 官方硬件平臺分支

6.6.4 衍生項目

6.6.5 UNIX版本

6.6.6 MicroPython庫

6.6.7 STM32HAL分支

6.6.8 NUCLEO-F401RE適配

6.6.9 pyboard評估

6.6.10 異步處理和中斷處理

6.6.11 中斷處理的普遍問題

6.6.12 使用心得

6.6.13 商品化與知識產權

6.6.14 BBC microbit

6.7 Linux與Python

6.7.1 Linux中Python的運行環境

6.7.2 交叉編譯CPython

6.7.3 交叉編譯MicroPython

6.7.4 Jython運行環境

6.7.5 Android SL4A

6.8 本章小結

第7章 Python應用APP

7.1 基于字符的人機界面

7.1.1 命令行參數

7.1.2 字符終端開發

7.1.3 ncurses

7.2 桌面GUI開發

7.2.1 Tkinter

7.2.2 wxPython

7.2.3 Boa Constructor

7.2.4 wxGlade

7.2.5 PyGTK

7.2.6 PyQt

7.2.7 PySide

7.2.8 Enthought

7.2.9 Cocoa+PyObjC

7.2.10 Java AWT

7.2.11 IronPython與WPF

7.2.12 其他UI

7.3 本地Web GUI

7.3.1 與WebKit相關的Python包

7.3.2 OneRing

7.3.3 Pyjs

7.3.4 Python Flexx

7.4 本地可執行文件

7.4.1 Linux可執行文件

7.4.2 Mac OS X應用程序包

7.4.3 Windows可執行文件

7.4.4 pyinstaller

7.4.5 py2exe

7.4.6 py2app

7.4.7 cx_Freeze

7.4.8 Windows系統服務

7.4.9 Windows定時任務

7.4.10 Linux系統服務

7.4.11 Linux定時任務

7.5 移動APP開發

7.5.1 響應式網頁

7.5.2 PhoneGAP應用開發

7.5.3 SL4A

7.5.4 QPython開發

7.5.5 Kivy

7.5.6 其他開發方式

7.6 本章小結

第8章 Python開發輔助支持

8.1 物聯網開發需要不斷優化

8.2 專屬小工具

8.2.1 單位轉化器

8.2.2 內碼轉換器

8.2.3 其他編碼轉換

8.3 原型驗證

8.4 代碼生成器

8.5 軟件測試

8.5.1 unittest單元測試

8.5.2 socket壓力測試

8.5.3 urllib2遠程記錄

8.5.4 PCBA測試

8.6 文檔生成器

8.6.1 文檔格式

8.6.2 文檔生成工具

8.7 文檔操縱

8.7.1 Doc文檔操縱

8.7.2 Excel表格操縱

8.8 國際化與本地化

8.8.1 gettext

8.8.2 Web多語種切換

8.8.3 字庫文件生成器

8.8.4 GB2312點陣字庫提取

8.8.5 TTF字庫提取

8.9 配置管理

8.9.1 軟件配置管理

8.9.2 軟件配置管理自動化

8.9.3 Git Bash

8.9.4 Dulwich/Gittle包

8.9.5 Python Subversion包

8.9.6 watchdog系統監控

8.10 數據與素材處理

8.10.1 二維碼顯示

8.10.2 多媒體相關軟件包

8.10.3 地理位置

8.11 通信報文分析

8.11.1 PyShark

8.11.2 pypcapfile

8.11.3 scapy和scapy3k

8.11.4 pcap Web分析

8.12 與Arduino/mbed相關的Python包

8.12.1 Arduino Prototyping

8.12.2 pyFirmata

8.12.3 Py2B

8.12.4 CmdMessager

8.12.5 mbed

8.12.6 mbed RPC

8.12.7 mbed-ls

8.12.8 Python-mbedtls

8.12.9 Python-xbee

8.13 虛擬儀器

8.13.1 實時顯示波形

8.13.2 Instrumentino

8.13.3 Vipy

8.13.4 PyVISA

8.13.5 Pythics

8.14 3D/VR/AR

8.14.1 PyOpenGL

8.14.2 PySoy

8.14.3 VPython

8.14.4 Printrun 3D打印

8.15 本章小結

第9章 物聯網服務器端設計

9.1 物聯網計算模型

9.1.1 云計算

9.1.2 Web PaaS與IoT PaaS

9.1.3 IoT PaaS供應商

9.1.4 PaaS/IaaS混合架構

9.1.5 霧計算

9.2 物聯網與互聯網設計異同

9.2.1 基礎架構

9.2.2 標準化程度

9.2.3 業務模式

9.2.4 系統構成

9.2.5 設備接入協議

9.2.6 數據特性

9.2.7 系統架構

9.2.8 數據持久層

9.2.9 大數據分析架構

9.2.10 業務耦合與分離

9.2.11 業務與數據融合

9.2.12 認證授權與計費

9.3 物聯網網關與邊緣服務器

9.3.1 Python socket服務器

9.3.2 pyserial RFC2217

9.3.3 SubGHz網關panStamp

9.3.4 Rascal micro

9.3.5 Java IoT網關

9.4 物聯網設備接入協議

9.4.1 異步通信框架Twisted

9.4.2 Twisted 套接字服務器設計

9.4.3 物聯網專用協議

9.4.4 CoAP

9.4.5 MQTT

9.4.6 mosquitto/paho

9.4.7 REST API

9.4.8 服務器數據推送技術

9.5 高可用性與高并發性

9.5.1 并行與并發計算

9.5.2 網絡I/O模型分類

9.5.3 架構優化的路徑

9.5.4 關系數據庫系統

9.5.5 SQL/NoSQL/NewSQL

9.5.6 Redis

9.5.7 MongoDB

9.5.8 時序數據庫

9.5.9 消息隊列

9.6 業務與數據融合

9.6.1 網站權限管理

9.6.2 認證授權與計費

9.6.3 OpenID

9.6.4 OAUTH

9.6.5 OpenID與OAUTH的異同

9.6.6 社交化硬件

9.7 Web開發框架

9.7.1 MVC模型

9.7.2 Web開發流程

9.7.3 Python Web百花齊放

9.7.4 Zope

9.7.5 Django

9.7.6 Flask

9.7.7 gevent提升性能

9.7.8 異步Web框架Tornado

9.7.9 異步網絡框架Twisted

9.7.10 異步Web框架Cyclone

9.7.11 靜態網頁

9.7.12 TLS安全網頁

9.8 物聯網安全

9.8.1 物聯網安全現狀堪憂

9.8.2 操作系統安全

9.8.3 數據緩存與數據持久層安全

9.8.4 Web框架與容器安全

9.8.5 遠程加載風險

9.8.6 Web前端安全

9.8.7 傳輸層安全

9.9 服務器交付

9.9.1 虛擬機交付

9.9.2 Docker容器交付

9.9.3 VirtualEnv交付

9.10 服務器運維

9.10.1 Linux定時任務

9.10.2 常見的定時任務

9.10.3 系統監控

9.10.4 集成化運維軟件

9.11 物聯網系統設計實踐

9.11.1 服務器端需求分析

9.11.2 確定設備接入方式

9.11.3 物聯網的實時要求

9.11.4 EPIC IoT設備服務器

9.11.5 EPIC架構優化

9.12 本章小結

第10章 融合應用與數據分析

10.1 物聯網是可編程的

10.1.1 Web API的“滿漢全席”

10.1.2 Web API 技術演進

10.1.3 IoT Web API的必要性

10.1.4 Device as a Service

10.2 數據統計、分析和挖掘

10.2.1 名詞解釋

10.2.2 術語小結

10.2.3 大數據分析

10.3 采集整理自有數據

10.3.1 原始設備數據

10.3.2 數據埋點

10.3.3 服務器端數據

10.3.4 需求確定分析方法

10.4 采集第三方數據

10.4.1 結構化數據

10.4.2 半結構化數據

10.4.3 非結構化數據

10.4.4 數據錄入

10.4.5 數據融合

10.4.6 數據規整

10.4.7 數據交易

10.5 數據分析

10.5.1 常見編程語言

10.5.2 數據分析分類

10.5.3 科學計算數據分析工具

10.5.4 統計學數據分析工具

10.5.5 金融數據分析工具

10.5.6 大數據平臺與生態

10.6 數據可視化

10.6.1 數據可視化的發展趨勢

10.6.2 matplotlib

10.6.3 seaborn

10.6.4 mpld3

10.6.5 Chaco

10.6.6 Pygal

10.6.7 Plotly

10.6.8 TVTK

10.6.9 VPython

10.6.10 Folium

10.6.11 NetworkX

10.6.12 Bokeh

10.6.13 Mayavi

10.6.14 Vispy

10.6.15 MoviePy

10.6.16 其他新技術

10.7 本章小結

推薦書目與結束語

從芯片到云端 Python物聯網全棧開發實踐 精彩文摘

本章主要介紹物聯網的定義及其發展趨勢,以及物聯網應用與技術等內容,以便讀者對物聯網有個大概了解。

到目前為止,已經有許多標準化組織、國家機構、大學、跨國公司、技術聯盟和百科全書等都對“物聯網”做了定義??偟膩碚f,以描述性定義為多。

物聯網(Internet of Things)是指通過各種網絡連接技術和信息傳感技術,將物理實體進行標識、分類、組網、聯網,實現物與物、物與人之間的連接與互動,在數據采集基礎上通過處理、分析、模式識別等智能算法,實現自動化管理、遠程控制的計算機應用系統。

早期物聯網定義多與 RFID 有關,用于實現物體和用戶識別?,F在加入了各類傳感器、網絡連接技術和智能算法,物聯網的概念被大大拓寬了。

物聯網的關鍵詞是物和聯網技術,其整合了許多RFID、傳感網、工業控制以及新型的云計算和人工智能技術。物聯網成為TMT(Telecommunication,Media,Technology,即電信、媒體、科技)相關行業對其他傳統行業進行融合性技術升級的技術趨勢。

對于金融市場來說,物聯網是一種投資概念。但物聯網不是一個單獨的行業。目前被券商貼上“物聯網”標簽的企業,都是在日常生產或營銷方式中采用了某種物聯網技術的企業。這些行業可以分屬于許多行業,如醫療、工業、物流,而不一定是TMT行業。

可以預見會有更多時髦詞匯不斷出現,如果將這些概念視為果實和目標,物聯網則是這些概念的技術內核和基礎。

隨著市場對于物聯網的持續關注和資金投入,物聯網應用呈現出以下發展趨勢。

· 碎片化:各種物聯網應用百花齊放,而且技術選項越來越復雜。

· 標準化:芯片、連接技術、操作系統、設備平臺、云計算平臺、云計算服務呈現出標準化和同質化的趨勢,而且迭代速度越來越快。

· 擬人化:物聯網不再僅僅局限于設備組網、聯網,配合云計算和邊緣計算,系統內部和系統間的互動越來越像一種“生命體”。

所謂“擬人化”發展趨勢,指物聯網系統從功能上看越來越像一個生命體。雖然計算機系統與生物學中人的概念無法一一對應,但是這種發展趨勢非常明顯:

· 集成電路、微機電是物聯網的終端設備物質基礎,如同“蛋白質”。

· 創新電源設計為設備長期運行奠定了能源基礎,如同“碳水化合物”。

· 傳感器、執行設備用于感知環境和執行指令,如同“耳目”與“手足”。

· 組網、聯網技術讓離散設備組合成網絡,如同“神經”。

· 云計算平臺作為物聯網控制中心,如同“大腦”。

· 云存儲、大數據、機器學習、人工智能構成一個完整的應用,如同“大腦”的“記憶、觀察、經驗和判斷”。

· 計算機系統病毒、設計缺陷,可以被視為“病毒”,“病菌”和“敏感源”。

· 不同應用通過Web服務彼此相連,構成了應用之間的復雜關系,此類關系可以是隸屬、對等甚至敵對關系。

圖書網:從芯片到云端 Python物聯網全棧開發實踐epub

恭喜,此資源為免費資源,請先
聲明:本站所有資源收集于互聯網,只做學習和交流使用,版權歸著作人和出版社所有,請在下載后24小時之內自覺刪除,若作商業用途,請購買正版,由于未及時購買和付費發生的侵權行為,與本站無關。本站發布的內容若侵犯到您的權益,請聯系站長刪除,我們將及時處理!
繼續閱讀
  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin
分布式服務架構 原理 設計與實戰epub 網絡與數據通信

分布式服務架構 原理 設計與實戰epub

分布式服務架構 原理 設計與實戰 作者:李艷鵬,楊彪 分布式服務架構 原理 設計與實戰 出版社: 電子工業出版社 《分布式服務架構:原理、設計與實戰》以分布式服務架構為主線,重點介紹了保證服務化架構的...
深度學習入門之PyTorch epub 網絡與數據通信

深度學習入門之PyTorch epub

適讀人群 :本書將理論和代碼相結合,幫助讀者更好地進入深度學習領域,適合任何對深度學習感興趣的人。 1 作者本身也是從小白開始入門深度學習的,無論從書中內容,還是講解思路,以及語言...
基于免疫計算的機器學習方法及應用pdf 網絡與數據通信

基于免疫計算的機器學習方法及應用pdf

適讀人群 :本書可以為數據科學、信息科學、計算機科學、管理科學與工程、自動化等領域從事數據挖掘、機器學習、信息處理研究的相關專業技術人員提供指導。也可以適合于計算機應用、管理科學與...
匿名

發表評論

匿名網友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: