far arrivare ad arduino un ingresso via IR o via WIFI

ciao, provo a spiegare cosa vorrei ottenre...e....magari sapete dove indirizzarmi:)
premesso che di elettronica e progammazione ne conosco poco poco....
ho montato una striscia di led sull'armadio in camera da letto che uso la sera per leggere. ho usato un sensore ir ed un telecomando per accenderla, e tutto funziona bene
ora mi è venuta la malsana idea di usare questi led, che possono essere dimmerati, per svegliarmi il mattino, accendendoli pian piano invece che usare la sveglia. Con arduino nano posso tranquillamente fare il programma che in pwm accende pian piano i led
non vorrei però impostare un orario fisso dal programma...ma vorrei gestirlo io.
l'idea era quella di usare una sveglia classica, togliere il buzzer ed usare i contatti del buzzer come ingresso per arduino nano, quando suona la sveglia, il buzzer che ho levato funge da ingresso per arduino, che attiva l'uscita pwm su cui ci sono i led...
può funzionare secondo voi?
in questo modo però dovrei tirare due cavi dal buzzer della sveglia (che si trova sul mio comodino) ai led che si trovano sull'armadio (non proprio comodo)
....esiste qualcosa per evitarlo?
grazie

Mi sono svegliato per almeno un decennio con un relè che mi accendeva lo stereo in camera attivato dalla radiosveglia , non vedo il perchè tu invece dello stereo non riesca ad attivare una lampada

Ciao

Potresti usare direttamente un ESP8266 al posto del nano per comandare i led.

Si programma con l'IDE di arduino grazie al porting delle librerie che trovi su github. Credo costi meno di un nano.

É wifi e puoi farlo collegare ad un server NTP per ottenere l'ora esatta che poi aggiornerà con un RTC software. Ogni tanto richiedi nuovamente l'ora esatta al server NTP. In questo modo elimini la sveglia.

Con una libreria web server scrivi una interfaccia web per impostare l'orario in cui vuoi essere svegliato. Così puoi farlo da smartphone.

Il mosfet per i led lo piloti con un Pin PWM.

Se hai bisogno di altre informazioni chiedi pure.

Ciao
Vittorio

arduino mettilo sulla striscia led che riceve il comando on/off dal ricevito IR e genera la rampa di accensione dei LED, alla radiosveglia attacchi qualcosa che manda il segnale IR alla striscia, arduino sulla striscia discrimina in base al segnale IR che gli arriva se deve fare la rampa (radiosveglia) oppure no(telecomando)

ciao, ci ho studiato un po' su....alla fine sono riuscito a mettere giù uno schema di collegamenti....mi dite se è corretto?
l'idea è alimentare a 12v arduino ed i led, così uso un solo alimentatore
ho in casa un mosfet IRFI730G e volevo usare quello
non so però come dovrei dimensionare le resistenze?
la striscia di led che ho a casa è lunga circa 2metri e richiede circa 1A
cambia qualcosa se provo il circuito con un pezzetto di striscia led da 30cm?

il suggerimento di usare un IR in modo che riconosca se il segnare proviene da un telecomando (accensione normale)
oppure dal buzzer della sveglia (accenzione in PWM) non lo so fare, ma è un bel suggerimento!!! :slight_smile:

ho messo giù anche uno sketch....ho fatto un controllo nel for, in modo che se mi sveglio e premo il bottone della sveglia (che prima interrompeva il suono) smette di continuare ad accendere i led in PWM e li spegne....
mi date un occhio se è corretto e magari anche lo schema di collegamento?
come potrei provare a fare il test simulando il buzzer?
....sono alle primissimissime armi (come penso abbiate già capito) :slight_smile:
se avete consigli o suggerimenti :slight_smile:

p.s.
non ho ancora trovato una sveglia da smontare, per verificare...ma cerco una sveglia da pochi euro, che faccia da semplice sveglia....però ho notato che si alimentano con semplici stilo da 1,5V quindi dubito che il buzzer sia a 5V....e che quindi possa usare l'analogread e collegare il buzzer semplicemente ad arduino come invece ho fatto....
in questo caso come dovrei fare sia dal punto di vista della connessione che della programmazione?
grazie!

#define LED 11              // striscia LED collegata al pin 11
#define SVEGLIA 13          // imposto buzzer sveglia su pin 13
int valoreFade = 0;         // variabile usata per contare in avanti e indietro  
int stato_ingresso = 0;
 
void setup()  {   
 pinMode(LED, OUTPUT);   
 pinMode(SVEGLIA, INPUT);
 stato_ingresso = LOW;
}   
 
void loop()  {  
stato_ingresso = digitalRead(SVEGLIA); // Legge ingresso  buzzer sveglia

if (stato_ingresso != LOW) {
 
   for (valoreFade = 0 ; valoreFade < 255 && stato_ingresso != LOW ; valoreFade++) {   
   analogWrite(LED, valoreFade);      //aumento la luminosità del led
   stato_ingresso = digitalRead(SVEGLIA);
   delay(50);    
  }   
}   
else {
analogWrite(LED, 0) ;
}

}