不止浇花!miflora-mqtt-daemon创意应用:冰箱温度监测与自动灌溉联动方案
【免费下载链接】miflora-mqtt-daemonLinux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 🌱🌼🥀🏡🌳项目地址: https://gitcode.com/gh_mirrors/mi/miflora-mqtt-daemon
miflora-mqtt-daemon是一款面向小米 Mi Flora(米家花型植物传感器)的免费开源 Linux 常驻程序(守护进程)。它通过蓝牙周期性读取传感器的温度、光照、土壤湿度、土壤肥力等数据,并以 JSON 格式发布到 MQTT 消息代理,让你轻松对接 openHAB、Home Assistant 等智能家居平台。今天带你解锁两个“浇花之外”的创意玩法:冰箱温度监测与自动灌溉联动——整套方案只需一个廉价传感器加一块树莓派。🌱
🌿 先搞懂:miflora-mqtt-daemon 工作原理
整个方案分三层,每一层都很轻量:
| 层级 | 角色 | 说明 |
|---|---|---|
| 感知层 | Mi Flora 传感器 | BLE 低功耗设备,测量温度、光照、土壤湿度、土壤肥力、电池电量,纽扣电池可用 1.5~2 年 |
| 采集层 | miflora-mqtt-daemon | 运行在树莓派上的 Linux 守护程序,周期性读取传感器并发布到 MQTT |
| 应用层 | MQTT 代理 + 智能家居平台 | openHAB、Home Assistant 等订阅数据,实现报警与自动化逻辑 |
每一轮采集都会向代理发布一条 JSON。在默认的mqtt-json模式下,主题格式为miflora/<传感器名>,内容形如:
{"light": 5424, "moisture": 30, "temperature": 21.4, "conductivity": 1020, "battery": 100}数据一旦进入 MQTT 这条“高速公路”,后续的报警、看板、自动化触发就都水到渠成了。项目主程序为miflora-mqtt-daemon.py,完整功能清单可查阅根目录的README.md。
🌡️ 创意应用一:把 Mi Flora 变成冰箱温度监测器
很多人不知道,Mi Flora 并不局限于测土壤——它的空气温度读数分辨率高达 0.1°C,项目文档中明确提到过把传感器放进冰箱这种创意用法。
冰箱温度监测原理
只需将传感器放入一个装水的密封瓶中(防止水汽侵入),摆在冰箱隔层上,守护程序便会持续上报温度:
- 传感器在冰箱内通过蓝牙向树莓派发送温度数据
miflora-mqtt-daemon将其发布到 MQTT 主题- 在智能家居平台中设置规则:冰箱温度持续高于 8°C 超过 10 分钟,立即推送报警(提示门没关严或压缩机故障)
💡 提示:Mi Flora 使用 BLE 通信,覆盖范围有限。请把树莓派尽量靠近冰箱摆放,并留意传感器的
battery电量。
冰箱温度报警配置方法
以 Home Assistant 的homeassistant-mqtt模式为例,三步搞定:
- 在配置文件
config.ini中将reporting_method设为homeassistant-mqtt - 重启守护程序,Home Assistant 会自动发现温度传感器,无需手动建卡
- 在“自动化”页面新建规则:
temperature > 8持续触发时,向手机推送通知
openHAB 用户更省事,README.md里提供了现成的 MQTT binding 配置示例,把通道改成冰箱温度即可直接复用。
💧 创意应用二:自动灌溉联动
第二个创意应用是“测水情 → 做判断 → 去浇水”的完整闭环。
自动灌溉联动逻辑
传感器的moisture(土壤湿度,单位 %)字段是整个联动的核心,逻辑只有四步:
- 采集:miflora-mqtt-daemon 每 5 分钟(默认周期)发布一次土壤湿度
- 判断:智能家居平台订阅该主题,例如
moisture < 30表示土壤偏干 - 执行:通过 MQTT 指令打开智能插座或继电器模块,给水泵通电 2 分钟
- 验证:浇完水后湿度回升,联动结束;也可叠加“每天仅浇水一次”的限制
整条链路无需写代码,在智能家居平台的“自动化”页面点选几下即可完成。
灌溉方案实用建议
- 多植物支持:
config.ini的[Sensors]段可同时配置任意多个传感器(名称 = MAC 地址),不同植物可设不同浇水阈值 - 命名带位置:传感器名支持
名称@位置写法(如Petunia@Balcony),方便区分管理 - 电池监控:盯住
battery字段,低于 20% 时提前更换纽扣电池,避免灌溉“断粮”
🚀 快速上手:5 步部署 miflora-mqtt-daemon
以下以 Debian / Raspberry Pi OS 为例,部署全程无需 root 权限运行程序本身:
第 1 步:安装系统依赖
sudo apt install git python3 python3-pip bluetooth bluezRaspberry Pi OS(64 位)用户请额外安装
libglib2.0-dev,避免 bluepy 编译报错。
第 2 步:下载项目并安装依赖
git clone https://gitcode.com/gh_mirrors/mi/miflora-mqtt-daemon /opt/miflora-mqtt-daemon cd /opt/miflora-mqtt-daemon sudo pip3 install -r requirements.txt第 3 步:创建配置文件
cp config.ini.dist config.ini vim config.ini配置模板config.ini.dist自带详尽注释,你需要重点填写两处:
[MQTT]段:代理地址hostname与端口port(默认 1883)[Sensors]段:填入传感器 MAC 地址(用sudo hcitool lescan扫描)
第 4 步:首次测试运行
python3 miflora-mqtt-daemon.py终端出现绿色的 “MQTT connection established” 与 “Publishing to MQTT topic” 字样,即代表部署成功。🎉
第 5 步:注册为 systemd 服务后台常驻
项目内置服务模板template.service,三条命令即可让程序永久后台运行并开机自启:
sudo cp template.service /etc/systemd/system/miflora.service sudo systemctl daemon-reload sudo systemctl start miflora.service && sudo systemctl enable miflora.service更偏爱 Docker?项目提供了Dockerfile,执行docker build -t miflora-mqtt-daemon .构建镜像,再把你的配置目录挂载到容器内的/config即可。
⚙️ config.ini 配置速查:最常用参数
| 参数 | 默认值 | 说明 |
|---|---|---|
reporting_method | mqtt-json | 数据格式,支持 HomeAssistant、Homie、ThingsBoard、Wiren Board 等 7 种 |
period | 300 | 采集周期(秒),自动灌溉建议 5 分钟 |
hostname/port | localhost/1883 | MQTT 代理地址与端口 |
base_topic | miflora | 数据发布的基础主题 |
enabled | true | 是否启用常驻循环(守护模式) |
除配置文件外,MQTT 连接信息还可通过MQTT_HOSTNAME、MQTT_PORT等环境变量注入,方便容器化部署时统一管理。
🏡 写在最后:传感器只是起点,联动才是终点
miflora-mqtt-daemon 用“把数据发布到 MQTT,剩下的交给你”这一思路,把一个十几元的小传感器玩出了想象力:
- 🌡️冰箱 / 冰柜温度监测:异常升温即时报警,守护食品安全
- 💧自动灌溉:湿度驱动水泵联动,出差一周植物也不缺水
- 🚪门窗 / 遮光传感器:社区已验证的玩法,
light光照数据同样可复用
更多集成细节(openHAB、ThingsBoard、Wiren Board 等)请查阅项目根目录的README.md;想深入了解采集与发布逻辑,可以阅读主程序miflora-mqtt-daemon.py。不妨从监测一台冰箱温度这个小实验开始,逐步搭建属于你的智能家居小花园。🌱
【免费下载链接】miflora-mqtt-daemonLinux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 🌱🌼🥀🏡🌳项目地址: https://gitcode.com/gh_mirrors/mi/miflora-mqtt-daemon
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考