🖱
🍻

LPPiBLejsr2GFa1">

  1. 😠

      🗺
      📑👥
      💣
      🏙
    • 🍅
    • 😉👳
      🎣
      🧦
      💔
      📚🥓
      🗾
    • 🔃

      树莓派新产品:树莓派CM0,用于智能家居?

      发布时间:2025-11-14 17:34  浏览量:14

      本文介绍了树莓派 CM0 Dev Board 的实现 Home Assistant 物联网智能家居终端的项目设计,包括准备工作、环境搭建、驱动传感器、MQTT 消息上传、流程图、关键代码以及效果演示等。


      项目介绍

      准备工作:包括所需 Python 环境、软件包的安装部署、EMQX 服务器搭建、Home Assistant 部署等;

      传感器驱动:通过 smbus 库驱动 IIC 协议的 AHT10 温湿度传感器模块,获取环境温湿度数据;

      MQTT 消息上传:结合板载 WiFi 无线网络通信功能,实现 MQTT 消息发送、HA 终端显示等;

      Home Assistant 智能家居平台:平台登录、MQTT 配置和连接、传感器卡片添加、APP 连接等。

      MQTT

      消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)是一种基于发布/订阅模式的轻量级通讯协议,广泛应用于物联网领域,特别是在带宽低、网络延迟高、网络通信不稳定的环境。

      MQTT协议中定义了三种角色:发布者(Publish)、代理(Broker)和订阅者(Subscribe)。其中,代理是MQTT服务器,负责接收、存储和转发消息。

      这里使用 EMQX 作为 MQTT 服务器。

      Home Assistant

      Home Assistant 是一款开源的智能家居物联网平台,专注于本地控制和隐私保护;

      可集成多种智能设备和服务,将不同品牌、不同协议的设备统一接入并自由联动;

      为用户提供全面的家庭环境监控和自动化控制,提升生活便利性、安全性和节能效果。

      详见:https://www.home-assistant.io/


      准备工作

      系统安装及环境搭建详见:

      https://edatec.cn/docs/zh/cm0/um/3-booting-the-device/

      硬件连接

      若采用 SSH 远程登录操作,则仅需连接电源供电即可;

      若采用本地登录,则需连接 HDMI 视频流传输线、USB 键盘连接线等;

      连接 AHT10 传感器模块,其中 SDA 和 SCL 引脚分别连接板载 40pin 排针的 3 号和 5 号引脚;

      AHT10 模块接线方式如下

      引脚定义

      板载 40pin GPIO 排针序号

      IIC 引脚定义

      详见:I2C - 树莓派引脚定义导航站

      https://pinout.vvzero.com/pinout/i2c

      库安装

      若要实现传感器模块驱动,需安装 RPi.GPIO 和 smbus 库;

      终端执行如下代码

      sudo apt-get update
      sudo apt-get install python3-smbus
      sudo apt-get install python3-RPi.GPIO

      完成安装

      终端执行 i2cdetect -y 1 检测已连接的 IIC 设备,获得 IIC 设备地址,如 0x38 .


      传感器驱动

      使用精度较高的 AHT10 温湿度传感器模块。

      代码

      终端执行 touch aht10_print.py 指令新建文件,并 nano aht10_print.py 添加如下代码

      代码过长,请查看原文章:

      保存代码。

      效果

      终端执行 i2cdetect -y 1 指令,检索 AHT10 传感器设备,识别对应的 IIC 设备地址 0x38;

      执行指令 python aht10_print.py 打印传感器数据


      Home Assistant

      介绍了树莓派 CM0 结合 AHT10 传感器采集环境温湿度,并将数据通过 MQTT 协议上传至 Home Assistant 平台,实现工业物联网温湿度监控的项目设计流程。

      环境搭建

      包括 Docker 容器安装、HA 和 EMQX 部署等。

      Docker

      电脑主机或服务器下载并安装 Docker Desktop 软件;

      可更换或添加镜像源,便于后期实现 EMQX 和 HA 文件的快速拉取。

      详见:Home Assistant 助手

      https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=47162

      HA 部署

      打开命令行终端并执行指令

      docker pull homeassistant/home-assistant:latest

      待拉取 HA 镜像完成;

      磁盘根目录创建 homeassistant 文件夹,新建 docker-compose.yaml 文件,并添加如下代码

      代码过长,请查看原文章:

      保存文件,并在终端打开该文件夹,执行 docker compose up -d 指令,完成 HA 容器创建。

      进入 Containers 容器页面,点击 homeassistant 端口链接,进入 HA 浏览器页面,创建并登录账户;

      EMQX 部署

      在添加软件镜像源的基础上,终端执行指令

      docker pull emqx/emqx:latest

      拉取最新版 emqx 镜像

      终端执行指令

      docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest

      创建并运行 emqx 容器;

      若提示端口被占用报错,可删除已创建的 emqx 容器,进入 Images 标签页,点击 emqx/emqx 镜像对应的启动按钮,手动配置容器名称、Host端口等参数,端口填写 0 ,系统随机分配可用端口。

      EMQX 配置

      (1)进入 Containers 容器页面,点击 emqx 端口链接,进入 emqx 浏览器页面,初始登录账户名 admin 密码 public ;

      (2)依次打开 访问控制 - 客户端认证 - 创建 - Password-Based - 内置数据库 - (默认配置)- 创建 ;

      (3)用户管理 - 新建用户 - 自定义用户名和密码 .

      MQTT 配置

      命令行终端输入 ipconfig 获取本地计算机 IPv4 地址,如 192.168.31.160

      配置 Home Assistant ,依次点击设置 - 设备与服务 - 添加集成 - 搜索 MQTT - 填写代理信息。

      代理栏输入计算机 IP 地址,端口 1883,用户名和密码为 EMQX 中创建的用户信息。

      代码

      为了实现模块化,将 AHT10 传感器的驱动代码进行封装,便于调用。

      AHT10 驱动

      终端执行 touch aht10.py 新建传感器驱动文件,执行 nano ah10.py 并添加如下代码

      代码过长,请查看原文章:

      保存代码。

      MQTT 上传

      终端执行 touch aht10_ha.py 指令新建文件,并 nano aht10_ha.py 添加如下代码

      代码过长,请查看原文章:

      保存代码。

      效果

      终端执行指令 python aht10_print.py 运行程序,终端打印已发送的 MQTT 消息

      MQTTX

      使用 MQTTX 软件测试接收到的 MQTT 消息。

      下载安装并运行 MQTTX 软件;

      新建连接,配置 MQTT 服务器地址、用户名等信息;

      登录 HA 平台网页,配置 MQTT 参数;

      结合 HA 完善的生态建设,手机安装 Home Assistant 应用,通过 IP 地址接入服务器并登录账户


      总结

      本文介绍了树莓派 CM0 Dev Board 的实现 Home Assistant 智能家居终端的项目设计,包括准备工作、环境搭建、驱动传感器、MQTT 消息上传、流程图、关键代码以及效果演示等,为相关产品在工业物联网领域的开发设计和快速应用提供了参考。


      👮🍝

      😬📓

      🌦🥫

      zkPD">

      🏃🦎
      🖲
        🤦🛑
        1. 🌂〽
        • 🚂
          🙃
        • 📩📜
          🔎
        • 📭
          🚃
        • 😄