Weather webcam στο Raspberry (με adsl ή με 3G internet)

Θα δείξουμε πως μπορούμε να βάλουμε μια weather webcam στο Raspberry Pi - ο οδηγός σε γενικές γραμμές ισχύει σε όλες τις GNU/Linux - παράγωγες Debian διανομές.

Για λόγους ευκολίας και όχι διαφήμισης θα δείξουμε και links προς προμηθευτές υλικών.

Αναμενόμενο κόστος υλικών απο 100 ευρώ εώς 200, ανάλογα με τις απαιτήσεις που έχει ο καθένας - πάντως συμφέρει σε σχέση με μια IP κάμερα.

ΠΡΟΣΟΧΗ! δε φέρω καμία ευθύνη εάν καταστρέψεις οτιδήποτε απο τα υλικά σου

Υλικά:

√ 1 Raspberry Pi Model B 512Mb RAM
√ 1 webcam απο αυτές http://elinux.org/RPi_VerifiedPeripherals#USB_Webcams
√ 1 Τροφοδοτικό 2AMP για το Raspberry Pi
√ 1 sd card απο αυτές (αυτές με το πράσινο) http://elinux.org/RPi_SD_cards#Working_.2F_Non-working_SD_cards
√ 1 υπολογιστή με Linux για να γίνει η ρύθμιση
√ 1 router για να γίνει η ρύθμιση του Raspberry
√ προαιρετικά μια οθόνη με HDMI και καλώδιο HDMI
√ προαιρετικά ένα usb πληκτρολόγιο
√ καλώδιο usb repeater εάν θέλουμε να επιμηκύνουμε το καλώδιο της κάμερας (προσωπικά έχω δοκιμάσει με επιτυχία εώς 5μ στο Raspberry και εώς 25μ. σε σταθερό υπολογιστή)
√ 1 3G dongle στικάκι για ιντερνετ κινητής τηλεφωνίας απο αυτά εάν δεν έχουμε σταθερό ιντερνετ adsl ([προσωπικά έχω δοκιμάσει το Ε1750) http://elinux.org/RPi_VerifiedPeripherals#USB_3G_Dongles
√ καλώδιο ethernet εάν έχουμε σταθερό adsl internet
√ card reader για την κάρτα sd


Και ξεκινάμε την εγκατάσταση

Προετοιμασία sd κάρτας του Raspbian image


Στο Linux PC μας
κατεβάζουμε το τελευταίο .img του Raspbian wheezy, αυτή την ώρα το πιο πρόσφατο είναι το 2013-02-09, θα το βρείτε εδώ είτε σε torrent είτε σε direct download http://www.raspberrypi.org/downloadsΠΡΟΣΟΧΗ!ΟΧΙ ΤΟ SOFT FLOAT

df -h

για να αναγνωρίσουμε ποιο dev (/sdb ή /sdc κλπ) είναι η sd card ΜΕΓΑΛΗ ΠΡΟΣΟΧΗ ΕΔΩ να γίνει σωστά η αναγνώριση
εφόσον είμαστε σίγουροι ότι αναγνωρίσαμε την κάρτα σημειώνουμε κάπου αυτό, για λόγους πρακτικότητας αυτού του οδηγού εμείς θα αναφέρουμε την κάρτα ως /dev/sdb
Τώρα κάνουμε unoumnt όλα τα partitions της κάρτας, όσα έχει,

sudo umount /dev/sdb1
sudo umount /dev/sdb2  

εάν έχει παραπάνω partitions τα κάνουμε όλα unoumnt και τέλος για την εγκατάσταση του Raspbian wheezy κάνουμε extract το .zip αρχείο που κατεβάσαμε και δίνουμε

    sudo dd bs=4M if=~/2012-12-16-wheezy-raspbian.img of=/dev/sdb

αλλάξτε τη διαδρομή στην παραπάνω εντολή ώστε να ταιριάζει με τη διαδρομή που έχετε σώσει το αρχειο στο PC σας, ίσως και το filename να είναι άλλο, αλλάξτε το και αυτό. Περιμένουμε να τελειώσει η διαδικασία, θα πάρει εώς και 5-10 λεπτά. Μόλις τελειώσει δίνουμε απαραιτήτως.

sudo sync

Στο Raspberry Pi

Εγκατάσταση και ρύθμιση Raspbian


Τοποθετούμε την κάρτα και βάζουμε το καλώδιο ethernet, βάζουμε το usb πληκτρολόγιο, το συνδέουμε στην οθόνη/τηλεόραση και τέλος βάζουμε το ρεύμα.
Θα δούμε στην οθόνη το μπουτάρισμα του Raspberry και αυτό να αναβοσβήνουν τα λαμπάκια και στο τέλος να μένουν ολα αναμένα.

Και στο τέλος θα βγεί αυτή η εικόνα, το raspi-config, είναι απαραίτητο να γίνουν τώρα μερικές ρυθμίσεις εδώ αλλα θα μπορείτε να το τρέξετε και μετά για να κάνετε αλλαγές με την εντολή

sudo raspi-config

raspi-config
Για την εγκατάσταση του σταθμού προτείνω τις παρακάτω επιλογές,
expand_rootfs - απαραίτητο
change_pass -
αλλάχτε το default passwd που είναι "raspberry" σε κάτι δικό σας
change_timezone - επιλέξτε ζώνη ώρας "Αθήνα", αυτό είναι για όλη την Ελλάδα
ssh - enabled update - προεραιτικά
Τώρα με το TAB πλήκτρο μετακινηθείτε στο <Finish> και θα μπείτε στο shell και δώστε

sudo reboot

θα πάρει αρκετή ώρα να ξαναμπουτάρει, περιμένετε μέχρι να τελειώσει. Τώρα δεν έχουμε ανάγκη την τηλεόραση μας, για λόγους ευκολίας μπορούμε να αποσυνδέσουμε το HDMI καλωδιο και το πληκτρολόγιο απο το Raspberry και να προχωρήσουμε τα πάντα απο το τερματικό του Linux μας μέσω SSH. Εάν χειριζόμαστε το Raspberry μεσω ssh δίνουμε στο τερματικό του υπολογιστή μας

ssh pi@raspberrypi

Εάν θέλουμε η σύνδεση και η αποστολή δεδομένων θέλουμε να γίνει μέσω internet 3G κινητής τηλεφωνίας τότε ακολουθούμε τον παρακάτω οδηγό, εάν η σύνδεση μας θα είναι σταθερή τότε παρακάμψτε αυτό το βήμα και πηγαίνετε πιο κάτω στο FSWEBCAM

Εγκατάσταση SAKIS3G για αποστολή δεδομένων μέσω 3G κινητής τηλεφωνίας


ανοίξτε το τερματικό και συνδεθείτε ως root

apt-get install ppp
apt-get install gcc
apt-get install usb-modeswitch
apt-get install libusb-dev
cd /usr/bin
wget "http://dl.dropbox.com/u/27430037/sakis3g"
chmod a+x sakis3g
./sakis3g recompile
exit

συνδεόμαστε στο ιντερνετ με ενα απο τα παρακατω αναλογα τον provider αν ειναι WIND, VODAFONE ή COSMOTE

WIND

sudo /usr/bin/sakis3g connect USBINTERFACE=0 APN=gint.b-online.gr

Q

sudo /usr/bin/sakis3g connect USBINTERFACE=0 APN=myq

VODAFONE

sudo /usr/bin/sakis3g connect USBINTERFACE=0 APN=internet.vodafone.gr

ή

sudo /usr/bin/sakis3g connect USBINTERFACE=0 APN=webonly.vodafone.gr

COSMOTE

sudo /usr/bin/sakis3g connect USBINTERFACE=0 APN=internet

Εάν θέλουμε να το κάνουμε να ξεκινά αυτόματα σε κάθε μπουτάρισμα τότε θα φτιάξουμε ένα σκριπτάκι

sudo nano connect.sh

και βάζουμε μέσα μια απο τις παραπάνω γραμμές που αντιστοιχούν αναλογα τον πάροχο πχ για τη WIND βάζουμε μεσα στο αρχείο

sudo /usr/bin/sakis3g connect USBINTERFACE=0 APN=gint.b-online.gr

το κάνουμε εκτελέσιμο

sudo chmod +x /home/pi/connect.sh

και ανοίγουμε

sudo nano /etc/rc.local

και προσθέτουμε τη γραμμή

/home/pi/connect.sh

Εγκατάσταση λογισμικού κάμερας FSWEBCAM

Στο Raspberry ή στο Linux PC μας μέσω ssh δίνουμε

sudo apt-get install fswebcam
sudo apt-get install ncftp
sudo apt-get install luvcview

*το πρώτο είναι το software για να τραβάει φωτογραφίες, το δευτερο για να ανεβάζει φωτογραφίες στο site σου και το τριτο για να δεις τι επιλογες εχεις οσο αφορα το μεγεθος της εικονας απο την καμερα)
συνδέουμε την κάμερα στη usb θυρα του Raspberry και δίνουμε

