Impianto di irrigazione con Raspberry Pi: GPIO ed altre connessioni (quarta parte)

Impianto Irrigazione Raspberry Pi Gpio

Dopo un lungo periodo di assenza torno a parlare in questa quarta parte della realizzazione di un impianto di irrigazione automatizzato grazie al Raspberry Pi. Per la precisione vedremo le connessioni da eseguire sulle porte GPIO e gli altri pin presenti sulla nostra board.

Tutto il progetto è stato realizzato utilizzato un Raspberry Pi “modello B” di prima generazione e quindi tutte le connessione che indicherò faranno riferimento alla pedinatura di questo modello specifico. Niente vieta però di utilizzare un Raspberry Pi diverso da quello indicato o di eseguire le connessioni dei vari apparati a porte gpio diverse da quelle qui specificate. Infatti nello script di gestione che illustrerò nel prossimo articolo, sarà possibile rimappare ogni elemento andando a definire gli ingressi/uscite in un apposito file di configurazione.

Continue reading “Impianto di irrigazione con Raspberry Pi: GPIO ed altre connessioni (quarta parte)”

Impianto di irrigazione con Raspberry Pi: il sistema di rilevamento pioggia (terza parte)

pioggia

Eccoci arrivati alla terza parte di questa serie di post dove descrivo la realizzazione di un’impianto di irrigazione automatizzato dal un Raspberry PI.

Oggi cercherò di spiegare come ho implementato il sistema di rilevamento pioggia grazie al quale viene evitata l’irrigazione quando il terreno ha già ricevuto acqua a causa delle condizioni meteorologiche.

Continue reading “Impianto di irrigazione con Raspberry Pi: il sistema di rilevamento pioggia (terza parte)”

Impianto di irrigazione con Raspberry Pi: l’elettrovalvola (seconda parte)

Claber 78215-10 Elettrovalvole 9V

Salve a tutti, dopo ben due settimane torno a parlare del progetto che sto portando avanti, ovvero la realizzazione di un impianto di irrigazione automatizzato da un Raspberry Pi. Se vi siete persi il precedente post di introduzione potete dargli un’occhiata qui.

Oggi descriverò il tipo di elettrovalvola che ho utilizzato e l’automazione del suo sistema di apertura/chiusura.

Continue reading “Impianto di irrigazione con Raspberry Pi: l’elettrovalvola (seconda parte)”

Impianto di irrigazione con Raspberry Pi (prima parte)

Impianto di irrigazione con Raspberry Pi

Dopo più di un anno di latitanza ho trovato il tempo per tornare scrivere sul blog. L’argomento di questo e dei post che seguiranno sarà la realizzazione e messa in opera di un impianto di irrigazione automatizzato da una centralina il cui componente principale sarà un Raspberry Pi.

Ho iniziato il progetto un paio di mesi fa ed è tuttora in fase di avanzamento. L’impianto una volta terminato gestirà sei diverse zone di irrigazione. Ogni zona verrà comandata da una rispettiva elettrovalvola. L’accensione e lo spengimento delle elettrovalvole verrà gestita dal Raspberry Pi e da otto relè disposti su due appositi moduli.

Continue reading “Impianto di irrigazione con Raspberry Pi (prima parte)”

Installare Money Manager EX su Ubuntu 14.04

Installare libwxbase3.0-0-unofficial:

sudo apt-add-repository 'deb http://repos.codelite.org/wx3.0.1/ubuntu/ trusty universe'
sudo apt-get install curl
curl http://repos.codelite.org/CodeLite.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install libwxbase3.0-0-unofficial

Scaricare Money Manager EX da http://www.moneymanagerex.org/download#LinuxInstall e installare il pacchetto:

dpkg -i mmex_1.1.0_i386.deb

Linux: convertire risoluzione di un video mp4

sudo apt-get install libav-tools
avconv -i input.mp4 -s xga output.mp4

Con il parametro -s si indica la risoluzione in cui convertire

sqcif
128×96

qcif
176×144

cif 352×288

4cif
704×576

16cif
1408×1152

qqvga
160×120

qvga
320×240

vga 640×480

svga
800×600

xga 1024×768

uxga
1600×1200

qxga
2048×1536

sxga
1280×1024

qsxga
2560×2048

sqcif
128×96

qcif
176×144

cif 352×288

4cif
704×576

16cif
1408×1152

qqvga
160×120

qvga
320×240

vga 640×480

svga
800×600

xga 1024×768

uxga
1600×1200

qxga
2048×1536

sxga
1280×1024

qsxga
2560×2048

 

sudo apt-get install mencoder
mencoder input.mp4 -vf scale=1280:720 -oac lavc -ovc x264 -o output.mp4

Con i parametri -oac e -ovc si sceglie il codec audio e video.

Per sapere quali sono i codec disponibili utilizzare i comandi

mencoder -oac help
mencoder -ovc help

Fonte: http://askubuntu.com/questions/160869/need-to-downsample-video-to-a-lower-resolution

Raspberry PI: freeze durante il download dati

Uso il Raspberry Pi durante la notte per eseguire il backup dati di alcuni siti sparsi su internet facendone il download dei dati.

Mi è capitati diverse volte che il Rasp-Pi vada in freeze e non risponda via rete. I log che trovo in /var/log/kern.log sono questi:

