采用 ESP32-S3开发板DIY一套强大的HomeAssistant智能家居系统
作者: mars4zhu
一、作品简介(100-200字)
(设计名称、作品照片、功能介绍等。)
HomeAssistant是当前最火热的DIY智能家居的开源系统 ,可以通过WIFI、蓝牙、Zigbee、红外等各种方式控制各类家具设备;ESP32-S3是高性能无线MCU,具备WIFI、BLE等无线通讯方式,专为AIoT市场打造;本作品用ESP32-S3接入HomeAssistant智能家居系统,搭建一套灵活便利的智能控制家电设备。
采用手机上的HomeAssistant应用,即可将采用ESP32-S3开发板DIY的智能设备接入到HomeAssistant,各类控制、传感器信息综合、以及智能家居系统的场景、自动化集成,非常方便实现我们自己的智能家居系统。
其中
HomeAssistant中控系统——树莓派4b
HomeAssistant智能设备——ESP32-S3
HomeAssistant用户界面——网页端+手机App
三、各部分功能说明(图文结合)
HomeAssistant中控系统采用树莓派4b,按照HomeAssistant的安装流程即可。
网页端/手机主要用于配置和监控,配置界面如下图左1、左2,运行界面如下图左3:
ESP32-S3设备运行的是ESPHome固件,只需要配置一下,即可自动生成代码,接入HomeAssistant,见源代码。
四、作品源码
本作品使用的是HomeAssistant系统作为中控系统,该系统的电脑端(网页版)和手机端(App)均是生态集成的通用应用。
设备端ESP32-S3采用的是ESPHome固件,其基于PlatformIO的自动化构建系统,全集成化的功能代码自动生成、库链接和构建,所有代码仅需一个ESPHome的配置文件,生动的体现了现代智能设备开发的“零代码”开发理念:
配置文件:test-esp32s3.yaml
五、作品功能演示视频
(视频简介+链接)
EPS32S3芯片接入HomeAssistant打造的智能家居设备。(LED模拟)
六、项目总结
(项目文字总结+帖子分享链接汇总)
本次项目学习了ESP32系列芯片的架构、开发流程、软件生态,并结合HomeAssistant这项智能家居技术
开箱贴——ESP32-S2和ESP32-S3的开发板+模组
https://bbs.eeworld.com.cn/thread-1210543-1-1.html
好多选择ESP32-S2/S3来设计的,讨论一下ESP32家族的各产品线的差异吧。
https://bbs.eeworld.com.cn/thread-1210912-1-1.html
【ESP32学习_1】第一个ESP32-S3例程——hello_world
https://bbs.eeworld.com.cn/thread-1210831-1-1.html
【ESP32学习_2】 wifi/getting_started例程
https://bbs.eeworld.com.cn/thread-1222285-1-1.html
探索Rust编程语言的嵌入式开发 ——基于ESP32-S3
https://bbs.eeworld.com.cn/thread-1222149-1-1.html
ESP32灯光特效——点亮WS2812炫彩灯带
https://bbs.eeworld.com.cn/thread-1222290-1-1.html
ESP-USB-Bridge将ESP32-S2/S3开发板打造成JTAG调试器,配合OpenOCD调试STM32等芯片
https://bbs.eeworld.com.cn/thread-1222173-1-1.html
基于ESP32开发接入智能家居生态HomeAssistant的智能设备
https://bbs.eeworld.com.cn/thread-1222689-1-1.html
七、其他
感谢EEWorld和Digi-Key的支持,再一次激发了对DIY和电子技术,特别是WIFI物联网方面的兴趣和爱好动力。
配置文件:test-esp32s3.yaml
#version 01 2022-10-05: vanilla board for S3
substitutions:
hostname: test-esp32s3
wifi_update_interval: "3s"
esphome:
name: $hostname
esp32:
board: esp32-s3-devkitc-1
variant: ESP32S3
framework:
type: arduino
version: 2.0.3
platform_version: 5.1.1
logger:
level: DEBUG
api:
reboot_timeout: 0s
ota:
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: True
ap:
ssid: $hostname
password: !secret esp_fallback_wifi_password
web_server:
port: 80
auth:
username: !secret web_server_user
password: !secret web_server_password
time:
platform: homeassistant
id: homeassistant_time
switch:
- platform: restart
name: $hostname restart
id: reset
- platform: gpio
pin: 1
name: $hostname switch1
id: switch1
icon: mdi:power-socket-uk
restore_mode: RESTORE_DEFAULT_OFF
sensor:
- platform: wifi_signal
name: $hostname rssi
update_interval: $wifi_update_interval
- platform: uptime
name: Uptime Sensor
id: uptime_sensor
update_interval: $wifi_update_interval
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(minutes ? to_string(minutes) + "m " : "") +
(to_string(seconds) + "s")
).c_str();
text_sensor:
- platform: wifi_info
ip_address:
name: $hostname ipaddress
mac_address:
name: $hostname mac
- platform: template
name: $hostname Uptime Human Readable
id: uptime_human
icon: mdi:clock-start
引用: mars4zhu 发表于 2022-11-3 20:09 draw.io, 可以网页版,也可以PC端。。。。很不错的,
多谢大佬指点!
引用: mars4zhu 发表于 2022-11-3 20:09 draw.io, 可以网页版,也可以PC端。。。。很不错的,
了解了一下,真的很好用,多谢大佬指点!