首頁 > 後端開發 > Python教學 > 使用 Python、Docker 和藍牙建立智慧加熱器控制器 #1

使用 Python、Docker 和藍牙建立智慧加熱器控制器 #1

Patricia Arquette
發布: 2024-12-31 15:06:18
原創
820 人瀏覽過

Building a Smart Heater Controller with Python, Docker, and Bluetooth #1

第 1 章:入門

為什麼要建構智慧加熱器控制器?

我最近開始使用PythonDocker和Terma MOA Blue加熱器建立一個智慧型加熱控制器 🎜>低功耗藍牙(BLE)

問題

目前

沒有本地方式家庭助理(HA)和我的加熱器之間進行通訊。

目標

我需要精確控制我的

季節性租賃房產的加熱器,以便:

  • 最佳化能源消耗—防止客人退房時將溫度設定得太高或開啟加熱器。
  • 遠端管理設定—無需親自造訪房產即可避免昂貴的暖氣費。
  • 啟用自動化—將來與 HA 集成,以實現更好的調度和監控。
這篇文章是系列文章的

第一章,我將引導您完成整個過程 - 從設定 Raspberry Pi 和 Docker 到編寫用於直接藍牙控制的 Python 腳本。


關於 Terma MOA 藍色加熱器

Terma MOA Blue 是一款支援藍牙的加熱元件,專為電散熱器和毛巾加熱器而設計。

主要特點:

  • 多種模式:
    • 手動(室溫)
    • 手冊(加熱元件溫度)
    • 時間表和計時器
  • 溫度控制:
      支援
    • 0.1°C 步長的精確調節。
  • 低功耗藍牙 (BLE):
      允許透過行動應用程式或自訂整合進行遠端控制。
雖然這些加熱器與製造商的行動應用程式無縫協作,但我希望透過將它們直接整合到自訂

Python/Docker 設定中來獲得更大的靈活性。


特別感謝家庭助理社區

我要大力讚揚家庭助理社區,他們奠定了基礎並分享了有關使用

BLE 連接這些加熱器的見解。

他們的討論有助於闡明

藍牙特性的結構,並啟發了該專案中實施的許多技術。


項目概況

我們將介紹:

  1. 使用 Docker 設定 Raspberry Pi
  2. 使用BLE編寫Python腳本連接到加熱器。
  3. 編碼和解碼溫度資料和加熱器模式。
  4. 將應用程式打包在Docker中以方便部署。
  5. 規劃未來的功能,例如多加熱器支援自動化

設定樹莓派

我決定使用Raspberry Pi作為該專案的中央控制器。我的設定方法如下:

  1. Flash Raspberry Pi 作業系統: 下載並安裝最新的 Raspberry Pi 作業系統映像。
  2. 啟用 SSH 和 Wi-Fi: 在刷新期間設定 SSH 存取和 Wi-Fi 憑證以啟用遠端開發。
  3. 安裝 Docker: Docker 讓部署和測試變得更加容易。

指令:

sudo apt update
sudo apt install -y docker.io
sudo usermod -aG docker $USER
登入後複製
  1. 測試 Docker 安裝:
docker --version
docker run hello-world
登入後複製

這將驗證 Docker 是否已安裝並正常運作。


設定 Git 和遠端存取

為了簡化程式碼更新,我設定了 SSH 金鑰Git 以從我的電腦進行遠端存取。

關鍵步驟:

  1. 產生 SSH 金鑰對:
ssh-keygen -t ed25519 -C "your_email@example.com"
登入後複製
  1. 將公鑰加入 GitHub。
  2. 克隆儲存庫:
git clone git@github.com:<username>/<repo>.git
登入後複製

儲存庫連結

您可以在我的GitHub 儲存庫中查看完整的原始程式碼:

? GitHub - ha-hudsonread-heater-control

隨意分叉它、提出改進建議或報告任何問題!


透過藍牙控制加熱器

Terma MOA Blue 加熱器透過 低功耗藍牙 (BLE) 進行通信,因此我使用 Python 中的 Bleak 庫 來處理連接。

迄今為止實現的主要功能:

  • 讀寫溫度:使用基於UUID的特徵。
  • 模式控制:關閉手動(室溫)手動(加熱元件溫度)之間切換。
  • 動態更新:控制溫度而不影響模式。

目前狀態和後續步驟

現在,控制器可以:

  • 連接到加熱器。
  • 讀取目前溫度目標溫度
  • 獨立切換模式調節溫度

後續步驟:

  • 增加對多個加熱器的支援。
  • 透過與家庭助理或類似平台整合啟用自動化

跟隨

請繼續關注第 2 章,我將深入研究 Python 代碼,解釋 BLE 編碼和解碼的工作原理,並分享調試藍牙連接的見解。

我們還將為有興趣深入了解 BLE 調試的任何人介紹使用 bluetoothctl手動配對和連接命令

別忘了 ⭐️ GitHub 儲存庫,並在評論中告訴我您接下來希望看到添加哪些功能!

以上是使用 Python、Docker 和藍牙建立智慧加熱器控制器 #1的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板