MicroPython 專案: MQTT 搬運車

Yungger
4 min readOct 16, 2022
小車硬體來源: 蝸牛手建館

前陣子心血來潮寫了一些文章, 取名為 MicroPython 如此簡單系列, 近來想想似乎覺得這名字取得好像很容易讓人誤解, 畢竟在 Maker 世界裡, Arduino 的開發者才算是大宗, 加上隨手可得的套件, 全部不用自己寫, 尤其國外一堆大神早早就寫好程式碼, 何須再費神自己硬 code 呢 ?? 程式直接東 copy 西 paste 的就可輕鬆寫好一個專案, 那這樣子比起來, 似乎用 Arduino 來開發專案不是遠比 MicroPython 更簡單多了嗎 ? 其實我自己想想, 好像也確實是這樣的 ^_^

但又反思, 最近一堆 No Code, Low Code 的觀念, 其實就是期望讓程式碼的開發變得簡單, 而且希望最終能幾乎不用寫程式碼, 這才是主要的精神, 才是真的簡單。這又讓我再想一想大部分 Arduino 的開發者是如何撰寫專案的 ? 譬如說用 ESP32-Cam 來寫個專案, 用網頁控制攝影與傳輸串流影像, 幾乎都是千篇一律拿個國外範例, 程式中好幾個附檔, 然後大家找一下每個檔中的第幾行, 改網路設定, 改解析度, … 最後加上自己專案上的硬體控制程式碼就可完成。

重點來了 !自己專案上的程式碼如果不是國外大神已寫好的, 那寫起 C++ 的 Arduino 就不是那麼簡單了, 更不是幾行程式碼就可完成的了, 當然更別說什麼 Low Code, No Code 的 !! 想到這裡, 似乎之前寫的 MicroPython 如此簡單系列, 其實 “簡單” 2 字的精神就能體現出來, 出發點就是讓困難的邏輯運算與演算法…等等封裝起來變成一個一個的元件, 開發程式的人, 不同專案就直接拿所須的元件來組合運用即可, 讓程式碼真的簡潔, 看到的程式碼呈現的真的就是屬於個人專案的設計部分。

首先, 感謝蝸牛手建館的蔡榮芳老師, 提供了這麼一台設計精美耐操的搬運車。有興趣可以參觀他們的 FB: https://www.facebook.com/snailmaker/, 有很多令人經驗的巧思設計 !!

* 開始 *

專案的建置方式:

STEP 1 : 將專案所須的檔案從雲端下載至本機, 然後上傳至 MCU

***如果需要進一步了解如何上傳檔案至 MCU 的方法, 建議您可先參考我的另一篇 “MicroPython 如此簡單: 檔案管理”. ***

MCU 是 Lolin ESP32 Lite, MicroPython 韌體是 v1.19.1

STEP 2 : 修改 my_config.py 的設定值 (依你的環境與硬體來調整)

# my_config.py
my_config = {
'wifi_ssid': '你的 Wifi SSID', 'wifi_pwsd': '你的 Wifi 密碼',
'mqtt_server': '你的 MQTT Server', 'mqtt_topic': '你的 MQTT 主題',
's1': 19, 's2': 23, 'mRA': 33, 'mRB': 25, 'mLA': 18, 'mLB': 5}

Wifi:wifi_ssid, wifi_pwsd

MQTT: mqtt_server, mqtt_topic

ESP32 腳位編號: 2顆舵機 (s1, s2), 2顆馬達 (mRA, mRB) (mLA, mLB)

- 例如你的MQTT設定是 ‘mqtt_server’: ‘mqttgo.io’, ‘mqtt_topic’: ‘/test/car’

STEP 3 : 這樣就已完成, 原則上不用再寫任何程式

除非你的設計中有特殊邏輯, 或新增其他硬體, 否則 main.py 是不需修改的)

STEP 4 : 接下來, 啟動小車後, 可透過 MQTT 的 Client App 送出指令來控制

* DEMO *

- DEMO 1 (無線, 使用 MQTT Dashboard 遠控):

https://youtu.be/F5mKbv02lTE

- DEMO 2 (連著 USB, 可檢視開發測試的訊息):

https://youtu.be/Bilxj9n5gw4

如此而已, 就是這麼簡單, 希望能對你/妳有了一點點小幫助 !

作者:Yungger 勇哥

若覺得此文真對您有幫助, 點點左上方的拍手圖示, 鼓勵一下。若還想 請喝杯咖啡 鼓勵一下勇哥的繼續創作, 也感謝 😘 😘 !!

--

--