Διαφήμιση

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

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

instagram viewer
Ξεκινώντας με το OpenHAB στο Raspberry Pi Ξεκινώντας με το OpenHAB Home Automation στο Raspberry PiΤο OpenHAB είναι μια ώριμη πλατφόρμα αυτοματισμού ανοιχτής πηγής που λειτουργεί με μια ποικιλία υλικού και είναι πρωτόκολλο agnostic, που σημαίνει ότι μπορεί να συνδεθεί με σχεδόν οποιοδήποτε υλικό οικιακού αυτοματισμού στην αγορά σήμερα. Διαβάστε περισσότερα οδηγός για να μάθετε περισσότερα.

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

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

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

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

  • Arduino και ένα Raspberry Pi
  • Μερικές τηλεχειριζόμενες υποδοχές και ελεγκτές (χρησιμοποίησα αυτά τα)
  • Ενσωματωμένος διανομέας USB
Υποδοχές RC

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

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

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

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

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

Παρασκευή

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

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

sudo apt-get ενημέρωση sudo apt-get αναβάθμιση. sudo apt-get install git-core git scon δημιουργία βασικών scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-νήμα-dev libboost-filesystem-dev. 

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

sudo mkdir / opt / κόμβος. wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz. tar xvzf κόμβος-v0.10.2-linux-arm-pi.tar.gz. sudo cp -r κόμβος-v0.10.2-linux-arm-pi / * / opt / κόμβος. sudo ln -s / opt / κόμβος / bin / κόμβος / usr / τοπικός / bin / κόμβος. sudo ln -s / opt / node / bin / npm / usr / τοπικό / bin / npm. 

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

sudo nano / etc / προφίλ. 

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

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" εξαγωγή PATH.

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

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

ποιο κόμβο. 

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

Μόνγκο

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

{standard input}: 13085: Προειδοποίηση: Η χρήση swp {b} είναι παρωχημένη για αυτήν την αρχιτεκτονική. 

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

git clone: ​​//github.com/RickP/mongopi.git. cd mongopi. scons. sudo scons - prefix = / opt / mongo Εγκατάσταση scons -c. 

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

sudo useradd mongodb. sudo mkdir / data / dbb. sudo chown $ USER / δεδομένα / 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 προεπιλογές. mongod

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

sudo shutdown -r τώρα

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

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

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


κόμβος heimcontrol.js. 

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

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

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

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

rc-controller-hack

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

arduino-rcswitch

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

Η επικοινωνία με το Arduino γίνεται χρησιμοποιώντας μια βιβλιοθήκη κόμβων που ονομάζεται duo. Σταματήστε την εφαρμογή 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 και εξής σε:

// Στείλτε τον κωδικό RC. αν (item.value) {επιστροφή that.pins [item.pin] .triState (item.code + "FFFF"); // αλλαγή από FF0F. } else {επιστροφή that.pins [item.pin] .triState (item.code + "FFF0"); // αλλαγή από FF00. }

Ακολουθεί ένα demo βίντεο για τα πάντα που δουλεύουν:

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

Ο James έχει πτυχίο στην Τεχνητή Νοημοσύνη και είναι πιστοποιημένος με CompTIA A + και Network +. Είναι ο κύριος προγραμματιστής της MakeUseOf, και ξοδεύει τον ελεύθερο χρόνο του παίζοντας VR paintball και boardgames. Κατασκευάζει υπολογιστές από τότε που ήταν παιδί.