pdf-icon

AtomS3R-M12 Home Assistant 集成

简介

AtomS3R-M12 是一款紧凑型物联网可编程控制器(24×24×22.1mm),配备 M12 3MP OV3660 广角摄像头。采用 ESP32-S3-PICO-1-N8R8(Wi-Fi、8MB Flash + 8MB PSRAM)驱动,功能包括 5V→3.3V 电源电路、BMM150 地磁传感器和 BMI270 六轴传感器、免驱 USB 摄像头、红外控制、增强型 3D 天线以保证连接稳定性、USB-C 用于电源/固件升级、HY2.0-4P 扩展端口和六个 GPIO/电源引脚,方便扩展——理想用于物联网监控和教育开发。

查看 ESPHome 上的最新配置示例

准备工作

  • Home Assistant 主机
  • 在 Home Assistant 中安装并启用 ESPHome Builder
提示
本教程使用 ESPHome 2025.12.5 编译和上传固件。如果遇到编译/上传问题,请考虑切换 ESPHome 版本。

步骤 1. 创建新设备

  • 点击右下角的绿色按钮创建设备。

步骤 2. 创建设备名称

  • 点击 CONTINUE

  • 点击 New Device Setup

  • 输入设备名称,然后点击 NEXT

步骤 3. 选择设备类型

  • 点击 ESP32-S3

  • 点击 SKIP

步骤 4. 开始编辑 YAML 文件

  • 点击 EDIT,我们可以通过 YAML 文件自定义设备功能。

设备设置

以下是代码的核心部分。下面提供了相关的参考和说明。

基本信息和启动操作

esphome:
  name: atoms3r-m12
  friendly_name: AtomS3R-M12
  on_boot:
    priority: 800
    then:
      - lambda: |-
          gpio_set_direction(GPIO_NUM_18, GPIO_MODE_OUTPUT);
          gpio_set_level(GPIO_NUM_18, 0);  
          vTaskDelay(pdMS_TO_TICKS(1500)); 
注意
由于硬件电路设计,AtomS3R-M12 需要在上电后将 GPIO18 拉低,以启用正确的 I²C 通信。 如果在 I²C 总线初始化或访问前没有将 GPIO18 设置为低电平,I²C 通信可能会失败。 因此,GPIO18 控制必须分配最高优先级,以确保在系统启动的早期阶段被拉低。

PSRAM 配置

psram:
  mode: octal
  speed: 80MHz 

外部组件

external_components:
  - source: github://DennisGaida/m5stack-atoms3r-components/components@main
    components: [bmi270_bmm150]
注意
由于 ESPHome 还没有提供官方的 BMI270 / BMM150 组件,该项目使用了由社区开发者贡献的第三方组件库。 我们向作者的贡献表示衷心感谢。

I2C 总线配置

  • 添加 I2C 组件

    i2c:
    - id: BMI270_150
      sda: GPIO45
      scl: GPIO0
    - id: camera_i2c
      sda: GPIO12
      scl: GPIO9
      frequency: 100kHz  
      timeout: 10ms

    传感器配置

  • 添加 Sensor 组件

sensor:
  - platform: bmi270_bmm150
    i2c_id: BMI270_150
    address: 0x68
    update_interval: 3s
    acceleration_x:
      name: "BMI270 Accel X"
    acceleration_y:
      name: "BMI270 Accel Y"
    acceleration_z:
      name: "BMI270 Accel Z"
    gyroscope_x:
      name: "BMI270 Gyro X"
    gyroscope_y:
      name: "BMI270 Gyro Y"
    gyroscope_z:
      name: "BMI270 Gyro Z"
    temperature:
      name: "BMI270 Temperature" 

摄像头配置

esp32_camera:
  name: "OV3660 Camera"
  external_clock:
    pin: GPIO21
    frequency: 20MHz
  i2c_id: camera_i2c
  data_pins: [GPIO3, GPIO42, GPIO46, GPIO48, GPIO4, GPIO17, GPIO11, GPIO13]
  vsync_pin: GPIO10
  href_pin: GPIO14
  pixel_clock_pin: GPIO40
  resolution: 640X480
  jpeg_quality: 10

固件构建

  • 再次点击 INSTALL 来刷写固件并等待完成。

  • 进行更改后,点击右上角的 SAVEINSTALL,然后在弹出窗口中选择 Manual Download

  • 固件编译完成后,点击 Download 并选择 Factory format(Previously Modern)

提示
点击 AtomS3R-M12 查看完整的示例配置。首次构建可能需要一些时间,具体取决于 Home Assistant 主机的性能和网络质量。

固件上传

  • 通过 USB Type‑C 数据线将设备连接到主机。打开 ESPHome Web 并点击 CONNECT 以连接到设备。

  • 定位相应的串口号

  • 点击 INSTALL

  • 选择之前编译的固件上传。

提示
请注意,下载完成后,设备必须重置。

Home Assistant 集成

  • 点击 Settings -> Device & services 检查设备。

  • 我们可以在 Discover 部分找到相应的设备。

  • 添加设备后,数据将正确显示。

  • 最后,我们将这些实体添加到 Dashboard,以下是其显示结果。

On This Page