使用 ESP32 C1 mini做開發
接腳
ESP32 OLED nnWave
GPIO 5 OT2
GPIO 6 SDA
GPIO 7 SCK
GPIO 8 為板子上的LED
GPIO 20 RX
GPIO 21 TX
測試程式
from machine import UART
uart1 = UART(1, baudrate=115200, tx=21, rx=20)
# 直接檢查 UART 是否收到數據
if uart1.any():
data = uart1.read()
print("收到數據:", data)
else:
print("⚠️ 沒有收到數據,請檢查 mmWave 連接")
應用程式
# 2025/03/05-14:45
#mmWave 板子容易當機
import time
from machine import UART, Pin
# 設定 UART1 (ESP32)
uart1 = UART(1, 115200)
uart1.init(baudrate=115200, bits=8, parity=None, stop=1, tx=21, rx=20)
# 設定 LED (GPIO8)
led = Pin(8, Pin.OUT) # 設定 GPIO8 為輸出模式 (控制 LED)
while True:
if uart1.any(): # 檢查是否有數據
data = uart1.read()
if data: # 確保 data 不是 None
try:
decoded_data = data.decode("utf-8") # 轉換為字串
lines = decoded_data.split("\r\n") # 逐行分割
for line in lines:
if line.strip(): # 避免空白行
print("模組回應:", line)
# 🔹 **檢查 ON 訊息,控制 LED**
if "ON" in line:
led.value(1) # LED 亮起
else:
led.value(0) # LED 熄滅
# 🔹 **解析 Range 數值 (單位 cm)**
if "Range" in line:
try:
distance = int(line.split()[1]) # 取得數字
distance_cm = distance #/ 10 # 假設數據是 mm,轉成 cm
print(f"📏 測得距離: {distance_cm} cm")
except ValueError:
print("⚠️ 解析距離數據失敗:", line)
except Exception as e: # **改用通用錯誤捕獲**
print("❌ 解碼錯誤:", e)
time.sleep(0.1) # 降低 CPU 負擔