物聯網Python開發實戰

物聯網Python開發實戰

《物聯網Python開發實戰》一書作者安翔,由電子工業出版社於2018年3月出版。

基本信息

簡介

物聯網項目通常包含感測器、單片機、網關設備、通信模組、網路協定、後台程式、Web端等多個部件,需要多種程式語言以及研發技能的支持。在產品原型驗證的初期,尤其對於小團隊來說,整合眾多的研發力量並非易事。

本書通過一個完整的實戰項目展示物聯網從設備到雲端開發的全貌。該項目(智慧型種植系統)涵蓋了遠程燈控、安防告警、環境監測、智慧型滴灌、設備管理等多個功能模組。項目所有代碼在GitHub開源並配套了硬體開發板。

本項目基本使用Python一種語言實現了感測器、STM32單片機、嵌入式ARM-Linux網關、雲端程式的開發。有了Python豐富的第三方庫和模組的支撐,即便是欠缺硬體和嵌入式知識的開發者也可玩轉物聯網,快速實現物聯網產品。

主要內容

物聯網核心組件

Python編程基礎及高級特性

MicroPython開發單片機

構建嵌入式Linux網關

多種感測器的接入

MySQL與SQLite資料庫的使用

LoRa和GSM物聯網通信模組

MQTT通信協定的套用

Django Web框架快速實現雲端程式

目錄

第1章 物聯網邂逅Python

1.1 物聯網組成架構

1.2 物聯網發展現狀

1.2.1 終端設備

1.2.2 物聯網作業系統

1.2.3 通信手段

1.2.4 網路建設

1.2.5 套用協定

1.2.6 物聯網雲平台

1.3 物聯網典型套用

1.3.1 共享腳踏車

1.3.2 智慧型家居

1.3.3 智慧農業

1.4 使用Python的理由

1.4.1 Python特性

1.4.2 Python無處不在

1.4.3 開發速度有時更重要

1.5 美麗的相遇

1.5.1 Python與終端

1.5.2 Python與網關

1.5.3 Python與雲平台

1.5.4 物聯網Python全棧開發

第2章 開啟Python之旅

2.1 Python版本的選擇

2.2 搭建開發環境

2.2.1 安裝VMware

2.2.2 在VMware上安裝Ubuntu

2.2.3 安裝VMware Tools工具

2.2.4 虛擬機的網路配置

2.2.5 Samba共享設定

2.2.6 修改Python版本

2.3 開始編寫Python程式

2.3.1 互動式解釋器

2.3.2 原始碼執行

2.3.3 注釋

2.3.4 代碼塊和縮進

2.3.5 繼續和分隔

2.3.6 輸入和輸出

2.4 變數和數據類型

2.4.1 變數賦值

2.4.2 常量

2.4.3 數據類型

2.5 條件和循環

2.5.1 if語句

2.5.2 while循環

2.5.3 for in循環

2.5.4 跳出循環

2.5.5 pass語句

2.6 函式

2.6.1 定義函式

2.6.2 函式調用

2.6.3 函式的參數

2.6.4 內置函式

2.7 變數進階

2.7.1 全局變數與局部變數

2.7.2 global關鍵字

2.7.3 nonlocal關鍵字

2.7.4 變數作用域

2.8 模組與包

2.8.1 使用模組

2.8.2 包

2.9 異常處理

第3章 Python數據結構

3.1 字元串

3.1.1 索引和切片

3.1.2 字元串運算符

3.1.3 字元串格式化

3.1.4 字元編碼

3.2 列表

3.2.1 訪問列表

3.2.2 更改列表

3.2.3 列表操作符

3.2.4 列表常用函式

3.3 元組

3.3.1 訪問元組

3.3.2 元組操作符

3.3.3 元組內置函式

3.4 字典

3.4.1 訪問字典

3.4.2 修改字典

3.4.3 字典鍵的特性

3.4.4 字典函式

3.5 集合

3.5.1 忽略重複元素

3.5.2 無序

3.5.3 常用操作

第4章 Python高級特性

4.1 生成器

4.1.1 列表推導式

4.1.2 生成器表達式

4.1.3 生成器函式

4.2 疊代器

4.3 函式式編程

4.3.1 高階函式

4.3.2 內置高階函式

4.3.3 閉包

4.3.4 裝飾器

4.3.5 匿名函式

4.3.6 偏函式

4.4 面向對象編程

4.4.1 類與對象

4.4.2 訪問限制

4.4.3 繼承

4.4.4 多重繼承

4.4.5 多態

4.4.6 運算符重載

第5章 物聯網核心組件

5.1 網路通信方案

5.1.1 WIFI網路

5.1.2 行動網路

5.1.3 Zigbee

5.1.4 BLE

5.1.5 LoRa

5.1.6 NB-IoT

5.2 網路通信協定

5.2.1 HTTP

5.2.2 WebSocket

5.2.3 XMPP

5.2.4 CoAP

5.2.5 MQTT

5.3 硬體

5.4 物聯網雲平台

5.4.1 OneNet

5.4.2 AWS IoT

5.4.3 Waston IoT

第6章 MicroPython開發物聯網終端

6.1 MicroPython簡介

6.1.1 MicroPython項目

6.1.2 MicroPython特點

6.1.3 MicroPython源碼

6.2 MicroPython開發板

6.2.1 官方開發板PYBoard

6.2.2 國內開發板TPYBoard

