camera-ascii-nomadnet
Telecamere ONVIF -> ASCII art per nodi NomadNet/Reticulum
Cattura snapshot da telecamere IP ONVIF e li converte in ASCII art
per la visualizzazione su nodi NomadNet, pensato per reti a bassa
banda come LoRa. E' il progetto da cui deriva la sezione
Telecamera di questo portale,
gia' in esecuzione su questo nodo.
Architettura (3 componenti)
Scheduler
Processo daemon che, ogni N secondi, si connette alla camera via
ONVIF, scarica uno snapshot e lo salva grezzo in cache/latest.jpg
con metadati JSON.
Pagina NomadNet
Script Python eseguito dinamicamente da NomadNet: legge il JPEG
dalla cache (non contatta mai direttamente la camera) e lo
converte in tempo reale in ASCII art, con modalita' mono/colore
selezionabile ad ogni richiesta direttamente dal client.
Web UI
Interfaccia Flask locale per configurare parametri camera e
conversione ASCII con anteprima live. Pensata per l'uso standalone
del progetto; non fa parte del deploy Docker di questo nodo.
Dipendenze principali
- Python 3.10+
- onvif-zeep (protocollo ONVIF) — richiede la cartella vendor/wsdl/
vendorizzata: il pacchetto PyPI non installa i file WSDL
correttamente, e senza le chiamate ONVIF falliscono subito
- Pillow per la conversione ASCII
- opencv (opzionale) come fallback RTSP se la camera non parla ONVIF
- Flask, solo per la Web UI di configurazione
Configurazione
- .env: credenziali camera (IP, porta, utente, password), metodo
di cattura (ONVIF/RTSP), intervallo snapshot
- config/ascii_config.json: parametri di conversione (larghezza,
rampa di caratteri, luminosita', contrasto, gamma, edge
detection, modalita' colore)
Repository: https://github.com/iz0kew/camera-ascii-nomadnet
Licenza: MIT