Apr 28 16:29:39 raspberrypi kernel: [85223.191749] net_ratelimit: 3722 callbacks suppressed
Apr 28 16:29:39 raspberrypi kernel: [85223.191790] smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped
Apr 28 16:29:39 raspberrypi kernel: [85223.191882] smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped
Apr 28 16:29:39 raspberrypi kernel: [85223.191961] smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped
Apr 28 16:29:39 raspberrypi kernel: [85223.192025] smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped

Googolando ho trovato questa possibile soluzione su http://www.raspberrypi.org/phpBB3/viewtopic.php?p=134136:

I performed the following suggested modifications mentioned in this thread.

  • Updated the firmware according to this blog post: http://www.stuffaboutcode.com/2012/07/raspberry-pi-kernal-panic-solved-by.html i.e. (add “sudo” before each command if you’re not logged in as root) 

    apt-get install git-core
    wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && chmod +x /usr/bin/rpi-update
    apt-get install ca-certificates
    rpi-update
  • Increased “vm.min_free_kbytes” to 16384 in /etc/sysctl.conf:

    nano /etc/sysctl.conf

    Replace the number 8192 after “vm.min_free_kbytes =” with 16384, i.e. double it.

  • Added “smsc95xx.turbo_mode=N” to /boot/cmdline.txt:

    nano /boot/cmdline.txt

    Paste “smsc95xx.turbo_mode=N” after all other entries in the file.

  • After that I pulled the plug, let the RPi rest for a few seconds before plugging it in again. Done!

Installazione e configurazione Subversion su Linux Debian

Di seguito riporto alcuni appunti per eseguire un’installazione e configurazione di base di Subversion su Debian:

Da super user installare il pacchetto:

apt-get install subversion

Creare il repository svn dall’utente su cui verranno ospitati i dati, nel mio caso l’ho creato nella mia home:

mkdir /home/david/svn
svnadmin create /home/david/svn/repos

Nel file /home/david/svn/repos/conf/passwd andranno indicati gli utenti e le relative password che potranno accedere al server svn:

user1 = password1
user2 = password2
...

Va anche modificato il file /home/david/svn/repos/conf/svnserve.conf come indicato di seguito:

#
# Sample /srv/svn/conf/svnserve.conf
#
[general]
 
# Path to the file containing svn users and passwords.
password-db = /srv/svn/conf/passwd
 
# Authentication realm of the repository. Two repositories using the
# same password-db should have the same realm.
realm = My-test-repository
 
# Deny all anonymous access (none=non permette di accedere senza password alla repository)
anon-access = none 
 
# Grant authenticated users read and write privileges
auth-access = write

Adesso è possibile lanciare il server svn in modo che sia accessibile via rete. Andrà indicato l’indirizzo ip dell’interfaccia di rete che deve rispondere alle richieste dei client e percorso del repository:

svnserve -d --listen-host 192.168.50.2 -r /home/david/svn/repos

Per fare in modo che il server svn venga avviato sempre all’accensione del pc, ho creato lo script /usr/local/bin/svn-daemon.sh contenente il comando sopra indicato e l’ho inserito nel crontab (crontab -e) dell’utente david come segue:

@reboot /usr/local/bin/svn-daemon.sh

A questo punto da Eclipse (io uso questo ambiente di sviluppo con installato il plugin Subversive che funziona da client svn) ho creato il repository svn andando su File/New/Other/SVN/Repository Location. Da qui ho specificato la url del server svn nella seguente forma (cube.home è il nome del pc che fa da server svn nella mia rete locale):

svn://cube.home

In più ho inserito l’utente e password specificate precedentemente nel file di configurazione.

Una volta creato il repository ho creato la cartella che ospiterà il primo progetto. L’ho fatto andando nella perspective SVN Repository Exploring (Window/Open Perspective/Other/SVN Repository Exploring).

Creata la cartella ho creato il primo progetto andando in File/New/Other/Project From SVN e da qui ho sfogliato il repository e ho selezionato la cartella precedentemente creata.

 

Sostituzione Hard Disk guasto su Debian Squeeze e ripristino sistema (e tre!!!)

Di seguito alcuni appunti ulteriori riguardo la sostituzione di un’Hard Disk guasto sul mio mini sistema Debian Squeeze trattato qui Sostituzione Hard Disk guasto su Debian Squeeze e ripristino sistema (secondo turno).

Può capitare che l’UUID della partizione di root e di swap sul nuovo disco siano diversi rispetto a quello vecchio e per questo una volta ripristinato grub il sistema non riesca a partire.

Per risolvere il problema bisogna, una volta che grub propone il profilo con cui avviare, premere il tasto e per entrare in edit mode e qui sostituire l’UUID del disco di root con il nome del device (es: /dev/sda2), fatto questo si avvia premendo ctrl-x.

Il sistema parte e una volta avviato andrà modificato il file /etc/fstab in modo da sostituire i vecchi UUID delle partizione di root e di swap.

E’ possibile recuperare il nuovo uuid per la partizione di root (nel mio caso /dev/sda2) con il seguente comando

tune2fs -l /dev/sda2 | grep UUID

Mentre per la partizione di swap viene visualizzato in seguito alla sua inizializzazione (nel mio caso /dev/sda1), attenzione il comando è distruttivo non sbagliate partizione:

mkfswap /dev/sda1

Adesso non ci resta che rigenerare la configurazione di grub con il seguente comando:

update-grub2

Adesso dovrebbe essere possibile riavviare il sistema in modo corretto.