MicroPython 開發與實戰

雷學堂//牛樂樂//侯周國//胡智元|責編:劉曉明//蘇永芝

  • 出版商: 北京航空航天大學
  • 出版日期: 2022-01-01
  • 定價: $354
  • 售價: 8.0$283
  • 語言: 簡體中文
  • 頁數: 263
  • 裝訂: 平裝
  • ISBN: 7512436785
  • ISBN-13: 9787512436787
  • 立即出貨

買這商品的人也買了...

商品描述

本書共分為9章。
第1~3章主要介紹MicroPython以及Python語言基礎;
第4~5章重點針對ESP32與MicroPython的實踐性操作;
第6~7章重點闡述MicroPython在物聯網的應用;
第8章展現如何修改MicroPython源碼與添加自定義庫的方法;
第9章為一個智能農業的項目實踐。

本書對智能物聯網時代面臨的挑戰,以及MicroPython的基礎知識做了清晰的闡述,
有助於讀者整理思路,了解需求,並更有針對性、有選擇地深入學習相關知識。

目錄大綱

第1章MicroPython介紹1
 
1.1MicroPython的起源1
 
1.2MicroPython的發展 2
 
1.3MicroPython與Pyboard的關係2
 
1.3.1MicroPython與Pyboard介紹2
 
1.3.2Pyboard與傳統嵌入式開發板的關係3
 
1.3.3學習MicroPython是否還需要學習以C語言為首的嵌入式開發3
 
1.4MicroPython 系統結構3
 
1.5MicroPython的優勢3
 
1.5.1編譯環境3
 
1.5.2操作難度3
 
1.5.3程序結構4
 
1.5.4編寫方式4
 
1.5.5易讀性4
 
1.6MicroPython的應用5
 
1.6.1智能儀器5
 
1.6.2工業控制5
 
1.6.3家用電器5
 
1.6.4網絡和通信5
 
1.6.5醫用設備領域6
 
1.6.6模塊化系統6
 
1.6.7汽車電子6
 
1.6.8其他6
 
1.7Python環境搭建6
 
1.7.1IDLE下載6
 
1.7.2安裝7
 
1.7.3個Python程序10
 
第2章Python語法基礎13
 
2.1關鍵字13
 
2.2標識符14
 
2.2.1概念14
 
2.2.2標識符的規則14
 
2.2.3命名規則14
 
2.3註釋15
 
2.3.1註釋的分類15
 
2.3.2Python程序支持中文17
 
2.4變量和變量的類型17
 
2.4.1變量17
 
2.4.2變量的類型18
 
2.4.3進制轉換20
 
2.5輸出和輸入21
 
2.5.1輸出21
 
2.5.2輸入24
 
2.6運算符27
 
2.6.1算術運算符27
 
2.6.2賦值運算符28
 
2.6.3關係(比較)運算符29
 
2.6.4邏輯運算符30
 
2.6.5位運算符30
 
2.6.6移位運算符33
 
2.7表達式34
 
2.7.1表達式的類型和值34
 
2.7.2表達式的運算順序34
 
2.7.3優先級34
 
2.8程序流程控制35
 
2.8.1順序結構35
 
2.8.2選擇結構35
 
2.8.3循環結構36
 
2.9判斷結構37
 
2.9.1if語句38
 
2.9.2if else語句39
 
2.9.3多重if語句40
 
2.9.4if嵌套語句42
 
2.10邏輯結構43
 
2.10.1while循環43
 
2.10.2for循環47
 
2.11特殊流程控制語句48
 
2.11.1break語句48
 
2.11.2continue語句49
 
2.11.3break、continue語句的比較50
 
2.12字符串(str)50
 
2.12.1基本概念50
 
2.12.2創建字符串51
 
2.12.3字符串的輸出與輸入51
 
2.12.4遍歷字符串52
 
2.12.5常用函數54
 
2.13列表(list)59
 
2.13.1基本概念59
 
2.13.2遍歷列表60
 
2.13.3常用函數62
 
2.13.4列表嵌套66
 
2.14元組(tuple)68
 
2.15字典(dict)69
 
2.15.1基本概念69
 
