『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1837|回复: 10

[技术探讨] 装饰画改装成壁画音响、人体存在、红外遥控、温湿度等

[复制链接]

146

主题

2267

帖子

7002

积分

元老级技术达人

积分
7002
金钱
4730
HASS币
30
发表于 2024-9-7 18:32:29 | 显示全部楼层 |阅读模式
本帖最后由 bugensui 于 2024-9-7 21:41 编辑

最近在玩面包板,买了个esp32开发版,存储够大,可以接很多组件,关键是免焊接,适合我这样的手残党,刚好电视柜上有副画,我就直接粘贴在画后面,这样什么都看不到。

可以实现:壁画音响(放音乐、tts播报,我主要是做tts播报,音乐就听个响)、雷达人体存在,温度和湿度监测,万能红外发射(控制电视和回音壁开关机等),以后还想接个麦克风,可以做语音控制,甚至接个rgb灯带,做识别特效用,效果如下:



微信图片_20240907213622副本.jpg

微信图片_20240907182217.jpg

总计成本大概在100元内(不含画的费用):需要esp32开发版、洞洞板2块,hlk2410C,DHT20温湿度传感器、红外发射管940nmled(发射),红外遥控接收1838 38khz(接收学习),MAX98357音频放大器,4欧3w小喇叭一个,三极管S8050 直插 NPN型(放大红外发射信号用),部分电阻。

微信图片_20240907214103.jpg

参考代码如下:

esphome:
  name: esp32kf
  friendly_name: esp32kf

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "eD***********"

ota:
  password: "6c277*******************5"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32Kf"
    password: ""

captive_portal:


i2c:
  sda: GPIO21
  scl: GPIO22
  scan: True

uart:
  id: ld2410_uart
  tx_pin: GPIO1
  rx_pin: GPIO3
#  baud_rate: 9600
  baud_rate: 256000
  parity: NONE
  stop_bits: 1

ld2410:
  uart_id: ld2410_uart #指定ld2410B使用的串口

switch:
  - platform: ld2410
    engineering_mode:
      name: "engineering mode"
    bluetooth:
      name: "control bluetooth"

sensor:
  - platform: internal_temperature
    name: "esp32 Temperature"

  - platform: uptime
    id: uptime_s
    update_interval: 5s 
  - platform: ld2410
    light:
      name: light
    moving_distance:
      name : Moving Distance
    still_distance:
      name: Still Distance
    moving_energy:
      name: Move Energy
    still_energy:
      name: Still Energy
    detection_distance:
      name: Detection Distance
  
  - platform: aht10
    variant: AHT20
    temperature:
      name: "Room Temperature"
    humidity:
      name: "Room Humidity"
    update_interval: 60s


binary_sensor:   
  - platform: status
    name: "esp32kf Status"
  - platform: ld2410
    has_target:
      name: Occupancy
      icon: mdi:home #自定义图标
    has_moving_target:
      name: Moving Target
    has_still_target:
      name: Still Target
    out_pin_presence_status:
      name: out pin presence status

number:
  - platform: ld2410
    timeout:
      name: timeout
    max_move_distance_gate:
      name: max move distance gate
    max_still_distance_gate:
      name: max still distance gate

button:
  - platform: ld2410
   #海凌科2410c恢复出厂设置  factory_reset:
    #海凌科2410c恢复出厂设置   name: "factory reset"
    restart:
      name: "restart"
    query_params:
      name: query params
  - platform: template
    name: "hisense power"
    icon: "mdi:power-standby"
    on_press:
      - remote_transmitter.transmit_lg:
          data: 0x00FDB04F
          nbits: 32 
  - platform: template
    name: "hisense voice+"
    icon: "mdi:volume-plus"
    on_press:
      - remote_transmitter.transmit_lg:
          data: 0x00FD22DD
          nbits: 32 
  - platform: template
    name: "hisense voice-"
    icon: "mdi:volume-minus"
    on_press:
      - remote_transmitter.transmit_lg:
          data: 0x00FDC23D
          nbits: 32 

text_sensor:
  - platform: version
    name: version
  - platform: wifi_info
    ip_address:
      name: "esp32kf ip"
      icon: mdi:ip
    ssid:
      name: ssid
      icon: mdi:wifi
  - platform: template
    name: "Uptime"
    lambda: |-
      int seconds = (id(uptime_s).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 { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
    icon: mdi:clock-start
    update_interval: 5s 
  

  - platform: ld2410
    version:
      name: "hlk2410c version"
    mac_address:
      name: "hlk2410c mac"

select:
  - platform: ld2410
    distance_resolution:
      name: "distance resolution"


remote_receiver:
  pin:
    number: GPIO33
    inverted: true
    mode: INPUT_PULLUP
  dump: all
  idle: 80ms
remote_transmitter:
  pin: GPIO32
  carrier_duty_percent: 50%

i2s_audio:
  i2s_lrclk_pin: GPIO26
  i2s_bclk_pin: GPIO27
# Example configuration entry

media_player:
  - platform: i2s_audio
    name: Esp32 Media Player
    dac_type: external
    i2s_dout_pin: GPIO25
    mode: mono



总结,esp32开发版内置的dac,直接接小喇叭,也可以的,但是声音很小,要贴着耳朵听,但是用上了MAX98357放大模块后,那声音就放大了几十倍,音乐能勉强凑合听,不过我主要是为了tts服务的,红外发射模块用红外发射管,发射的话,要用三极管和电阻放大发射信号,不然红外发射距离只有1米,不实用,增加后,可以在5米左右,都可以,这样改造好后,既美观,又实用,一物多用,之前家里买的zigbee温湿度传感器,有的时候不可用,有的时候更新也慢,玩的心累,换成esphome后,很省心。

QQ20240907-184026.png

评分

参与人数 2金钱 +18 收起 理由
sonic43 + 8 论坛有你更精彩!
DDDear + 10 大神666!

查看全部评分

回复

使用道具 举报

146

主题

2267

帖子

7002

积分

元老级技术达人

积分
7002
金钱
4730
HASS币
30
 楼主| 发表于 2024-9-7 18:45:26 | 显示全部楼层
视频怎么发,只能引用站位的吗,不能直接上传是吧
回复

使用道具 举报

15

主题

406

帖子

2730

积分

金牌会员

Rank: 6Rank: 6

积分
2730
金钱
2324
HASS币
0
发表于 2024-9-7 20:13:28 | 显示全部楼层
終於被你搞定了  下次可以挑戰焊在電路板上了
回复

使用道具 举报

146

主题

2267

帖子

7002

积分

元老级技术达人

积分
7002
金钱
4730
HASS币
30
 楼主| 发表于 2024-9-7 20:15:05 | 显示全部楼层
george65 发表于 2024-9-7 20:13
終於被你搞定了  下次可以挑戰焊在電路板上了

视力不行,哈哈,挑战有点大
回复

使用道具 举报

15

主题

406

帖子

2730

积分

金牌会员

Rank: 6Rank: 6

积分
2730
金钱
2324
HASS币
0
发表于 2024-9-7 20:18:23 | 显示全部楼层
bugensui 发表于 2024-9-7 20:15
视力不行,哈哈,挑战有点大

用放大鏡輔助  我也是有年紀了  
有老花眼  小零件都看不清楚了
回复

使用道具 举报

146

主题

2267

帖子

7002

积分

元老级技术达人

积分
7002
金钱
4730
HASS币
30
 楼主| 发表于 2024-9-7 20:38:52 | 显示全部楼层
george65 发表于 2024-9-7 20:18
用放大鏡輔助  我也是有年紀了  
有老花眼  小零件都看不清楚了

好好,我试试
回复

使用道具 举报

2

主题

58

帖子

395

积分

论坛技术达人

积分
395
金钱
337
HASS币
10
发表于 2024-9-8 00:44:44 | 显示全部楼层
画个接线图展示更清晰
回复

使用道具 举报

146

主题

2267

帖子

7002

积分

元老级技术达人

积分
7002
金钱
4730
HASS币
30
 楼主| 发表于 2024-9-8 02:27:46 | 显示全部楼层
ganguotu 发表于 2024-9-8 00:44
画个接线图展示更清晰

工作量大
回复

使用道具 举报

13

主题

575

帖子

3047

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

积分
3047
金钱
2467
HASS币
20
发表于 2024-9-9 08:57:07 | 显示全部楼层
牛哇,接装饰画真巧妙!接麦克风的双路i2s设置有坑,可以参考这个,https://github.com/tronikos/esphome-packages
回复

使用道具 举报

146

主题

2267

帖子

7002

积分

元老级技术达人

积分
7002
金钱
4730
HASS币
30
 楼主| 发表于 2024-9-9 10:08:57 | 显示全部楼层
DDDear 发表于 2024-9-9 08:57
牛哇,接装饰画真巧妙!接麦克风的双路i2s设置有坑,可以参考这个,https://github.com/tronikos/esphome-p ...

好的,谢谢,准备慢慢,手搓个简单的语音助手
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 21:17 , Processed in 0.136723 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表