901|9

574

帖子

11

TA的资源

一粒金砂(高级)

楼主
 

【Follow me第二季第2期】Arduino Uno R4 WiFi 通过MQTT连入Home Assistant(容器版) [复制链接]

  本帖最后由 sunduoze 于 2024-9-12 22:29 编辑


1. 安装Docker (系统windows10及以上,其余系统未进行测试。另外如果有树莓派、NAS的用户也可以自行安装HA OS,Linux或虚拟机用户安装对应的版本).

 
2. Docker中拉取Home Assistant镜像
在windows命令行中输入以下命令搜索镜像,

docker search home-assistant

回车后可以看到排名第一的homeassistant/home-assistant; 输入以下命令拉取最新版本镜像

docker pull homeassistant/home-assistant

或者输入以下命令拉取稳定版

docker pull homeassistant/home-assistant:stable


3. 创建Home Assistant容器
在windows命令行中输入

docker run -d --name="HA_container" -v D:/ProgramData/HA:/config -p 8123:8123 homeassistant/home-assistant

其中HA_container为可自定义的容器名称,D:/ProgramData/HA为可自定义配置保存路径(注意是右斜杠)


4. 进入Home Assistant (HA)
浏览器输入: http://localhost:8123/

 
点击 创建我的智能家居 创建账号,之后按提示一步一步进入,最后重新登陆后即可进入HA主页
 


5. Docker中拉取EMQX镜像(MQTT服务器)
在windows命令行中输入以下命令搜索镜像,

docker search emqx

回车后可以看到排名第一的`emqx  并且是official的` ; 输入以下命令拉取最新版本镜像

docker pull emqx


6. 创建EMQX容器
在windows命令行中输入以下命令

docker run -d --name="EMQX_container" -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx

其中HA为可自定义的容器名称,D:/ProgramData/HA为可自定义配置保存路径(注意是右斜杠)


7. 进入EMQX
浏览器输入: http://localhost:18083/