6.2.3 OpenMV

6.2.4 LoPy

6.3 第一個MicroPython程式

6.4 互動式解釋器

6.5 按鍵中斷與回調

6.6 定時器的使用

6.7 串口測試

6.8 SPI接口驅動液晶屏

6.8.1 硬體連線

6.8.2 LCD屏驅動

6.8.3 字型檔說明

6.8.4 主程式

6.9 源碼編譯與固件升級

6.9.1 準備編譯環境

6.9.2 源碼下載與編譯

6.9.3 固件燒寫

6.10 MicroPython多執行緒

6.10.1 MicroPython執行緒簡介

6.10.2 MicroPython執行緒使用

6.10.3 多執行緒中的鎖

6.11 安全模式及恢復出廠設定

6.11.1 安全模式

6.11.2 恢復出廠設定

第7章 構建物聯網網關

7.1 網關概述

7.1.1 網關的構成

7.1.2 常用物聯網網關

7.2 自主構建網關

7.2.1 交叉編譯

7.2.2 編譯引導程式

7.2.3 核心配置與編譯

7.2.4 製作檔案系統

7.2.5 分區與下載

7.2.6 系統啟動流程簡介

7.2.7 移植Python3

7.3 樹莓派作網關

7.3.1 初次啟動樹莓派

7.3.2 串口登錄樹莓派

7.3.3 SSH訪問樹莓派

7.3.4 升級Python版本

7.3.5 必備工具安裝

7.3.6 板載WIFI配置

7.3.7 串口通信

第8章 網關數據編碼與處理

8.1 讀寫CSV檔案

8.1.1 讀取CSV檔案

8.1.2 寫入CSV檔案

8.2 JSON解析

8.2.1 JSON數據格式

8.2.2 編碼

8.2.3 解碼

8.3 XML操作

8.3.1 XML簡介

8.3.2 解析XML

8.3.3 創建與修改

8.4 二進制數據的讀寫

8.5 Base64編解碼

8.6 正則表達式

8.6.1 正則表達式簡介

8.6.2 re模組

8.6.3 貪婪匹配

第9章 網關多進程與多執行緒

9.1 多進程

9.1.1 multiprocessing模組

9.1.2 進程同步

9.1.3 進程間通信

9.2 多執行緒

9.2.1 threading模組

9.2.2 執行緒同步

9.2.3 執行緒間通信

9.3 多執行緒和多進程的思考

9.3.1 多核CPU利用率實驗

9.3.2 GIL全局鎖

9.3.3 切換的開銷

9.3.4 多執行緒與多進程的選擇

9.4 異步IO

9.4.1 協程

9.4.2 協程與多執行緒對比

9.4.3 asyncio

第10章 網關數據持久化

10.1 檔案操作

10.1.1 讀寫文本數據

10.1.2 操作檔案和目錄

10.1.3 讀寫壓縮檔案

10.1.4 記憶體映射

10.1.5 臨時檔案與目錄

10.1.6 序列化Python對象

10.2 SQLite資料庫

10.2.1 SQLite簡介

10.2.2 命令行操作SQLite

10.2.3 創建資料庫

10.2.4 創建表

10.2.5 SQL語句

10.2.6 SQLite的Python編程

第11章 Python擴展

11.1 Python擴展的原因

11.2 連線硬體的紐帶

11.3 C語言擴展Python

11.3.1 簡單的C語言Python擴展

11.3.2 傳遞整型參數

11.3.3 傳遞字元串參數

第12章 網關網路編程

12.1 網關網路通信方案

12.2 Socket編程

12.3 requests

12.3.1 上傳檔案

12.3.2 下載檔案

12.4 hbmqtt

12.4.1 安裝

12.4.2 hbmqtt命令操作

12.4.3 hbmqtt API編程

12.5 LoRa網路通信

12.5.1 LoRa模組初始化

12.5.2 數據監聽與接收

12.5.3 數據快取

第13章 物聯網後台Web開發

13.1 Django簡介

13.2 創建一個網站

13.2.1 Django安裝

13.2.2 創建項目

13.2.3 運行與訪問

13.3 網站首頁

13.3.1 源碼檔案結構

13.3.2 視圖與URL配置

13.4 Django模板

13.4.1 Django模板系統

13.4.2 模板繼承

13.5 Django模型

13.5.1 安裝MySQL資料庫

13.5.2 創建模型

13.5.3 必要的配置

13.6 用戶註冊

13.7 賬號登錄

第14章 物聯網Python項目實戰

14.1 項目簡介

14.2 終端設備程式開發

14.2.1 採集空氣溫濕度

14.2.2 獲取環境光強度

14.2.3 雨量檢測

14.2.4 水位檢測

14.2.5 土壤濕度檢測

14.2.6 水泵的控制

14.2.7 入侵檢測

14.2.8 燈光控制

14.2.9 電量檢測

14.2.10 LoRa通信

14.2.11 JSON訊息

14.3 網關程式開發

14.3.1 終端通信

14.3.2 資料庫管理

14.3.3 檔案備份

14.3.4 伺服器通信

14.3.5 2G模組的使用

14.4 伺服器端程式開發

14.4.1 與網關通信

14.4.2 環境數據可視化

14.4.3 滴灌控制

14.4.4 燈光控制

14.4.5 報警顯示與設定

14.4.6 設備管理

14.4.7 備份檔案管理

相關詞條

熱門詞條

聯絡我們