物聯(lián)網(wǎng)Python開(kāi)發(fā)實(shí)戰(zhàn)
定 價(jià):69 元
- 作者:安翔
- 出版時(shí)間:2018/3/1
- ISBN:9787121337512
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
本書(shū)在介紹物聯(lián)網(wǎng)的組成、典型架構(gòu)和應(yīng)用的基礎(chǔ)上,采用實(shí)例代碼講述python編程基礎(chǔ)和應(yīng)用實(shí)例,包括用micropython進(jìn)行物聯(lián)網(wǎng)單片機(jī)的開(kāi)發(fā)、用python開(kāi)發(fā)物聯(lián)網(wǎng)網(wǎng)關(guān)的方法、python django框架開(kāi)發(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)容是通過(guò)一個(gè)完整的大型物聯(lián)網(wǎng)項(xiàng)目實(shí)例講解python開(kāi)發(fā)物聯(lián)網(wǎng)的細(xì)節(jié)。
本書(shū)內(nèi)容寫(xiě)作安排:
第1章物聯(lián)網(wǎng)邂逅Python
本章大致介紹物聯(lián)網(wǎng)的組成、架構(gòu)、發(fā)展現(xiàn)狀及當(dāng)前市面上典型的物聯(lián)網(wǎng)應(yīng)用方案,闡述Python這門(mén)編程語(yǔ)言的特性和優(yōu)點(diǎn),講述用Python語(yǔ)言開(kāi)發(fā)物聯(lián)網(wǎng)終端設(shè)備、網(wǎng)關(guān)設(shè)備、Web后臺(tái)程序的具體方法及優(yōu)勢(shì)。
第2章開(kāi)啟Python之旅
本章從零開(kāi)始講解如何使用Python語(yǔ)言進(jìn)行編程,通過(guò)大量的實(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)是編寫(xiě)高質(zhì)量Python程序的基礎(chǔ)。
第4章Python高級(jí)特性
Python作為一門(mén)高級(jí)編程語(yǔ)言,擁有眾多自身特有的高級(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),如中國(guó)移動(dòng)的OneNet平臺(tái)、AWS IoT平臺(tái)、IBM的Waston IoT平臺(tái)。
第6章MicroPython開(kāi)發(fā)物聯(lián)網(wǎng)終端
終端是物聯(lián)網(wǎng)連接真實(shí)世界的第一層,是物聯(lián)網(wǎng)產(chǎn)品中數(shù)量最為龐大的部件。本章重點(diǎn)講解目前非常火爆的MicroPython,可用于開(kāi)發(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的開(kāi)發(fā)提供基本的軟、硬件環(huán)境。
第8章網(wǎng)關(guān)數(shù)據(jù)編碼與處理
網(wǎng)關(guān)作為物聯(lián)網(wǎng)應(yīng)用中的通信樞紐,在通信過(guò)程中有多種格式的數(shù)據(jù)需要處理。其方式包括轉(zhuǎn)發(fā)、編解碼、解析等。本章講述網(wǎng)關(guān)如何通過(guò)Python語(yǔ)言處理各種格式的數(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)用場(chǎ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ù)需要固化到磁盤(pán)上。本章介紹兩種數(shù)據(jù)固化到磁盤(pán)上的兩種方式普通文件和數(shù)據(jù)庫(kù),并介紹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處理能力通常非常有限。因此,在某些特殊場(chǎng)景,需要使用C語(yǔ)言編寫(xiě)操作硬件的程序從而提供Python調(diào)用接口以實(shí)現(xiàn)Python對(duì)硬件的操作,而且在某些效率要求非常高的場(chǎng)景,使用運(yùn)行效率更高的C語(yǔ)言編寫(xiě)程序,再編譯成Python擴(kuò)展庫(kù),可提高程序執(zhí)行效率。本章主要講解使用C語(yǔ)言擴(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開(kāi)發(fā)
本章介紹基于Python的 Django Web框架基礎(chǔ)知識(shí),包括視圖與URL配置、模板、模型、表單、靜態(tài)文件處理、用戶注冊(cè)與登錄,主要介紹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)程序等方面全面展示開(kāi)發(fā)過(guò)程。該項(xiàng)目在GitHub提供了完整的源碼,讀者通過(guò)該實(shí)戰(zhàn)項(xiàng)目能夠了解一個(gè)完整物聯(lián)網(wǎng)項(xiàng)目的全貌,掌握物聯(lián)網(wǎng)Python開(kāi)發(fā)的細(xì)節(jié)。目錄
東北大學(xué)電子信息專業(yè),曾就職于疊拓、GE、長(zhǎng)虹從事多個(gè)領(lǐng)域的軟件開(kāi)發(fā)工作,擅長(zhǎng)嵌入式Linux和Python開(kāi)發(fā),目前在中移物聯(lián)網(wǎng)負(fù)責(zé)物聯(lián)網(wǎng)操作系統(tǒng)的設(shè)計(jì)和研發(fā)。熱愛(ài)開(kāi)源、分享和技術(shù)寫(xiě)作,CSDN博客專家,著有《Micropython加速物聯(lián)網(wǎng)開(kāi)發(fā)》、《python Django web實(shí)戰(zhàn)》、《樹(shù)莓派體驗(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無(wú)處不在
143開(kāi)發(fā)速度有時(shí)更重要
15美麗的相遇
151Python與終端
152Python與網(wǎng)關(guān)
153Python與云平臺(tái)
154物聯(lián)網(wǎng)Python全棧開(kāi)發(fā)
第2章開(kāi)啟Python之旅
21Python版本的選擇
22搭建開(kāi)發(fā)環(huán)境
221安裝VMware
222在VMware上安裝Ubuntu
223安裝VMware Tools工具
224虛擬機(jī)的網(wǎng)絡(luò)配置
225Samba共享設(shè)置
226修改Python版本
23開(kāi)始編寫(xiě)Python程序
231交互式解釋器
232源代碼執(zhí)行
233注釋
234代碼塊和縮進(jìn)
235繼續(xù)和分隔
236輸入和輸出
24變量和數(shù)據(jù)類型
241變量賦值
242常量
243數(shù)據(jù)類型
25條件和循環(huán)
251if語(yǔ)句
252while循環(huán)
253forin循環(huán)
254跳出循環(huán)
255pass語(yǔ)句
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訪問(wèn)列表
322更改列表
323列表操作符
324列表常用函數(shù)
33元組
331訪問(wèn)元組
332元組操作符
333元組內(nèi)置函數(shù)
34字典
341訪問(wèn)字典
342修改字典
343字典鍵的特性
344字典函數(shù)
35集合
351忽略重復(fù)元素
352無(wú)序
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訪問(wèn)限制
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開(kāi)發(fā)物聯(lián)網(wǎng)終端
61MicroPython簡(jiǎn)介
611MicroPython項(xiàng)目
612MicroPython特點(diǎn)
613MicroPython源碼
62MicroPython開(kāi)發(fā)板
621官方開(kāi)發(fā)板PYBoard
622國(guó)內(nèi)開(kāi)發(fā)板TPYBoard
623OpenMV
624LoPy
63第一個(gè)MicroPython程序
64交互式解釋器
65按鍵中斷與回調(diào)
66定時(shí)器的使用
67串口測(cè)試
68SPI接口驅(qū)動(dòng)液晶屏
681硬件連接
682LCD屏驅(qū)動(dòng)
683字庫(kù)說(shuō)明
684主程序
69源碼編譯與固件升級(jí)
691準(zhǔn)備編譯環(huán)境
692源碼下載與編譯
693固件燒寫(xiě)
610MicroPython多線程
6101MicroPython線程簡(jiǎn)介
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)流程簡(jiǎn)介
727移植Python3
73樹(shù)莓派作網(wǎng)關(guān)
731初次啟動(dòng)樹(shù)莓派
732串口登錄樹(shù)莓派
733SSH訪問(wèn)樹(shù)莓派
734升級(jí)Python版本
735必備工具安裝
736板載WIFI配置
737串口通信
第8章網(wǎng)關(guān)數(shù)據(jù)編碼與處理
81讀寫(xiě)CSV文件
811讀取CSV文件
812寫(xiě)入CSV文件
82JSON解析
821JSON數(shù)據(jù)格式
822編碼
823解碼
83XML操作
831XML簡(jiǎn)介
832解析XML
833創(chuàng)建與修改
84二進(jìn)制數(shù)據(jù)的讀寫(xiě)
85Base64編解碼
86正則表達(dá)式
861正則表達(dá)式簡(jiǎn)介
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切換的開(kāi)銷
934多線程與多進(jìn)程的選擇
94異步IO
941協(xié)程
942協(xié)程與多線程對(duì)比
943asyncio
第10章網(wǎng)關(guān)數(shù)據(jù)持久化
101文件操作
1011讀寫(xiě)文本數(shù)據(jù)
1012操作文件和目錄
1013讀寫(xiě)壓縮文件
1014內(nèi)存映射
1015臨時(shí)文件與目錄
1016序列化Python對(duì)象
102SQLite數(shù)據(jù)庫(kù)
1021SQLite簡(jiǎn)介
1022命令行操作SQLite
1023創(chuàng)建數(shù)據(jù)庫(kù)
1024創(chuàng)建表
1025SQL語(yǔ)句
1026SQLite的Python編程
第11章Python擴(kuò)展
111Python擴(kuò)展的原因
112連接硬件的紐帶
113C語(yǔ)言擴(kuò)展Python
1131簡(jiǎn)單的C語(yǔ)言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)聽(tīng)與接收
1253數(shù)據(jù)緩存
第13章物聯(lián)網(wǎng)后臺(tái)Web開(kāi)發(fā)
131Django簡(jiǎn)介
132創(chuàng)建一個(gè)網(wǎng)站
1321Django安裝
1322創(chuàng)建項(xiàng)目
1323運(yùn)行與訪問(wèn)
133網(wǎng)站首頁(yè)
1331源碼文件結(jié)構(gòu)
1332視圖與URL配置
134Django模板
1341Django模板系統(tǒng)
1342模板繼承
135Django模型
1351安裝MySQL數(shù)據(jù)庫(kù)
1352創(chuàng)建模型
1353必要的配置
136用戶注冊(cè)
137賬號(hào)登錄
第14章物聯(lián)網(wǎng)Python項(xiàng)目實(shí)戰(zhàn)
141項(xiàng)目簡(jiǎn)介
142終端設(shè)備程序開(kāi)發(fā)
1421采集空氣溫濕度
1422獲取環(huán)境光強(qiáng)度
1423雨量檢測(cè)
1424水位檢測(cè)
1425土壤濕度檢測(cè)
1426水泵的控制
1427入侵檢測(cè)
1428燈光控制
1429電量檢測(cè)
14210LoRa通信
14211JSON消息
143網(wǎng)關(guān)程序開(kāi)發(fā)
1431終端通信
1432數(shù)據(jù)庫(kù)管理
1433文件備份
1434服務(wù)器通信
14352G模塊的使用
145服務(wù)器端程序開(kāi)發(fā)
1451與網(wǎng)關(guān)通信
1452環(huán)境數(shù)據(jù)可視化
1453滴灌控制
1454燈光控制
1455報(bào)警顯示與設(shè)置
1456設(shè)備管理
1457備份文件管理