Tenda a Bracci Motorizzata
Centralina

BoxSetter
Notare il connettore a 10 pin di tipo areonautico resistenza ip67 che ora posso inseire senza aprire la scatola stagna. Questa è plug and play ossia se stacco il connettore si disattiva il box, mentre se lo inserisco arduino se ne accorge e lo inizializza, mediante i 4 pulsanti si possono fare tutte le impostazion inecessarie.

Dal box-setter si possono impostare: L'orario di aptertura e di chiusura della tenda, la velocità delvento e la data e l'ora.

Coperchio

Insieme

Stò realizzando con Arduino una centralina per il controllo di una tenda motorizzata. Questa controllerà automaticamente l'apertura e la chiusura della tenda ad orari prestabiliti, e la chiuderà in caso di vento forte o pioggia onde evitare danni alla struttura.
Consta di due parti la Centralina ed il BoxSetter. la centralina è il centro operativo e verrà collocata all'interno di una scatola stagna murata sulla parete esterna in prossimità della tenda. Il BoxSetter è quello scatolotto che si vede in alto a destra nella foto ed è composto di un monitor, 4 pulsanti per le operazoni di impostazione dei parametri e verrà connesso quando necessario alla centralina tramite nastro flat e connettore.
Avrà i seguenti componenti:
- Arduino Nano Every vedi
- Modulo di alimentazione MEAN WELL IRM-05-5 vedi
- Real Time Clock RTC DS3231(I2C: 0x68 + EEPROM 0x57) vedi
- Modulo Optoaccoppiatore PC817 vedi
- Modulo IIC OLED da 0,96", 12c, risoluzione 128 x 64 vedi
- Modulo OMC1 della Fantini Cosmi vedi
- Connetore aeronautico GX16 a 10 pin vedi
- 4 pulsanti
- Fusibile 5x20 500mA
- 3 morsetti pcb passo 2.54
- Un cavo a 10 poli schermato AWG 24
- Pulsantiera sali scendi vedi
- Led rosso + resistenza 220 Ohm
- Led giallo + resistenza 74 Ohm
- Led blu + resistenza 100 Ohm
- 2 resistenze da 2.2KOhm
- 2 diodi 1N4007
- Sensore velocità del vento vedi
- Sensore pioggia pin digitale vedi
Il codice dovrà impostare un orario di apertura della tenda alle ore 7:00 ed un orario di chiusura della tenda alle ore 13:30, attivando due allarmi sul modulo RTC.
Funzionamento controllo manuale tramite pulsantiera:
La pulsantiera avrà un cavo centrale (blu) comune, un cavo Marrone (apertura, un cavo nero Chiusura). Verrà collegata ad Arduino così:
Marrone pin D4
Nero pin D5
Blu GND
Si comporterà come due pulsanti distinti:
il Marrone (D4)-blu(GND) ed il nero(D5)-blu(GND)
Entrambe i pin digitali verranno impostati come “Input Pullup”.
A riposo la pulsantiera è neutra entrambe i due pulsanti sono aperti, motore fermo.
- I due pin D6 e D7 sono inizialmente a LOW (impostati nel setup).
- Se si preme il pulsante mar-blu (da HIGH passa a LOW) ed Arduino porterà ad HIGH il pin D6 che essendo collegato al pin IN1 del PC817 lo porterà ad HIGH ed in uscita V1 si chiuderà su G, essendo V1 collegato al mrsetto 11 dell'OMC1 (Apertura) farà aprire la tenda.
- Il segnale HIGH verrà mantenuto in questo stato per 400 ms e poi rilasciato, questo simulerà una pressione del dito sulla pulsantiera.
- Quando si avvia l’apertura il motore impiegherà circa 25 sec per completare l’apertura dopodiché il fine corsa spenge il motore.
- Dopo altri 5 sec, e quindi dopo 30 sec dal primo impulso, Arduino invierà un secondo impulso di 400 ms ma di Chiusura (controcomando) portando ad HIGH il pin D7 e riportandolo a LOW dopo 400 ms. Questo indurrà l'OMC1 a togliere corrente al motore che altrimenti rimarrebbe in tensione per almenno un minuto.
- Stessa procedura se premo l’altro pulsante nero-blu si avvierà la chiusura (stesso procedimento).
Se durante l’apertura della tenda si preme il pulsante di chiusura la tenda si fermerà e basta, così pure se durante la chiusura si preme il pulsante di apertura la tenda si ferma. Attenzione! Nel momento in cui si va a spingere il pulsante di chiusura mentre la tenda si sta aprendo, Arduino deve prima aprire entrambe i contatti del PC817. NON bisogna MAI chiudere contemporaneamente entrambe i relè (apertura e chiusura) questo probabilmente provocherebbe un cortocircuito.
Quindi riassumendo premendo il pulsante contrario alla direzione attuale il motore si deve fermare, poi se si vuole riprendere un apertura o una chiusura basterà premere il pulsante corrispondente.
Nel codice verranno pure impostati per default i valori della velocità limite del vento oltre la quale la tenda dovrà essere chiusa. Per quanto riguarda il sensore pioggia non è necessario impostare nessun parametro, quando il sensore invierà il primo segnale la tenda verra chiusa, intensità di pioggia a 0.2mm.
Il BoxSetter
E’ previsto l’uso di un monitor e di 4 pulsanti sia per la visualizzazione dei dati che per l’impostazione dei valori. A tal scopo è stato realizzato un astuccio separato dalla centralina, su questo piccolo case vi sarà il monitor e i 4 pulsanti. Tramite un cavo a 10 pin schermato ed un connettore di tipo aeronautico ip68 il case verrà collegato con la centralina. Normalmente la centralina funziona in automatico con tutte le impostazioni settate in precedenza. Se si vuole monitorare i valori o modificare le impostazioni bisognerà inserire il connettore del case nella centralina, Arduino si accorgerà della connessione ed inizializzerà il monitor e inizierà l’ascolto. Con il BoxSetter connesso avremo il seguente comportamento:
La videata iniziale mostrerà L'orario di apertura della tenda.
Se si preme il primo bottone (rosso) si passa ciclicamente da una pagina e l’altra:
Prima pagina mostra l’orario di apertura della tenda con l’ora (due digit) e i minuti (due digit), l’ora lampeggia, ciò significa che è in modalità modifica, tramite il terzo pulsante (blu - up) ed il quarto pulsante (verde - down) si può aumentare o diminuire il valore, pigiando il secondo pulsante (giallo) si può passare ai minuti che ora inizieranno loro a lampeggiare, si può procedere ad impostare il valore con up e dw. Se si pigia di nuovo il giallo si tornerà alle ore. Per uscire dalla modalità modifica e fissare i valori basterà fare un long press con il giallo.
Seconda pagina - premiamo il rosso, si passerà alla pagina seguente, quella per impostare l’orario di chiusura, stessa procedura.
Terza pagina - pigiamo di nuovo il rosso passeremo alla terza pagina dove potremo impostare la velocità limite del vento, qui ci sarà un solo valore (due digit) che inizierà lampeggiando, con i pulsanti up (blu) e down (verde) imposteremo il valore, se si vorrà fissare il valore ed uscire dalla modalità modifica basterà pigiare il giallo.
Quarta pagina - pigiamo di nuovo il rosso si passerà alla quarta pagina, questa permetterà d’impostare la data: giorno, mese, anno due digit ciascuo e l’orario: ora, minuti e secondi, ciascuno a due digit, il meccanismo è simile a quello dell’impostazione dell’orario di apertura e chiusura, solo che qui abbiamo anche i secondi.
Premendo ancora il rosso si tornerà alla videata iniziale:dell'orario di Apertura.
Per le memorizzazioni: un long press sul pulsante rosso farà memorizzare orario apertura, orario di chiusura e velocità del vento. Un long press sul pulsante giallo farà memorizzare la data e l'ora.
Quindi i pulsanti fanno:
• Il primo (rosso) – cicla tra le varie pagine
• Il secondo (giallo) – passa tra ora, minuti e secondi con un click e esce dalla modalità modifica con un long press in tutte le pagine tranne che per la pagina velocità del Vento dove, essendoci solo un valore non esiste il longpress con un click esce dalla modalità modifica e fissa il valore e con un click rientra in modalità modifica. Se siamo nella pagina della data e orario una singola pressione fa passare al campo successivo ma se eseguiamo un long press memorizza solo data e ora.
• Il terzo (blu) up incrementa il valore
• Il quarto (verde) down decrementa il valore
Le connessioni:
| Nano |
RTC |
PC817 |
OMC1 |
Boxet |
Puls |
Vent |
Piog |
LedR |
LedG |
Led
B |
5V |
VCC |
|
|
VCC |
|
|
|
|
|
|
GND |
GND |
G(IN) |
|
GND |
M2 |
GND |
GND |
GND |
GND |
GND |
|
|
G(OUT) |
M9 |
|
|
|
|
|
|
|
|
|
V1 |
M11 |
|
|
|
|
|
|
|
|
|
V2 |
M10 |
|
|
|
|
|
|
|
A0 |
|
|
|
|
|
|
|
Anod |
|
|
A1 |
|
|
|
|
|
|
|
|
Anod |
|
A2 |
|
|
|
|
|
|
|
|
|
Anod |
SDA-A4 |
SDA |
|
|
SDA |
|
|
|
|
|
|
SLC-A5 |
SLC |
|
|
SLC |
|
|
|
|
|
|
D2 |
SQW |
|
|
|
|
|
|
|
|
|
D3 |
|
|
|
|
|
PIN |
|
|
|
|
D4 |
|
|
|
|
M4 |
|
|
|
|
|
D5 |
|
|
|
|
M3 |
|
|
|
|
|
D6 |
|
IN1 |
|
|
|
|
|
|
|
|
D7 |
|
IN2 |
|
|
|
|
|
|
|
|
D8 |
|
|
|
RED |
|
|
|
|
|
|
D9 |
|
|
|
YEL |
|
|
|
|
|
|
D10 |
|
|
|
BLU |
|
|
|
|
|
|
D11 |
|
|
|
GRE |
|
|
|
|
|
|
D12 |
|
|
|
|
|
|
PIN |
|
|
|
D13 |
|
|
|
INS |
|
|
|
|
|
|
I pin: D4, D5, D8, D9, D10, D11, D12, D13 sono impostati ad Input pullup
I pin: D6 e D7 sono impostati a Output
Il pin D2 impostato come interrupt (solo flag)
Il pin D3 impostato come interrupt
I pin A0, A1 e A2 a Output (digitale)
Cosa dovrà fare il codice:
- All'avvio dovrà leggere dalla eeprom del modulo RTC (0x57) l'orario di apertura, l'orario di chiusura e la velocità del vento così:
- byte oraAperturaH = readEEPROMByte(ADDR_ORA_APERTURA_H);
byte oraAperturaM = readEEPROMByte(ADDR_ORA_APERTURA_M);
- byte oraChiusuraH = readEEPROMByte(ADDR_ORA_CHIUSURA_H);
byte oraChiusuraM = readEEPROMByte(ADDR_ORA_CHIUSURA_M);
- byte sogliaVento = readEEPROMByte(ADDR_SOGLIA_VENTO);
- Impostare gli allarmi per Apertura e chiususa sul modulo RTC
- Se si verifica un interrupt sul pin D2 viene impostato un falg nel loop viene monitorato continuamente il flag se acceso leggere nei registri quale allarme
|