Controller Growbox con Arduino

Controller GrowBox con Arduino installatoCiao a tutti! Ci eravamo lasciati a Febbraio con la costruzione della GrowBox per Peperoncini (ma in realtà questo inverno ci sono nati e cresciuti Pomodori, Peperoni, Melanzane, Cocomeri, Meloni, Zucche e Zucchine), l’utilizzo della GermBox per la germinazione con il metodo Scottex e l’upgrade “termico”. Ora, finalmente, mi sono deciso a scrivere la prima parte dell’articolo sulla realizzazione di un Controller GrowBox con Arduino, controllabile tramite un piccolo web server integrato e con l’invio dei dati su un’istanza di EmonCMS.

Controller GrowBox con Arduino

Stanco dell’utilizzo di timer a cavalieri, ciabatte, termoigrometri min/max e chi più ne ha più ne metta, ho deciso che era giunto il momento di mettere insieme i due mondi: Arduino e Peperoncini. Il primo progetto, scartato nel giro di poche settimane, prevedeva l’utilizzo di Arduino Nano con RTC, Display 1602 e modulo Relay per gli azionamenti, un sensore DHT22 per temperatura e umidità ambiente. Niente bottoni, per cambiare parametri dovevo modificare il firmware. C’è voluto poco per decidere di passare ad Arduino Mega, Ethernet Shield e Display 2004.

Sensori

Anche i sensori sono aumentati, dal singolo sensore sono arrivato a due DHT22 (uno interno ed uno esterno, con possibilità di utilizzo degli introvabili DHT44) e due DS18B20 (uno per il monitoraggio della temperatura della sabbia dove è immerso il cavo riscaldante e l’altro per la temperatura dello strato più alto dove ci sono le lampade). Penso di aggiungere, a breve, un trasformatore amperometrico. Potrebbe essere molto utile per spegnere tutto in caso di consumo eccessivo (probabile corto circuito).

Prototipo GrowBox Shield
Prototipo GrowBox Shield

Azionamenti

Gli azionamenti di cui ho bisogno sono:

  • Illuminazione
  • Ventilazione
  • Riscaldamento
  • Vaporizzatore ad ultrasuoni (non utilizzato ma perfettamente implementato)

Per semplicità ho collegato tutto alla 220V, utilizzando eventuali trasformatori a monte della scheda relay.

Controllo

La prima versione prevedeva una pagina web con aggiornamento dei parametri in AJAX e la possibilità di accendere e spegnere i relay. Non prevedeva, ancora uno storico dei dati o una programmazione dei valori.

Un controller growbox con Arduino è utile se programmabile. Per questo motivo ho messo mano nuovamente al codice ed ho implementato alcune pagine per l’impostazione dei parametri (soglie, orari di accensione e spegnimento) e il download dei log giornalieri in formato CSV. Questi log sono salvati nella microSD inserita nell’Ethernet Shield.

Integrazione EmonCMS

Passo molte ore fuori casa per lavoro, e non potevo non avere sotto mano i dati ambientali registrati. Essendo un controller GrowBox con Arduino, già dotato di Ethernet Shield, perchè non inviare i dati su un cloud? Dopo una ricerca delle possibilità ho optato per EmonCMS. Gratuito, Open Source e con la possibilità di utilizzarlo su shared hosting come Aruba.

Nuove modifiche al codice per avere finalmente i primi dati inviati e visualizzati su internet!

Questa è la mia dashboard:

Dashboard EmonCMS per il controller GrowBox con Arduino
Dashboard EmonCMS per il controller GrowBox con Arduino

 

 

 

 

 

Da qui è possibile vedere lo stato delle luci, del riscaldamento, delle ventole e del generatore di umidità, oltre che gli andamenti dei valori di temperatura ed umidità rilevati dai sensori. L’ho predisposto per l’invio di una email in caso di temperature fuori norma, oltre che all’accensione e spegnimento dell’illuminazione.

Conclusioni

E’ già il secondo anno che la utilizzo, migliorando di mese in mese il firmware che penso di rilasciare a breve, insieme ad uno schematico del GrowBox Shield che ho realizzato.

A presto!

Smontare la partizione OEM di Windows 10

