物聯(lián)網(wǎng)Python開發(fā)實戰(zhàn)
定 價:69 元
- 作者:安翔
- 出版時間:2018/3/1
- ISBN:9787121337512
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書在介紹物聯(lián)網(wǎng)的組成、典型架構(gòu)和應用的基礎(chǔ)上,采用實例代碼講述python編程基礎(chǔ)和應用實例,包括用micropython進行物聯(lián)網(wǎng)單片機的開發(fā)、用python開發(fā)物聯(lián)網(wǎng)網(wǎng)關(guān)的方法、python django框架開發(fā)物聯(lián)網(wǎng)web后臺和前端知識及物聯(lián)網(wǎng)常用通信方案2G、lora、zigbee和物聯(lián)網(wǎng)通信協(xié)議MQTT、COAP等,*重要的內(nèi)容是通過一個完整的大型物聯(lián)網(wǎng)項目實例講解python開發(fā)物聯(lián)網(wǎng)的細節(jié)。
本書內(nèi)容寫作安排:
第1章物聯(lián)網(wǎng)邂逅Python
本章大致介紹物聯(lián)網(wǎng)的組成、架構(gòu)、發(fā)展現(xiàn)狀及當前市面上典型的物聯(lián)網(wǎng)應用方案,闡述Python這門編程語言的特性和優(yōu)點,講述用Python語言開發(fā)物聯(lián)網(wǎng)終端設(shè)備、網(wǎng)關(guān)設(shè)備、Web后臺程序的具體方法及優(yōu)勢。
第2章開啟Python之旅
本章從零開始講解如何使用Python語言進行編程,通過大量的實例代碼帶領(lǐng)Python初學者掌握基本的Python編程技巧。
第3章Python數(shù)據(jù)結(jié)構(gòu)
Python除了擁有比較通用的字符串、列表等數(shù)據(jù)結(jié)構(gòu)外,還有元組、字典、集合等特有的數(shù)據(jù)結(jié)構(gòu)。熟練掌握和運用Python的各種數(shù)據(jù)結(jié)構(gòu)是編寫高質(zhì)量Python程序的基礎(chǔ)。
第4章Python高級特性
Python作為一門高級編程語言,擁有眾多自身特有的高級特性,如生成器、迭代器、裝飾器等。同時,Python也可面向?qū)ο缶幊,只有掌握Python高級特性的使用方法,才能抓住Python編程的精髓。
第5章物聯(lián)網(wǎng)核心組件
本章介紹物聯(lián)網(wǎng)的核心組成部分及關(guān)鍵技術(shù)點,首先介紹WIFI、移動網(wǎng)絡(luò)、Zigbee通信、BLE、LoRa、NB-IoT等網(wǎng)絡(luò)通信方案,以及HTTP、Websocket、XMPP、CoAP、MQTT等網(wǎng)絡(luò)通信協(xié)議;其次介紹常用的硬件設(shè)備種類,包括處理器、傳感器、通信模塊等;最后介紹幾種市面上常用的物聯(lián)網(wǎng)云平臺,如中國移動的OneNet平臺、AWS IoT平臺、IBM的Waston IoT平臺。
第6章MicroPython開發(fā)物聯(lián)網(wǎng)終端
終端是物聯(lián)網(wǎng)連接真實世界的第一層,是物聯(lián)網(wǎng)產(chǎn)品中數(shù)量最為龐大的部件。本章重點講解目前非常火爆的MicroPython,可用于開發(fā)單片機程序,單片機是物聯(lián)網(wǎng)終端設(shè)備的核心,除了介紹MicroPython的基本使用外,還會用MicroPython構(gòu)建一個液晶屏顯示程序?qū)嵗?br />第7章構(gòu)建物聯(lián)網(wǎng)網(wǎng)關(guān)
網(wǎng)關(guān)是連接終端設(shè)備和后臺的樞紐,同時還負責局域網(wǎng)的組建和維護、本地數(shù)據(jù)存儲、通信規(guī)則制定、業(yè)務(wù)邏輯管理等。在實際項目中,網(wǎng)關(guān)通常是一個運行Linux操作系統(tǒng)并搭載物聯(lián)網(wǎng)通信模塊及其他外設(shè)的嵌入式設(shè)備。本章將介紹網(wǎng)關(guān)上嵌入式Linux的相關(guān)知識及Python環(huán)境的構(gòu)建方法,為后續(xù)講解網(wǎng)關(guān)Python的開發(fā)提供基本的軟、硬件環(huán)境。
第8章網(wǎng)關(guān)數(shù)據(jù)編碼與處理
網(wǎng)關(guān)作為物聯(lián)網(wǎng)應用中的通信樞紐,在通信過程中有多種格式的數(shù)據(jù)需要處理。其方式包括轉(zhuǎn)發(fā)、編解碼、解析等。本章講述網(wǎng)關(guān)如何通過Python語言處理各種格式的數(shù)據(jù),包括CSV、JSON、XML、二進制數(shù)據(jù)、Base64格式的數(shù)據(jù)。
第9章網(wǎng)關(guān)多進程與多線程
物聯(lián)網(wǎng)網(wǎng)關(guān)往往需要管理大量的終端設(shè)備,還要承擔通信、運算、IO操作等多種任務(wù)。本章介紹Python編程時實現(xiàn)多任務(wù)的方式及多進程、多線程、協(xié)程、異步IO等多種Python程序模型,并對它們做出對比,針對CPU密集型和IO密集型不同應用場景下方案的選擇,使網(wǎng)關(guān)程序性能更優(yōu)。
第10章網(wǎng)關(guān)數(shù)據(jù)持久化
網(wǎng)關(guān)是運算中心與通信樞紐,也是局域網(wǎng)數(shù)據(jù)存儲中心。數(shù)據(jù)持久化是一個系統(tǒng)穩(wěn)定運行的必要條件。所有數(shù)據(jù)存放在內(nèi)存中時,一旦設(shè)備發(fā)生軟、硬件故障,將發(fā)生數(shù)據(jù)丟失。為了避免這種情況,某些關(guān)鍵數(shù)據(jù)需要固化到磁盤上。本章介紹兩種數(shù)據(jù)固化到磁盤上的兩種方式普通文件和數(shù)據(jù)庫,并介紹Python程序?qū)@兩種數(shù)據(jù)存儲方式的實際運用。
第11章Python擴展
Python在物聯(lián)網(wǎng)行業(yè)的應用與其他行業(yè)的應用有很大不同:物聯(lián)網(wǎng)涉及硬件操作且物聯(lián)網(wǎng)設(shè)備的CPU處理能力通常非常有限。因此,在某些特殊場景,需要使用C語言編寫操作硬件的程序從而提供Python調(diào)用接口以實現(xiàn)Python對硬件的操作,而且在某些效率要求非常高的場景,使用運行效率更高的C語言編寫程序,再編譯成Python擴展庫,可提高程序執(zhí)行效率。本章主要講解使用C語言擴展Python的方法。
第12章網(wǎng)關(guān)網(wǎng)絡(luò)編程
網(wǎng)關(guān)負責局域網(wǎng)的組建和維護,同時需要與后臺通信以完成數(shù)據(jù)、指令的傳輸。本章首先介紹使用Python進行基本的Socket編程,接著以實戰(zhàn)項目為例,分別講解基于requests模塊的文件傳輸及基于MQTT協(xié)議實現(xiàn)的hbmqtt編程。
第13章物聯(lián)網(wǎng)后臺Web開發(fā)
本章介紹基于Python的 Django Web框架基礎(chǔ)知識,包括視圖與URL配置、模板、模型、表單、靜態(tài)文件處理、用戶注冊與登錄,主要介紹Django框架Web編程的基礎(chǔ)知識儲備,以便能夠理解實戰(zhàn)項目中的Web程序。
第14章物聯(lián)網(wǎng)Python項目實戰(zhàn)
本章介紹一個基于物聯(lián)網(wǎng)的智能種植項目,從項目架構(gòu)、功能及項目所包含的終端設(shè)備、網(wǎng)關(guān)、后臺程序等方面全面展示開發(fā)過程。該項目在GitHub提供了完整的源碼,讀者通過該實戰(zhàn)項目能夠了解一個完整物聯(lián)網(wǎng)項目的全貌,掌握物聯(lián)網(wǎng)Python開發(fā)的細節(jié)。目錄
東北大學電子信息專業(yè),曾就職于疊拓、GE、長虹從事多個領(lǐng)域的軟件開發(fā)工作,擅長嵌入式Linux和Python開發(fā),目前在中移物聯(lián)網(wǎng)負責物聯(lián)網(wǎng)操作系統(tǒng)的設(shè)計和研發(fā)。熱愛開源、分享和技術(shù)寫作,CSDN博客專家,著有《Micropython加速物聯(lián)網(wǎng)開發(fā)》、《python Django web實戰(zhàn)》、《樹莓派體驗》等專欄。
第1章物聯(lián)網(wǎng)邂逅Python
11物聯(lián)網(wǎng)組成架構(gòu)
12物聯(lián)網(wǎng)發(fā)展現(xiàn)狀
121終端設(shè)備
122物聯(lián)網(wǎng)操作系統(tǒng)
123通信手段
124網(wǎng)絡(luò)建設(shè)
125應用協(xié)議
126物聯(lián)網(wǎng)云平臺
13物聯(lián)網(wǎng)典型應用
131共享單車
132智能家居
133智慧農(nóng)業(yè)
14使用Python的理由
141Python特性
142Python無處不在
143開發(fā)速度有時更重要
15美麗的相遇
151Python與終端
152Python與網(wǎng)關(guān)
153Python與云平臺
154物聯(lián)網(wǎng)Python全棧開發(fā)
第2章開啟Python之旅
21Python版本的選擇
22搭建開發(fā)環(huán)境
221安裝VMware
222在VMware上安裝Ubuntu
223安裝VMware Tools工具
224虛擬機的網(wǎng)絡(luò)配置
225Samba共享設(shè)置
226修改Python版本
23開始編寫Python程序
231交互式解釋器
232源代碼執(zhí)行
233注釋
234代碼塊和縮進
235繼續(xù)和分隔
236輸入和輸出
24變量和數(shù)據(jù)類型
241變量賦值
242常量
243數(shù)據(jù)類型
25條件和循環(huán)
251if語句
252while循環(huán)
253forin循環(huán)
254跳出循環(huán)
255pass語句
26函數(shù)
261定義函數(shù)
262函數(shù)調(diào)用
263函數(shù)的參數(shù)
264內(nèi)置函數(shù)
27變量進階
271全局變量與局部變量
272global關(guān)鍵字
273nonlocal關(guān)鍵字
274變量作用域
28模塊與包
281使用模塊
282包
29異常處理
第3章Python數(shù)據(jù)結(jié)構(gòu)
31字符串
311索引和切片
312字符串運算符
313字符串格式化
314字符編碼
32列表
321訪問列表
322更改列表
323列表操作符
324列表常用函數(shù)
33元組
331訪問元組
332元組操作符
333元組內(nèi)置函數(shù)
34字典
341訪問字典
342修改字典
343字典鍵的特性
344字典函數(shù)
35集合
351忽略重復元素
352無序
353常用操作
第4章Python高級特性
41生成器
411列表推導式
412生成器表達式
413生成器函數(shù)
42迭代器
43函數(shù)式編程
431高階函數(shù)
432內(nèi)置高階函數(shù)
433閉包
434裝飾器
435匿名函數(shù)
436偏函數(shù)
44面向?qū)ο缶幊?br />441類與對象
442訪問限制
443繼承
444多重繼承
445多態(tài)
446運算符重載
第5章物聯(lián)網(wǎng)核心組件
51網(wǎng)絡(luò)通信方案
511WIFI網(wǎng)絡(luò)
512移動網(wǎng)絡(luò)
513Zigbee
514BLE
515LoRa
516NB-IoT
52網(wǎng)絡(luò)通信協(xié)議
521HTTP
522WebSocket
523XMPP
524CoAP
525MQTT
53硬件
54物聯(lián)網(wǎng)云平臺
541OneNet
542AWS IoT
543Waston IoT
第6章MicroPython開發(fā)物聯(lián)網(wǎng)終端
61MicroPython簡介
611MicroPython項目
612MicroPython特點
613MicroPython源碼
62MicroPython開發(fā)板
621官方開發(fā)板PYBoard
622國內(nèi)開發(fā)板TPYBoard
623OpenMV
624LoPy
63第一個MicroPython程序
64交互式解釋器
65按鍵中斷與回調(diào)
66定時器的使用
67串口測試
68SPI接口驅(qū)動液晶屏
681硬件連接
682LCD屏驅(qū)動
683字庫說明
684主程序
69源碼編譯與固件升級
691準備編譯環(huán)境
692源碼下載與編譯
693固件燒寫
610MicroPython多線程
6101MicroPython線程簡介
6102MicroPython線程使用
6103多線程中的鎖
611安全模式及恢復出廠設(shè)置
6111安全模式
6112恢復出廠設(shè)置
第7章構(gòu)建物聯(lián)網(wǎng)網(wǎng)關(guān)
71網(wǎng)關(guān)概述
711網(wǎng)關(guān)的構(gòu)成
712常用物聯(lián)網(wǎng)網(wǎng)關(guān)
72自主構(gòu)建網(wǎng)關(guān)
721交叉編譯
722編譯引導程序
723內(nèi)核配置與編譯
724制作文件系統(tǒng)
725分區(qū)與下載
726系統(tǒng)啟動流程簡介
727移植Python3
73樹莓派作網(wǎng)關(guān)
731初次啟動樹莓派
732串口登錄樹莓派
733SSH訪問樹莓派
734升級Python版本
735必備工具安裝
736板載WIFI配置
737串口通信
第8章網(wǎng)關(guān)數(shù)據(jù)編碼與處理
81讀寫CSV文件
811讀取CSV文件
812寫入CSV文件
82JSON解析
821JSON數(shù)據(jù)格式
822編碼
823解碼
83XML操作
831XML簡介
832解析XML
833創(chuàng)建與修改
84二進制數(shù)據(jù)的讀寫
85Base64編解碼
86正則表達式
861正則表達式簡介
862re模塊
863貪婪匹配
第9章網(wǎng)關(guān)多進程與多線程
91多進程
911multiprocessing模塊
912進程同步
913進程間通信
92多線程
921threading模塊
922線程同步
923線程間通信
93多線程和多進程的思考
931多核CPU利用率實驗
932GIL全局鎖
933切換的開銷
934多線程與多進程的選擇
94異步IO
941協(xié)程
942協(xié)程與多線程對比
943asyncio
第10章網(wǎng)關(guān)數(shù)據(jù)持久化
101文件操作
1011讀寫文本數(shù)據(jù)
1012操作文件和目錄
1013讀寫壓縮文件
1014內(nèi)存映射
1015臨時文件與目錄
1016序列化Python對象
102SQLite數(shù)據(jù)庫
1021SQLite簡介
1022命令行操作SQLite
1023創(chuàng)建數(shù)據(jù)庫
1024創(chuàng)建表
1025SQL語句
1026SQLite的Python編程
第11章Python擴展
111Python擴展的原因
112連接硬件的紐帶
113C語言擴展Python
1131簡單的C語言Python擴展
1132傳遞整型參數(shù)
1133傳遞字符串參數(shù)
第12章網(wǎng)關(guān)網(wǎng)絡(luò)編程
121網(wǎng)關(guān)網(wǎng)絡(luò)通信方案
122Socket編程
123requests
1231上傳文件
1232下載文件
124hbmqtt
1241安裝
1242hbmqtt命令操作
1243hbmqtt API編程
125LoRa網(wǎng)絡(luò)通信
1251LoRa模塊初始化
1252數(shù)據(jù)監(jiān)聽與接收
1253數(shù)據(jù)緩存
第13章物聯(lián)網(wǎng)后臺Web開發(fā)
131Django簡介
132創(chuàng)建一個網(wǎng)站
1321Django安裝
1322創(chuàng)建項目
1323運行與訪問
133網(wǎng)站首頁
1331源碼文件結(jié)構(gòu)
1332視圖與URL配置
134Django模板
1341Django模板系統(tǒng)
1342模板繼承
135Django模型
1351安裝MySQL數(shù)據(jù)庫
1352創(chuàng)建模型
1353必要的配置
136用戶注冊
137賬號登錄
第14章物聯(lián)網(wǎng)Python項目實戰(zhàn)
141項目簡介
142終端設(shè)備程序開發(fā)
1421采集空氣溫濕度
1422獲取環(huán)境光強度
1423雨量檢測
1424水位檢測
1425土壤濕度檢測
1426水泵的控制
1427入侵檢測
1428燈光控制
1429電量檢測
14210LoRa通信
14211JSON消息
143網(wǎng)關(guān)程序開發(fā)
1431終端通信
1432數(shù)據(jù)庫管理
1433文件備份
1434服務(wù)器通信
14352G模塊的使用
145服務(wù)器端程序開發(fā)
1451與網(wǎng)關(guān)通信
1452環(huán)境數(shù)據(jù)可視化
1453滴灌控制
1454燈光控制
1455報警顯示與設(shè)置
1456設(shè)備管理
1457備份文件管理