pdf-icon

TimerCamera 系列 Home Assistant 集成

适用范围
本教程适用于 TimerCamera (U082), TimerCamera-X (U082-X), TimerCamera-F (U082-F)

TimerCamera 系列产品是基于 ESP32-D0WDQ6-V3 的摄像头模块,板载 8M PSRAM,采用 3MP 的摄像头 (OV3660),DFOV 66.5° (TimerCamera-F 是 120°),最高可实现拍摄 2048x1536 分辨率的照片。带有状态指示灯与 RESET 按键,主打超低功耗设计,通过 RTC ( BM8563 ) 可实现定时休眠与唤醒。

在 ESPHome 上查看最新配置范例

准备工作

提示
本教程中,套件在 ESPHome 2025.12.3 下编译和上传,如果遇见编译/上传问题,考虑将ESPHome切换至此版本,在此处以 TimerCamera-X 作为范例配置,除去部分型号摄像头不一致,其余硬件配置一致,可根据自己的具体型号修改诸如名称等信息

打开 ESPHome Builder,点击右下角点击 NEW DEVICE,创建一个新设备。

弹窗点击CONTINUE

选择New Device Setup,创建新的配置文件

为新的配置文件命名

选择设备类型,此处保持默认配置,选择ESP32即可

复制 Encryption Key 备用,点击SKIP跳过

配置设备

在生成的配置文件卡片下点击EDIT进行编辑:

打开配置文件进行修改

psram:
  mode: quad
  speed: 80MHz
yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

i2c:
  - id: bsp_i2c
    sda: GPIO12
    scl: GPIO14
  - id: cam_i2c
    sda: GPIO25
    scl: GPIO23

esp32_camera:
  name: OV3660 Camera
  external_clock:
    pin: GPIO27
    frequency: 20MHz
  i2c_id: cam_i2c
  data_pins: [GPIO32, GPIO35, GPIO34, GPIO5, GPIO39, GPIO18, GPIO36, GPIO19]
  vsync_pin: GPIO22
  href_pin: GPIO26
  pixel_clock_pin: GPIO21
  reset_pin: GPIO15
  resolution: 640x480
  jpeg_quality: 10

此处采用的默认图像配置,如需更改配置可以参考 ESPHome 提供的配置范例

esphome:
  name: timercamera-x
  friendly_name: timercamera-x
  ...
  on_boot:
    then:
      # read the RTC time once when the system boots
      bm8563.read_time:

...
time:
  - platform: bm8563
    i2c_id: bsp_i2c
    # repeated synchronization is not necessary unless the external RTC
    # is much more accurate than the internal clock
    update_interval: never
  - platform: homeassistant
    # instead try to synchronize via network repeatedly ...
    on_time_sync:
      then:
        # ... and update the RTC when the synchronization was successful
        bm8563.write_time:

系统会在启动的时候读取 RTC 中的时间信息,当连接到 Home Assistant 后,会自动同步 Home Assistant 的时间信息

  • 配置 LED
yaml
1 2 3 4 5 6 7 8 9 10
output:
  - platform: ledc
    id: blue_led
    pin: GPIO2

light:
  - platform: monochromatic
    output: blue_led
    name: "Blue LED"
    restore_mode: RESTORE_DEFAULT_ON

蓝色 LED 会默认在设备上电后打开,可以在 Home Assistant 里面控制 LED 开关和亮度

  • 使用电池
yaml
1 2 3 4 5 6
switch:
  - platform: gpio
    id: bat_hold_pin
    name: "Battery Hold Pin"
    pin: GPIO33
    restore_mode: RESTORE_DEFAULT_ON

此处 GPIO33 用于控制是否使用电池,开启并且保持拉高即可让电池工作,默认情况会一直保持拉高;如果关闭此开关,没有外接电源的情况下设备会关机

  • 监测电池电量信息

TimerCamera-X 和 TimerCamera-F 上预装了电池,可以供过获取 GPIO38 的 ADC 读数来得到电池电压信息,转换后得到大致电池电量信息:

yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
sensor:
  - platform: adc
    pin: GPIO38
    attenuation: 12dB
    name: "Battery Voltage"
    id: battery_voltage
    update_interval: 10s
    filters:
      - multiply: 1.51

  - platform: template
    id: battery_percent
    name: "Battery Percentage"
    unit_of_measurement: "%"
    accuracy_decimals: 0
    lambda: |-
      float voltage = id(battery_voltage).state;
      float min_voltage = 3.350f;
      float max_voltage = 4.150f;
    
      if (voltage <= min_voltage) return 0.0;
      if (voltage >= max_voltage) return 100.0;
      
      float percent = ((voltage - min_voltage) / (max_voltage - min_voltage)) * 100.0;
      return percent;
注意
电池电量仅在未接入外部 USB 供电,以及保持 BAT_HOLD_Pin (GPIO33)为高才能监测有效值;未保持 HOLD 状态将不会采用电池供电, ADC 读数会很低 (< 1 V);如果接入了外部 USB 供电以及保持了 HOLD 状态,这里的电压信息是充电电压

修改完成后,点击右上角 SAVEINSTALL, 在弹出的选项中选择 Manual Download

提示:
点击 TimerCamera-X/TimerCamera-F 查看完整配置文件范例; 首次编译可能会需要较长时间,编译时间与 Home Assistant 主机性能和网络质量相关。

编译完成后,点击 Download 按钮,选择 Factory Format 下载固件

上传固件

将套件通过 USB Type-C 数据线连接至主机,打开ESPHome Web,点击CONNECT连接设备

之后点击INSTALL,选择之前编译的固件进行上传

再次点击INSTALL进行烧录,等待烧录完成

添加设备至 Home Assistant

完成固件烧录后,设备开机将自动进行 Wi-Fi 连接。导航至 Settings->Device & services 查看设备情况。点击 Add 即可添加设备至 Home Assistant

Dashboard示例:

点击相机实体,可以查看实时预览画面

TimerCamera (TimerCamera-X) 如左, TimerCamera-F 由于使用的是鱼眼镜头,所以呈现效果如右图所示

On This Page