2.15.2根據鍵訪問值70
 
2.15.3常用函數71
 
2.15.4遍歷字典74
 
2.16函數簡介76
 
2.16.1引入函數76
 
2.16.2基本概念78
 
2.17函數定義與調用78
 
2.17.1基本使用78
 
2.17.2文檔說明79
 
2.17.3參數80
 
2.17.4返回值84
 
2.17.5函數的類型87
 
2.17.6函數的嵌套89
 
2.17.7案例練習90
 
2.18局部變量與成員變量92
 
2.18.1局部變量92
 
2.18.2成員變量93
 
第3章Python多線程97
 
3.1線程簡介97
 
3.1.1基本概念97
 
3.1.2為什麼需要多線程97
 
3.1.3進程與線程的區別99
 
3.2線程的創建與啟動100
 
3.2.1threading模塊簡介100
 
3.2.2Thread類101
 
3.3線程的生命週期106
 
3.3.1線程的狀態106
 
3.3.2線程阻塞107
 
3.3.3線程加入108
 
3.4共享成員變量例程109
 
3.4.1成員變量為不可變類型109
 
3.4.2成員變量為可變類型110
 
3.5線程同步例程111
 
3.5.1引入問題111
 
3.5.2處理方式1:Lock類112
 
3.5.3處理方式2:使用Lock進行同步處理114
 
3.6擴展知識115
 
3.6.1死鎖例程 115
 
3.6.2生產者與消費者模型119
 
3.6.3local類123
 
第4章開啟MicroPython for ESP32之旅126
 
4.1準備工作126
 
4.1.1硬件平台126
 
4.1.2Windows PwoerShell安裝127
 
4.1.3CP210x串口驅動安裝128
 
4.1.4ESP32固件下載129
 
4.2ESP32固件燒錄130
 
4.3進入Pyboard132
 
4.4在Pyboard上運行Python程序132
 
第5章ESP32網絡基礎使用135
 
5.1連接WiFi135
 
5.2開機自動連接WiFi136
 
5.3獲取系統時間136
 
5.3.1什麼是NTP136
 
5.3.2方法137
 
5.3.3實例137
 
5.4urequests下載網頁數據137
 
5.5Python3&MicroPython的socket模塊137
 
5.5.1socket的定義137
 
5.5.2socket工作流程138
 
5.5.3socket模塊的宏139
 
5.5.4socket模塊的API139
 
5.6利用socket下載網頁數據141
 
5.7利用socket實現ESP32的網絡通信141
 
5.7.1服務器端142
 
5.7.2Client客戶端142
 
5.7.3程序運行143
 
5.8收看星球大戰字符動畫144
 
第6章MicroPython for ESP32硬件控制146
 
6.1NodeMCU32S開發板引腳說明146
 
6.2知識儲備147
 
6.2.1模擬信號148
 
6.2.2數字信號148
 
6.2.3高/低電平148
 
6.3Pin例程148
 
6.3.1構造對象149
 
6.3.2方法150
 
6.4延時例程151
 
6.5PWM與呼吸燈例程152
 
6.5.1PWM脈寬調製技術152
 
6.5.2構造對象153
 
6.5.3方法153
 
6.5.4PWM控制LED的亮度154
 
6.5.5呼吸燈155
 
6.6ADC例程156
 
6.6.1構造對象156
 
6.6.2方法156
 
6.7RTC例程157
 
6.7.1構造對象157
 
6.7.2初始化RTC 時間158
 
6.7.3查看RTC時間158
 
6.7.4缺陷158
 
6.8Timer例程159
 
6.8.1構造對象159
 
6.8.2初始化定時器159
 
6.8.3釋放定時器資源159
 
6.8.4定時器控制LED燈閃爍159
 
6.9串口UART例程160
 
6.9.1常用通信協議分類及其特徵160
 
6.9.2UART接口162
 
6.9.3UART數據幀格式162
 
6.9.4UART四要素163
 
6.9.5ESP32中串口的硬件資源情況163
 
6.9.6構造對象163
 
6.9.7方法164
 
6.9.8ESP32串口通信——字符串自收發實驗165
 
