Sommario:

Rilevatore di finestre aperte Arduino - per l'inverno: 6 passaggi
Rilevatore di finestre aperte Arduino - per l'inverno: 6 passaggi

Video: Rilevatore di finestre aperte Arduino - per l'inverno: 6 passaggi

Video: Rilevatore di finestre aperte Arduino - per l'inverno: 6 passaggi
Video: CORSO ARDUINO, #2 impariamo a conoscere il codice IN MODO ALTERNATIVO 2024, Dicembre
Anonim
Rilevatore di finestre aperte Arduino - per l'inverno
Rilevatore di finestre aperte Arduino - per l'inverno

Fuori fa freddo, ma a volte ho bisogno di aria fresca nelle mie stanze. Quindi, apro la finestra, esco dalla stanza, chiudo la porta e voglio tornare tra 5-10 minuti. E dopo qualche ora mi ricordo che la finestra è aperta… Forse lo sai o hai dei figli, che ti danno questa esperienza.

La mia soluzione è il rilevatore di finestre aperte. La batteria durerà per oltre un anno, quindi basta posizionarla in autunno e rimuoverla in primavera.

Passaggio 1: elenco delle parti

Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
  1. Tabellone Digispark da eBay.
  2. Vecchie cuffie.
  3. Piccolo pulsante per il ripristino.
  4. Connettori per altoparlante - altrimenti non è possibile riprogrammare la scheda.
  5. Filo.
  6. Per l'alimentazione è necessario:

Custodia per batterie AAA con interruttore on/off. Puoi persino utilizzare batterie esaurite, poiché il modulo funzionerà fino a 2,4 Volt

O

Vecchia batteria lipo (anche il 30% di capacità è sufficiente per questo scopo) e se non si dispone già, un caricabatterie per batterie lipo da eBay.

O

Un supporto per pile a bottone CR2032

E

Diodo 1A 1N4001 o equivalente -o qualunque cosa tu abbia in queste dimensioni- per la protezione dall'inversione di polarità

Passaggio 2: Programmazione della scheda Digispark

Programmazione della scheda Digispark
Programmazione della scheda Digispark
Programmazione della scheda Digispark
Programmazione della scheda Digispark

Installazione del driver

È necessario installare il driver Digispark prima di poter programmare la scheda. Scaricalo qui, aprilo ed esegui " InstallDrivers.exe ".

Installazione di Arduino IDE

Installa la scheda Digispark per l'IDE Arduino come descritto in

Consiglio di utilizzare come URL della scheda Digispark in Arduino File/Preferences il nuovo https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json invece di https://digistump.com/package_digistump_index.json e installare il Schede Digistump AVR versione 1.6.8.

Poiché vogliamo risparmiare energia, il clock della scheda è impostato su 1 MHz nel nostro setup(), puoi scegliere Digispark (1 mhz - No USB) come scheda nel menu Strumenti.

Compila e carica il programma sulla bacheca

Nell'IDE di Arduino crea un nuovo schizzo con File/Nuovo e chiamalo ad es. "OpenWindowAlarm". Copia il codice da OpenWindowAlarm.ino

O

Scarica ed estrai il repository. Apri lo schizzo con File -> Apri… e seleziona la cartella "OpenWindowAlarm".

Compilalo e caricalo. Tieni presente che il caricamento non funzionerà se l'altoparlante è collegato. Se tutto funziona correttamente, il LED integrato del Digispark lampeggerà 5 volte (per il ritardo di allarme di 5 minuti) e poi inizierà a lampeggiare dopo 8 secondi con un intervallo di 24 secondi per segnalare ogni lettura di temperatura.

Passaggio 3: riduzione della potenza

Riduzione di potenza
Riduzione di potenza
Riduzione di potenza
Riduzione di potenza

La nostra scheda Digispark utilizza 5 mA a 3, 0 volt. Con 2 batterie AAA (1000mAh) funzionerà per 8 giorni. Ma è possibile ridurre il consumo energetico fino a 26 µA in 3 passaggi.

  1. Disabilitare il LED di potenza rompendo il filo di rame che collega il LED di potenza al diodo con un coltello o rimuovendo/disabilitando la resistenza da 102 si risparmia 1,3 mA.
  2. La rimozione del regolatore di tensione VIN consente di risparmiare 1,2 mA.
  3. Scollegando la resistenza USB Pullup (contrassegnata con 152) da 5 Volt (VCC) si risparmiano i restanti 2,5 mA. Scollegalo rompendo il filo di rame sul lato del resistore che punta all'ATTiny. Questo disabilita l'interfaccia USB e di conseguenza la possibilità di programmare la scheda Digispark tramite USB. Per abilitarlo di nuovo, ma comunque risparmiare energia, collega il resistore (contrassegnato con 152) direttamente all'USB 5 volt che è facilmente disponibile sul lato esterno del diodo.

    Il lato corretto del diodo può essere trovato utilizzando un tester di continuità. Un lato di questo diodo è collegato al pin 8 dell'ATtiny (VCC). L'altro lato è collegato a USB 5 volt.

