首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板