Πίνακας περιεχομένων:

Smart Home by Raspberry Pi: 5 βήματα (με εικόνες)
Smart Home by Raspberry Pi: 5 βήματα (με εικόνες)

Βίντεο: Smart Home by Raspberry Pi: 5 βήματα (με εικόνες)

Βίντεο: Smart Home by Raspberry Pi: 5 βήματα (με εικόνες)
Βίντεο: Home Assistant. Ο ευκολότερος τρόπος εγκατάστασης στο Raspberry PI 4B, πρώτες ρυθμίσεις, HACS 2024, Ιούλιος
Anonim
Smart Home από το Raspberry Pi
Smart Home από το Raspberry Pi

Υπάρχουν ήδη αρκετά προϊόντα που κάνουν το διαμέρισμά σας πιο έξυπνο, αλλά τα περισσότερα από αυτά είναι ιδιόκτητες λύσεις. Γιατί όμως χρειάζεστε σύνδεση στο διαδίκτυο για να αλλάξετε φως με το smartphone σας; Αυτός ήταν ένας λόγος για μένα να δημιουργήσω τη δική μου λύση Smart Home.

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

Βήμα 1: Πράγματα που χρειάζεστε

Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε

Για να ρυθμίσετε το Smart Home, χρειάζεστε τα ακόλουθα «συστατικά»

  • Raspberry Pi τουλάχιστον μοντέλο 2 Β
  • Αποστολέας 433 MHz, κάτι σαν αυτό
  • 3 καλώδια jumper που συνδέουν το Raspberry Pi και τον αποστολέα
  • Ορισμένες υποδοχές ραδιοφώνου στα 433 MHz
  • Smartphone Android για εκτέλεση της εφαρμογής πελάτη

Επιπλέον, μπορείτε να επεκτείνετε το Smart Home με περισσότερους προαιρετικούς πελάτες και μονάδες όπως αυτή

  • Έξυπνο ρολόι με βότσαλα
  • Smart Mirror, δείτε αυτό το έργο
  • Ελεγχόμενη λωρίδα LED 433 MHz, δείτε αυτήν τη διεύθυνση

Βήμα 2: Προετοιμάστε το Raspberry Pi για 433 MHz

Προετοιμάστε το Raspberry Pi για 433 MHz
Προετοιμάστε το Raspberry Pi για 433 MHz
Προετοιμάστε το Raspberry Pi για 433 MHz
Προετοιμάστε το Raspberry Pi για 433 MHz

Στα παρακάτω βήματα χρειάζεστε πρόσβαση στη γραμμή εντολών στο Raspberry Pi. Για να αποκτήσετε πρόσβαση, μπορείτε να διαβάσετε αυτό το διδακτικό

Συνδέστε τον αποστολέα 433 MHz με το Raspberry Pi όπως φαίνεται στην παραπάνω εικόνα

  • GND (αποστολέας) 6 GND (ράσπι)
  • VCC (αποστολέας) 2 +5V (raspi)
  • ΔΕΔΟΜΕΝΑ (αποστολέας) 11 GPIO 17 (ράσπι)

Συνδέστε επίσης μια κεραία 17 εκατοστών στον πείρο ANT (αποστολέας). Αυτό αυξάνει σημαντικά το σήμα.

Δεδομένου ότι χρειαζόμαστε κάποιες βιβλιοθήκες από άλλα αποθετήρια git, πρέπει να εγκαταστήσουμε το git

sudo apt-get install git-core -y

Για να ρυθμίσετε το Raspberry Pi για επικοινωνία 433 MHz χρειαζόμαστε τη βιβλιοθήκη καλωδίωσης Pi για καλύτερο χειρισμό των GPIO.

git κλώνος git: //git.drogon.net/wiringPi

cd καλωδίωσηPi./ build

Στη συνέχεια, χρειαζόμαστε μια βιβλιοθήκη που εφαρμόζει τυπικά πρωτόκολλα τροφοδοσίας rc.

git κλώνος git: //github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi κάνει cp send/usr/bin/