Ora la resistenza di pullup USB viene attivata solo se la scheda Digispark è collegata a USB, ad es. durante la programmazione e la scheda consuma 26 µA durante lo sleep.

Se si riprogrammano i fusibili, è possibile ottenere un consumo di energia di 6 µA.

Per riprogrammare i fusibili, è necessario un ISP (che può essere costruito con un Arduino) e un adattatore di connessione. Per la riprogrammazione è possibile utilizzare questo script.

Passaggio 4: pulsante di ripristino

Tasto reset
Tasto reset
Tasto reset
Tasto reset
Tasto reset
Tasto reset
Tasto reset
Tasto reset

Se non si desidera togliere l'alimentazione per ripristinare l'allarme, collegare un pulsante di ripristino tra PB5 e massa. L'ho fatto collegando la superficie in rame VIN non collegata a PB5 e saldando il pulsante di ripristino direttamente al foro del pin VIN e alla grande superficie di massa del regolatore di tensione VIN rimosso.

Se vuoi eliminare i 5 secondi di attesa per la connessione USB dopo il ripristino, puoi cambiare il kernel del micronucleo su ATtiny85. Eseguire lo script "0_Burn_upgrade-t85_recommended.cmd" e quindi ricaricare nuovamente l'applicazione OpenWindowAlarm con l'IDE Arduino.

Passaggio 5: altoparlante

Altoparlante
Altoparlante
Altoparlante
Altoparlante
Altoparlante
Altoparlante

Ho smontato una vecchia cuffia e ho collegato il connettore maschio al cavo.

Passaggio 6: funzionamento

Operativo
Operativo
Operativo
Operativo
Operativo
Operativo

Per utilizzare la scheda posizionarla su un davanzale e collegarla a una batteria. Se la temperatura sul davanzale è inferiore alla temperatura in cui si trovava originariamente la scheda, saranno necessari altri 5 Minuti per adeguarsi in modo intelligente al nuovo valore di partenza.

Sarai quindi allarmato se lasci la finestra aperta per più di cinque minuti.

Operazione interna

  • Viene rilevata una finestra aperta dopo TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) secondi di lettura di una temperatura con un valore di TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) inferiore alla temperatura TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SAMPLE_SECONDS (192 secondi) -> prima di 3 minuti e 12 secondi.
  • Il ritardo viene implementato dormendo 3 volte a `SLEEP_MODE_PWR_DOWN` per un periodo di 8 secondi per ridurre il consumo di energia.
  • Il rilevamento di una finestra aperta è indicato da un lampeggio più lungo di 20 ms e da un breve clic ogni 24 secondi. Pertanto, il sensore interno ha un tempo di 3 minuti per adattarsi alla temperatura esterna in modo da catturare anche piccoli cambiamenti di temperatura. Maggiore è la variazione di temperatura, prima il valore del sensore cambierà e rileverà una finestra aperta.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) minuti dopo il rilevamento della finestra aperta viene attivato l'allarme.

    L'allarme non partirà o un allarme attivato cesserà se la temperatura attuale è maggiore della temperatura minima misurata (+ 1) cioè la finestra è già stata chiusa.

  • L'allarme iniziale dura 10 minuti. Successivamente si attiva per un periodo di 10 secondi con una pausa crescente da 24 secondi fino a 5 minuti.
  • Ogni VCC_MONITORING_DELAY_MIN (60) minuti viene misurata la tensione della batteria. A seconda del tipo di batteria rilevato all'accensione (vedi VCC_VOLTAGE_LIPO_DETECTION (3.6 volt)), una tensione della batteria inferiore a VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) o VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD Millivolt è indicata da un segnale acustico e dal lampeggio del LED ogni 24 secondi. Solo il segnale acustico (non il flash) è significativamente più lungo del segnale acustico per il rilevamento di una finestra aperta.
  • Dopo l'accensione, il tempo di assestamento inattivo è di 5 minuti. Se la scheda si raffredda durante il tempo di assestamento, vengono aggiunti 4:15 (o 8:30) minuti per evitare falsi allarmi dopo l'accensione.

Consigliato: