Fotocitofono con #Arduino e #Telegram

Un amico facoltoso a tavola mi ha chiesto un prototipo che funzioni più o meno cosi: nella villa al mare se qualcuno bussa al citofono, lui con un comando può far scattare una foto da un Arduino e farsela mandare sul cellulare su Telegram.

Ho ragionato un po’ e ho pensato che alcuni esperimenti fatti settimane fa, potevano andare bene.

Occorre un Arduino MKR GSM, una fotocamera TTL e ovviamente una SIM. Tipo quelle solo dati fornite con il proprio gestore di fibra ottica o come sim per i router wifi negli abbonamenti per smartphone.

Schema collegamento.

La fotocamera che ho usato è la VC0706 Adafruit (clone) comprata su Ebay. La scelta era ricaduta su questa perchè con 2 pin, ho il TX e RX dei dati. Quindi, dato che MKRGSM1400 ha la Serial1 collegata con i PIN 13 e 14 l’ho collegata lì e ho richiamato la Serial1 nel codice.

Il file completo dello Sketch è disponibile QUI . Ricordatevi di inserire il PIN e l’APN della vostra SIM (esempio per Vodafone è web.omnitel.it oppure per Iliad è iliad etc). Poi dove ho messo www.miosito.it (è presente 2 volte) mettete il nome del vostro dominio e/o indirizzo ip pubblico a cui l’arduino deve puntare. Inserire infine il proprio cellulare al posto di 335ZZZZZZ. Quando viene inviata l’immagine, invece si utilizza un upload.php che vi ho trasformato in .txt (quindi rinominatelo voi in .php sul vostro server). Anche qui servono poche configurazioni: il vostro Token rilasciato da @botfather su Telegram relativo al vostro bot, e lo userid a cui mandare la foto (potete cercare @userinfobot e ve lo dice lui).

Quindi lo schema logico di funzionamento potrebbe essere che quando si clicca un pulsante viene inviata la foto. Oppure da remoto (questo è il mio sketch che vi ho postato sopra), quando si riceve in SMS il testo “f” dal numero 335XXXXXX cioè dal proprio numero e solo da lui, allora l’Arduino scatta la foto, l’invia sul vostro server al file upload.php che prima la scrive nella dir data/CAM.jpeg (accertatevi che sia una dir in scrittura) e poi viene inviata via Telegram al proprio userid.

Ho perso un po’ di tempo per capire come impacchettare la foto scattata, scegliere la definizione e dividerla in trame IP per poi essere ricomposta e salvata sul server, prima dell’invio. In rete trovate varianti in cui le foto vendono prima salvate su una SD card e poi inviate. Ho preferito l’invio on the fly cosi non ho manco il problema della sd card che si riempie.

Spero possa esservi utile. Al solito Licenza CC-BY-SA per questo articolo.

Piersoft

Potrebbero interessarti anche...