Ciao a tutti! Uno degli aggiornamenti recenti del sistema operativo Microsoft Windows 10 si è preso la briga di montare automaticamente la partizione OEM del disco rigido del mio portatile. Poco dopo è successo anche al PC che utilizzo in ufficio, mentre sul desktop che ho a casa, assemblato da me, non è accaduto nulla. Non ne sono sicuro ma potrebbe essere causato dalla partizione OEM installata dal produttore per il ripristino e non dall’installazione di Windows 10. La release di Windows 10 che causa questo incoveniente dovrebbe essere la 1803. Vedremo, in questo breve articolo, come smontare la partizione OEM di Windows 10. Questa procedura, in ogni caso, è utilizzabile per smontare tutte le partizioni quindi prestiamo molta attenzione quando la eseguiamo sul nostro computer.

Smontare la partizione OEM di Windows 10

Per smontare la partizione OEM di Windows 10 dobbiamo prima di tutto accertarci del fatto che la partizione che causa questa notifica

Notifica spazio insufficiente

è veramente la partizione OEM del nostro computer.

Spazio esaurito sull'unità D:

Apriamo Gestione Disco di Windows 10 premendo contemporaneamente il tasto WIN ed il tasto X.

Apertura di Gestione Disco

Dal menu che si aprirà selezioniamo Gestione Disco.

Gestione Disco per smontare partizione OEM di Windows 10Nel mio caso, la notifica chiama in causa l’unità D:, proprio la partizione OEM come mostrato dallo strumento Gestione Disco di Windows 10.

Ora, apriamo Windows Powershell con diritti di amministratore per poter smontare definitivamente questa partizione nei successivi riavvii del sistema operativo. Premiamo di nuovo la combinazione di tasti WIN + X e clicchiamo su Windows PowerShell (esegui come amministratore):

Esecuzione di windows powershell per smontare la partizione oem di windows 10Nella console di PowerShell appena aperta digitiamo

smontare la partizione oem di windows 10

mountvol D: /d

dove D: è la lettera di unità assegnata al disco OEM da Windows 10.

Premiamo invio e riavviamo il nostro computer. Se abbiamo seguito correttamente la procedura, la partizione non dovrebbe essere più montata.

Non so se questo è un side effect di qualche nuova funzione introdotta con l’aggiornamento, un bug o semplicemente una decisione di Microsoft, ma il messaggio di spazio insufficiente nell’unità OEM è decisamente fastidioso e personalmente preferisco smontare la partizione OEM di Windows 10.

Inviare email in caso di movimento con motionEye

Ciao a tutti! Dopo aver visto come installare motionEye su Raspberry Pi e come configurare una telecamera D-Link, andremo a a vedere come inviare email in caso di movimento con motionEye, appunto.

Panoramica

motionEye è, a detta dell’autore, un frontend per motion, ovvero un demone altamente configurabile per il monitoraggio di molti tipi di segnali video.

Abbiamo visto nello scorso articolo le funzioni principali, e qui ci concentreremo quindi sulla funzione che ci permette di inviare email in caso di movimento con motionEye.

motion, in ogni caso, è disponibile a questo link.

Inviare email in caso di movimento con motionEye

Per inviare email in caso di movimento con motionEye dobbiamo prima di tutto aprire la pagina web del nostro dispositivo, su cui abbiamo installato motionEye. Effettuiamo il login con le credenziali impostate durante l’installazione e facciamo click sull’hamburger in alto a sinistra.

Inviare email in caso di movimento con motionEyeScorriamo verso il basso per arrivare alle due sezioni che ci interessano: Motion Notifications e Motion Detection.

 

motionEye - Motion NotificationsNella sezione Motion Notifications è possibile selezionare l’evento che vogliamo scatenare in caso di movimento. Oltre all’invio di una email è possibile richiamare un Web Hook o eseguire un comando.

Nel nostro caso andremo ad abilitare Send An Email per poter configurare il destinatario ed i parametri del server SMTP.

motionEye - Motion DetectionNella sezione Motion Detection, invece, è possibile impostare i parametri riguardanti il Motion Detection, come:

 

 

  • Frame Change Threshold, ovvero la soglia sotto la quale il sistema ignorerà cambiamenti
  • Auto Noise Detection
  • Light Switch Detection
  • Minimum Motion Frames (secondo me molto importante per evitare falsi positivi)
  • Mask
  • Debug

Nella schermata di esempio possiamo vedere un settaggio base che ho utilizzato per un piccolo test del sistema che sto mettendo in piedi.

Conclusioni

