天天看點

Python玩轉物聯網--《物聯網Python開發實戰》新書釋出

Python玩轉物聯網--《物聯網Python開發實戰》新書釋出

購買連結:京東    天貓   當當

項目源碼: https://github.com/Python-IoT/Smart-IoT-Planting-System

概述

物聯網項目通常包含傳感器、單片機、網關裝置、通信子產品、網絡協定、背景程式、Web端等多個部件,需要多種程式設計語言以及研發技能的支援。

在産品原型驗證的初期,尤其對于小團隊來說,整合衆多的研發力量并非易事。本書通過一個完整的實戰項目展示物聯網從裝置到雲端開發的全貌。該項目(智能種植系統)涵蓋了遠端燈控、安防告警、環境監測、智能滴灌、裝置管理等多個功能子產品。項目所有代碼在GitHub開源并配套了硬體開發闆。

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

主要内容:

  • 物聯網核心元件
  • Python程式設計基礎及進階特性
  • MicroPython開發單片機
  • 建構嵌入式Linux網關
  • 多種傳感器的接入
  • MySQL與SQLite資料庫的使用
  • LoRa和GSM物聯網通信子產品
  • MQTT通信協定的應用
  • Django Web架構快速實作雲端程式

大綱: 

第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開發的細節。