Automatismo GSM per orologio campanile con PIC18F4620
Si tratta di un automatismo ideato per sostituire il vecchio e ormai obsoleto orologio meccanio del campanile del paese in cui abito. L’ orologio è stato realizzato tramite un microcontrollore PIC18F4620, la base dei tempi viene fornita da un integrato Clock Calendar PCF8563. Sulla scheda sono inoltre presenti una memoria EEPROM I2C 24LC32 in cui vengono memorizzate tutte le variabili, una scheda MOD-GSM della Olimex basata sul modulo SIM340DZ della Simcom , due integrati L6203 per pilotare il motore passo-passo, fotoaccoppiatori per gestire le uscite per il martelletto delle campane e due ingressi utilizzati per rilevare la posizione “zero” delle lancette minuti ed ore. Tutti i comandi vengono inseriti tramite una tastiera a matrice 4×4 gestita tramite bus I2C e visualizzati su un display LCD 16X2.
Il programma è stato compilato con MPLAB e tengo a precisare che come programmatore sono un allievo autodidatta. A questo proposito voglio ringraziare Mauro Laurenti (www.laurtec.it) e Giovanni Bernardo (www.settorezero.com). Proprio perchè non sono un professionista la stesura del programma non è sicuramente di tipo professionale ma funziona ormai da tre mesi, anche se continuo a modificarlo.
L’apparecchiatura realizzata esegue i seguenti compiti:
- Azionare tramite motore passo-passo l’avanzamento delle lancette
- Attivare i 3 elettromagneti per il battito delle relative campane
- Eseguire i rintocchi ad ogni ora con ripetizione dopo 2 minuti
- Eseguire un rintocco al passare della mezz’ora
- Riprodurre 9 tipi di melodie (attualmente ne sono utilizzate 4: ciclico feriale, ciclico festivo, suono festa e suono defunti)
- Eseguire 10 suonerie programmabili come orario,tipo melodia e festivo/feriale. Al momento sono inserite le suonerie del vecchio orologio che sono: ciclico feriale che suona a tre orari differenti (07:00 12:00 20:00) nei giorni feriali, ciclico festivo che suona a tre orari differenti (08:00 12:00 21:00) nei giorni festivi, suono festa (Ave Maria) che suona nei giorni festivi alle ore 10:00, suono defunti che viene eseguito 24 ore prima del funerale per due volte in caso di morte femminile e tre volte in caso di maschio inoltre viene eseguito manualmente durante il corteo funebre.
- Ricevere comandi tramite SMS per cambio orario, attivare suonerie, richiedere all’orologio stesso il credito residuo della propria Sim (solo per gestori TIM o VODAFONE) ed altro ancora.
- Inviare tramite SMS dei messaggi di errore di funzionamento ad esempio : Mancanza alimentazione rete elettrica, Batteria quasi scarica,Scostamento tra orario digitale interno e posizione lancette,messaggi di conferma di avvenuta ricezione comandi ricevuti da SMS
- Eseguire delle melodie dopo squillo telefonico
- Adeguare automaticamente il cambio ora legale-solare
- Eseguire automaticamente il suono festivo nelle seguenti festività: Capodanno, Epifania, 25 Aprile, 1 Maggio, 2 Giugno, Ferragosto, Natale, Santo Stefano
- Eseguire un ciclo speciale per la per Settimana Santa (le campane non devono suonare al Venerdì ed al Sabato, mentre il Lunedì vengono attivate le relative melodie festive).
- Funzionare anche senza rete elettrica tramite batteria tampone
All’inizio ho usato un PIC18F4550 ma poi non mi bastava più la memoria per il programma e ho quindi optato per il PIC18F4620.
Ho quindi dovuto ricompilare tutte le librerie di Laurtec per questo modello di PIC. Il modulo GSM è gestito tramite interrupt ad alta priorità, ed è stato usato per inviare e ricevere comandi con l’invio di SMS o squilli telefonici.
Il connettore seriale DB9 è stato inserito per collegare, tramite la porta seriale, un PC che attraverso il programma HyperTerminal permette di leggere i comandi inviati dal PIC al modulo GSM o viceversa a secondo di come sono impostati gli interruttori minidip. Sempre tramite l’impostazione dei minidip è inoltre possibile escludere il controllo del PIC e collegare tra di loro il PC ed il modulo GSM. Questo serve per fare delle prove e quindi per imparare il funzionamento del modulo. Come tutte le cose, quando si sono imparate risultano facili, ma posso garantirvi che ho dedicato alcune settimane di “tempo libero” per capire come inviare comandi tra PIC e GSM. Ho usato questo modulo perché ha già l’antenna incorporata sul circuito stampato. Ho impostato una velocità di 9600 baud per permettere al PIC di leggere “con tranquillità” e correttamente gli SMS in arrivo.
L’interrupt a bassa priorità è stato usato per sganciare gli elettromagneti delle campane in quanto da programma vengono solamente attivati. In questo modo una volta attivato l’elettromagnete il programma è libero di proseguire senza doversi preoccupare di disattivare il “martelletto” dopo alcuni decimi di secondo. I due fotoaccoppiatori in ingresso li avevo inseriti nel progetto per utilizzarli nel caso in cui avessi avuto dei disturbi a causa dei cavi schermati che vanno dal circuito stampato ai prossimity situati sull’albero delle lancette. Non avendo avuto questo problema li ho utilizzati solo per adattare la tensione di alimentazione dei prossimità (12V.) con i 5V del pic; in questo modo ho evitato di dover utilizzare una tensione di alimentazione supplementare per i prossimity.
Gli ingranaggi per la movimentazione delle lancette sono stati costruiti utilizzando unicamente un seghetto e una lima sfruttando il sito http://woodgears.ca/gear_cutting/template.html
Qui ci sono 2 video che illustrano il funzionamento:
Download
E’ possibile scaricare tutti i file di progetto sul sito di Mauro Laurenti, previa registrazione, nella seguente pagina del forum:
http://www.laurtec.it/forum/15-progetti/5402-automatismo-per-orologio-campanile