luvcview -L

στο κατεβατο που θα βγάλει ψάξτε τη γραμμή που ξεκινάει με

{ pixelformat = 'MJPG', description = 'MJPEG' }

απο αυτη τη γραμμη και κατω εως και τη γραμμη που λεει για άλλη μορφή εικόνας πχ pixelformat = 'RGB3' σου λεει τα επιτρεπτα μεγεθη που μπορεις να ορισεις στο capture image. Τώρα δημιουργούμε ένα νέο αρχείο με

sudo nano /etc/fswebcam.conf

και βάζουμε μέσα τα παρακάτω

device /dev/video0
input 0
skip 20
resolution 864x480
set brightness=60%
set contrast=50%
top-banner
font /usr/share/fonts/truetype/msttcorefonts/arial.ttf
title "My Cam"
timestamp "%d-%m-%Y %H:%M:%S"
jpeg 100
save /home/pi/viewcam.jpg
palette MJPEG

συμβουλευτείτε το man fswebcam για την επιλογή των ρυθμίσεων, επιγραμματικά μερικές resolution το βάζετε ανάλογα τι έδειξε η παραπάνω εντολή luvcview -L title - ένας τίτλος για την εικόνα Δημιουργούμε ακόμα ένα αρχείο

sudo nano /home/pi/upload.sh

