[作品提交] 采用 ESP32-S3开发板DIY一套强大的HomeAssistant智能家居系统

mars4zhu   2022-11-3 10:21 楼主

 

采用 ESP32-S3开发板DIY一套强大的HomeAssistant智能家居系统

作者:  mars4zhu      

一、作品简介(100-200字)
(设计名称、作品照片、功能介绍等。)

HomeAssistant是当前最火热的DIY智能家居的开源系统 ,可以通过WIFI、蓝牙、Zigbee、红外等各种方式控制各类家具设备;ESP32-S3是高性能无线MCU,具备WIFI、BLE等无线通讯方式,专为AIoT市场打造;本作品用ESP32-S3接入HomeAssistant智能家居系统,搭建一套灵活便利的智能控制家电设备。

image-20221103102041-1.png  

采用手机上的HomeAssistant应用,即可将采用ESP32-S3开发板DIY的智能设备接入到HomeAssistant,各类控制、传感器信息综合、以及智能家居系统的场景、自动化集成,非常方便实现我们自己的智能家居系统。

 

二、系统框图(图文结合) image-20221103102041-2.png  

其中

HomeAssistant中控系统——树莓派4b

HomeAssistant智能设备——ESP32-S3

HomeAssistant用户界面——网页端+手机App

 

三、各部分功能说明(图文结合)

HomeAssistant中控系统采用树莓派4b,按照HomeAssistant的安装流程即可。

image-20221103102041-3.png  

网页端/手机主要用于配置和监控,配置界面如下图左1、左2,运行界面如下图左3:

image-20221103102041-4.png  

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物联网方面的兴趣和爱好动力。

 

 

 

 

回复评论 (5)

配置文件: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

 

test-esp32s3.yaml (2.17 KB)
(下载次数: 0, 2022-11-3 10:24 上传)
点赞  2022-11-3 10:25
我想知道,那个图是用什么工具画出来的,我一直想画,没找到方法。
点赞  2022-11-3 12:30
引用: lugl4313820 发表于 2022-11-3 12:30 我想知道,那个图是用什么工具画出来的,我一直想画,没找到方法。

draw.io,

 

可以网页版,也可以PC端。。。。很不错的,

点赞  2022-11-3 20:09
引用: mars4zhu 发表于 2022-11-3 20:09 draw.io,   可以网页版,也可以PC端。。。。很不错的,

多谢大佬指点!

点赞  2022-11-3 20:51
引用: mars4zhu 发表于 2022-11-3 20:09 draw.io,   可以网页版,也可以PC端。。。。很不错的,

了解了一下,真的很好用,多谢大佬指点!

点赞  2022-11-3 21:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复