Vogelalbum 1.0.0
Eine Kamera am Vogelhaus, ein Rechner der erkennt wer da war — und eine Sammlung, die sich von allein fuellt. Zwei neuronale Netze: eines findet den Vogel im Bild, eines bestimmt die Art. 148 heimische Arten, auf Deutschland eingeschraenkt und neu normiert — ohne diese Einschraenkung wird aus einer Kohlmeise eine nordamerikanische Schwesterart. Daraus entsteht ein Sammelalbum: nummerierte Seiten, gefundene Arten in Farbe, fehlende als Schatten, dazu Erstfang, Punkte, Stufen und 15 Abzeichen. Laeuft vollstaendig auf eigener Hardware. Kein Cloud-Dienst, kein Konto, keine Telemetrie; die Bilder verlassen das eigene Netz nicht. Zwei getrennt deploybare Teile: die Sammlung als Django-Anwendung, die Erkennung als eigener Dienst. Der Erkennungs-Dienst fragt selbst an und braucht deshalb weder eine erreichbare Adresse noch einen offenen Port — er laeuft hinter einem gewoehnlichen Router. Dabei: Firmware fuer Raspberry Pi und ESP32-S3, Anbindung an Home Assistant ueber MQTT, Oberflaeche auf Deutsch und Englisch, Einstellungen je Kamera aus dem Browser, und ein Weg fuer Fotos von unterwegs. AGPL-3.0.
This commit is contained in:
commit
cc9e0786c2
189 files changed
+29792
No files matched your search
@@ -0,0 +1,60 @@
|
||||
# Ziel ist der ESP32-S3 mit 8 MB PSRAM (N16R8-Module).
|
||||
CONFIG_IDF_TARGET="esp32s3"
|
||||
|
||||
# Ohne PSRAM passt kein JPEG-Framebuffer in den Speicher. Octal ist bei den
|
||||
# R8-Modulen richtig; bei einem R2/R8-Quad-Modul stattdessen QUAD waehlen,
|
||||
# sonst findet die Kamera keinen Puffer.
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_MODE_OCT=y
|
||||
CONFIG_SPIRAM_SPEED_80M=y
|
||||
CONFIG_SPIRAM_USE_MALLOC=y
|
||||
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
|
||||
|
||||
# 16 MB Flash (N16R8).
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
||||
|
||||
# Die Funkstrecke ist der Engpass, nicht die CPU: mehr und groessere
|
||||
# Sendepuffer heben die Bildrate deutlich mehr als ein schnellerer Takt.
|
||||
CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16
|
||||
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
||||
CONFIG_ESP_WIFI_TX_BA_WIN=16
|
||||
CONFIG_ESP_WIFI_RX_BA_WIN=16
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=65534
|
||||
|
||||
# Volle Taktrate — JPEG kommt fertig aus dem Sensor, aber das Umkopieren in
|
||||
# die Sendepuffer laeuft auf der CPU.
|
||||
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
|
||||
|
||||
# Der Stream haelt einen Socket dauerhaft offen; /status braucht daneben Platz.
|
||||
CONFIG_LWIP_MAX_SOCKETS=10
|
||||
|
||||
# Ein Geraet im Garten soll sich selbst erholen statt stumm zu bleiben.
|
||||
CONFIG_ESP_TASK_WDT_EN=y
|
||||
CONFIG_ESP_TASK_WDT_TIMEOUT_S=30
|
||||
CONFIG_ESP_INT_WDT=y
|
||||
|
||||
# Kameraframes gehoeren ins PSRAM, nicht ins knappe interne RAM.
|
||||
CONFIG_CAMERA_CORE0=y
|
||||
|
||||
# Kamera haengt ueber Kopf: beide Spiegelungen zusammen ergeben 180 Grad.
|
||||
# ⚠ Gilt fuer JEDES Geraet aus diesem Baum -- wer eine Kamera anders
|
||||
# herum montiert, braucht hier einen eigenen Stand. Gemeldet am
|
||||
# 24.09.2026, nachdem die Traenke haengt: "Bild muss um 180 grad gedreht
|
||||
# werden."
|
||||
# CONFIG_VK_HFLIP is not set
|
||||
CONFIG_VK_VFLIP=y
|
||||
|
||||
# Farbe: der Sensor liefert von Haus aus ein flaues Bild.
|
||||
CONFIG_VK_SAETTIGUNG=2
|
||||
CONFIG_VK_KONTRAST=1
|
||||
CONFIG_VK_HELLIGKEIT=0
|
||||
|
||||
# Bremse fuer den Bildstrom. Ohne sie sendet die Kamera mit Anschlag --
|
||||
# das heizt und saettigt die Funkstrecke, ohne der Erkennung zu nuetzen.
|
||||
CONFIG_VK_MAX_FPS=5
|
||||
Reference in new issue
Block a user