默认账号:admin 默认密码:public

 
8. 测试EMQX
进入EMQX[EMQX Dashboard](http://localhost:18083/#/dashboard/overview)
访问控制 -> 客户端认证 -> 选 +创建 (右上方)-> 选择 Password-Based -> 内置数据库 -> 3个都默认 -> 点 创建
点击 用户管 -> 点 +(右侧)-> 新建用户,填入用户名和密码

 

9. EMQX与HA连接
进入EMQX[EMQX Dashboard](http://localhost:18083/#/dashboard/overview)从EMQX 监控->集群概览 -> 节点信息 -> 节点名称的 @后 找到IP地址,此地址即为:EMQX服务器地址
进入HA[配置 – Home Assistant](http://localhost:8123/config/integrations/dashboard)配置 -> 设备与服务 -> 添加集成(右下角) -> 搜索MQTT -> 选择MQTT -> 填入代理:xxx.xxx.xxx.xxx.xxx(EMQX服务器地址) 端口:1883 用户名:admin 密码:admin 点击 提交 后提示 成功 xxx

 

接下来可以进入EMQX[EMQX Dashboard](http://localhost:18083/#/dashboard/overview)看到 在线连接数 从之前的0变为1,点开可以看到 用户端ID 等信息    


10. EMQX与Arduino UNO R4 WiFi连接
Arduino中需要与这里的用户名和密码对应,MQTT_SERVER为windows电脑无线网卡的IP(cmd 使用 ipconfig查看)

#define MQTT_SERVER "xxx.xxx.xxx.xxx" // 定义MQTT服务器的地址
#define MQTT_PORT 1883                // 定义MQTT服务器的端口

#define MQTT_USERNAME "admin"         //定义用户名
#define MQTT_PASSWORD "admin"         //定义密码


修改arduino_secrets.h中以上代码,编译并上传到Arduino UNO R4 WiFi中

 

11. EMQX与Arduino UNO R4 WiFi连接,HA中的概览可以看到 按钮 以及 MQTT Sensor
进入EMQX[EMQX Dashboard](http://localhost:18083/#/dashboard/overview) 可以看到 在线连接数 变成3,并且可以看到 消息发布速率:右侧不断有数据发布和接收,至此Arduino的数据已经被EMQX服务器接收到啦!

 

12. 另一种方式实现界面的显示(修改configuration.yaml
容器的配置文件保存路径的 `D:\ProgramData\HA` (大家根据自己的配置自行更改)的configuration.yaml文件,增加以下代码保存。
到HA的 [开发者工具 – Home Assistant](http://localhost:8123/developer-tools/yaml) 的 -> YAML 配置重新加载 -> 点击 所有YAML 配置 -> 如果代码无异常,则会显示绿色 代表配置已经更新
HA -> 概览 -> 编辑仪表盘(右上角)-> 添加卡片(右下角)-> 点击 按实体 -> 搜索栏输入 Arduino -> 可以看到 arduino Time 和 arduino Time -> 勾选后添加即可
HA -> 概览 点开新添加的卡片,选择不同的传感器,可以看到历史曲线

mqtt:
  - button:
      - unique_id: arduino uno button A
        name: "Arduino Click me A"
        command_topic: "UNO/arduino/myButtonA/cmd_t"
        payload_press: "restart"
      - unique_id: arduino uno button B
        name: "Arduino Click me B"
        command_topic: "UNO/arduino/myButtonB/cmd_t"
        payload_press: "restart"
  - sensor:
      - unique_id: arduino uno Time
        name: "arduino Time"
        state_topic: "UNO/arduino/myUptime/stat_t"
        suggested_display_precision: 1
        unit_of_measurement: "s"
        value_template: "{{ value }}"

      - unique_id: arduino uno Voltage
        name: "arduino Volt"
        state_topic: "UNO/arduino/myAnalogInput/stat_t"
        suggested_display_precision: 3
        unit_of_measurement: "V"
        value_template: "{{ value }}"

 

有疑问或者问题,欢迎大家一起讨论!

最新回复

home assistant 镜像需要翻墙,EMQX镜像不需要,可以参考这个方法安装 如何使用 Docker 在 Windows 上运行 Home Assistant 容器 - Kiril Peyanski 的博客   详情 回复 发表于 2024-9-22 02:39
点赞 关注(1)
 
 

回复
举报

6060

帖子

6

TA的资源

版主

沙发
 

windows安装Docker需要给他多少空间?  

点评

我这边安装的占用了2.5G,实际你得自己看一下情况  详情 回复 发表于 2024-9-13 23:11
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

188

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

有安装包吗?或者安装包下载连接?

 

 

家庭版的window10是不是安装不了,要转成专业版才可以?

点评

我的是Windows 11 家庭中文版,可以安装。注意需要开启cpu虚拟化,安装wsl等  详情 回复 发表于 2024-9-13 23:14
 
 
 

回复

574

帖子

11

TA的资源

一粒金砂(高级)

4
 
秦天qintian0303 发表于 2024-9-13 10:00 windows安装Docker需要给他多少空间?  

我这边安装的占用了2.5G,实际你得自己看一下情况

 
 
 

回复

574

帖子

11

TA的资源

一粒金砂(高级)

5
 
飞扬自我 发表于 2024-9-13 10:46 有安装包吗?或者安装包下载连接?     家庭版的window10是不是安装不了,要转成专业版 ...

我的是Windows 11 家庭中文版,可以安装。注意需要开启cpu虚拟化,安装wsl等

 
 
 

回复

9

帖子

1

TA的资源

一粒金砂(中级)

6
 

开发板ping不通虚拟机怎么解决,电脑可以ping通虚拟机

 

点评

有具体图片吗?检查ip对不对,注意区分无线网卡和有线网卡  详情 回复 发表于 2024-9-14 16:46
 
 
 

回复

574

帖子

11

TA的资源

一粒金砂(高级)

7
 
eew_uscYT9 发表于 2024-9-14 16:10 开发板ping不通虚拟机怎么解决,电脑可以ping通虚拟机    

有具体图片吗?检查ip对不对,注意区分无线网卡和有线网卡

点评

应该是ip不对,我先用了win的docker,但是mqttx连接不到eqm      详情 回复 发表于 2024-9-14 17:51
 
 
 

回复

9

帖子

1

TA的资源

一粒金砂(中级)

8
 
sunduoze 发表于 2024-9-14 16:46 有具体图片吗?检查ip对不对,注意区分无线网卡和有线网卡

应该是ip不对,我先用了win的docker,但是mqttx连接不到eqm

 
 
 
 

回复

222

帖子

3

TA的资源

一粒金砂(高级)

9
 

搜索镜像需要科学上网吗?

点评

home assistant 镜像需要翻墙,EMQX镜像不需要,可以参考这个方法安装 如何使用 Docker 在 Windows 上运行 Home Assistant 容器 - Kiril Peyanski 的博客  详情 回复 发表于 2024-9-22 02:39
 
 
 

回复

34

帖子

2

TA的资源

一粒金砂(中级)

10
 
Maker_kun 发表于 2024-9-18 18:52 搜索镜像需要科学上网吗?

home assistant 镜像需要翻墙,EMQX镜像不需要,可以参考这个方法安装 如何使用 Docker 在 Windows 上运行 Home Assistant 容器 - Kiril Peyanski 的博客

个人签名

MCU 开发者和爱好者

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表