Το εκτελέσιμο «αποστολή» σάς επιτρέπει να στείλετε κωδικούς για να αλλάξετε τα περισσότερα από τα διαθέσιμα τροφοδοτικά.

Στη ρύθμιση του Smart Home έχω επίσης μια λωρίδα rc LED που περιγράφεται από αυτό το εγχειρίδιο: https://www.instructables.com/id/RC-controlled-LED… Για να ορίσετε χρώματα για αυτήν τη λωρίδα LED χρειάζεστε ένα άλλο εκτελέσιμο στέλνοντας που σας επιτρέπει για αποστολή οποιασδήποτε ακέραιης τιμής (Αυτό κωδικοποιεί το χρώμα).

Επομένως, μεταγλωττίστε το sendInt.cpp στο repo του rcswitch-pi και μετακινήστε το στο/usr/bin/sendInt.

sudo g ++ sendInt.cpp -o/usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch -pi -lwiringPi

Τώρα θα πρέπει τώρα να μπορείτε να στέλνετε εντολές rc με τα δύο εκτελέσιμα/usr/bin/send και/usr/bin/sendInt

Βήμα 3: Ρύθμιση του Smart Home Server

Πρώτα απ 'όλα πρέπει να εγκαταστήσετε πολλά πακέτα. Η εφαρμογή Smart Home βασίζεται σε java και λειτουργεί άψογα με το openjdk-11. Δεν είμαι σίγουρος για άλλα περιβάλλοντα εκτέλεσης java. Το mplayer είναι ένα μινιμαλιστικό πρόγραμμα αναπαραγωγής μουσικής γραμμής εντολών. Το omxplayer χρησιμοποιεί τα γραφικά Raspberry Pi για κωδικοποίηση βίντεο, οπότε αυτό πρέπει να χρησιμοποιείται για βίντεο. Το μυρμήγκι του προγράμματος χρειάζεται για τη δημιουργία της εφαρμογής java.

sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y

Ρύθμιση καταλόγων για το αρχείο jar και για αρχεία καταγραφής.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Logs

Διαμορφώστε το σενάριο έναρξης για να ξεκινήσει η εφαρμογή αυτόματα κατά την εκκίνηση. Επομένως, αντιγράψτε το συνημμένο σενάριο έξυπνου σπιτιού στον κατάλογο /etc/init.d/ Δημιούργησα επίσης ένα σενάριο στο/usr/bin/που μεταφέρει εντολές στο συνημμένο σενάριο, οπότε εισάγω το έξυπνο σπίτι στην κονσόλα για να εκτελέσω εντολές Το

sudo cp smart-home /etc/init.d/smart-home

sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#!/bin/bash'>/usr/bin/smart -home" sudo sh -c "echo '/etc/init d/smart-home / $ 1 '>>/usr/bin/smart-home "sudo chmod +x/usr/bin/smart-home sudo update-rc.d προεπιλογές έξυπνου σπιτιού

Τώρα ήρθε η ώρα να ελέγξετε το αποθετήριο και να δημιουργήσετε την εφαρμογή. Εάν δεν θέλετε να το μεταγλωττίσετε μόνοι σας, μπορείτε απλά να κατεβάσετε το συνημμένο smarthome.jar και να το μετακινήσετε στο/opt/neo/

git clone [email protected]: dabastynator/SmartHome.git

μυρμήγκι -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

Δοκιμάστε να ξεκινήσετε το έξυπνο σπίτι και ελέγξτε το αρχείο καταγραφής. Για να αποκτήσετε πρόσβαση στα GPIO, η εφαρμογή πρέπει να ξεκινήσει με sudo.

sudo έξυπνο σπίτι εκκίνησης

cat Logs/smarthome.log

Θα πρέπει να δείτε το μήνυμα σφάλματος Δεν υπάρχει αρχείο διαμόρφωσης που μας οδηγεί στο επόμενο βήμα. Το αποθετήριο περιέχει ένα readme που εξηγεί το αρχείο διαμόρφωσης. Μπορείτε να το δείτε όμορφα σε github:

Αντιγράψτε αυτό το xml στο /home/pi/controlcenter.xml και, στη συνέχεια, ορίστε τη θέση για τον διακομιστή πολυμέσων σας και αλλάξτε το περιεχόμενο όπως το χρειάζεστε. Μόλις ολοκληρώσετε τη διαμόρφωση και επανεκκινήσετε το έξυπνο σπίτι (sudo smart-home επανεκκίνηση) θα πρέπει να δείτε το ακόλουθο περιεχόμενο στο smarthome.log

24.05-08: 26 ΑΠΟΣΤΟΛΕΣ ΠΛΗΡΟΦΟΡΙΕΣ από de.neo.smarthome.cronjob. CronJob@15aeb7ab: Προγραμματισμός εργασιών cron

24.05-08: 26 ΑΠΟΣΤΟΛΕΣ ΠΛΗΡΟΦΟΡΙΕΣ από [trigger.light]: Περιμένετε 79391760 ms για εκτέλεση 24.05-08: 26 ΠΛΗΡΟΦΟΡΙΕΣ RMI από Προσθήκη web-handler (5061/ledstrip) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 /δράση) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/controlcenter) 24.05-08: 26 RMI INFORMATION by Start webserver with 5 handler (localhost: 5061) 24.05-08: 26 REMOTE INFORMATION by Controlcenter: Add 1. unit control: MyUnit (xyz)…

Ο διακομιστής ιστού λειτουργεί τώρα:-)

Βήμα 4: Ρύθμιση πελατών

Ρύθμιση πελατών
Ρύθμιση πελατών
Ρύθμιση πελατών
Ρύθμιση πελατών
Ρύθμιση πελατών
Ρύθμιση πελατών

Smartphone πρόγραμμα -πελάτης Android

Το αποθετήριο git για την εφαρμογή έξυπνου σπιτιού περιέχει επίσης την πηγή για τον υπολογιστή-πελάτη android, ώστε να μπορείτε να το μεταγλωττίσετε μόνοι σας. Επισυνάπτω όμως το APK για αυτό το βήμα, αυτό το κάνει πιο εύκολο. Την πρώτη φορά που ξεκινάτε την εφαρμογή, σας ζητά διακομιστή, όπως στην πρώτη εικόνα παραπάνω. Εισαγάγετε τη διεύθυνση URL του διακομιστή και το διακριτικό ασφαλείας.

Αυτό θα έπρεπε να είναι. Έχετε τώρα πρόσβαση στον διακομιστή και ελέγχετε το διαμέρισμά σας, παίζοντας μουσική και παρακολουθείτε βίντεο από απόσταση στο Raspberry Pi σας. Λάβετε υπόψη ότι μπορείτε να προσθέσετε widget στην αρχική οθόνη σας, γεγονός που καθιστά τους διακόπτες και τον έλεγχο μουσικής πιο προσιτά.

Smartwatch Pebble client

Η πηγή για τους δύο πελάτες με βότσαλα φιλοξενείται στο github. Μια εφαρμογή δείχνει το τρέχον αρχείο μουσικής που παίζει: https://github.com/dabastynator/PebbleRemoteMusic… Αυτό σας επιτρέπει επίσης να κάνετε παύση/αναπαραγωγή και αύξηση/μείωση της έντασης.

Η δεύτερη εφαρμογή ενεργοποιεί τρεις ενέργειες: https://github.com/dabastynator/PebbleControl Τα ονόματα σκανδάλης είναι: mobile.come_home mobile.leaving και mobile.go_to_bed. Εάν ορίσετε κανόνες συμβάντος για αυτήν τη σκανδάλη στη διαμόρφωση-xml, τους ενεργοποιείτε από το ρολόι σας.

Είναι όλα ανοιχτού κώδικα, αλλά δεν χρειάζεται να το μεταγλωττίσετε μόνοι σας, επισυνάπτω επίσης τις εφαρμογές με βότσαλα. Κατεβάστε τα PBW με το smartphone σας, το τηλέφωνό σας θα πρέπει να τα εγκαταστήσει στο ρολόι σας. Οι εφαρμογές με βότσαλα χρειάζονται διαμορφώσεις για να μιλήσουν στον διακομιστή. Επισυνάπτω ένα στιγμιότυπο οθόνης πώς φαίνονται οι ρυθμίσεις μου.

