Python與物聯網程式開發終極實戰寶典

    物聯網(IoT)結合了時下最熱門的Python開放原始碼程式語言之後,就能用來製作具備直觀好用介面的智能物聯網系統。

    收集中
    US$19.25

    內容簡介


    現在已經是萬物互聯的時代,從健身環到智慧家庭都是。了解如何透過網路與硬體元件互動來收集並分析使用者資料,到了今天變得更加重要了。物聯網(IoT)結合了時下最熱門的Python開放原始碼程式語言之後,就能用來製作具備直觀好用介面的智能物聯網系統。

    本書包含三大篇幅,第一篇談的是物聯網的「網」。你會製作一些端對端的物聯網app來透過網路控制LED,接著學習如何使用Python來建立各種RESTful API、WebSocket API與MQTT服務。第二篇則是介紹電子電路與GPIO介接的重要觀念。到了第三篇,重點轉到物聯網的「物」,你會學到如何透過Python來連接與控制各種電子感測器與制動器,主題包含了馬達控制、超音波感測器測距與量測溫度。最後,我們還要告訴你如何用Python來實作許多進階的物聯網技術、整合各種物聯網資料視覺化與自動化平台,並完成一個相當厲害的物聯網專案。

    讀完本書之後,你對物聯網開發就有相當的掌握,也會具備使用Python製作更複雜的物聯網系統所需的知識。

    本書精彩內容:
    .從零開始!了解如何使用Raspberry Pi來介接電子元件
    .了解如何製作感測器與致動器電路
    .使用Async IO、發佈/訂閱架構等更多方式來建構Python程式碼
    .整合各種感測器與致動器來自動化生活中的物聯網專案
    .整合電路專案與ThingSpeak、IFTTT來作到自動化應用
    .製作並運用RESTful API、WebSocket與MQTT來操作感測器與致動器
    .設定用於物聯網專題的Raspberry Pi與Python開發環境

    作者介紹


    Gary Smart
    一名資深的軟體工程師與物聯網整合專家。他的IT職涯起點正好是WWW崛起之際,並與隨後的網路科技一同成長,包含行動手機與平板電腦的崛起、嵌入式科技、SaaS與企業往雲端遷移,以及近年來的物聯網革命。Gary的實務經驗包含在不同規模的技術職與管理職,包含HP、Pacific Hydro-Tango、澳洲迪肯大學、小型顧問公司與許多網路與物聯網新創公司。

    目錄


    Part I 在Raspberry Pi上使用Python來開發
    01 設定開發環境
    02 認識Python與物聯網
    03 使用Flask搭配RESTful API與Web Socket進行網路通訊
    04 MQTT、Python與Mosquitto MQTT Broker之連網應用

    Part II 可與真實世界互動的實用電子元件
    05 Raspberry Pi連接真實世界
    06 給軟體工程師的電子學入門課

    Part III 物聯網遊樂場-與真實世界互動的實例
    07 開關各種裝置
    08 燈光、指示與顯示資訊
    09 測量溫度、濕度與亮度
    10 伺服機、馬達與步進馬達之運動
    11 測量距離與動作偵測
    12 進階IoT程式設計概念-執行緒、AsyncIO和事件迴圈
    13 物聯網資料視覺與自動化平台
    14 融會貫通-物聯網聖誕樹

    A 評量解答

    章节目录

    1-1封面頁
    1-2書名頁
    1-3貢獻者
    1-4前言
    1-5目錄
    1-6PartI 在Raspberry Pi 上使用Python 來開發
    1-7Ch01 設定開發環境
    1-81.1 技術要求
    1-91.2 認識你的Python
    1-101.3 設定Python 虛擬環境
    1-111.4 用pip 安裝Python GPIO 套件
    1-121.4.1 深入了解虛擬環境
    1-131.5 執行Python 腳本的替代方法
    1-141.5.1 在虛擬環境內使用sudo
    1-151.5.2 在虛擬環境外執行Python 腳本
    1-161.5.3 開機時執行Python 腳本
    1-171.6 Raspberry Pi 的GPIO 介面
    1-181.6.1 設定PiGPIO 常駐程式
    1-191.7 總結
    1-201.8 問題
    1-211.9 延伸閱讀
    1-22Ch02 認識Python與物聯網
    1-232.1 技術要求
    1-242.2 建立麵包板原型電路
    1-252.2.1 了解麵包板
    1-262.2.2 安裝按鈕與接線
    1-272.2.3 安裝LED 與接線
    1-282.2.4 安裝電阻與接線
    1-292.3 閱讀電路電路圖
    1-302.3.1 判讀按鈕接線電路電路圖
    1-312.3.2 判讀LED 與電阻電路電路圖
    1-322.3.3 介紹接地連接與符號
    1-332.4 探索用Python 使LED 閃爍的兩個方法
    1-342.4.1 透過GPIOZero 控制LED 閃爍
    1-35匯入函式庫
    1-36Pin Factory 設定
    1-37使 LED 閃爍
    1-382.4.2 透過PiGPIO 控制LED 閃爍
    1-39匯入
    1-40PiGPIO 與接腳組態
    1-41使 LED 閃爍
    1-422.4.3 比較GPIOZero 與PiGPIO 的範例
    1-432.5 探討用Python 整合按鈕的兩個方法
    1-442.5.1 用GPIOZero 對應至按鈕按下
    1-45匯入
    1-46按鈕按下的處理器
    1-47按鈕設定
    1-48防止主執行緒終止
    1-492.5.2 用PiGPIO 回應按鈕按壓
    1-50按鈕腳位設定
    1-51按鈕按下處理器
    1-522.6 建立第一個物聯網程式
    1-532.6.1 執行與測試Python 伺服器
    1-542.6.2 了解伺服器程式碼
    1-55匯入
    1-56變數定義
    1-57resolve_thing_name() 方法
    1-58get_lastest_dweet() 方法
    1-59poll_dweets_forever() 方法
    1-60process_dweet() 方法
    1-61程式主進入點
    1-622.7 擴充你的物聯網程式功能
    1-632.7.1 實作dweeting 按鈕
    1-642.7.2 PiGPIO LED 作為類別
    1-652.8 總結
    1-662.9 問題
    1-672.10 延伸閱讀
    1-68Ch03 使用Flask 搭配RESTful API 與 WebSocket 進行網路通訊
    1-693.1 技術要求
    1-703.2 介紹Flask 微服務架構
    1-713.3 用Flask-RESTful 建立RESTful API 服務
    1-723.3.1 執行與測試Python 伺服器
    1-733.2.2 了解伺服器程式碼
    1-74匯入
    1-75Flask 與 Flask-RESTful API 實例變數
    1-76全域變數
    1-77init_led() 方法
    1-78提供網頁
    1-79LEDControl 類別
    1-80get() 類別方法
    1-81post() 類別方法
    1-82LEDController 註冊與啟動伺服器
    1-833.2.3 介紹PWM
    1-843.4 加入RESTful API 客戶端網頁
    1-853.4.1 了解客戶端程式碼
    1-86匯入 JavaScript
    1-87getState() 函式
    1-88postUpdate() 函式
    1-89updateControls() 函式
    1-90用 jQuery 註冊事件處理器
    1-91網頁 HTML
    1-923.5 用Flask-SocketIO 建立Web Socket 服務
    1-933.5.1 執行與測試Python 伺服器
    1-943.5.2 伺服器程式碼
    1-95匯入
    1-96Flask 與 Flask-RESTful API 實例變數
    1-97提供網頁
    1-98處理器連線與斷線
    1-99LED 處理器
    1-100啟動伺服器
    1-1013.6 加入Web Socket 客戶端網頁
    1-1023.6.1 了解客戶端程式碼
    1-103匯入
    1-104Socket.IO 連接與斷線處理器
    1-105on LED 處理器
    1-106文件備妥函式
    1-107網頁 HTML
    1-1083.7 比較RESTful API 與Web Socket 伺服器
    1-1093.8 總結
    1-1103.9 問題
    1-1113.10 延伸閱讀
    1-112Ch04 MQTT、Python 與Mosquitto MQTTBroker 之連網應用
    1-1134.1 技術要求
    1-1144.2 安裝Mosquitto MQTT broker
    1-1154.3 以範例來學習MQTT
    1-1164.3.1 發佈和訂閱MQTT 訊息
    1-1174.3.2 探索MQTT 專題和通配字元
    1-1184.3.3 訊息的服務品質
    1-1194.3.4 保留訊息以便後續傳輸
    1-120發佈保留後的訊息
    1-121建立持久性連線
    1-1224.3.5 用Will 說再見
    1-1234.3.6 使用MQTT 代理服務
    1-1244.4 介紹Python Paho-MQTT 客戶端函式庫
    1-1254.5 用Python 和MQTT 來控制LED
    1-1264.5.1 運行LED MQTT 範例
    1-1274.5.2 了解程式碼
    1-128匯入
    1-129全域變數
    1-130set_led_level(data) 方法
    1-131on_connect() 與 on_disconnect() MQTT 回呼方法
    1-132on_message() MQTT 回呼方法
    1-133init_mqtt() 方法
    1-134主進入點
    1-1354.6 製作以網頁為基礎的MQTT 客戶端
    1-1364.6.1 了解程式碼
    1-137匯入
    1-138全域變數
    1-139Paho JavaScript MQTT client
    1-140連接到代理
    1-141onConnectionLost 與 onMessageArrived 處理函式方法
    1-142JQuery 的文件備妥函式
    1-1434.7 總結
    1-1444.8 問題
    1-1454.9 延伸閱讀
    1-146PartII 可與真實世界互動的實用電子元件
    1-147Ch05 Raspberry Pi連接真實世界
    1-1485.1 技術要求
    1-1495.2 了解Raspberry Pi 腳位編號
    1-1505.3 常用的Python GPIO 函式庫
    1-1515.3.1 回顧GPIOZero - 初學者的簡易介面
    1-1525.3.2 回顧RPi.GPIO - 初學者的低階GPIO
    1-1535.3.3 回顧Circuit Python 與Blinka – 介接複雜裝置
    1-1545.3.4 回顧PiGPIO - 低階GPIO 函式庫
    1-155透過 PiGPIO(與 GPIOZero)進行遠端 GPIO
    1-1565.3.5 回顧SPIDev 與SMBus - 專用SPI 與I2C 函式庫
    1-1575.3.6 為何選用PiGPIO ?
    1-1585.4 探索Raspberry Pi 電子產品介接選項
    1-1595.4.1 了解數位IO
    1-1605.4.2 了解類比IO
    1-1615.4.3 認識PWM - 脈衝頻寬調變
    1-162產生 PWM 訊號
    1-1635.4.4 了解SPI、I2C 與單線介面
    1-1645.4.5 了解序列/UART 協定
    1-1655.5 介接類比- 數位轉換器
    1-1665.5.1 製作ADS1115 ADC 電路
    1-1675.5.2 確認ADS1115 已接上Raspberry Pi
    1-1685.5.3 用ADS1115 讀取類比輸入
    1-169理解程式碼
    1-170匯入
    1-171ADS1115 設定
    1-172全域變數
    1-173程式進入點
    1-1745.5.4 使用PWM 訊號來控制LED
    1-175理解程式碼
    1-1765.5.5 用PiScope 視覺化呈現PWM 訊號
    1-1775.5.6 視覺化呈現軟體與硬體定時PWM
    1-1785.6 總結
    1-1795.7 問題
    1-1805.8 延伸閱讀
    1-181Ch06 給軟體工程師的電子學入門課
    1-1826.1 技術要求
    1-1836.2 預備工作區
    1-1846.2.1 購買所需的電子模組與元件
    1-185購買個別元件
    1-186購買開放原始碼硬體模組
    1-1876.3 確保你的Raspberry Pi 安全
    1-1886.4 電子元件失效的三種方式
    1-1896.5 用於GPIO 控制的電子元件介接原理
    1-1906.5.1 歐姆定律和功率
    1-1916.5.2 克希何夫電路定律
    1-1926.5.3 LED 電路為何使用200Ω 電阻?
    1-193計算電阻數值
    1-194考量到 Raspberry Pi 的電流限制
    1-195計算電阻的功耗
    1-1966.6 數位電子元件
    1-1976.6.1 數位輸出
    1-1986.6.2 數位輸入
    1-1996.6.3 使用上拉與下拉電阻
    1-200使用電阻來解決腳位浮動
    1-201使用程式來解決腳位浮動
    1-2026.7 類比電子元件
    1-2036.7.1 類比輸出
    1-2046.7.2 類比輸入
    1-205分壓器
    1-2066.8 認識邏輯準位轉換
    1-2076.8.1 作為邏輯準位轉換器的分壓器
    1-2086.8.2 邏輯準位轉換IC 與模組
    1-2096.8.3 比較分壓器與邏輯準位轉換器
    1-2106.9 總結
    1-2116.10 問題
    1-2126.11 延伸閱讀
    1-213PartIII 物聯網遊樂場-與真實世界互動的實例
    1-214Ch07 開關各種裝置
    1-2157.1 技術要求
    1-2167.2 認識繼電器驅動電路
    1-2177.3 計算負載電壓與電流
    1-2187.3.1 測量直流馬達所需的電流
    1-2197.3.2 測量繼電器與LED 所需的電流
    1-2207.4 使用光耦合器做為開關
    1-2217.4.1 建立光耦合器的電路
    1-2227.4.2 使用Python 來控制光耦合器
    1-2237.5 使用電晶體作為開關
    1-2247.5.1 製作MOSFET 電路
    1-2257.5.2 使用Python 來控制MOSFET
    1-2267.6 使用繼電器作為開關
    1-2277.6.1 製作繼電器驅動電路
    1-2287.6.2 使用Python 控制繼電器驅動電路
    1-2297.7 總結
    1-2307.8 問題
    1-2317.9 延伸閱讀
    1-232Ch08 燈光、指示與顯示資訊
    1-2338.1 技術要求
    1-2348.2 使用RGB LED 搭配PWM 技術來產生顏色
    1-2358.2.1 製作RGB LED 電路
    1-2368.2.2 執行並探討RGB LED 程式碼
    1-2378.3 透過SPI 介面來控制彩色APA102 LED 燈條
    1-2388.3.1 製作APA102 電路
    1-239APA102 電路供電
    1-240設定並執行 APA102 LED 燈條程式碼
    1-241介紹 APA102 LED 燈條程式碼
    1-242介紹 APA102 與 SPI 介面
    1-243APA102 LED 燈條故障排除
    1-2448.4 使用OLED 顯示模組
    1-2458.4.1 OLED 顯示模組接線
    1-2468.4.2 檢查OLED 顯示模組是否正確連接
    1-2478.4.3 設定並執行OLED 範例
    1-248介紹 OLED 程式碼
    1-2498.5 透過PWM 技術讓蜂鳴器發出聲音
    1-2508.5.1 製作RTTTL 電路
    1-2518.5.2 執行RTTTL 音樂範例
    1-2528.6 總結
    1-2538.7 問題
    1-2548.8 延伸閱讀
    1-255Ch09 測量溫度、濕度與亮度
    1-2569.1 技術要求
    1-2579.2 測量溫度與濕度
    1-2589.2.1 建立DHT11/DHT22 電路
    1-2599.2.2 執行並探討DHT11/DHT22 程式碼
    1-2609.3 偵測亮度
    1-2619.3.1 使用LDR 元件製作光偵測電路
    1-2629.3.2 執行LDR 範例程式碼
    1-2639.3.3 LDR 程式碼說明
    1-2649.3.4 LDR 設定總結
    1-2659.4 偵測水分
    1-2669.4.1 比較各種偵測方式
    1-2679.5 總結
    1-2689.6 問題
    1-269Ch10 伺服機、馬達與步進馬達之運動
    1-27010.1 技術要求
    1-27110.2 用PWM 驅動伺服機
    1-27210.2.1 連接伺服機與Raspberry Pi
    1-27310.2.2 如何透過PWM 控制伺服機?
    1-27410.2.3 執行並探索伺服機程式碼
    1-27510.2.4 各種類型的伺服機
    1-27610.3 如何用H 橋IC 控制馬達
    1-27710.3.1 建立馬達驅動電路
    1-27810.3.2 執行控制馬達的H 橋程式碼
    1-279motor.py
    1-280motor_class.py
    1-28110.4 簡介步進馬達之控制
    1-28210.4.1 連接步進馬達與L293D 電路
    1-28310.4.2 執行與探索步進馬達的程式碼
    1-28410.5 總結
    1-28510.6 問題
    1-286Ch11 測量距離與動作偵測
    1-28711.1 技術要求
    1-28811.2 使用PIR 感測器偵測動作
    1-28911.2.1 製作PIR 感測器之電路
    1-29011.2.2 執行並探索PIR 感測器程式碼
    1-29111.3 使用超音波感測器測量距離
    1-29211.3.1 超音波距離感測器的運作原理
    1-29311.3.2 HC-SR04 之測距流程
    1-29411.3.3 製作HC-SR04 電路
    1-29511.3.4 執行與探索HC-SR04 範例程式碼
    1-29611.4 使用霍爾效應感測器偵測動作與距離
    1-29711.4.1 製作霍爾效應感測器之電路
    1-29811.4.2 執行與探索霍爾效應感測器程式碼
    1-29911.5 總結
    1-30011.6 問題
    1-301Ch12 進階IoT 程式設計概念-執行緒、AsyncIO和事件迴圈
    1-30212.1 技術要求
    1-30312.2 製作並測試電路
    1-30412.2.1 製作參考電路
    1-30512.2.2 執行範例程式碼
    1-30612.3 認識事件迴圈方法
    1-30712.4 認識執行緒方法
    1-30812.5 認識發佈/ 訂閱方法
    1-30912.6 認識AsyncIO 方法
    1-31012.6.1 非同步之實驗
    1-31112.7 總結
    1-31212.8 問題
    1-31312.9 延伸閱讀
    1-314Ch13 物聯網資料視覺與自動化平台
    1-31513.1 技術要求
    1-31613.2 從Raspberry Pi 觸發IFTTT 的小程式
    1-31713.2.1 建立溫度監控的電路
    1-31813.2.2 建立與配置IFTTT 小程式
    1-31913.2.3 觸發IFTTT Webhook
    1-32013.2.4 於Python 觸發IFTTT 小程式
    1-32113.3 從IFTTT 小程式作動Raspberry Pi
    1-32213.3.1 方法1 -使用dweet.io 服務作為媒介
    1-32313.3.2 方法2 -建立Flask-RESTful 服務
    1-32413.3.3 建立LED 電路
    1-32513.3.4 執行IFTTT 和LED 的Python 程式碼
    1-32613.3.5 建立IFTTT 小程式
    1-32713.3.6 用電子郵件控制LED
    1-32813.3.7 IFTTT 故障排除
    1-32913.4 用ThingSpeak 平台視覺化資料
    1-33013.4.1 配置ThingSpeak 平台
    1-33113.4.2 配置與執行ThingSpeak 的Python 程式碼
    1-33213.5 其他物聯網與自動化平台
    1-33313.5.1 Zapier
    1-33413.5.2 IFTTT 平台
    1-33513.5.3 ThingsBoard 物聯網平台
    1-33613.5.4 Home Assistant
    1-33713.5.5 Amazon Web Services(AWS)
    1-33813.5.6 Microsoft Azure、IBM Watson 和Google Cloud
    1-33913.6 總結
    1-34013.7 問題
    1-341Ch14 融會貫通-物聯網聖誕樹
    1-34214.1 技術要求
    1-34314.2 物聯網聖誕樹簡介
    1-34414.3 建立IoTree 電路
    1-34514.3.1 三種IoTree 服務的程式碼
    1-34614.4 設定、執行與使用Tree API 服務
    1-34714.4.1 設定Tree API 服務
    1-34814.4.2 執行Tree API 服務
    1-34914.5 設定、執行與使用Tree MQTT 服務
    1-35014.5.1 設定Tree MQTT 服務
    1-35114.5.2 執行Tree MQTT 服務程式碼
    1-35214.6 整合IoTree 與dweet.io
    1-35314.6.1 設定Tree MQTT 服務
    1-35414.6.2 執行dweet 整合服務程式碼
    1-35514.7 藉由IFTTT 整合電子郵件與Google Assistant
    1-35614.7.1 整合電子郵件
    1-35714.7.2 與Google Assistant 整合
    1-35814.8 IoTree 專案延伸建議
    1-35914.9 總結
    1-36014.10 問題
    1-361附錄A 評量解答
    1-362版權頁
    1-363封底頁

    常见问答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜欢

    用户评价

    | 收集中

    销售方案