Bene, ora abbiamo abilitato la funzione che ci permette di inviare email in caso di movimento con motionEye. Sfruttando la nostra rete LAN possiamo installare molte più telecamere e personalizzare le notifiche in caso di movimento per la singola unità!

A presto!

Problemi al carrello asse Y della stampante 3D Anet A8

Ciao a tutti! Scrivo questo articolo perchè ho avuto alcuni problemi al carrello asse Y della stampante 3D Anet A8. Il montaggio della stampante 3D Anet A8, a seguito dell’unboxing, è andato bene, pensavo fosse più lungo e complesso invece me la sono cavata in poco più di mezza mattinata. Durante il montaggio ho inserito alcuni “upgrade” consigliati da moltissimi blog, forum e youtubers, come i cuscinetti Igus, i Mosfet per piano riscaldato e HotEnd, piano in Pyrex da 3mm (anche se alla fine ho optato per la Ultrabase) e alimentatore da 30A. Il pomeriggio l’ho dedicato alla calibrazione e alle prime stampe di Benchy e del cubo di calibrazione X, Y e Z da 20mm.

Problemi al carrello asse Y della stampante 3D Anet A8

Le prime stampe di prova presentavano le dimensioni lungo l’asse Y leggermente inferiori alle dimensioni del disegno. Inizialmente ho pensato che ci fosse necessità di calibrare gli step/mm, ma, dopo aver sentito la cinghia slittare, ho capito che il problema risedeva nello spostamento lungo l’asse Y del piano di stampa. Allentata la cinghia ho provato a far scorrere il piano: era durissimo!

Il primo indagato sono stato io, ovviamente: errore nel motaggio dei cuscinetti DryLyn di Igus? Tolgo gli anelli Seeger dai 4 SCS8UU per toglierli e rimettere i cuscinetti a ricircolo di sfere cinesi LM8UU. Rimonto il carrello e mi sembra di notare un miglioramento. Faccio partire una stampa di prova e la situazione (rumore a parte) è migliorata: la differenza di dimensioni tra asse X ed asse Y è diminuita di molto.

Ma i problemi al carrello asse Y della stampante 3D Anet A8 non sono finiti! Il giorno dopo faccio partire una stampa, e sento di nuovo la cinghia slittare! Da una parte la mia autostima torna al livello normale, ma dall’altra la preoccupazione sale. Barre lineari storte? Struttura difettosa? NO!

Ho pensato che l’unico modo per cambiare il passo e quindi la distanza tra barra sinistra e barra destra era piegare il carrello ad H che supporta il piano di stampa. Bene, piegando (o meglio, raddrizzando) questo supporto il piatto ha iniziato a scivolare senza problemi!

Vado su Amazon e trovo questo piatto Ruthex. Prime. Sono ancora in tempo per riceverlo il giorno dopo. Ordinato!

Conclusioni

Monto il carrello e i problemi al carrello asse Y della stampante 3D Anet A8 spariscono! Manca poco che si sposta soffiando! Il carrello ad H di serie è composto di alluminio molto tenero, non adatto per un componente come il carrello, che sopporta oltrettutto la forza delle 4 molle del piano di stampa.

A presto!

Installazione di motionEye su Raspberry Pi

Ciao a tutti! Oggi andremo ad effettuare l’installazione di motionEye su Raspberry Pi. Prima di tutto, però, andremo a scoprire cos’è.

Panoramica

motionEye è, a detta dell’autore, un frontend per motion, ovvero un demone altamente configurabile per il monitoraggio di molti tipi di segnali video.

motion ci permette di:

  • Creare video o salvare immagini dei movimenti
  • Ottenere lo stream dalle telecamere
  • Invocare script quando viene rilevato del movimento
  • Effettuare il log dei movimenti in diversi tipi di database
  • Effettuare mascherature per privacy e rilevamento di movimento altamente personalizzate

Ed inoltre è compatibile con moltissimi device, tra cui:

  • Webcam V4l2
  • Schede di cattura video
  • Telecamere IP con HTTP, RTSP e RTMP
  • File statici tramite V4l2 loopback
  • Pi camera

motion è disponibile a questo link.

motionEye, quindi, ci offre un sistema per utilizzare motion in maniera molto più semplice ed immediata, tramite accesso ad un server web.

Installazione di motionEye

