第 1 章:入門
為什麼要建構智慧加熱器控制器?
我最近開始使用Python、Docker和Terma MOA Blue加熱器建立一個智慧型加熱控制器 🎜>低功耗藍牙(BLE)。
問題
目前沒有本地方式在家庭助理(HA)和我的加熱器之間進行通訊。
目標
我需要精確控制我的季節性租賃房產的加熱器,以便:
- 最佳化能源消耗—防止客人退房時將溫度設定得太高或開啟加熱器。
- 遠端管理設定—無需親自造訪房產即可避免昂貴的暖氣費。
- 啟用自動化—將來與 HA 集成,以實現更好的調度和監控。
第一章,我將引導您完成整個過程 - 從設定 Raspberry Pi 和 Docker 到編寫用於直接藍牙控制的 Python 腳本。
關於 Terma MOA 藍色加熱器
Terma MOA Blue 是一款支援藍牙的加熱元件,專為電散熱器和毛巾加熱器而設計。
主要特點:
- 多種模式:
- 手動(室溫)
- 手冊(加熱元件溫度)
- 時間表和計時器
- 溫度控制:
- 支援
- 0.1°C 步長的精確調節。
- 低功耗藍牙 (BLE):
- 允許透過行動應用程式或自訂整合進行遠端控制。
Python/Docker 設定中來獲得更大的靈活性。
特別感謝家庭助理社區
我要大力讚揚家庭助理社區,他們奠定了基礎並分享了有關使用
BLE 連接這些加熱器的見解。
他們的討論有助於闡明藍牙特性的結構,並啟發了該專案中實施的許多技術。
項目概況
我們將介紹:
- 使用 Docker 設定 Raspberry Pi。
- 使用BLE編寫Python腳本連接到加熱器。
- 編碼和解碼溫度資料和加熱器模式。
- 將應用程式打包在Docker中以方便部署。
- 規劃未來的功能,例如多加熱器支援和自動化。
設定樹莓派
我決定使用Raspberry Pi作為該專案的中央控制器。我的設定方法如下:
- Flash Raspberry Pi 作業系統: 下載並安裝最新的 Raspberry Pi 作業系統映像。
- 啟用 SSH 和 Wi-Fi: 在刷新期間設定 SSH 存取和 Wi-Fi 憑證以啟用遠端開發。
- 安裝 Docker: Docker 讓部署和測試變得更加容易。
指令:
sudo apt update sudo apt install -y docker.io sudo usermod -aG docker $USER
- 測試 Docker 安裝:
docker --version docker run hello-world
這將驗證 Docker 是否已安裝並正常運作。
設定 Git 和遠端存取
為了簡化程式碼更新,我設定了 SSH 金鑰 和 Git 以從我的電腦進行遠端存取。
關鍵步驟:
- 產生 SSH 金鑰對:
ssh-keygen -t ed25519 -C "your_email@example.com"
- 將公鑰加入 GitHub。
- 克隆儲存庫:
git clone git@github.com:<username>/<repo>.git </repo></username>
儲存庫連結
您可以在我的GitHub 儲存庫中查看完整的原始程式碼:
? GitHub - ha-hudsonread-heater-control
隨意分叉它、提出改進建議或報告任何問題!
透過藍牙控制加熱器
Terma MOA Blue 加熱器透過 低功耗藍牙 (BLE) 進行通信,因此我使用 Python 中的 Bleak 庫 來處理連接。
迄今為止實現的主要功能:
- 讀寫溫度:使用基於UUID的特徵。
- 模式控制:在關閉、手動(室溫)和手動(加熱元件溫度)之間切換。
- 動態更新:控制溫度而不影響模式。
目前狀態和後續步驟
現在,控制器可以:
- 連接到加熱器。
- 讀取目前溫度和目標溫度。
- 獨立切換模式和調節溫度。
後續步驟:
- 增加對多個加熱器的支援。
- 透過與家庭助理或類似平台整合啟用自動化。
跟隨
請繼續關注第 2 章,我將深入研究 Python 代碼,解釋 BLE 編碼和解碼的工作原理,並分享調試藍牙連接的見解。
我們還將為有興趣深入了解 BLE 調試的任何人介紹使用 bluetoothctl 的手動配對和連接命令。
別忘了 ⭐️ GitHub 儲存庫,並在評論中告訴我您接下來希望看到添加哪些功能!
以上是使用 Python、Docker 和藍牙建立智慧加熱器控制器 #1的詳細內容。更多資訊請關注PHP中文網其他相關文章!

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

numpyallowsforvariousoperationsonArrays:1)basicarithmeticlikeaddition,減法,乘法和division; 2)evationAperationssuchasmatrixmultiplication; 3)element-wiseOperations wiseOperationswithOutexpliitloops; 4)

Arresinpython,尤其是Throughnumpyandpandas,weessentialFordataAnalysis,offeringSpeedAndeffied.1)NumpyArseNable efflaysenable efficefliceHandlingAtaSetSetSetSetSetSetSetSetSetSetSetsetSetSetSetSetsopplexoperationslikemovingaverages.2)

列表sandnumpyArraysInpythonHavedIfferentMemoryfootprints:listSaremoreFlexibleButlessMemory-效率,而alenumpyArraySareSareOptimizedFornumericalData.1)listsStorReereReereReereReereFerenceStoObjects,with withOverHeadeBheadaroundAroundaround64byty64-bitsysysysysysysysysyssyssyssyssysssyssys2)

toensurepythonscriptsbehavecorrectlyacrycrosdevelvermations,分期和生產,USETHESTERTATE:1)Environment varriablesForsimplesettings,2)configurationfilesfilesForcomPlexSetups,3)dynamiCofforComplexSetups,dynamiqualloadingForaptaptibality.eachmethodoffersuniquebeneiquebeneqeniquebenefitsandrefitsandrequiresandrequiresandrequiresca

Python列表切片的基本語法是list[start:stop:step]。 1.start是包含的第一個元素索引,2.stop是排除的第一個元素索引,3.step決定元素之間的步長。切片不僅用於提取數據,還可以修改和反轉列表。

ListSoutPerformarRaysin:1)DynamicsizicsizingandFrequentInsertions/刪除,2)儲存的二聚體和3)MemoryFeliceFiceForceforseforsparsedata,butmayhaveslightperformancecostsinclentoperations。

toConvertapythonarraytoalist,usEthelist()constructororageneratorexpression.1)intimpthearraymoduleandcreateanArray.2)USELIST(ARR)或[XFORXINARR] to ConconverTittoalist,請考慮performorefformanceandmemoryfformanceandmemoryfformienceforlargedAtasetset。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),