και βάζουμε μέσα

#!/bin/bash
cd /home/pi/
fswebcam -c /etc/fswebcam.conf
sleep 15
ncftpput -Rm -u ************ -p ************ domain.gr /path-to-server /home/pi/viewcam.jpg

το κάνουμε εκτελέσιμο με

chmod +x /home/pi/upload.sh

και το δοκιμάζουμε με

sudo ./upload.sh

εάν όλα έχουν πάει καλά κάνουμε το πρόγραμμα να ανεβάζει τις φωτογραφίες κάθε 30 λεπτά πχ δίνουμε

sudo crontab -e

και στο τέλος του αρχείου συμπληρώνουμε

*/30 * * * * /home/pi/upload.sh

τελος.


fswebcam manual
http://manpages.ubuntu.com/manpages/lucid/man1/fswebcam.1.html

crontab manual
https://help.ubuntu.com/community/CronHowto

luvcview manual
http://manpages.ubuntu.com/manpages/precise/man1/luvcview.1.html

ncftp manual
http://www.ncftp.com/ncftp/doc/ncftpput.html

Προσοχή στο ρεύμα του Raspberry, δεν του αρέσουν καθόλου οι διακοπές, εάν γίνει διακοπή ρεύματος την ώρα που γράφει κάτι στην κάρτα η κάρτα αχρηστεύεται

Για περισσότερη βοήθεια εάν κάτι πάει στραβά, αν έχετε κολλήσει κάπου ή αν κάτι έχω γράψει λάθος παρακαλώ δημοσιεύστε εδώ στο snowguide forum ή εδώ στο Ubuntu.gr forum τις ερωτήσεις ή τα σχόλια σας. Ευχαριστώ