Prima di tutto abbiamo bisogno di scaricare l’immagine per Raspberry Pi (disponibile in varie versioni) da questo sito. Procediamo alla copia su microSD come abbiamo visto per Raspbian Stretch nell’articolo dedicato, quindi utilizzando Win32DiskImager.

Una volta terminata la copia dell’immagine di motionEyeOS sul nostro supporto, inseriamolo nell’alloggiamento su Raspberry Pi e colleghiamo cavo ethernet (è possibile utilizzare il WiFi modificando il file wpa_supplicant.conf) e alimentazione.

Attendiamo qualche minuto senza riavviare o spegnere Raspberry Pi, e accediamo al webserver creato da motionEye. Se non abbiamo impostato un indirizzo IP statico possiamo utilizzare nmap, ZenMap o l’applicazione Fing.

Inseriamo come nome utente admin e lasciamo vuoto il campo della password per accedere alle pagine di configurazione e visualizzazione di motionEye.

Installazione di motionEye - Login

Configurazione di una telecamera D-Link

Per procedere alla configurazione dei una telecamera abbiamo bisogno del link al suo flusso video (o Jpeg). Io ho utilizzato questo sito, che offre i percorsi per moltissimi modelli di telecamere IP. Per la telecamera che sto configurando ora, la D-Link DCS- il link al Jpeg è:

Link al flusso della telecamera

Siamo quindi pronti per aggiungere la telecamere su motionEye: facciamo click sull’hamburger in alto a sinistra:

Installazione di motionEye - Settings

Nel menu a tendina appena comparso scegliamo Add Camera.

installazione di motionEye - add camera

In questa nuova finestra selezioniamo Network Camera nel campo Camera Type e inseriamo il link appena recuperato, inserendo l’indirizzo IP della telecamera.

installazione di motionEye - form network camera

Completiamo il form con Username, Passowrd e nome della telecamera e premiamo ok.

Per questo articolo abbiamo concluso, vedremo nelle prossime settimane come configurare ulteriori parametri!

Unboxing della stampante 3D Anet A8

Ciao a tutti! Erano anni che volevo acquistare una stampante 3D, ma per un motivo o per un altro ho sempre rimandato. Questa volta, invece, non mi sono lasciato sfuggire questa Anet A8, acquistata da TomTop ad un prezzo eccezionale. Vediamo, quindi l’unboxing della stampante 3D Anet A8.

Unboxing della stampante 3D Anet A8

Il corriere, in sette giorni esatti dall’ordine, ha consegnato questo bel cartone:

unboxing della stampante 3d anet a8Rientrato dal lavoro l’ho aperto per vedere con i miei occhi ciò che mi attende, ovvero il montaggio della stampante 3D! Ho già avuto un’esperienza simile con l’assemblaggio della mia CNC, ma comunque non ho mai installato o utilizzato un estrusore ed un hot-end.

Imballo e contenuto

L’imballo si presenta abbastanza robusto, cartone decisamente spesso e polistirolo stranamente resistente. Ho visto imballi decisamente peggiori per prodotti più costosi e di marchi più blasonati.

I componenti sono contenuti in tre strati di polistirolo sagomato, come mostrato in queste tre immagini.

contenuto del primo strato di polistirolocontenuto del secondo strato di polistirolocontenuto del terzo strato di polistirolo

 

 

 

 

 

 

 

I componenti della struttura sono rivestiti da una rognosissima pellicola, che li protegge dai graffi dal taglio fino alla consegna.

Sono riuscito (anzi, la mia ragazza è riuscita) a toglierla in circa un’ora, non senza fatica, comunque!

pellicola maledetta rimossa durante unboxing della stampante 3d anet a8Ovviamente, mentre chiudevamo il cartone in attesa del montaggio, sono saltati fuori ulteriori pezzettini con la pellicola da rimuovere, questa volta molto più piccoli e rognosi. Micaela li ha scartati e siamo pronti al montaggio.

Upgrade in arrivo

Dato il basso costo ho acquistato i cuscinetti DryLin di Igus, per ridurre il rumore dei cuscinetti lineari LM8UU cinesi.

Per la sicurezza ho inoltre acquistato due Mosfet da inserire tra Alimentatore e Piatto e tra Alimentatore ed Hot End.

Conclusioni

