YOUTUBE PROGETTO - Allarme frigo

Allarme portello frigo - Fai Da Te

VOLETE UNA VERSIONE MINI? CONTENITORE PICCOLISSIMO E PIU COMPATTO? PROSSIMO VIDEO...con ATTINY

Descrizione oggetto

 Ecco un' oggetto semplice da realizzare, economico che potrete realizzare per la vostra mamma, moglie compagna ecc ma soprattutto se avete bimbi piccoli per casa. Si tratta di un' allarme per il vostro frigorifero che vi avviserà acusticamente quando il portello rimarrà aperto per un certo periodo di tempo. Quel tempo sarete voi ad impostarlo attraverso un codice formato da poche linee di codice che troverete a fondo pagina. Il tutto è gestito da Arduino nano e da una pila a transistor da 9 volt. 

Aquisto materiali

Arduino nano con cavetto USB

Ho utilizzato Arduino nano perché non solo è molto piccolo, economico e consuma poco, ma perché ci permette di realizzare con tanta facilità un codice che si occupa della temporizzazione e un codice per realizzare la nostra suoneria o allarme. In fondo alla pagina troverete due sorgenti Arduino già pronti al' uso. Non ho usato un semplice Timer perchè poco versatile e costa quanto Arduino nano.


Contenitore nero

Se trovate un modello di colore bianco, è sicuramente meglio che verniciarlo, ma in caso contrario oppure se il vostro frigo è di un colore particolare, per mimetizzarlo meglio, potete verniciarlo con una bomboletta spry.


Connettore per pila transistror 9 volt

 

Semplice connettore per prelevare alimentazione da una comunissima pila transistor 9 volt


Contatto magnetico con (Com. na - nc)

 

Questo elemento è molto importante perchè è quello che si occupa di accendere Arduino nel momento in cui il portello del frigo viene aperto e in quel caso, Arduino stesso eseguirà il codice tempo e melodia. MI RACCOMANDO...DEVE AVERE IL CONTATTO IN SCAMBIO (Comune, aperto e chiuso)


Buzzer cicalino

Il piccolo buzzer che si occuperà di avvisarvi acusticamente quando il portello del vostro frigo è aperto


Natsro Biadesivo speciale

Se volete un biadesivo di qualità spendendo poco, questa è una valida soluzione. Consiglio di acquistarlo solo se non avete un prodotto analogo in casa.


Parte tecnica e collegamenti

Lo schema elettrico è molto semplice, non credo serve aggiungere spiegazioni. In pratica, si alimenta Arduino nano SOLO quando lo sportello del frigo è aperto. Con questo sistema si riducono drasticamente i consumi per perseverare la durata della pila a transistor. I pin utilizzati sono solo quelli del' alimentazione Arduino (Vin e gnd) e il solo pin digitale D2 per il collegamento del buzzer, configurato come uscita.

 

Sotto potete vedere le due modalità: A frigo aperto, dove il contatto da aperto diventa chiuso e la condizione di frigo chiuso, dove il magnete è vicinissimo al sensore.

Rappresentazione grafica del' allarme posizionato sul lato del frigo insieme al magnete


Sorgente arduino nano

 Il codice utilizzato per realizzare un easy timer a eccitazione ritardata è estremamente semplice, basta mettere un delay nel Void setup e nel void loop mettere il codice che farà suonare il piezo. Quindi, appena arduino si accenderà, prima di eseguire il codice del' allarme, attenderà un tempo impostato in millisecondi: delay (1000); che significa, in termini poveri, ritardo di un secondo.

Codice semplificato

Il codice sottostante non fa altro che: Al momento che Arduino viene alimentato e quindi acceso, imposta il pin 2 come output e attende 1 minuto prima di andare al codice nel Void Loop, codice che che viene eseguito al' infinito. Entrato nel Void Loop, ci sarà una segnalazione acustica generata da una interruzione di un secondo che verrà riprodotta ciclicamente al' infinito

int buzzer = 2;     //buzzer connesso al pin 2

 void setup()

{

  pinMode(buzzer, OUTPUT); // Imposta il pin del buzzer come output

  delay(60000);  // ******   IL TEMPO DA IMPOSTARE PRIMA DEL' INTERVENTO BUZZER ****

}

 

void loop()

{

  tone(buzzer, 1000, 200);   //suona nota sul pin 2 alla frequenza di 1000Hz

  delay(1000);                        //aspetta 2 secondi

  noTone(buzzer);                // buzzer in tacitazione

  delay(1000);//aspetta 1 secondi

}

Codice evoluto con melodia

const int buzzerPin = 2;

const int songLength = 18;

char notes[] = "cdfda ag cdfdg gf "; // lo spazio rappresenta una pausa

int beats[] = {1, 1, 1, 1, 1, 1, 4, 4, 2, 1, 1, 1, 1, 1, 1, 4, 4, 2};

int tempo = 250;

 void setup()

{

  pinMode(buzzerPin, OUTPUT);

  delay (3000);

}

 

void loop()

{

  int i, duration;

 

  for (i = 0; i < songLength; i++)

  {

    duration = beats[i] * tempo;

 

    if (notes[i] == ' ')

    {

      delay(duration);

    }

    else

    {

      tone(buzzerPin, frequency(notes[i]), duration);

      delay(duration);

    }

    delay(tempo / 10);

  }

 

  //Se vogliamo riprodurre solamente una volta la canzone:

  while (true) {}

  // Se vuoi che la tua canzone venga riprodotta più e più volte,

  // rimuovi la condizione while

}

 

 int frequency(char note)

{

  /* Questa funzione prende un carattere di nota (a-g) e restituisce il carattere

    frequenza corrispondente in Hz per la funzione tone

  */

  int i;

  const int numNotes = 8;  // numero di note memorizzate

 

  /*

    I seguenti array hanno i caratteri di nota e le loro

      frequenze corrispondenti. L'ultima nota "C" è maiuscola

    per separarla dalla prima cifra minuscola "c". Se si desidera

      aggiungere altre note, bisogna utilizzare caratteri univoci.

    Per il tipo "char" (carattere), mettiamo singoli caratteri

    in singole quotes.

  */

 

  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };

  int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};

 

 

  for (i = 0; i < numNotes; i++)  // Step tra le note

  {

    if (names[i] == note)         // è quella?

    {

      return (frequencies[i]);    // si, ritorna la frequenza

    }

  }

  return (0); // Per uscire dalla condizione while

}