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

标题: 装饰画改装成壁画音响、人体存在、红外遥控、温湿度等 [打印本页]

作者: bugensui    时间: 2024-9-7 18:32
标题: 装饰画改装成壁画音响、人体存在、红外遥控、温湿度等
本帖最后由 bugensui 于 2024-9-7 21:41 编辑

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

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



[attach]63289[/attach]

[attach]63281[/attach]

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

[attach]63290[/attach]

参考代码如下:

  1. esphome:
  2.   name: esp32kf
  3.   friendly_name: esp32kf

  4. esp32:
  5.   board: esp32dev
  6.   framework:
  7.     type: arduino

  8. # Enable logging
  9. logger:

  10. # Enable Home Assistant API
  11. api:
  12.   encryption:
  13.     key: "eD***********"

  14. ota:
  15.   password: "6c277*******************5"

  16. wifi:
  17.   ssid: !secret wifi_ssid
  18.   password: !secret wifi_password

  19.   # Enable fallback hotspot (captive portal) in case wifi connection fails
  20.   ap:
  21.     ssid: "Esp32Kf"
  22.     password: ""

  23. captive_portal:


  24. i2c:
  25.   sda: GPIO21
  26.   scl: GPIO22
  27.   scan: True

  28. uart:
  29.   id: ld2410_uart
  30.   tx_pin: GPIO1
  31.   rx_pin: GPIO3
  32. #  baud_rate: 9600
  33.   baud_rate: 256000
  34.   parity: NONE
  35.   stop_bits: 1

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

  38. switch:
  39.   - platform: ld2410
  40.     engineering_mode:
  41.       name: "engineering mode"
  42.     bluetooth:
  43.       name: "control bluetooth"

  44. sensor:
  45.   - platform: internal_temperature
  46.     name: "esp32 Temperature"

  47.   - platform: uptime
  48.     id: uptime_s
  49.     update_interval: 5s
  50.   - platform: ld2410
  51.     light:
  52.       name: light
  53.     moving_distance:
  54.       name : Moving Distance
  55.     still_distance:
  56.       name: Still Distance
  57.     moving_energy:
  58.       name: Move Energy
  59.     still_energy:
  60.       name: Still Energy
  61.     detection_distance:
  62.       name: Detection Distance
  63.   
  64.   - platform: aht10
  65.     variant: AHT20
  66.     temperature:
  67.       name: "Room Temperature"
  68.     humidity:
  69.       name: "Room Humidity"
  70.     update_interval: 60s


  71. binary_sensor:   
  72.   - platform: status
  73.     name: "esp32kf Status"
  74.   - platform: ld2410
  75.     has_target:
  76.       name: Occupancy
  77.       icon: mdi:home #自定义图标
  78.     has_moving_target:
  79.       name: Moving Target
  80.     has_still_target:
  81.       name: Still Target
  82.     out_pin_presence_status:
  83.       name: out pin presence status

  84. number:
  85.   - platform: ld2410
  86.     timeout:
  87.       name: timeout
  88.     max_move_distance_gate:
  89.       name: max move distance gate
  90.     max_still_distance_gate:
  91.       name: max still distance gate

  92. button:
  93.   - platform: ld2410
  94.    #海凌科2410c恢复出厂设置  factory_reset:
  95.     #海凌科2410c恢复出厂设置   name: "factory reset"
  96.     restart:
  97.       name: "restart"
  98.     query_params:
  99.       name: query params
  100.   - platform: template
  101.     name: "hisense power"
  102.     icon: "mdi:power-standby"
  103.     on_press:
  104.       - remote_transmitter.transmit_lg:
  105.           data: 0x00FDB04F
  106.           nbits: 32
  107.   - platform: template
  108.     name: "hisense voice+"
  109.     icon: "mdi:volume-plus"
  110.     on_press:
  111.       - remote_transmitter.transmit_lg:
  112.           data: 0x00FD22DD
  113.           nbits: 32
  114.   - platform: template
  115.     name: "hisense voice-"
  116.     icon: "mdi:volume-minus"
  117.     on_press:
  118.       - remote_transmitter.transmit_lg:
  119.           data: 0x00FDC23D
  120.           nbits: 32

  121. text_sensor:
  122.   - platform: version
  123.     name: version
  124.   - platform: wifi_info
  125.     ip_address:
  126.       name: "esp32kf ip"
  127.       icon: mdi:ip
  128.     ssid:
  129.       name: ssid
  130.       icon: mdi:wifi
  131.   - platform: template
  132.     name: "Uptime"
  133.     lambda: |-
  134.       int seconds = (id(uptime_s).state);
  135.       int days = seconds / (24 * 3600);
  136.       seconds = seconds % (24 * 3600);
  137.       int hours = seconds / 3600;
  138.       seconds = seconds % 3600;
  139.       int minutes = seconds /  60;
  140.       seconds = seconds % 60;
  141.       return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
  142.     icon: mdi:clock-start
  143.     update_interval: 5s
  144.   

  145.   - platform: ld2410
  146.     version:
  147.       name: "hlk2410c version"
  148.     mac_address:
  149.       name: "hlk2410c mac"

  150. select:
  151.   - platform: ld2410
  152.     distance_resolution:
  153.       name: "distance resolution"


  154. remote_receiver:
  155.   pin:
  156.     number: GPIO33
  157.     inverted: true
  158.     mode: INPUT_PULLUP
  159.   dump: all
  160.   idle: 80ms
  161. remote_transmitter:
  162.   pin: GPIO32
  163.   carrier_duty_percent: 50%

  164. i2s_audio:
  165.   i2s_lrclk_pin: GPIO26
  166.   i2s_bclk_pin: GPIO27
  167. # Example configuration entry

  168. media_player:
  169.   - platform: i2s_audio
  170.     name: Esp32 Media Player
  171.     dac_type: external
  172.     i2s_dout_pin: GPIO25
  173.     mode: mono

