MENU

使用ESPHome接入各种传感器

May 5, 2019 • Read: 660 • 技术,Home Assistant阅读设置

最开始接入这些传感器是使用ESPEasy的,但后来发现莫名其妙的死机,一直没有找到原因,尝试更换MQTT和修改无线网信道也没有解决,我推断可能是我发送的数据量过大导致模块无法响应(一秒钟大概发送三四条数据),后来就接入一个传感器(一秒钟发送一条数据)但这样还是维持不到几天又死机了,不得已就放弃了ESPEasy,于是就有了下面的ESPHome,这次我没有使用MQTT而是直接使用API。

ESPHome是为ESP8266 / ESP32板创建自定义固件的完美解决方案。
人体传感器、光线传感器和超声波传感器在自动化中起到了比较重要的作用,通过人体传感器的状态切换可以执行一系列的自动化,比如开关灯,通过光线传感器的具体数值范围也可以开关灯。
言归正传

准备:

ESP8266 开发板
BH1750
HC-SR04
DHT11
人体传感器

首先安装ESPHome,ESPHome的安装环境需要依赖Python2.7,对于Linux和Mac用户就比较方便了,只需要几条命令即可

#安装tornado
sudo pip install tornado==5.1.1
#安装esphome
sudo pip2 install esphome
#开启esphome的web访问
esphome esphome_config/ dashboard

打开浏览器输入本地IP:6052dashboard.png
点击+号开始添加配置
第一步输入配置名称1.png
第二步选择合适的设备类型2.png
第三步输入wifi名称和密码4.png
第四步点击submit提交,选择实际的USB口然后点击下面的upload就会自动开始下载依赖打包编译上传固件,当然也可以先编译下载下来然后用Flashesp8266或者esptool等工具上传5.png
6.png
点击EDIT写入相关传感器配置7.png

esphome:
  name: chuangtou
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "######"
  password: "########"
  manual_ip:
    static_ip: 192.168.123.56
    gateway: 192.168.123.1
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: 'admin'

ota:
  password: 'admin'

i2c:
  sda: 4
  scl: 5
  scan: True
  
sensor:
  - platform: bh1750
    name: "lux"
    address: 0x23
    update_interval: 1s
    
  - platform: ultrasonic
    trigger_pin: D7
    echo_pin: D6
    name: "sr04"
    update_interval: 1s
    
    
  - platform: dht
    pin: D5
    temperature:
      name: "tem"
    humidity:
      name: "hum"
    update_interval: 1s
    model: DHT11
    
    
binary_sensor:
  - platform: gpio
    pin: D3
    name: "ctrenti"
    device_class: motion
    
  - platform: status
    name: "esp1_status"

接线:
BH1750:
VCC——————3V
SCL——————D1
SDA——————D2
GND——————GND

HC-SR04:
VCC——————3V
Trig—————D7
Echo—————D6
GND——————GND

DHT11:
VCC——————3V
DATA—————D5
GND——————GND

人体传感器:
VCC——————VU
OUT—————D3
GND——————GND

在HomeAssistant集成里配置ESPHonme9.png10.png

效果图8.jpg11.pnghuanjing.png