Smartwatch πελάτης Garmin

Υπάρχει επίσης διαθέσιμος πελάτης για έξυπνα ρολόγια Garmin. Η εφαρμογή είναι διαθέσιμη στο κατάστημα εφαρμογών garmin connect και μπορεί να εγκατασταθεί εδώ:

apps.garmin.com/en-US/apps/c745527d-f2af-4…

Έξυπνος πελάτης καθρέφτη

Δημιούργησα ήδη ένα εκπαιδευτικό που εξηγεί πώς να δημιουργήσετε τον Έξυπνο καθρέφτη, δείτε αυτό https://www.instructables.com/id/Smart-Mirror-by-R…. Ο πηγαίος κώδικας φιλοξενείται επίσης στο github: https:// github.com/dabastynator/SmartMirror. Το λογισμικό του Smart Mirror διαβάζει τη διαμόρφωση από το αρχείο smart_config.js που δεν αποτελεί μέρος του αποθετηρίου git. Το περιεχόμενο του αρχείου διαμόρφωσης πρέπει να μοιάζει με αυτήν την καταχώριση:

var mOpenWeatherKey = "το κλειδί σας"

var mSecurity = 'your-security-token';

Πρέπει επίσης να προσαρμόσετε τις δύο πρώτες γραμμές του αρχείου smart_mirror.js για να καθορίσετε τη διεύθυνση IP του διακομιστή Smart Home και τη θέση για να έχετε τον κατάλληλο καιρό.

Περισσότεροι πελάτες

Η εφαρμογή διακομιστή είναι ένας απλός διακομιστής Ιστού. Αυτό σας δίνει τη δυνατότητα να ενεργοποιήσετε ενέργειες από οποιονδήποτε πελάτη θέλετε με απλές κλήσεις ιστού. Στο βίντεο επίδειξης εμφανίζω την εφαρμογή εφαρμογής Android για συνδυασμό με το AutoVoice. Αυτό μου επιτρέπει να ενεργοποιήσω γεγονότα με απλές φωνητικές εντολές. Για παράδειγμα, "ok google, time to sleep" μπορεί να ενεργοποιήσει το mobile.go_to_bed. Αλλά μπορείτε επίσης να κάνετε διαδικτυακές κλήσεις για παράδειγμα από το IFTTT. Τι θα λέγατε για μια κίτρινη λυχνία LED που αναβοσβήνει για ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου;

Μπορείτε να ζητήσετε από τον διακομιστή πιθανές κλήσεις ιστού, όπως οι ακόλουθοι σύνδεσμοι (αντικατάσταση ip, θύρας και διακριτικού με τη διαμόρφωσή σας)

localhost: 5061/controlcenter/api? token = secu…

localhost: 5061/action/api? token = security-to…

localhost: 5061/mediaserver/api? token = securi…

localhost: 5061/switch/api? token = security-to…

localhost: 5061/ledstrip/api? token = ασφάλεια-…

Βήμα 5: Συμπέρασμα

Υπάρχουν ακόμα ορισμένα χαρακτηριστικά που πρέπει να υλοποιηθούν: Δεδομένου ότι ο διακομιστής παρέχει απλό πρόγραμμα-πελάτη web-api, κάντε πολλές δημοσκοπήσεις. Για να μειώσω την ψηφοφορία θέλω μια ενσωμάτωση MQTT για καλύτερη ειδοποίηση. Επίσης τα τροφοδοτικά wifi θα πρέπει να αποδίδουν πιο αξιόπιστα από τα τροφοδοτικά rc αφού το rc είναι απλώς μονόδρομος επικοινωνία.

Κάνει πολύ διασκεδαστικό να αναπτύσσεται για αυτό το έργο. Και είναι πολύ ωραίο να ελέγχετε το διαμέρισμα από πολλές συσκευές, ακόμη και αν η σύνδεση στο Διαδίκτυο χαλάσει.

Συνιστάται: