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