Arduino chiude il garage

A volte il sistema di apertura e chiusura del garage non soddisfa le nostre esigenze, accade che vorremmo “quel qualcosa” in più ed ecco che Arduino ci può aiutare.

LA RICHIESTA

La richiesta è di Marco, partecipante al corso (primavera 2017) di Arduino a Bellinzona. Questa è la sua richiesta:

Ho una porta del garage motorizzata.
E’ possibile aprirla e chiuderla tramite:

    Telecomando
    Cordina da tirare al motore
    Interruttore a parete che manda un inpulso elettrico tramite due cavi.
    Via etere tramite la digitazione del corretto codice su una tastiera numerica (immagino Bluetooth, onda radio o altro segnale)

Ogni tanto mi dimentico di chiuderla ?
Mi piacerebbe che:

    Tramite un sensore (infrarosso) sentisse quando qualcuno entra o esce e dopo xx minuti provveda a chiudere automaticamente la porta
    Abbia un “bottone” per attivare  o disattivare questa funzione (nel caso voglia lasciare aperta la porta a lungo)
    Un domani mi avvisi via GSM o WiFi se la porta si dovesse aprire e io non sono in  casa
    Se via GSM, potrei anche poterla aprire e chiudere a distanza.

 

LA SOLUZIONE

Dividendo in due parti l’applicazione: la prima con il controllo locale e la seconda con il controllo remoto (GSM), ecco un esempio:

// lab26
// 27.03.2017 - m.r.
// 

#define MCOMANDO 5                // segnale in uscita verso attuale relais passo-passo
#define MPIR 7                        // sensore infrarossi
#define MBLOCCO 6                    // interuttore di blocco
#define MRITARDO 20                // ritardo prima di attivare "MCOMANDO"

int mritardo;
int mrunclock;                        // attiva/disattiva il conteggio per ritardo
int mpresenza;                        // flag impostato dal PIR, serve per capire quando la stanz è vuota (variazione)
int mblocco;

void setup() {
  Serial.begin(9600);
   pinMode(MCOMANDO,OUTPUT);
   pinMode(MBLOCCO,INPUT);
   pinMode(MPIR,INPUT);   
  mrunclock==0;
  mpresenza=0;
       mritardo = MRITARDO;
}

void loop() {
    if (digitalRead(MPIR) == HIGH) {
      Serial.println("PIR ON");
      mpresenza=1;
    }
    else {
      Serial.println("PIR OFF");
      if ((mpresenza==1) && (digitalRead(MBLOCCO) ==LOW)) mrunclock=1;
      else mrunclock=0;
    }
 
 if ((mrunclock==1)  && (digitalRead(MPIR) == LOW)) {
    Serial.println("decremento...");
    mritardo--;
    Serial.println(mritardo);
  }
  if (digitalRead(MBLOCCO)==HIGH) {                    // se è bloccato non deve contare x ritardo
    Serial.println("blocco inserito"); 
    mrunclock=0;                                                        // imposta il flag
  }
  if ((mritardo ==0) && (digitalRead(MBLOCCO) ==LOW)) {   // blocco NON attivo e finito il conteggio: AZIONE!
    Serial.println("finito di contare...");
    digitalWrite(MCOMANDO, HIGH);
    delay( 1000 );
    mrunclock=0;
    mritardo=MRITARDO;
    mpresenza=0;
  }
  digitalWrite(MCOMANDO, LOW);
  delay(500);
}

MATERIALE

Servono davvero pochi pezzi:

  • Arduino UNO (o Nano, …)
  • Interruttore
  • 2 resistenze 1K
  • sensore PIR
  • BC547

qualche jumper e 10 minuti!

Primavera 3D a Lugano

Ecco che oltre ai mandorli fioriscono… le stampe 3D!

Complice forse il clima mitigato del lago ecco la prima stampa (autrice Simona M.), si tratta di un modellino di villa.

Il disegno originale è in Sketchup, quindi nel Fab-Lab è stato passato in NetFabb (CAE) e successivamente elaborato su Cura (CAM) ed infine stampato su una stampante CreateBot MID.

L’infill è al 20%, mentre il dZ è a 200μm.

Tempo di stampa 4 ore e 6 minuti. Realizzato con PLA (eSun) grigio.

 

Complimenti a Simona e avanti il prossimo!

 

Salva

Ricarica smartphone e hub USB

kit hub USB 3.0 completo

Con la stampa 3D possiamo produrre oggetti unici e quindi uscire dalle tante “plastiche” anonime.

In questo caso ecco come realizzare un semplice hub USB 3.0 o alimentatore per smartphone, personalizzato con il proprio nome, o quello di un amico, oppure di qualche società sportiva…

Il costo totale, compreso il filamento è intorno ai 20CHF, che è certamente poco se confrontato con prodotti simili, ma anonimi, reperibili in commercio. La scheda che utilizzeremo è potente tanto da poter alimentare sino a 4 smartphone con 500mA ciascuno.

MATERIALE

  • scaricare il file
  • hub USB 3.0 + cavo “host”
  • opzionale alimentatore da 2A
  • pistola a caldo

