Home
Accesso / Registrazione
 di 

4 Relè per l'interfaccia GSM [hack]

Interfaccia GSM a 4 relè

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

Il firmware GSM4 completo di modifica a 4RELE è disponibile a soli 5 euro.   Download

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di jonnyno

gsm 4

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

ritratto di Emanuele

Interfaccia GSM 4 Rele

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)

ritratto di jonnyno

si infatti ho risolto

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

ritratto di jonnyno

progetto gsm 4

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

ritratto di Emanuele

Compatibilità telefoni GSM

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.

ritratto di jonnyno

infatti per il connettore non

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

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 0 utenti e 20 visitatori collegati.

Ultimi Commenti