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:
christian committed 2026-10-14 18:55:23 +00:00
commit cc9e0786c2
189 files changed
+29792

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
# Zwei App-Bereiche, damit sich das Geraet ueber WLAN aktualisieren kann.
#
# 🔑 Grundsatz in diesem Projekt: JEDES Geraet muss OTA koennen. Diese Tabelle ist die
# Voraussetzung dafuer, und sie gehoert von Anfang an so angelegt -- sie
# nachtraeglich zu aendern kostet genau das, was OTA vermeiden soll: einen
# Gang zum Geraet mit dem Kabel. (Am 23.09.2026 genau deshalb nachgeholt.)
#
# Bei 16 MB Flash ist das muehelos: zwei mal 4 MB App, der Rest bleibt frei.
# Das Abbild liegt bei knapp 1 MB, also ist reichlich Luft.
#
# Name, Type, SubType, Offset, Size
nvs, data, nvs, 0x9000, 0x6000
otadata, data, ota, 0xf000, 0x2000
phy_init, data, phy, 0x11000, 0x1000
ota_0, app, ota_0, 0x20000, 4M
ota_1, app, ota_1, , 4M
1 # Zwei App-Bereiche, damit sich das Geraet ueber WLAN aktualisieren kann.
2 #
3 # 🔑 Grundsatz in diesem Projekt: JEDES Geraet muss OTA koennen. Diese Tabelle ist die
4 # Voraussetzung dafuer, und sie gehoert von Anfang an so angelegt -- sie
5 # nachtraeglich zu aendern kostet genau das, was OTA vermeiden soll: einen
6 # Gang zum Geraet mit dem Kabel. (Am 23.09.2026 genau deshalb nachgeholt.)
7 #
8 # Bei 16 MB Flash ist das muehelos: zwei mal 4 MB App, der Rest bleibt frei.
9 # Das Abbild liegt bei knapp 1 MB, also ist reichlich Luft.
10 #
11 # Name, Type, SubType, Offset, Size
12 nvs, data, nvs, 0x9000, 0x6000
13 otadata, data, ota, 0xf000, 0x2000
14 phy_init, data, phy, 0x11000, 0x1000
15 ota_0, app, ota_0, 0x20000, 4M
16 ota_1, app, ota_1, , 4M