6.10SPI例程166
 
6.10.1SPI總線接口與物理拓撲結構167
 
6.10.2SPI總線通信原理168
 
6.10.3SPI總線數據格式168
 
6.10.4ESP32中SPI的硬件資源情況169
 
6.10.5構造對象169
 
6.10.6方法171
 
第7章MQTT與阿里雲平台實戰173
 
7.1物聯網173
 
7.2為何要用MQTT173
 
7.3MQTT應用174
 
7.4MQTT協議分析174
 
7.4.1主要特點174
 
7.4.2其他概念175
 
7.5MQTT數據包格式176
 
7.5.1數據包類型176
 
7.5.2可變報頭177
 
7.5.3有效負荷177
 
7.6創建產品177
 
7.7產品物模型自定義179
 
7.8創建單個設備181
 
7.9使用MQTT.fx接入物聯網平台前提條件182
 
7.10使用MQTT.fx接入182
 
7.11下行通信測試185
 
7.12上行通信測試186
 
7.13查看日誌187
 
7.14MicroPython使用MQTT連接阿里雲前期準備188
 
7.15MicroPython(ESP32)安裝MQTT庫188
 
7.16MicroPython連接阿里雲服務器188
 
7.16.1方法188
 
7.16.2運行189
 
7.17MicroPython(ESP32)作MQTT訂閱者189
 
7.18MicroPython(ESP32)作MQTT發布者191
 
第8章MicroPython for STM32F4193
 
8.1源碼下載193
 
8.2MicroPython編譯環境搭建196
 
8.2.1VMware安裝196
 
8.2.2Ubuntu安裝到VMware197
 
8.3移植MicroPython到自己的開發板上207
 
8.3.1源碼準備207
 
8.3.2移植208
 
8.3.3編譯212
 
8.3.4DFU固件燒寫213
 
8.4運行Pyboard腳本216
 
8.4.1編輯main.py216
 
8.4.2重置開發板216
 
8.5PuTTY調試TPYBorad216
 
8.6創建自定義類庫218
 
8.7創建module219
 
8.7.1創建無function的module220
 
8.7.2給module添加無參數的function222
 
8.7.3給module添加帶參數的function223
 
8.8在module中添加type225
 
8.8.1創建一個無function的空type到module中225
 
8.8.2給type添加無參數的function227
 
8.8.3給type添加帶參數的function228
 
第9章項目實踐231
 
9.1項目簡介231
 
9.2OLED液晶顯示屏232
 
9.2.1SSD1306介紹232
 
9.2.2SSD1306接口233
 
9.2.3連線233
 
9.2.4例程分析234
 
9.2.5取模工具使用236
 
9.2.6代碼及現象237
 
9.2.7重難點歸納239
 
9.3空氣溫濕度採集239
 
9.3.1DTH11驅動239
 
9.3.2獲取溫濕度值241
 
9.3.3MicroPython中的DHT模塊241
 
9.3.4實驗現象242
 
9.3.5重難點歸納243
 
9.4環境光照強度測量243
 
9.4.1工作原理243
 
9.4.2接口說明243
 
9.4.3例程分析243
 
9.4.4實驗現象 245
 
9.4.5重難點歸納245
 
9.5雨水檢測245
 
9.5.1工作原理245
 
9.5.2連線說明246
 
9.5.3例程分析246
 
9.5.4運行現象247
 
9.5.5重難點歸納247
 
9.6煙霧濃度檢測248
 
9.6.1工作原理248
 
9.6.2使用說明248
 
9.6.3連線248
 
9.6.4例程分析249
 
9.6.5實驗現象249
 
9.6.6重難點歸納249
 
9.7舵機控制澆灌250
 
9.7.1工作原理250
 
9.7.2連線252
 
9.7.3例程分析252
 
9.7.4重難點歸納252
 
9.8入侵監測252
 
9.8.1功能特點253
 
9.8.2使用說明254
 
9.8.3連線254
 
9.8.4例程分析255
 
9.9照明控制255
 
9.10雲服務器平台創建256
 
9.11項目綜合256
 
附錄257
 
參考文獻263