复制代码


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

[attach]63282[/attach]

作者: bugensui    时间: 2024-9-7 18:45
视频怎么发,只能引用站位的吗,不能直接上传是吧
作者: george65    时间: 2024-9-7 20:13
終於被你搞定了  下次可以挑戰焊在電路板上了
作者: bugensui    时间: 2024-9-7 20:15
george65 发表于 2024-9-7 20:13
終於被你搞定了  下次可以挑戰焊在電路板上了

视力不行,哈哈,挑战有点大
作者: george65    时间: 2024-9-7 20:18
bugensui 发表于 2024-9-7 20:15
视力不行,哈哈,挑战有点大

用放大鏡輔助  我也是有年紀了  
有老花眼  小零件都看不清楚了
作者: bugensui    时间: 2024-9-7 20:38
george65 发表于 2024-9-7 20:18
用放大鏡輔助  我也是有年紀了  
有老花眼  小零件都看不清楚了

好好,我试试
作者: ganguotu    时间: 2024-9-8 00:44
画个接线图展示更清晰
作者: bugensui    时间: 2024-9-8 02:27
ganguotu 发表于 2024-9-8 00:44
画个接线图展示更清晰

工作量大
作者: DDDear    时间: 2024-9-9 08:57
牛哇,接装饰画真巧妙!接麦克风的双路i2s设置有坑,可以参考这个,https://github.com/tronikos/esphome-packages
作者: bugensui    时间: 2024-9-9 10:08
DDDear 发表于 2024-9-9 08:57
牛哇,接装饰画真巧妙!接麦克风的双路i2s设置有坑,可以参考这个,https://github.com/tronikos/esphome-p ...

好的,谢谢,准备慢慢,手搓个简单的语音助手
作者: hamtalk    时间: 2024-9-16 12:52
这个思路不错。我是把坏的闹钟给拆了,装进去





欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5