Mini proiect (37.1) - Integrarea ESP32-CAM in HomeAssistant cu ESPHome

Integrarea ESP32-CAM in Home Assistant cu ESPHome

Azi am continuat proiectul de săptămâna trecută mini proiectul 36, și i-am atașat cameră ESP32-CAM , care am configurat-o direct din ESPHome (vezi secțiunea cod de test). Scopul principal pentru acest proiect ar fi să-l folosesc ca și sonerie la ușa pentru ai vedea mai bine pe cei care sună sau bat la ușă.

Componente:


Schema electronica/sistem:

Am conectat toate piesele urmând schema de sistem de mai jos, unde linia punctată reprezintă conexiunea wifi între ESP32 CAM si router. Deci ar fi un ESP32-CAM care asigură alimentarea și pentru placa OLIMEXINO-85S, iar la această placă am conectat un module FS1000A de transmisie 433Mhz și un buton capacitiv TTP223. Cele două plăci au GND-ul comun și în plus am legat pinul de semnal al butonului touch și la ESP32-CAM.

Am înghesuit totul într-o carcasă printată folosind un model de pe thingiverse. Butonul de tip touch este pozitionat sub carcasă în partea de jos, iar la apăsare se va lumina în roșu.

 
Pentru a putea folosi ESPHOME in HA a trebuit să instalez addon-ul ESPHome încadrat în imaginea de a mai jos, care este disponibil în store-ul HA.
 

După instalare am pornit acest addon din sectiunea de configurare, și i-am activat vizibilitatea in sidebar:


In secțiunea de ESPHome am adăugat un nod ESP32 CAM și am instalat această configuratie .


După ce se apasă butonul Install din josul ferestrei o să se afișeze fereastra de mai jos care ne întreabă cum o să se facă flashuirea. Prima flashuire se va face manual (se va downloada un fisier .bin care o să se flashuiască folosind PlatformIO sau un alt program de flashuire) sau conectând ESP-ul direct la HA.

După alegerea metodei de scriere o să înceapă compilarea și linkeditarea.


 Dacă compilarea este cu success o să rezulte un fisier .bin care va fi uploadat pe ESP,dar doar în cazul în care acest ESP are deja o aplicație capabilă să rescrie aplicația prin intermediul OTA (Over the Air).

După finalizarea scrierii aplicației, ESP-ul o să înceapă rularea acestui program.

Dacă toate merg bine o să se poată configura imaginea de la cameră în Home overview folosind un Picture Glace Card configuration.


Iar in HA Overview o să se vadă imaginea de la cameră la un frame rate de 2.5 - 3 fps.


Odată cu configurarea conexiunii MQTT în ESPHome, apar și toate datele de la ESP32-CAM  disponibile la MQTT broker. Aici se vă și semnalele pentru apăsarea butonului și semnalul pentru controlarea flashlight-ului, care o să se aprindă atunci când se apasă butonul.


 

Cod de test:
substitutions:
devicename: Doorbellcam
esphome:
name: esp32-cam
esp32:
board: nodemcu-32s
framework:
type: arduino
# Enable logging
logger:
level: VERBOSE
# Enable Home Assistant API
api:
ota:
password: "password"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-Cam Fallback Hotspot"
password: "password"
# Example configuration entry
mqtt:
broker: 192.168.0.235
username: username
password: password
captive_portal:
esp32_camera:
name: doorbellcam
external_clock:
pin: GPIO0
frequency: 20MHz
i2c_pins:
sda: GPIO26
scl: GPIO27
data_pins: [GPIO5, GPIO18, GPIO19, GPIO21, GPIO36, GPIO39, GPIO34, GPIO35]
vsync_pin: GPIO25
href_pin: GPIO23
pixel_clock_pin: GPIO22
power_down_pin: GPIO32
# Image settings
# max_framerate: 5 fps # default: 10 fps, max 60
# idle_framerate: 0.2 fps # default: 0.1 fps - framerate for 'picture' in HA dashboard
resolution: 800x600 # default: 640x480 (VGA) - higher res requires more memory
jpeg_quality: 20 # 10 (best) to 63 (worst)
binary_sensor:
- platform: gpio
pin:
number: GPIO12
mode: INPUT_PULLUP
inverted: False
name: snap
icon: "mdi:bell"
on_press:
# - mqtt.publish:
# topic: "esphome/${devicename}/button"
# payload: "1"
then:
- output.turn_on: gpio_4
on_release:
then:
- output.turn_off: gpio_4
text_sensor:
- platform: wifi_info
ip_address:
icon: "mdi:ip"
name: ${devicename} IP
ssid:
name: ${devicename} SSID
icon: "mdi:access-point-network"
bssid:
name: ${devicename} BSSID
icon: "mdi:access-point-network"
sensor:
- platform: wifi_signal
name: "WiFi ${devicename}"
update_interval: 60s
- platform: uptime
name: "${devicename} - Uptime Sensor"
# Flashlight CHECK PIN
output:
- platform: gpio
pin: GPIO4
id: gpio_4
light:
- platform: binary
output: gpio_4
name: ${devicename} light
switch:
- platform: restart
name: "${devicename} - Restart"
id: restart_switch
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot

Documentatie proiect:

 

To Do:

  • Să salveze imagini cu cei care apasă pe sonerie, pe un server de imagini local
  • Să integrez aplicația Double take pentru recunoașterea fețelor
  • Să-i montez un alt buton cu un haptik mai normal

Afiliere eMag: 

Linkurile de la secțiunea "Componente" conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu. Mulțumesc! 

eMag Genius:
Hai și tu în Genius! Abonează-te la Genius 12 luni și primești beneficii premium și 20 lei card cadou eMAG. Profită acum! eMag Genius


Pentru întrebari și/sau consultanță tehnică vă stau la dispozitie pe blog sau pe email simedruflorin@automatic-house.ro. O seară/zi plăcută tuturor !


Etichete

Afișați mai multe

Arhiva

Afișați mai multe