Οδηγός αυτοματισμού στο σπίτι με Raspberry Pi και Arduino

Η αγορά αυτοματισμού στο σπίτι είναι πλημμυρισμένη με ακριβά καταναλωτικά συστήματα, ασυμβίβαστα μεταξύ τους και δαπανηρά για την εγκατάσταση. Αν έχετε ένα Raspberry Pi και ένα Arduino, μπορείτε βασικά να επιτύχετε το ίδιο πράγμα σε ένα κλάσμα της τιμής, υποθέτοντας ότι είστε διατεθειμένοι να βάλετε τον χρόνο και την προσπάθεια.

Η αγορά αυτοματισμού στο σπίτι είναι πλημμυρισμένη με ακριβά καταναλωτικά συστήματα, ασυμβίβαστα μεταξύ τους και δαπανηρά για την εγκατάσταση.  Αν έχετε ένα Raspberry Pi και ένα Arduino, μπορείτε βασικά να επιτύχετε το ίδιο πράγμα σε ένα κλάσμα της τιμής, υποθέτοντας ότι είστε διατεθειμένοι να βάλετε τον χρόνο και την προσπάθεια.
Διαφήμιση

Έχουμε μιλήσει για τα σχετικά πλεονεκτήματα του Arduino και του Raspberry Pi πριν - έχουν το καθένα τις δυνάμεις τους. Δεν χρειάζεται να είναι ούτε επιλογή είτε επιλογή - συνδυάστε τα για να πάρετε το καλύτερο και των δύο κόσμων. Ο αυτοματισμός στο σπίτι είναι ο τέλειος υποψήφιος για αυτό. Η αγορά αυτοματισμού στο σπίτι είναι πλημμυρισμένη με ακριβά καταναλωτικά συστήματα, ασυμβίβαστα μεταξύ τους και δαπανηρά για την εγκατάσταση. Εάν έχετε ένα Raspberry Pi Raspberry Pi: Το Ανεπίσημο Tutorial Raspberry Pi: Το Ανεπίσημο Tutorial Είτε είστε τρέχων ιδιοκτήτης Pi που θέλει να μάθει περισσότερα ή ένας πιθανοί ιδιοκτήτης αυτής της συσκευής μεγέθους πιστωτικής κάρτας, αυτό δεν είναι ένας οδηγός θέλετε να χάσετε. Διαβάστε περισσότερα και ένα Arduino, μπορείτε βασικά να επιτύχετε το ίδιο πράγμα σε ένα κλάσμα της τιμής, υποθέτοντας ότι είστε πρόθυμοι να βάλετε τον χρόνο και την προσπάθεια.

Ενημέρωση: Δεδομένου ότι γράφτηκε αυτό το άρθρο, ανακάλυψα την OpenHAB, μια ελεύθερη και ανοιχτού κώδικα πλατφόρμας αυτοματισμού οικιακής χρήσης που τρέχει στο Raspberry Pi και μπορεί να ενσωματωθεί με μια τεράστια γκάμα έξυπνων οικιακών συσκευών εκτός από το ράφι καθώς και του Arduino. Ελέγξτε έξω το βίντεο παρακάτω για μια κορυφή sneak, στη συνέχεια, επικεφαλής επάνω για μας Ξεκινώντας με OpenHAB σε Raspberry Pi Ξεκινώντας με OpenHAB Home Automation σε Raspberry Pi Ξεκινώντας με OpenHAB Home Automation σε Raspberry Pi OpenHAB είναι μια ώριμη, ανοικτή πηγή αυτοματισμού σπίτι πλατφόρμα που λειτουργεί με ποικίλο υλικό και είναι πρωτοποριακό πρωτόκολλο, που σημαίνει ότι μπορεί να συνδεθεί με σχεδόν οποιοδήποτε υλικό οικιακού αυτοματισμού στην αγορά σήμερα. Διαβάστε περισσότερα οδηγό για να μάθετε περισσότερα.

