Riciclare un vecchio cellulare
Inviato: 31 mag 2013, 19:33
Avendo la necessità di accendere o spegnere da remoto un dispositivo elettrico, ho pensato di farlo tramite un relè collegato ad un vecchio cellulare. E' una cosa da poco, però descrivo comunque il metodo utilizzato,potrebbe essere utile a qualcuno.
Il telefono è stato privato del piccolo altoparlante ed i contatti usati per portare fuori la tensione generata dallo squillo. Il segnale arriva ad un pin analogico di un arduino pro-mini che reagisce attivando un relè. Come relè ho usato uno zoccoletto per pic già pronto. Il telefono è alimentato a 5V mediante un piccolo trasformatore switching DC-DC che la riduce dalla 12V disponibile. Oppure potrebbe essere alimentato da un piccolo alimentatore AC220v-DC6v. L'alimentatore che ho usato alimenta contemporaneamente il telefono, l'arduino mini e lo zoccolo relè. Dopo le prime prove ho riscontrato una instabilità nel circuito di alimentazione del cellulare e che ho risolto interponendo tra l'alimentatore switching ed il cellulare un piccolo isolatore b0505S-1W. Alla ricezione della chiamata l'arduino fa scattare il relè che rimane attivato in modalità monostabile per tutto il tempo in cui il telefono squilla e si disattiva quando viene interrotta la chiamata. Volendo si può modificare facilmente il software di gestione in modo da realizzare un relè bistabile. Consiglio di collegare il cellulare con la batteria già carica altrimenti l'isolatore da 1w scalda molto.
Il sistema mi permette di riavviare da remoto un dispositivo, nella fattispecie il router internet, ma si potrebbe usare anche per accendere delle luci, accendere una caldaia... sarebbe sufficiente modificare il software.
Allego il programmino da caricare sull'arduino ed una foto del semplice dispositivo.
-------Inizio Listato---------
#define RELAY 7
#define DIVIDER A0
#define tensione 50
void setup()
{
//Apro la comunicazion seriale
Serial.begin(57600);
pinMode(RELAY, OUTPUT);
pinMode(DIVIDER, INPUT);
}
void loop()
{
int VoltageReading;
VoltageReading=analogRead(DIVIDER);
Serial.print(" tensione: ");
Serial.println(VoltageReading);
Serial.println();
if (VoltageReading > tensione)
{ digitalWrite(RELAY, HIGH);
delay(4000);
digitalWrite(RELAY, LOW);
}
}
----FINE LISTATO----------
Il telefono è stato privato del piccolo altoparlante ed i contatti usati per portare fuori la tensione generata dallo squillo. Il segnale arriva ad un pin analogico di un arduino pro-mini che reagisce attivando un relè. Come relè ho usato uno zoccoletto per pic già pronto. Il telefono è alimentato a 5V mediante un piccolo trasformatore switching DC-DC che la riduce dalla 12V disponibile. Oppure potrebbe essere alimentato da un piccolo alimentatore AC220v-DC6v. L'alimentatore che ho usato alimenta contemporaneamente il telefono, l'arduino mini e lo zoccolo relè. Dopo le prime prove ho riscontrato una instabilità nel circuito di alimentazione del cellulare e che ho risolto interponendo tra l'alimentatore switching ed il cellulare un piccolo isolatore b0505S-1W. Alla ricezione della chiamata l'arduino fa scattare il relè che rimane attivato in modalità monostabile per tutto il tempo in cui il telefono squilla e si disattiva quando viene interrotta la chiamata. Volendo si può modificare facilmente il software di gestione in modo da realizzare un relè bistabile. Consiglio di collegare il cellulare con la batteria già carica altrimenti l'isolatore da 1w scalda molto.
Il sistema mi permette di riavviare da remoto un dispositivo, nella fattispecie il router internet, ma si potrebbe usare anche per accendere delle luci, accendere una caldaia... sarebbe sufficiente modificare il software.
Allego il programmino da caricare sull'arduino ed una foto del semplice dispositivo.
-------Inizio Listato---------
#define RELAY 7
#define DIVIDER A0
#define tensione 50
void setup()
{
//Apro la comunicazion seriale
Serial.begin(57600);
pinMode(RELAY, OUTPUT);
pinMode(DIVIDER, INPUT);
}
void loop()
{
int VoltageReading;
VoltageReading=analogRead(DIVIDER);
Serial.print(" tensione: ");
Serial.println(VoltageReading);
Serial.println();
if (VoltageReading > tensione)
{ digitalWrite(RELAY, HIGH);
delay(4000);
digitalWrite(RELAY, LOW);
}
}
----FINE LISTATO----------