Che dire, dopo l’unboxing della stampante 3D Anet A8 ho decisamente voglia di assemblarla! Penso di aggiungere qualche dado autobloccante alle barre filettate inferiori, sostituire i cavi di potenza del piatto riscaldato e raffreddare con una ventola da 80mm l’elettronica.

A presto!

Cuccia per il gatto

Il gatto: Luna
Il gatto: Luna

Ciao a tutti! In questi giorni ho iniziato a realizzare una piccola cuccia per il gatto , sperando di renderlo un po più amichevole dato che ha un odio profondo per me -.-

Volendo avvicinarmi all’utlizzo degli utensili manuali, questa mi è sembrata l’occasione giusta, data la semplicità del progetto.

Cuccia per il gatto

Dopo aver pensato a come strutturarla, ho deciso di utilizzare 4 listelli come gambe, e due ripiani quadrati di cui uno rivestito in moquette e protetto da due lati con le traverse.

Tracce per le mortase segnate per le gambe della cuccia per il gatto

Iniziato a posizionare il legno, e marcare i punti in cui scavare le mortase o i tenoni. Ho utilizzato la Mini Dozuki per maggior parte dei tagli, esclusi i lungovena per cui ho utilizzato la Ryoba.

 

Mortase

Le mortase le ho aperte con lo scalpello, affondando di pochi mm ad ogni passata.

Mortasa scavataUtilizzando legno di abete e pino non ho avuto grandi difficoltà nonostante gli scalpelli non fossero affilatissimi. Aver tagliato i bordi con la Dozuki ha aiutato ad avere uno scasso pulito e pronto all’uso.

 

Primo assemblaggio

Presentazione gambe e piani della cuccia per il gattoDopo aver tagliato i piani a misura per le mortase appena viste ho assemblato il tutto. Gli incastri sono molto stretti, ma non hanno fatto fatica a combaciare e sfilarsi una volta terminata la prova.

Ora è il turno delle due traverse, che andranno a rinforzare la struttura oltre che renderla più appetibile dal lato estetico.

 

Ecco due delle quattro gambe appena incollate con le traverse. Sullo sfondo il piano superiore rivestito di moquette e i primi listelli incollati come una soglia.

 

Domani la colla sarà asciutta e passerò alle rifiniture e rimozione delle “mazzulate” date per farlo andare in squadra e dei morsetti utilizzati per tenerlo fermo durante l’asciugatura della colla.

Aggiungerò le foto finali, possibilmente complete di gatto, qui sotto.

A presto con le nuove foto!

Cuccia per il Gatto quasi completa

 

 

 

 

 

 

 

Ora non resta che coprire l’ultima parte del tiragraffi!

 

Comunicazione Bluetooth Low Energy tra Raspberry Pi 3 e The Tactigon

Bluetooth Low Energy tra Raspberry Pi 3 e The TactigonCiao! Qualche settimana fa abbiamo visto come installare BlueZ e bluepy sul computer Raspberry Pi 3, ed usufruire quindi del Bluetooth Low Energy. Oggi andremo ad instaurare una comunicazione Bluetooth Low Energy tra Raspberry Pi 3 e The Tactigon tramite uno script Python.

Lo sketch che andremo a caricare sulla nostra scheda The Tactigon verificherà la sua inclinazione (questa volta semplicemente analizzando l’accelerazione) e, ad un cambio di stato, invierà il comando tramite la caratteristica Bluetooth Low Energy. Lo script Python in esecuzione su Rasbperry Pi 3 B, alla ricezione del messaggio, ne effettuerà il parse per poi eseguire un’azione, nel nostro caso il cambio di stato di 4 GPIO.

Leggi tutto “Comunicazione Bluetooth Low Energy tra Raspberry Pi 3 e The Tactigon”

Calibrazione del Giroscopio di The Tactigon

The TactigonCiao! Nello scorso articolo abbiamo visto come programmare, tramite l’IDE Arduino, la nostra scheda The Tactigon, sia come Central Role che come Peripheral Role, e poter quindi trasmettere ad un dispositivo qualisiasi a patto che abbia connettività Bluetooth Low Energy. Ora, invece, andremo ad effettuare la calibrazione del giroscopio di The Tactigon.

Lo sketch che andremo a caricare è molto semplice e non farà altro che eseguire la calibrazione del giroscopio di The Tactigon e accendere i LEDs per mostrare lo stato attuale della procedura. 

Leggi tutto “Calibrazione del Giroscopio di The Tactigon”