Το Heimcontrol.js είναι μια εφαρμογή Node.js κατασκευασμένη για να τρέχει στο Raspberry Pi. Σε συνδυασμό με ένα Arduino και μερικές υποδοχές τηλεχειρισμού εκτός του ράφι, καθιστά εύκολο τον έλεγχο των συσκευών εναλλασσόμενου ρεύματος. Μπορείτε να προσθέσετε αισθητήρες θερμοκρασίας, ακόμα και να ελέγξετε την τηλεόρασή σας - αλλά θα διατηρήσουμε τα πράγματα βασικά σήμερα και θα επεκτείνουμε το έργο σε ένα μεταγενέστερο φροντιστήριο.

Ακολουθεί μια ανάλυση του έργου:

  • Το Raspberry Pi θα λειτουργήσει ως ο εγκέφαλος και η πύλη των λειτουργιών - θα εκτελέσει μια εφαρμογή κόμβου, συνδέεται με μια βάση δεδομένων Mongo, και θα εξυπηρετήσει τη διεπαφή front-end σε οποιοδήποτε πρόγραμμα περιήγησης στο web.
  • Ένα Arduino, που τροφοδοτείται από το Pi, θα διασυνδέει μεταξύ των διακοπτών ρεύματος ηλεκτρονικών - ραδιοφώνων, για τώρα.

Για να το κάνετε αυτό, θα χρειαστείτε:

  • Arduino και ένα Raspberry Pi
  • Ορισμένες υποδοχές τηλεχειρισμού και ελεγκτή (τις χρησιμοποίησα)
  • Ενσωματωμένος διανομέας USB

Υποδοχές RC

Πριν ξεκινήσουμε, εδώ είναι ένα demo video από τον ίδιο τον δημιουργό του έργου.

Ξεκινήστε ξανά

Θα χρησιμοποιήσουμε Raspian για αυτό το έργο 10 λειτουργικά συστήματα που μπορείτε να τρέξετε με Raspberry Pi 10 Λειτουργικά συστήματα μπορείτε να τρέξετε με Raspberry Pi Το υλικό του Raspberry Pi μόνο είναι μόνο μία πλευρά της ιστορίας: Σήμερα διερευνούν 10 διαφορετικά λειτουργικά συστήματα μπορείτε να εγκαταστήσετε. Διαβάστε περισσότερα και θα ήθελα να σας προτείνω να αρχίσετε από μια νέα εγκατάσταση, εάν προηγουμένως έχετε εκτελέσει άλλα hacks και τέτοια. Κάντε λήψη της τελευταίας εικόνας Raspian, αντιγράψτε την στην κάρτα SD και βεβαιωθείτε ότι έχετε επεκτείνει το σύστημα αρχείων και ενεργοποιήσετε το SSH. Ο υπόλοιπος οδηγός θα υποθέσει ότι το έχετε κάνει και συνδέεστε μέσω SSH χρησιμοποιώντας τον προεπιλεγμένο χρήστη.

Εάν δεν το κάνατε πριν, αυτό το βίντεο εξηγεί τη διαδικασία προετοιμασίας της κάρτας SD σας στο OS X:

Και αυτό για τους χρήστες των Windows:

Παρασκευή

Η διαδικασία εγκατάστασης είναι αρκετά επίπονη και προέρχεται από τις οδηγίες εδώ. Δυστυχώς, αυτά ήταν ξεπερασμένα ή δεν σχεδιάστηκαν για Raspian, γι 'αυτό τα έχω προσαρμόσει πολύ κάτω. Οι παρακάτω κωδικοί μπορούν να επικολληθούν κυρίως σε μπλοκ - δεν χρειάζεται να επικολλήσετε ένα προς ένα. Εφόσον καταρτίζουμε μερικά πράγματα στην ίδια την Pi, προειδοποιούμε ότι όλη αυτή η διαδικασία θα διαρκέσει πολύ. Θα έλεγα να πάτε να φτιάξετε τον εαυτό σας ένα φλιτζάνι τσάι - αλλά όταν λέω "πολύ καιρό", εννοώ το καλύτερο μέρος μιας ημέρας - έτσι 178 κύπελλα θα ήταν πιο κατάλληλα.

