「使用ESP32控制板(一):WEMOS LOLIN32簡介」提到控制板的UART埠可透過軟體指定任意接腳,相當於Arduino程式的SoftwareSerial。用軟體設定時,UART腳可以是任意GPIO腳,但ESP32的34, 35, 36和39不支援數位輸出,所以不能用於TX。
VL53L0X飛時測距(ToF)感應器模組(二):Arduino與MicroPython測距程式
選擇Arduino IDE主功能表的「草稿碼→匯入程式庫→程式庫管理員」,在「程式庫管理員」中搜尋“VL53L0X ”關鍵字,即可找到相關程式庫,常見的兩個程式庫分別是Adafruit和Polohu公司開發的版本,這兩家公司都是美國的電子零組件供應商;本文採用Polohu的VL53L0X程式庫 ,因為Adafruit的版本佔用的快閃記憶體以及主記憶體都比較多。
VL53L0X飛時測距(ToF)感應器模組(一):硬體簡介
VL53L0X是意法半導體(STMicroelectronics,以下簡稱ST公司)開發的IC,內部整合雷射光發射元件以及紅外線矩陣接收器,並透過計算接收到的雷射光束折射時間求得距離,這種光學測距技術統稱飛時測距(Time of Flight,簡稱ToF),比超音波和紅外線距離感測器精確、快速而且體積迷你。
使用ESP32控制板(三):MicroPython的類比輸入、UART序列埠以及觸控開關
ESP8266只有1.5個博士學位UART序列埠,所以《超圖解Python物聯網實作入門:使用ESP8266與MicroPython》第七章的GPS模組連接實驗,需要搭配WebREPL操作。ESP32也可以透過WebREPL操作,設定方式和ESP8266板相同;LOLIN32控制板有兩個UART硬體介面,把GPS模組接在第2個UART序列埠的示範如下:
使用ESP32控制板(二):燒錄MicroPython韌體
MicroPython的ESP32韌體分成支援Wi-Fi(但不支援藍牙)以及支援藍牙(但不支援Wi-Fi)兩大版本,每個版本各有三個系列:
- 通用(GENERIC):適合所有一般ESP32系列控制板。
- 通用外部RAM(GENERIC-SPIRAM):適合內建外部RAM(PSRAM)的ESP32控制板。
- TinyPICO:用於世界最小(18x32mm)的ESP32微控制板TinyPICO。
使用IFTTT串聯網路自動化服務(二):從Python執行Webhooks
MicroPython也具備套件管理員,電腦版Python的套件管理員是個叫做pip的命令,MicroPython則是叫做”upip”的程式庫。底下是透過PuTTY連接MicroPython,執行upip的install()函式安裝“urllib.parse”程式庫的例子:程式庫預設會被安裝到‘/lib/’路徑:
使用IFTTT串聯網路自動化服務(一):Webhooks設置
許多智慧家電和網通設備也都有支援IFTTT,例如,飛利浦Hue智慧燈泡、無線網路IP分享器、智慧音箱、洗衣機…等。以網路IP分享器為例,它能在偵測到新的裝置連入時,透過IFTTT發送訊息給你。美國太空總署NASA也有提供IFTTT服務,讓使用者訂閱新聞和太空影像,甚至可讓你設定在ISS國際太空站經過你家上空時,閃爍家裡的飛利浦Hue燈泡。
使用ESP8266 ESP-01模組的USB轉接板燒錄Arduino程式或MicroPython韌體
這個轉接板包含5V轉3.3V降壓IC,以及CH340序列通訊轉換IC,方便透過USB供電給ESP8266 ESP-01模組。但若直接使用這個轉接板,在Arduino IDE中燒錄ESP8266程式,將出現如下的“espcomm_open failed”和“espcomm_upload_mem failed”錯誤。
7月27日讀者交流會
筆者將在7月27日舉辦一個讀者見面暨新書發表交流會,活動由旗標出版社主辦、台北天瓏書局提供場地,地點在台北市中正區重慶南路一段105號2樓。報名網址:https://tenlong.kktix.cc/events/f9796
超圖解Python程式設計入門
- 超圖解程式語法、人人都能看得懂
- 實用專案邊做邊學、擺脫枯燥語法
- 豐富多元應用、動手實作時數個專案
- YouTube影片自動下載、商品詢價網路爬蟲、Google試算表自動化、Flask網站建置、資料庫與留言板、LINE聊天機器人、圖檔浮水印產生器、自動縮圖產生器、人臉偵測器、人臉辨識、家電控制、刷臉門禁系統…
Python的非阻塞式(non-blocking)socket通訊程式(二):使用select程式庫
select程式庫的select()函式,可接收來自作業系統的socket狀態訊息,每當有資料輸入或者準備好要輸出時,Python程式碼就會收到通知。select()不僅能偵聽socket狀態,在UNIX/Linux系統上也可以偵聽檔案讀寫、使用者在終端機的輸入操作…等所有可傳回有效「檔案描述符」(file descriptor,相當於檔案的識別碼)的物件。
Python的非阻塞式(non-blocking)socket通訊程式(一)
如同書本第16-19頁說明,伺服器端socket物件將偵聽用戶端連線請求,這個socket相當於「總機」;接受(accept)用戶端連線後,伺服器將動態產生一個與該用戶通信的socket物件,此舉相當於「總機」把電話轉給某專人來服務客戶。