
Realizzare un'interfaccia GSM a 4 relè è semplice, modificando (hack) il progetto GSM2 (utilizzare il vecchio telefonino come telecontrollo GSM) che diventerà GSM4.
Un progetto realizzato tempo fa che mi ha dato molte soddisfazioni è stata l'interfaccia telefonica gsm per poter riutilizzare alcuni vecchi telefonini come telecontrollo GSM. L'articolo relativo è stato postato da alcuni famosi Blog americanai, nell'ormai lontano 2008. Oggi, grazie a Jonnyno, che usufruendo di una promozione riservata agli abbonati Premium, ho l'occasione di fare un Hack.
Un hack di un progetto da me realizzato, non mi era mai capitato 🙂
Per comprendere meglio il post seguente, consiglio di leggere l'articolo relativo a come Utilizzare il vecchio telefonino come telecontrollo GSM
La richiesta è stata di aumentare il numero di relè, portandoli da 2 a 4.
Da una analisi preliminare risulta evidente che la modifica deve essere affrontata sotto due punti di vista: hardware e software.
Modifica a 4 relè per l'interfaccia GSM [hardware]
A livello hardware bisogna ovviamente partire dallo schema elettrico seguente.

Quindi individuare quali pin del microcontrollore utilizzare per collegare gli altri due relè richiesti.
La prima soluzione a cui ho pensato è stata quella di utilizzare i due pin di ingresso RA0 e RA4. Ma RA4 può funzionare solo da ingresso? NO, dopo una verifica al datasheet del PIC16F628 mi rammento che su questi 'nuovi' micro il pin RA4 è bidirezionale. Però in questo modo non avrei a disposizione gli ingressi e, considerato che questo non è sato specificato nella richiesta, preferirei NON utilizzare questa soluzione.
La seconda soluzione che mi è venuta in mente è quella di utilizzare i pin RB6 e RB7 collegandoli tramite dei ponticelli perche dedicati anche alla programmazione/debug del microcontrollore. Una volta programmato il micro, si possono tranquillamente attivare i ponticelli e quindi permettere il funzionamento dei relè supplementari.
Un'altra possibile soluzione è quella di utilizzare i pin RA3 e RA2(VREF) modificando il collegamento ADJ del regolatore LM1117 con una resistenza verso massa, quindi fissando la tensione a livello hardware.
Sia la seconda che la terza soluzione sono fattibili, dipende soprattutto dalla necessità di effettuare un debug utilizzando i nuovi relè. Direi che una volta effettuata la modifica firmware, basterà programmare il micro e quindi testarlo direttamente, considerando che il debug completo è già stato effettuato in precedenza.
Vada per RB6 e RB7 (ma voi potete farla anche su su RA2 e RA3 se volete arrivare a 6 relè).
Identificati i pin, non rimane che fare l'hack hardware inserendo in una basetta vicina i due relè supplementari:

Si possono notare i collegamenti (da fare a RB6 e RB7), l'alimentazione 12V e la massa GND, i due transistor ed i relè ai quali vanno aggiunte le due morsettiere per i contatti.
Modifica a 4 relè per l'interfaccia GSM [software]
La modifica al firmware richiede prima una presa di visione generale del software per poi individuare la parte di definizione e configurazione porte e la parte di attuazione relè esistenti.
Per effettuare la patch eliminare le righe con - iniziale ed aggiungere quelle con il + ovviamente eliminare i segni + quando si inserisce la modifica.
La definizione delle uscite relè cambierà con queste aggiunte:
#define RELE1 PORTA,1 ; Uscita RELE_1 #define RELE2 PORTA,3 ; Uscita RELE_2 +#define RELE3 PORTB,6 ; Uscita RELE_3 +#define RELE4 PORTB,7 ; Uscita RELE_4
Settare FLAG, ma forse conviene utilizzare FLAG2 in quanto i bit di FLAG sono già occupati
FLAG EQU 0x2F ;0 rele1 EQU 0x01 rele2 EQU 0x02 ricez EQU 0x03 ; 1= ricevuto ISR_RCREG >> INDF sms EQU 0x04 ; 1= ricevuto '+' ring EQU 0x05 ; 1= ricevuto 'R' cifre EQU 0x06 ; 0=index_phonebook = 1cifra ; 1=index_phonebook = 2cifre national EQU 0x07 ; 0=international (+) ; 1=national number (no +) +FLAG2 EQU 0x25 ; Locazione di memoria libera per inserire FLAG2 +rele3 EQU 0x01 +rele4 EQU 0x02
Configurare RB6 e RB7 come uscite
- movlw B'11111111' - movwf TRISB + movlw B'00111111' + movwf TRISB
Porre a zero le uscite relative ai due nuovi relè (posizione iniziale)
movfw PORTB ; acquisici DIP_SW movwf DIP_SW + bcf RELE3 + bcf RELE4 ; autoapprendimento IN_1 & IN_2
Questa parte è di commento ma vale la pena riportarla per una maggiore comprensione della modifica.
; 1ON \\ 03 B1 A7 13 ; 1OFF \\ 04 B1 A7 D1 08 ; 1ONOFF \\ 06 B1 A7 F3 69 34 02 ; 2ON \\ 03 B2 A7 13 ; 2OFF \\ 04 B2 A7 D1 08 ; 2ONOFF \\ 06 B2 A7 F3 69 34 02 +; 3ON \\ 03 B3 A7 13 +; 3OFF \\ 04 B3 A7 D1 08 +; 3ONOFF \\ 06 B3 A7 F3 69 34 02 +; 4ON \\ 03 B4 A7 13 +; 4OFF \\ 04 B4 A7 D1 08 +; 4ONOFF \\ 06 B4 A7 F3 69 34 02 ; attivare il rele1,rele2,error in modo passo/impulsivo
La verifica dei dati ricevuti avviene tra la stringa PDU ed un dato da noi definito.
bcf FLAG,rele1 bcf FLAG,rele2 + bcf FLAG2,rele3 + bcf FLAG2,rele4 movlw '1' xorwf INDF,w SKPNZ bsf FLAG,rele1 movlw '2' xorwf INDF,w SKPNZ bsf FLAG,rele2 + movlw '3' + xorwf INDF,w + SKPNZ + bsf FLAG2,rele3 + movlw '4' + xorwf INDF,w + SKPNZ + bsf FLAG2,rele4
Ecco finalmente la parte di attivazione/disattivazione relè in modalità passo passo o impulsiva.
rele_on btfsc FLAG,rele1 bsf RELE1 btfsc FLAG,rele2 bsf RELE2 + btfsc FLAG2,rele3 + bsf RELE3 + btfsc FLAG2,rele4 + bsf RELE4 SETZ RETURN rele_off btfsc FLAG,rele1 bcf RELE1 btfsc FLAG,rele2 bcf RELE2 + btfsc FLAG2,rele3 + bcf RELE3 + btfsc FLAG2,rele4 + bcf RELE4 SETZ RETURN rele_onoff btfsc FLAG,rele1 bsf RELE1 btfsc FLAG,rele2 bsf RELE2 + btfsc FLAG2,rele3 + bsf RELE3 + btfsc FLAG2,rele4 + bsf RELE4 call t3s btfsc FLAG,rele1 bcf RELE1 btfsc FLAG,rele2 bcf RELE2 + btfsc FLAG2,rele3 + bcf RELE3 + btfsc FLAG2,rele4 + bcf RELE4 SETZ RETURN
La modifica è stata simulata con risultato positivo.

Nuove funzioni nelle istruzioni GSM4
A questo punto non ci resta che integrare le istruzioni con i comandi relativi all'attivazione o disattivazione dei RELE3 e RELE4 sia in modalità passo passo che impulsiva. Questi sono gli SMS da inviare e le relative funzioni:
3ON -> Attiva il RELE3
3OFF -> Disattiva il RELE3
3ONOFF -> Attiva impulsivo il RELE3
4ON -> Attiva il RELE4
4OFF -> Disattiva il RELE4
4ONOFF -> Attiva impulsivo il RELE4
Con queste semplici modifiche è quindi possibile gestire 4 relè di uscita e realizzare un telecontrollo GSM a 4 relè. Sarà quindi possibile, tramite un SMS attivare luci, caldaie, aprire cancelli etc. etc. il tutto facilmente ed a basso costo riutilizzando il vostro vecchio telefonino GSM