OPERAZIONI

  • modificare il disegno del contenitore tramite Sketchup
  • stampare il contenitore
  • inserire la scheda
  • incollare la scheda al contenitore

PERSONALIZZARE

Per personalizzare il nostro dispositivo basterà stampare una targhetta da incollare successivamente sull’apposita superficie. Sulla targhetta potremo inserire testi, disegni e anche …fotografie!

 

PER SCARICARE

Per stampare il contenitore basterà scaricare l’STL ed elaborarlo con il proprio CAM. Infill consigliato: 20%.

Richiederlo a fablabway@gmail.com

Salva

Salva

Sensori gas per Arduino

Poter controllare i livelli di gas nocivi o pericolosi non prerogativa di sistemi costosi o industriali: anche un semplice circuito con arduino può bastare.

Il principio

Il principio di funzionamento di questi “annusatori” è relativamente semplice: una resistenza composta di lega speciale, se riscaldata, varierà la sua resistenza in funzione della presenza di uno (o più) determinati gas.

In commercio

Esistono diversi sensori e relativi circuiti già pronti per essere collagati a sistemi quali Arduino. Molte di queste schede sono dotate di trimmer per la regolazione o taratura.

Ovviamente ogni sensore è selettivo, ovvero è sensibile solo a uno o pochi altri gas. Per riconoscerne il modello basterà cercare la sigla “MQ-xxx” dove xxx è un numero da 1 a 3 cifre.

Ecco qualche esempio:

MQ-2  idrogeno, metano, monossido di carbonio

MQ-3 metano, benzene

MQ-4 metano

MQ-5 gas città, metano

MQ-6 propano, butano

MQ-7 monossido di carbonio

MQ-135 ammoniaca , benzene

 

Rivelatori, non misuratori

Per essere precisi questi dispositivi rientrano nella categoria dei rivelatori e non misurano la esatta quantità: per questo scopo bisogna ricorrere a sensori diversi. In ogni modo è comunque possibie collegare i misuratori ad Arduino.

 

Non sono giocattoli

Anche se possiamo realizzare in economia un dispositivo di allarme per un determinato gas, questo non significa che il dispositivo sia un giocattolo e che non funzioni: il sensore è lo stesso degli apparati (costosi) che si acquistano in negozio.

Esempio

Vediamo come costruire un semplice rivelatore per il pericoloso monossido di carbonio.

Il materiale occorente è davvero poco:

  • Arduino UNO
  • sensore MQ-7
  • resistenza 1K
  • led

Lo sketch di Arduino è semplice, ma potremo estenderlo per attivare per esempio un allarme.

 

Il sensore invia il segnale analogico “AC” sul pin analogico 1.

La costante MSOGLIA ci permetterà di impostare il valore oltre il quale il led si accenderà.

/*
som_lab14_00.ino
21.03.2016
usare MQ-7
 */

#define MSOGLIA  370
int mled = 5; 
int wcurrport = 1;

void setup() {
 pinMode(mled, OUTPUT);
 Serial.begin(9600);
 pinMode(wcurrport, INPUT);
}
 
// the loop routine runs over and over again forever:
void loop() {
  int wcurrval = analogRead(wcurrport);
  if (wcurrval > MSOGLIA) digitalWrite(mled,HIGH);
  else digitalWrite(mled,LOW);
  Serial.print("valore: ");
  Serial.println(wcurrval); 
  delay(500);
}

 

Salva

Salva

Salva

Salva

Arduino: driver non riconosciuto

La comunicazione tra il pc e Arduino (UNO, Mega, ecc.) avviene tramite un driver che opera sulla porta seriale USB.

In commercio esistono diversi fork di Arduino: molti di questo sono ottimi e a prezzo contenuto. Purtroppo esistono delle differenze per quanto riguarda la connessione.

Driver FTDI

Per la comunicazione seriale, le schede originali di Arduino utilizzano un chip di Future Technology Devices International o FTDI. Si tratta di una grossa azienda specializzata in chip di interfacciamento (vedi qui).

Molti sistemi operativi, tra i quali Windows, possono utilizzare questi chip (di FTDI) in modo nativo, ovvero sono già caricati. Quindi basta connettere un dispositivo che usa un chip marchiato FTDI (ma non sempre è visibile) et voilà: il sistema lo riconosce e quindi si può procedere con l’utilizzo della IDE di Arduino.

 

Altri driver

Se la comunicazione tra Arduino e il pc non è possibile significa che dobbiamo caricare il driver corretto, di solito il CH340.

Dal repository è possibile scaricare il driver.

 

Installazione

Scaricare il file DRIVER2_CH340.zip e scompattarlo in una cartella, per esempio C:tempdrv.

Quindi portarsi su una finestra di una cartella del pc e selezionare il “questo PC”, quindi tasto destro, e scegliere “proprietà”.

Dalla lista di opzioni scegliere “gestione dispositivi”, quindi apparirà qualcosa di simile:

 

selezionare la riga con errore e quindi tasto destro per aggiornare il driver. Alla richiesta del percorso del file (driver), inserire quello dove è stato scompattato il file precedente.

 

Prova

Aprire l’IDE  e provare ca caricare (upload) uno sketch di Arduino: ora è pronto!