本書內容寫作安排:
第1章——物聯網邂逅Python
本章大致介紹物聯網的組成、架構、發展現狀及當前市面上典型的物聯網應用方案,闡述Python這門編程語言的特性和優點,講述用Python語言開發物聯網終端設備、網關設備、Web後臺程序的具體方法及優勢。
第2章——開啟Python之旅
本章從零開始講解如何使用Python語言進行編程,通過大量的實例代碼帶領Python初學者掌握基本的Python編程技巧。
第3章——Python數據結構
Python除了擁有比較通用的字符串、列表等數據結構外組、字典、集合等特有的數據結構。熟練掌握和運用Python的各種數據結構是編寫高質量Python程序的基礎。
第4章——Python高級特性
Python作為一門高級編程語言,擁有眾多自身特有的高級特性,如生成器、迭代器、裝飾器等。同時,Python也可面向對像編程,隻有掌握Python高級特性的使用方法,纔能抓住Python編程的精髓。
第5章——物聯網核心組件
本章介紹物聯網的核心組成部分及關鍵技術點,首先介紹WIFI、移動網絡、Zigbee通信、BLE、LoRa、NB-IoT等網絡通信方案,以及HTTP、Websocket、XMPP、CoAP、MQTT等網絡通信協議;其次介紹常用的硬件設備種類,包括處理器、傳感器、通信模塊等;最後介紹幾種市面上常用的物聯網雲平臺,如中國移動的OneNet平臺、AWS IoT平臺、IBM的Waston IoT平臺。
第6章——MicroPython開發物聯網終端
終端是物聯網連接真實世界的第一層,是物聯網產品中數量最為龐大的部件。本章重點講解目前非常火爆的MicroPython,可用於開發單片機程序,單片機是物聯網終端設備的核心,除了介紹MicroPython的基本使用外,還會用MicroPython構建一個液晶屏顯示程序實例。
第7章——構建物聯網網關
網關是連接終端設備和後臺的樞紐,同時還負責局域網的組建和維護、本地數據存儲、通信規則制定、業務邏輯管理等。在實際項目中,網關通常是一個運行Linux操作繫統並搭載物聯網通信模塊及其他外設的嵌入式設備。本章將介紹網關上嵌入式Linux的相關知識及Python環境的構建方法,為後續講解網關Python的開發提供基本的軟、硬件環境。
第8章——網關數據編碼與處理
網關作為物聯網應用中的通信樞紐,在通信過程中有多種格式的數據需要處理。其方式包括轉發、編解碼、解析等。本章講述網關如何通過Python語言處理各種格式的數據,包括CSV、JSON、XML、二進制數據、Base64格式的數據。
第9章——網關多進程與多線程
物聯網網關往往需要管理大量的終端設備,還要承擔通信、運算、IO操作等多種任務。本章介紹Python編程時實現多任務的方式及多進程、多線程、協程、異步IO等多種Python程序模型,並對它們做出對比,針對CPU密集型和IO密集型不同應用場景下方案的選擇,使網關程序性能更優。
第10章——網關數據持久化
網關是運算中心與通信樞紐,也是局域網數據存儲中心。數據持久化是一個繫統穩定運行的必要條件。所有數據存放在內存中時,一旦設備發生軟、硬件故障,將發生數據丟失。為了避免這種情況,某些關鍵數據需要固化到磁盤上。本章介紹兩種數據固化到磁盤上的兩種方式——普通文件和數據庫,並介紹Python程序對這兩種數據存儲方式的實際運用。
第11章——Python擴展
Python在物聯網行業的應用與其他行業的應用有很大不同:物聯網涉及硬件操作且物聯網設備的CPU處理能力通常非常有限。因此,在某些特殊場景,需要使用C語言編寫操作硬件的程序從而提供Python調用接口以實現Python對硬件的操作,而且在某些效率要求非常高的場景,使用運行效率更高的C語言編寫程序,再編譯成Python擴展庫,可提高程序執行效率。本章主要講解使用C語言擴展Python的方法。
第12章——網關網絡編程
網關負責局域網的組建和維護,同時需要與後臺通信以完成數據、指令的傳輸。本章首先介紹使用Python進行基本的Socket編程,接著以實戰項目為例,分別講解基於requests模塊的文件傳輸及基於MQTT協議實現的hbmqtt編程。
第13章——物聯網後臺Web開發
本章介紹基於Python的 Django Web框架基礎知識,包括視圖與URL配置、模板、模型、表單、靜態文件處理、用戶注冊與登錄,主要介紹Django框架Web編程的基礎知識儲備,以便能夠理解實戰項目中的Web程序。
第14章——物聯網Python項目實戰
本章介紹一個基於物聯網的智能種植項目,從項目架構、功能及項目所包含的終端設備、網關、後臺程序等方面全面展示開發過程。該項目在GitHub提供了完整的源碼,讀者通過該實戰項目能夠了解一個完整物聯網項目的全貌,掌握物聯網Python開發的細節。