ciao ti ringrazio per la modifica che hai fatto per me, e debbo dire che la
spiegazione non ci fa’ una grinza, ora passo all’atto pratico,
1- posso scaricare l’intero progetto schema compreso perche’ il pdf forse e’
a bassa risoluzione si vede poco e non si stampa.
2- domanda, possono funzionare diverse marche di vecchi gsm oppure e’
riferito solo all’ericson?
3- sullo schema elettrico si vede il quarzo del pic si deve usare o no? poi c’e’ un piccolo integrato che e’ facoltativo (a che serve?)
grazie per la pazienza
gianni
Ciao Gianni,
di seguito le risposte:
1) Si, puoi scaricare il progetto completo
http://it.emcelettronica.com/utilizzare-vecchio-telefonino-come-telecontrollo-gsm
Come abbonato Premium hai accesso alla sezione Download
http://it.emcelettronica.com/download
2) Attualmente è interfacciabile solo agli Ericsson segnalati ma è facilmente modificabile. A livello hardware serve il connettore giusto ed a livello software le necessarie modifiche al protocollo. Comunque i comandi AT ed il PDU degli SMS sono degli standard.
3) Il quarzo è opzionale perche il micro ha l’oscillatore interno e sulle due uscite sono stati inseriti due led di segnalazione. Si può gestire tutto via firmware, a piacimento. 🙂
L’integrato non montato (U2) è un potenziometro digitale potrebbe essere utilizzato per modificare via firmware la tensione Vbatt ma siccome anche la VREF del PIC svolge bene questo lavoro (non ne ero certo in fase iniziale del progetto), non è stato utilizzato.
La Vbatt è l’alimentazione necessaria al telefonino, quindi, per differenti telefonini, bisogna tener conto anche di questa alimentazione (verificare il pinout del connettore del telefono)
si infatti ho risolto scaricando il progetto, mi sono documentato riguardo l’integrato ed effettivamente ho visto che e’ un regolatore di tensione, io dovrei collegarci dei telefonini vecchi nokia, per i connettori risolvo saldando i fili all’interno togliendo il connettore originale, (gia’ fatto) dispongo di dissaldanti e saldanti ad aria calda, spero che i protocolli vadano bene, comunque ti faro sapere grazie di tutto. gianni
ciao emanuele, volevo nuove info su questo progetto, ho realizzato il tutto, ed ho le seguenti condizioni: accendo la scheda i led sono spenti, dopo 1 secondo si accendono, collego il telefono e rimangono accesi (non lampeggiano)e tutto finisce qui’, debbo dire che il telefono non e’ ericson ma un siemens s25 (funzionante con il progetto della rivista) lo stesso fa’ con 1 nokia, se invio un sms oppure trasmetto un sms, le condizioni non variano. Ti chiedevo, non e’ che il telefonino deve essere tassativamente un ericson? oppure va bene qualsiasi? a me serve solo l’attivazione dei quattro rele’ con l’sms e basta. grazie come sempre per la pazienza. gianni
Ciao Gianni,
il progetto è compatibile con gli Ericsson. E’ stato sviluppato per il T18 e poi testato anche su T28 e A1018 come descritto nell’articolo
http://it.emcelettronica.com/utilizzare-vecchio-telefonino-come-telecontrollo-gsm
Per poter utilizzare un Siemens o altro telefonino, si deve modificare il connettore (in base al pinout) ed eventualmente intervenire sul firmware.
infatti per il connettore non c’e’ problema mentre sarebbe bello adattarlo a piu’ di qualche marca di vecchi telefonini, potresti fare un esempio? magari su siemens? grazie per la pazienza gianni