ESPhome舵机门锁,接入HA
ESPhome舵机门锁,接入HA

ESPhome舵机门锁,接入HA

前言

租的出租屋,环境是老旧的小区,因为便宜。其中每次出门前都没有安全感,要摸一遍手机手表钥匙,哎这个摸钥匙就受不了,家里的灯都是手机开的,门也得要手机开啊,想想得有多方便。

资源

现有的esp01,s90舵机,iPhone电池,基本的都有,买电池管理模块要type-c接口和设备外壳(原打算自己画,但是手头没有打印机,淘宝上还小贵,所以买公模的壳子

方案

原打算在自己的ha里(ha的安装,如果点不开就也是还没写)用自己的mqtt服务器,arduino写一个客户端去控制舵机,后面发现了简单成熟的esphome更 有性价比,门里面是这种门锁,sg90舵机是可以拉动的(不行应该也可以调节锁的弹簧松紧),舵机拉线还可以达到自动手动俩用的目的,电源管理是type-c接口用手机充电线就可以充电,买了nfc标签(避免nfc设备在门上被损坏,一个nfc标签便宜),手机扫描nfc标签,打开链接,链接指向ha软件,自动化标签被扫描,执行开门。

操作

esphome安装教程(如果点不开就是还没写)

一,软件

先上esphome对esp01的配置文件,esphome官方

esphome:
  name: esp82661          #设备名字
  friendly_name: ESP82661          #设备友好的名字

esp8266:
  board: esp01_1m          #尽可能和自己板子类型一致

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:          #这个api在homeassistant中第一次配置要用,相当于一层密码
    key: "JCyqHo62sKWYuHNq3KO2sKWY1SLNO2sKWYuHcXOYrQ="

  services:          #这些是esphome的舵机服务接口,ha那边调用服务的值会发到这里,在这里除100后给到舵机的id
    - service: control_servo
      variables:
        level: float
      then:
        - servo.write:
            id: my_servo
            level: !lambda 'return level / 100.0;'          #return livel是回来的值

ota:          #这里是ota无线升级固件,打开并且设置密码,注意,ip必须设置静态ip否则这种升级会报错
  safe_mode: true
  password: baivbaipass


wifi:
  ssid: 02_2.4          #只能接2.4g的WiFi
  password: 74849328          #哈哈,随便写的,这里写你自己的WiFi账密
  manual_ip:          #相关静态ip
    static_ip: 192.168.0.222
    gateway: 192.168.0.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:          #就是说万一没连上WiFi还可以手机连接这个热点配网
    ssid: "Esp82661 Fallback Hotspot"
    password: "FYWHjrTfX1bp"

captive_portal:
    
light:          #esp01的灯不能浪费吧,加个灯玩
  - platform: status_led          #类型,人家的类型就叫这,咱改下面的name就行
    name: "lock state"
    pin: GPIO2          #我这个版本就不认识D2,哈哈
  
servo:          #舵机的意思,舵机的id,输出的模式
  - id: my_servo
    output: pwm_output

# Example output platform
# On ESP32, use ledc output
output:          #输出的模式的具体配置
  - platform: esp8266_pwm
    id: pwm_output
    pin: GPIO0
    frequency: 50 Hz          #源于sg90舵机的特性

esphome的配置文件就这样,文件管理到本机esp的项目文件夹esp_project,在路径输入cmd,输入指令esphome dashboard demo1/,这里的demo1是你esp项目文件夹下具体的项目文件夹名字,

D:/
    all_project
        esp_project
            demo1
            demo2
            ...

打开本机的localhost:6052端口,右下角新建,会提示给你一个在线烧录网站,关掉,然后填新项目的名字,选择项目的芯片类型……,填完配置文件,项目右下角里有编译(安装),编译的第三个是有线烧录。

第一次是要有线烧录的,第一次用esphome的话,需要等待很长时间,烧录进去,联网的时候esp的灯会闪,然后在ha的设备里看到内网发现设备,添加的时候会问你要配置文件里面的api密钥,添加成功,可以控制状态灯,看看正常不。

二,硬件

esp01的供电是3.3v,电池管理模块输出是5v(这里注意一定要买充电升压一体的,如果没有升压,舵机在欠压状态下会一直在-90到90度抽搐,对于门锁来说这是极度危险的),所以还要准备一个1117的线性降压芯片,舵机供电也是需要5v,但是esp01的3.3v控制信号可以驱动舵机,我忘了续买洞洞板了,所以是3D焊接(焊武帝上线),记得给1117配电容,电线拉通就好,不要长的离谱了。

壳子对门的固定,和舵机在壳子里的固定,一定要用结构固定,不要服帖胶水,我这里是木门用自攻螺丝,在壳子上打孔,舵机加上支撑物,中间塞热熔胶,再用轧带绑到壳子上的,开槽的时候最好用手电转,不过还好我买的这个壳子用刀削也不太费劲(这里要注意,电源插口,大多数充电线的头子不太长,开槽要把插头塑料部分大小也开进去)其他不受力的(在壳子上划出划痕增加热熔胶附着力)用热熔胶固定就可。

三,设自动化

因为是门锁,就不在ha主页设控制组件了,ha配置里新建标签,给标签配置自动化,写入现实中的nfc标签,手机nfc扫描标签,自动化调用服务,实现开门,这个舵机控制在ha里并不支持,esphome接入ha也不支持实体,所以只能是用服务去控制,我设置的舵机(值在-100到100)滑到远端,拉开锁,等待10s,舵机划回近端。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

正在获取,请稍候...
00:00/00:00