Όλες οι εντολές θα πρέπει να πληκτρολογούνται στο τερματικό και ίσως χρειαστεί να πατήσετε το Enter σε ορισμένα σημεία. Αυτές οι πρώτες εντολές θα ενημερώσουν το σύστημα και θα εγκαταστήσουν τις προϋποθέσεις:

sudo apt-get update sudo apt-get upgrade sudo apt-get install git-core git scons build-essential scons libpcre++-dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev 

Στη συνέχεια πρέπει να εγκαταστήσουμε τον Κόμβο:

 sudo mkdir /opt/node wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz tar xvzf node-v0.10.2-linux-arm-pi.tar.gz sudo cp -r node-v0.10.2-linux-arm-pi/* /opt/node sudo ln -s /opt/node/bin/node /usr/local/bin/node sudo ln -s /opt/node/bin/npm /usr/local/bin/npm 

Προσθέστε μια μεταβλητή PATH στο προφίλ σας έτσι ώστε το λειτουργικό σύστημα να γνωρίζει πού εντοπίζεται ο κόμβος. Χρησιμοποιήστε τον επεξεργαστή κειμένου nano ως εξής:

 sudo nano /etc/profile 

Εντοπίστε τη γραμμή που λέει την εξαγωγή PATH και αντικαταστήστε την με:

 NODE_JS_HOME="/opt/node" PATH="$PATH:$NODE_JS_HOME/bin" export PATH 

Πιέστε Ctrl-X για έξοδο και Y για αποθήκευση.

Μπορεί να χρειαστεί να αποσυνδεθείτε και να ξαναγυρίσετε για να ισχύσουν οι αλλαγές στις διαδρομές, αλλά μπορείτε να δοκιμάσετε με την εντολή:

 which node 

Εάν δεν έχετε κάποια έξοδο που να δείχνει στο δυαδικό δυαδικό κόμβο, κάτι πήγε στραβά.

Μόνγκο

Η επόμενη δουλειά είναι να εγκαταστήσετε το Mongo. Το Mongo είναι βάση δεδομένων που βασίζεται σε έγγραφα No-SQL που χρησιμοποιείται όλο και περισσότερο από εφαρμογές ιστού. Δυστυχώς, αυτό θα πρέπει να εγκατασταθεί για πάντα, όπως πρέπει να το καταρτίσουμε. Ενώ εκτελείτε τις παρακάτω εντολές, θα λάβετε πολλά λάθη όπως:

 {standard input}:13085: Warning: swp{b} use is deprecated for this architecture 

Μην ανησυχείτε γι 'αυτά. Έτσι, εκτελέστε αυτές τις εντολές για να εγκαταστήσετε το Mongo:

 git clone git://github.com/RickP/mongopi.git cd mongopi scons sudo scons --prefix=/opt/mongo install scons -c 

Όταν αυτό τελειώσει, χρειαζόμαστε λίγο περισσότερη ρύθμιση πρώτα για να διορθώσουμε τα ζητήματα δικαιωμάτων και βεβαιωθείτε ότι εκτελείται κατά την εκκίνηση.

 sudo useradd mongodb sudo mkdir /data/dbb sudo chown $USER /data/db cd /etc/init.d sudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.sh sudo chmod +x mongodb sudo update-rc.d mongodb defaults mongod 

Αυτή η τελευταία εντολή θα ξεκινήσει τον διακομιστή Mongo και θα χρειαστεί να ανοίξετε ένα νέο τερματικό για να συνεχίσετε με τις άλλες εντολές. Δεν είμαι απόλυτα βέβαιος για αυτό το βήμα, οπότε αν κάποιος μπορεί να το διορθώσει αυτό στα σχόλια σχετικά με τον τρόπο αυτόματης εκτόξευσης του mongod κατά την εκκίνηση, θα ήταν πολύ ευπρόσδεκτη. Προς το παρόν, λειτουργεί, δεν είναι κομψά.

 sudo shutdown -r now 

Τέλος, είναι καιρός να εγκαταστήσετε την εφαρμογή κόμβου Heimcontrol.js.

 cd ~pi git clone git://github.com/ni-c/heimcontrol.js.git cd heimcontrol.js npm install 

Μπορείτε να ξεκινήσετε την προβολή της εφαρμογής πληκτρολογώντας

 node heimcontrol.js 

Σε αυτό το σημείο, θα πρέπει να μπορείτε να αποκτήσετε πρόσβαση στη διασύνδεση ελέγχου με http: // localhost: 8080 από το Pi ή να αντικαταστήσετε το localhost με τη διεύθυνση IP, αν την έχετε πρόσβαση από διαφορετικό υπολογιστή (και μπορείτε επίσης να ρυθμίσετε τη θύρα [MakeUseOf Εξηγεί] Φωνάζετε λίγο μέσα όταν κάποιος σας λέει ότι υπάρχει ένα πρόβλημα προώθησης θύρας και αυτός είναι ο λόγος για τον οποίο σας το Xbox δεν θα σας αφήσει να παίξετε παιχνίδια, τα αρχεία torrent σας αρνούνται ... Διαβάστε περισσότερα για να έχετε πρόσβαση σε αυτό από οπουδήποτε στον κόσμο), γι 'αυτό θα σας ενθάρρυναν να περιπλανηθείτε και να ελέγξετε ότι όλα είναι που εργάζονται με τη βάση δεδομένων πριν από την τοποθέτηση του Arduino.

Σκεύη, εξαρτήματα

Τελικά θα ήθελα ένα καλωδιακό ρελέ, αλλά προς το παρόν θα χρησιμοποιήσω την ασφαλέστερη επιλογή των ραδιοελεγχόμενων διακοπτών.

Έχω χρησιμοποιήσει μερικά λογικά φθηνά 20 σετ από Maplin που έρχονται με 3 υποδοχές και άνοιξε το τηλεχειριστήριο για να μπορέσω να συνδεθώ απευθείας με το τσιπ 433 MHz μέσα. Βρήκα τις οδηγίες για αυτό εδώ.

rc-controller-hack

Μπορείτε επίσης να αγοράσετε μεμονωμένους πομπούς 433 MHz έτοιμους για χρήση σε eBay ή από προμηθευτές ηλεκτρονικών χόμπυ. Το μόνο που χρειάζεστε είναι να συνδέσετε το VCC σε 5 V στο Arduino, τα GND, και ένα μόνο πείρο ελέγχου - να θυμάστε ποιο από αυτά χρησιμοποιήσατε. (Schematic by Willi Thiel)

arduino-rcswitch

Το plugin λειτουργεί με την αποστολή "κωδικών tristate", αλλά αυτά θα διαφέρουν ανάλογα με τον κατασκευαστή. Ανατρέξτε στην τεκμηρίωση του RCSwitch για να βρείτε τους ακριβείς κωδικούς σας. Αυτός ο οδηγός wiki μπορεί επίσης να βοηθήσει.

Η επικοινωνία με το Arduino γίνεται χρησιμοποιώντας μια βιβλιοθήκη κόμβων που ονομάζεται duino. Σταματήστε την εφαρμογή Heimcontrol εάν εκτελείται και εγκαταστήστε τη γέφυρα Arduino χρησιμοποιώντας την ακόλουθη εντολή.

 npm install duino 

Το Arduino πρέπει να έχει φορτώσει αυτόν τον κώδικα - προτείνω να αντιγράψετε και να επικολλήσετε την εγκατάσταση από έναν διαφορετικό υπολογιστή. Είναι ουσιαστικά ένα πρόγραμμα ακρόασης που ανταποκρίνεται σε σειριακές εντολές από το Pi, αλλά δεν υπάρχει τίποτα που να σας εμποδίζει να το επεκτείνετε με τα δικά σας χαρακτηριστικά.

rc-ρυθμίσεις

Με την εκκίνηση της εφαρμογής Ιστού, μεταβείτε στο μενού Ρυθμίσεις > Arduino .

heimcontrol-μενού-ρυθμίσεις

Από εκεί μπορείτε να προσθέσετε ένα νέο στοιχείο, επιλέγοντας τη μέθοδο RCSwitch, τον ακροδέκτη του πομπού σας και τον κωδικό διεύθυνσης tristate. Θυμηθείτε να αποθηκεύσετε και στη συνέχεια να επιστρέψετε στην κύρια οθόνη για το νέο σας κουμπί.

Ρυθμιστή στροφών

Σφάλματα:

Μετά από πολλές ώρες εντοπισμού σφαλμάτων στον κώδικα, βρήκα ότι οι μονοψήφιοι αριθμοί καρφίτσας δεν λειτουργούσαν - βεβαιωθείτε ότι ο πομπός σας είναι τοποθετημένος στην καρφίτσα 10 για να είστε σίγουροι.

Βρήκα επίσης ότι το plugin Arduino ήταν hardcoded με εσφαλμένα τελικά κομμάτια για τους κωδικούς tristate που χρειάζονταν οι δέκτες μου. Μια μικρή εξήγηση πρώτα: οι κωδικοί tristate αποτελούνται από 3 bytes πληροφοριών. Ο πρώτος καθορίζει τον αριθμό δικτύου (1-4) και ο δεύτερος δίνει τη διεύθυνση του πομποδέκτη (και πάλι, 1-4, παράγοντας το πολύ 16 διευθύνσεις). Το τελικό byte αποτελείται από δύο κομμάτια του padding, συν 2 bits για on / off. Δυστυχώς, το τελικό byte είναι hardcoded στο plugin του Arduino - και στην περίπτωσή μου, ο κωδικός on / off ήταν εσφαλμένος.

Έπρεπε να επεξεργαστώ χειροκίνητα τα plugins / arduino / index.js για να χρησιμοποιήσω τους σωστούς κώδικες. Αν χρησιμοποιείτε τις ίδιες υποδοχές τηλεχειριστηρίου όπως και εγώ, αλλάξτε γραμμές 80 και εξής:

 // Send RC code if (item.value) { return that.pins[item.pin].triState(item.code + "FFFF");//change from FF0F } else { return that.pins[item.pin].triState(item.code + "FFF0");//change from FF00 } 

Εδώ είναι ένα demo βίντεο για όλα τα έργα:

Θα το αφήσω εδώ σε αυτό το σημείο, αλλά οι μετρήσεις αισθητήρων και τα τηλεχειριστήρια IR υποστηρίζονται επίσης. Θα επανέλθω πιθανότατα αργότερα με κάποιες ακόμα βελτιώσεις. Εάν όλα αυτά είναι λίγο πολύ περίπλοκα για εσάς, ίσως ελέγξετε αυτά τα αρχαία φιλικά έργα Arduino 10 Μεγάλα Έργα Arduino για Αρχάριους 10 Μεγάλα Έργα Arduino για αρχάριους Η ολοκλήρωση ενός έργου Arduino σας δίνει μια αίσθηση ικανοποίησης όπως και καμία άλλη. Οι περισσότεροι αρχάριοι δεν είναι σίγουροι από πού να ξεκινήσουν όμως, και ακόμη και τα σχέδια για αρχάριους μπορεί να φανεί μάλλον τρομακτικό. Διαβάστε περισσότερα .

Εικόνες Συντελεστές: Πόρτα Bell μέσω Flickr

In this article