Bob
Juillet 7, 2022, 11:59
1
Bonjour,
Je tente d’installer une ESP32-CAM dont voici le modèle:
Adaptateur FT232RL:
Le FT232RL FTDI est un convertisseur de RS232 vers USB et est adapté pour une utilisation directe sur un microcontrôleur. Spécifications: Aucun chauffeur requis. Prend en charge 3.3V et 5V Jeu de puces: FT232RL Définition du code PIN: RXD, TX, VCC,...
10,99€
Pour info j’ai déjà un ESP32 avec capteur Température / humidité qui fonctionne bien.
L’installation depuis mon PC via le câble USB vers FT232RL semble bien se passer et l’ESP32-CAM est online:
Mais je vois une erreur dans les logs :
INFO Reading configuration /config/esphome/esp32camsalon.yaml...
WARNING GPIO15 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from esp32camsalon.local using esphome API
INFO Successfully connected to esp32camsalon.local
[13:55:31][I][app:102]: ESPHome version 2022.6.2 compiled on Jul 7 2022, 13:28:43
[13:55:31][C][wifi:491]: WiFi:
[13:55:31][C][wifi:353]: Local MAC: 0C:B8:15:FE:DF:4C
[13:55:31][C][wifi:354]: SSID: [redacted]
[13:55:31][C][wifi:355]: IP Address: 192.168.1.8
[13:55:31][C][wifi:357]: BSSID: [redacted]
[13:55:31][C][wifi:358]: Hostname: 'esp32camsalon'
[13:55:31][C][wifi:360]: Signal strength: -56 dB ▂▄▆█
[13:55:31][C][wifi:364]: Channel: 11
[13:55:31][C][wifi:365]: Subnet: 255.255.255.0
[13:55:31][C][wifi:366]: Gateway: 192.168.1.254
[13:55:31][C][wifi:367]: DNS1: 192.168.1.254
[13:55:31][C][wifi:368]: DNS2: 0.0.0.0
[13:55:31][C][logger:275]: Logger:
[13:55:31][C][logger:276]: Level: DEBUG
[13:55:31][C][logger:277]: Log Baud Rate: 115200
[13:55:31][C][logger:278]: Hardware UART: UART0
[13:55:31][C][esp32_camera:048]: ESP32 Camera:
[13:55:31][C][esp32_camera:049]: Name: My Camera
[13:55:31][C][esp32_camera:050]: Internal: NO
[13:55:31][C][esp32_camera:052]: Data Pins: D0:17 D1:35 D2:34 D3:5 D4:39 D5:18 D6:36 D7:19
[13:55:31][C][esp32_camera:053]: VSYNC Pin: 22
[13:55:31][C][esp32_camera:054]: HREF Pin: 26
[13:55:31][C][esp32_camera:055]: Pixel Clock Pin: 21
[13:55:31][C][esp32_camera:056]: External Clock: Pin:27 Frequency:20000000
[13:55:31][C][esp32_camera:057]: I2C Pins: SDA:25 SCL:23
[13:55:31][C][esp32_camera:058]: Reset Pin: 15
[13:55:31][C][esp32_camera:076]: Resolution: 640x480 (VGA)
[13:55:31][E][esp32_camera:095]: Setup Failed: ERROR
[13:55:31][C][psram:020]: PSRAM:
[13:55:31][C][psram:021]: Available: YES
[13:55:31][C][captive_portal:088]: Captive Portal:
[13:55:31][C][mdns:084]: mDNS:
[13:55:31][C][mdns:085]: Hostname: esp32camsalon
[13:55:31][C][ota:085]: Over-The-Air Updates:
[13:55:31][C][ota:086]: Address: esp32camsalon.local:3232
[13:55:31][C][ota:089]: Using Password.
[13:55:31][C][api:138]: API Server:
[13:55:31][C][api:139]: Address: esp32camsalon.local:6053
[13:55:31][C][api:141]: Using noise encryption: YES
[esp32_camera:095]: Setup Failed: ERROR
Mais dans mon board elle est inactive :
Une petite idée ?
Merci,
Bob
Voici mon fichier yaml:
esphome:
name: esp32camsalon
esp32:
board: esp32dev
# framework:
# type: arduino
#esphome:
# name: esp32camsalon
# platform: ESP32
# board: nodemcu-32s
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: "fl4CJu/nFmJf8sia8w7ImTQd5txxxxxxxxxxW5rJDM8="
ota:
password: "2746018d727b50xxxxxxxxxx001e548d"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32Camsalon Fallback Hotspot"
password: "DexxxxxxQ96T"
captive_portal:
# Example configuration entry
esp32_camera:
name: My Camera
external_clock:
pin: GPIO27
frequency: 20MHz
i2c_pins:
sda: GPIO25
scl: GPIO23
data_pins: [GPIO17, 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
Ma configuration
System Health
version
core-2022.6.7
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.9.12
os_name
Linux
os_version
5.15.32-v8
arch
aarch64
timezone
Europe/Paris
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
5000
Installed Version
1.25.5
Stage
running
Available Repositories
1074
Downloaded Repositories
19
Home Assistant Cloud
logged_in
false
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 8.2
update_channel
stable
supervisor_version
supervisor-2022.06.2
agent_version
1.2.1
docker_version
20.10.14
disk_total
457.7 GB
disk_used
16.1 GB
healthy
true
supported
true
board
rpi4-64
supervisor_api
ok
version_api
ok
installed_addons
deCONZ (6.14.2), Let’s Encrypt (4.12.5), File editor (5.3.3), Samba share (10.0.0), Network UPS Tools (0.11.0), Spotify Connect (0.12.1), Terminal & SSH (9.4.0), Portainer (2.0.0), InfluxDB (4.5.0), Grafana (7.6.0), Node-RED (12.0.2), Studio Code Server (5.1.2), ESPHome (2022.6.2)
Dashboards
dashboards
2
resources
13
views
10
mode
storage
Recorder
oldest_recorder_run
29 juin 2022 à 18:46
current_recorder_run
29 juin 2022 à 20:46
estimated_db_size
232.63 MiB
database_engine
sqlite
database_version
3.34.1
Spotify
api_endpoint_reachable
ok
jrvrcd
Juillet 7, 2022, 1:04
2
Bonjour
j’ai un modele de camera identique
il s’agit du modele AI-thinker
Le code a utiliser est le suivant
Configuration for Ai-Thinker Camera
Example configuration entry
esp32_camera:
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
le code que tu as utilisé correspond a la configuration d’un M5-stack
qui ressemble plus a cela
Bob
Juillet 7, 2022, 1:15
3
Merci, je testerai ce soir, Ai-Thinker Camera était la première conf que j’avais testé mais depuis j’ai tenté aussi plusieurs conf pour le début de fichier yaml et je n’étais pas revenu en arrière:
esphome:
name: esp32camsalon
esp32:
board: esp32dev
Bob
Bob
Juillet 7, 2022, 5:24
4
Pas mieux @jrvrcd
Pourrais-tu me donner le .yaml complet que tu utilises stp, j’ai toujours le même souci.
Le yaml :
esphome:
name: espcam32a
esp32:
board: esp32dev
# framework:
# type: arduino
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: "makey"
ota:
password: "monpwd"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Espcam32A Fallback Hotspot"
password: "monpassword"
captive_portal:
esp32_camera:
name: CameraSalon
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
resolution: 640x480
jpeg_quality: 10
jrvrcd
Juillet 7, 2022, 5:46
5
Hello
comme demandé
esphome:
name: espcam001
platform: ESP32
board: esp32cam
wifi:
networks:
- ssid: "Livebox-abcdef"
password: "password"
manual_ip:
static_ip: 192.168.1.xyz
gateway: 192.168.1.254
subnet: 255.255.255.0
dns1: 192.168.1.254
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Espcam 001 Fallback Hotspot"
password: "fallback"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
switch:
- platform: restart
name: "Espcam_001 reboot"
time:
- platform: sntp
id: sntp_time
timezone: Europe/Paris
web_server:
port: 80
binary_sensor:
- platform: status
name: "Espcam 001 Status"
sensor:
- platform: uptime
id: uptime_seconds
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
internal: True # Hide to HA
- platform: wifi_signal
name: "EspCam 001 WiFi Signal Sensor"
update_interval: 60s
text_sensor:
- platform: template
name: espcam_001 - Uptime
update_interval: 60s
icon: mdi:clock-start
lambda: |-
int seconds = (id(uptime_seconds).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else {
return { (String(seconds) +"s").c_str() };
}
esp32_camera:
name: ESPCam_001
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
test_pattern: false
vertical_flip: false
horizontal_mirror: true
resolution: 640x480
max_framerate: 10 fps
idle_framerate: 0.1 fps
output:
# Register the LED as a dimmable output ....
- platform: ledc
id: cam001_led
pin: GPIO4
channel: 2
inverted: false
light:
# ... and then make a light out of it.
- platform: monochromatic
name: "Espcam 001 LED"
output: cam001_led
esp32_camera_web_server:
- port: 8080
mode: stream
1 « J'aime »
Bob
Juillet 7, 2022, 6:25
6
Super @jrvrcd , merci j’ai l’image
Juste une autre question sur le bloc text_sensor: que je n’ai pas mis dans mon .yaml, il sert à quoi ?
Merci encore
Bob
Un horodatage je pense : temps d’uptime au format D H M S
Bob
Juillet 7, 2022, 6:49
8
Merci c’est top, je regarderai plus tard tous les paramètres possibles.
La carte FT232RL ne sert que la première fois ? Une fois le module en wifi on peut le flasher sans ?
Sinon une dernière question pour ce sujet, je vois un onglet « visit »
Qui pointe sur « http://espcam32a.local/ » mais inaccessible, j’ai la vidéo dans le board donc pas gênant…
Reste à regarder les détections de personnes ou de « chose » mais déjà très content
Merci beaucoup
Bob
jrvrcd
Juillet 7, 2022, 7:05
9
Hello again
Contant que ce soit tombé en marche
Comme le suggère @Pulpy-Luke le text sensor permet de remonter le temps de fonctionnement depuis le dernier reboot de l’esp
Pour repondre a ta derniere question
L’avantage d’esphome c’estqu’une fois qu’un firmwre de base est chargé tout ce fait over the air le fameux OTA
Bob
Juillet 7, 2022, 7:33
10
Génial, merci encore pour ton aide, je souhaite explorer tous les aspects de HA, premier ESP32 semaine dernière avec LED pour rire et AHT10, NFC cette semaine et ESP32-CAM, je reste très soft et dans la « norme » dans mes board mais j’ai franchement un système qui tient la route.
Bonne soirée @jrvrcd @Pulpy-Luke
Bob
jrvrcd
Juillet 7, 2022, 7:47
11
C’est le but de ce forum de partage
Avec ton premier esp on a patachoné
Là ça a ete plus efficace
1 « J'aime »
Bob
Juillet 7, 2022, 8:22
12
Je mets mon yaml si ça peu aider :
esphome:
name: espcam32a
platform: ESP32
board: esp32cam
#esp32:
# board: esp32cam
# framework:
# type: arduino
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Espcam32A Fallback Hotspot"
password: "mypassword"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "mykey"
ota:
password: "mypassword"
time:
- platform: sntp
id: sntp_time
timezone: Europe/Paris
web_server:
port: 80
binary_sensor:
- platform: status
name: "Espcam32a Status"
sensor:
- platform: uptime
id: uptime_seconds
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
internal: True # Hide to HA
- platform: wifi_signal
name: "EspCam32a WiFi Signal Sensor"
update_interval: 5s
esp32_camera:
name: CameraSalon
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
test_pattern: false
vertical_flip: false
horizontal_mirror: false
resolution: 1600x1200
max_framerate: 10 fps
idle_framerate: 0.1 fps
output:
# Register the LED as a dimmable output ....
- platform: ledc
id: espcam32a_led
pin: GPIO4
channel: 2
inverted: false
light:
# ... and then make a light out of it.
- platform: monochromatic
name: "Espcam 001 LED"
output: espcam32a_led
esp32_camera_web_server:
- port: 8080
mode: stream
Oui trop bien le forum, j’hésite parfois mais quand c’est nouveau pour moi, je demande.
Bob
1 « J'aime »
Bob
Juillet 12, 2022, 6:49
13
Bonsoir,
Dans la continuité, je me dis, si détection de présence au salon avec un capteur Aqara, j’allume la LED de l’ESP32-CAM (ça fonctionne) et je fais un snapshot ?
L’interface me propose bien l’option:
Mais quand je rentre le filename :
Logger: homeassistant.helpers.template
Source: helpers/template.py:1926
First occurred: 19:45:54 (6 occurrences)
Last logged: 20:35:40
Template variable error: 'camera' is undefined when rendering '/tmp/snapshot_{{ camera.camerasalon }}.jpg'
Logger: homeassistant.components.automation.espcammtest
Source: helpers/script.py:1718
Integration: Automatisation (documentation, issues)
First occurred: 19:45:54 (6 occurrences)
Last logged: 20:35:40
EspCammTest: Error executing script. Error for call_service at pos 2: Error rendering data template: UndefinedError: 'camera' is undefined
Logger: homeassistant.components.automation.espcammtest
Source: components/automation/__init__.py:525
Integration: Automatisation (documentation, issues)
First occurred: 19:45:54 (6 occurrences)
Last logged: 20:35:40
Error while executing automation automation.espcammtest: Error rendering data template: UndefinedError: 'camera' is undefined
Bob
C’est tout ecrit dans la doc
Donc
{{ entity_id.name }}
et pas
{{ camera.camerasalon }}
Bob
Juillet 12, 2022, 7:23
15
Trop fatigué ce soir je crois, désolé :
Bob
Juillet 12, 2022, 7:42
16
Désolé @Pulpy-Luke , je me couche, demain j’'y verrai peut être clair.
Merci
Bob
Bob
Juillet 12, 2022, 7:55
17
Difficile de s’arrêter…
Le /tmp doit être à quel niveau ?
Essaye tmp/
(sans / devant) ça devrait arriver dans /config/tmp
(à creer)
Bob
Juillet 12, 2022, 8:06
19
Mais je ne vois pas par quoi remplacer « yourcamera_ » dans:
data:
filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
Suis nul ce soir
C’est marqué plus haut
Donc :
filename: 'tmp/{{ entity_id.name }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'