Έλεγχος οικιακών ηλεκτρικών συσκευών («έξυπνο σπίτι») μέσω chat bot στο Raspberry Pi. Κατασκευάζουμε ένα φθηνό έξυπνο οικιακό σύστημα «φτιάξ’ το μόνος σου» που βασίζεται στη λύση έξυπνου σπιτιού Raspberry Pi Raspberry pi

Χάρη σε ένα ευρύ φάσμα πρόσθετων μονάδων, ο μικροσκοπικός υπολογιστής Raspberry Pi είναι ο καταλληλότερος για όσους θέλουν να κατασκευάζουν οικονομικά έξυπνα οικιακά συστήματα (Smart Home) με τα χέρια τους.

Το Raspbian, που βασίζεται στον πυρήνα του Linux, μπορεί να χρησιμοποιηθεί ως λειτουργικό σύστημα, μαζί με επεκτάσεις όπως το Pimatic. Είναι ακόμη πιο εύκολο να συναρμολογήσετε ένα «έξυπνο σπίτι» χρησιμοποιώντας πολύπλοκες λύσεις λογισμικού και υλικού σε μια «ανοικτή πλατφόρμα», όπως το openHAB, το Fhem, το SHC (SmartHome Control) ή το wiButler.

Smart Home Modules για Raspberry Pi

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

Δεδομένου ότι το Raspberry Pi είναι ένα δημοφιλές προϊόν για τους λάτρεις των DIY, υπάρχει μια τεράστια ποικιλία από μονάδες Smart Home στην αγορά. Θα σας δείξουμε μερικά από τα πιο ενδιαφέροντα.

433 MHz - δέκτης και πομπός για Raspberry Pi

Η συχνότητα 433 MHz χρησιμοποιείται συχνά σε οικονομικά εξαρτήματα συστήματος έξυπνου σπιτιού, όπως διακόπτες καλοριφέρ και θερμοστάτες που βρίσκονται σε καταστήματα υλικού.

Αυτοί οι πομποί και οι δέκτες είναι ιδανικοί για εγκατάσταση σε ένα έξυπνο οικιακό σύστημα που βασίζεται στο Raspberry Pi. Μια δέσμη από αυτές τις δύο μονάδες μπορεί εύκολα να αγοραστεί για περίπου 600 ρούβλια.

Μονάδα κάμερας για Raspberry Pi


Με τη μονάδα κάμερας συνδεδεμένη, το Raspberry Pi μπορεί να χρησιμοποιηθεί ως σύστημα επιτήρησης.

Η κάμερα είναι συμβατή με το λειτουργικό σύστημα Raspbian, μπορεί να εγγράψει βίντεο σε ανάλυση Full HD και να τραβήξει φωτογραφίες 5 megapixel.

Αυτή η μονάδα είναι διαθέσιμη τόσο με όσο και χωρίς φίλτρο υπερύθρων στην τιμή των 2000 ρούβλια.

Αισθητήρας κίνησης για Raspberry Pi

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

Ιδιαίτερα ελκυστικό σε τιμή είναι ένα πακέτο πέντε «πυροηλεκτρικών υπέρυθρων αισθητήρων κίνησης PIR».

Μπορείτε να αγοράσετε αυτό το πακέτο μόνο με 480 ρούβλια.

Αισθητήρας υγρασίας και θερμοκρασίας για Raspberry Pi

Η λειτουργικότητα του μετεωρολογικού σταθμού είναι βασική για το Smart Home. Η λήψη και η επεξεργασία δεδομένων καιρού με το Raspberry Pi είναι πολύ εύκολη. Το μόνο που χρειάζεστε είναι ένας φθηνός αισθητήρας που θα συνδέσετε στον μίνι υπολογιστή σας: το DHT11 είναι ιδανικό, το οποίο κοστίζει λιγότερο από 600 ρούβλια.

Ενότητα Enocean για Rapsberry Pi

Το Enocean είναι μια ασύρματη τεχνολογία που λειτουργεί χωρίς πηγή ενέργειας. Η ουσία είναι η εξής: η ενέργεια που απαιτείται για την εκτέλεση μιας ενέργειας προέρχεται από μια αλλαγή στην κατάσταση (πάτημα ενός κουμπιού, διαφορά θερμοκρασίας, ηλιακό φως, φυσώντας άνεμος κ.λπ.).

Αντίστοιχα, συχνά συσχετισμένες μονάδες είναι διακόπτες ή αισθητήρες θερμοκρασίας.

Για να ελέγξετε συσκευές με τεχνολογία Enocean μέσω του Rapsberry Pi, θα χρειαστείτε μια κατάλληλη μονάδα, η οποία μπορεί να αγοραστεί μόνο με 3600 ρούβλια.

Συναγερμός πυρκαγιάς για Raspberry Pi

Συχνά, ένα σύστημα έξυπνου σπιτιού χρησιμοποιείται για να αυξήσει το επίπεδο άνεσης στο σπίτι, αλλά η προστασία του σπιτιού μπορεί επίσης να γίνει μια από τις σημαντικές λειτουργίες. Εκτός από τους συναγερμούς και τις κάμερες CCTV, μπορείτε να εγκαταστήσετε ανιχνευτές διαρροής καπνού και νερού.

Με έναν ανιχνευτή καπνού που κοστίζει μόνο 500 ρούβλια, μπορείτε να δημιουργήσετε τον δικό σας συναγερμό πυρκαγιάς. Ωστόσο, όταν σχεδιάζετε ένα τόσο σημαντικό τμήμα ασφαλείας ενός έξυπνου σπιτιού, πρέπει να ελέγξετε ξανά την αξιοπιστία του συστήματος.

Homematic Module για Rapsberry Pi

Το Homematic είναι ένα από τα πιο δημοφιλή συστήματα Smart Home στην Ευρώπη. Για την αλληλεπίδραση όλων των εξαρτημάτων του, απαιτείται κατά κανόνα μια κεντρική μονάδα ελέγχου CCU2 (MATIC Home Gateway).

Τώρα μπορείτε να συνδέσετε την κατάλληλη ασύρματη μονάδα στο Raspberry σας. Ένα από αυτά, από την ELV, κοστίζει περίπου 1.700 ρούβλια.

Με τις ενότητες που παρουσιάζονται σε αυτό το άρθρο, μπορείτε να δημιουργήσετε ένα πολύ ευέλικτο σύστημα Smart Home. Ωστόσο, υπάρχουν πολλές άλλες μονάδες για το Rapsberry Pi, για παράδειγμα, για εργασία με τα ασύρματα πρότυπα Z-Wave και Zigbee.

Μια φωτογραφία:κατασκευαστικές εταιρείες, CHIP.de

Αυτό το άρθρο γράφτηκε για να σας υπενθυμίσει ότι το έξυπνο σπίτι έχει γίνει πολύ πιο κοντά από όσο πιστεύαμε.

Το Home Assistant είναι μια πλατφόρμα αυτοματισμού ανοιχτού κώδικα που υποστηρίζεται από την Python 3. Σας επιτρέπει να παρακολουθείτε και να ελέγχετε όλες τις συσκευές στο σπίτι σας και να αυτοματοποιείτε τις ενέργειες. Ιδανικά μπορεί να λειτουργήσει σε υπολογιστή μονής πλακέτας Raspberry PI.

Πάμε με τη σειρά:

1. Κεντρικός πυρήνας

Ένα έξυπνο σπίτι χρειάζεται έναν κεντρικό ελεγκτή (hub, server κ.λπ.). Αυτός είναι ο σύνδεσμος μεταξύ όλων των στοιχείων του έξυπνου σπιτιού και του χρήστη. Υπάρχουν κατανεμημένα συστήματα χωρίς κεντρικό ελεγκτή, αλλά εξακολουθείτε να χρειάζεστε έναν συλλέκτη πληροφοριών που θα δείχνει στον χρήστη όλα τα τελευταία νέα για κάθε συσκευή

Η/Υ- εξαιρετική επιλογή εάν χρειάζεστε μεγάλο φορτίο στον διακομιστή, tk. ακόμη και οι παλιοί φορητοί υπολογιστές θα έχουν αρκετή απόδοση (εκτός αν παίζετε βίντεο 4K ή χρησιμοποιείτε 10 κάμερες με κωδικοποίηση HEVC). Από τα μειονεκτήματα, στο 95% των περιπτώσεων ενεργή ψύξη και για να συνδέσετε ένα συμβατικό ρελέ πρέπει πάντα να χρησιμοποιείτε επιπλέον πατερίτσες.

Εξειδικευμένοι Ελεγκτές- μια εξαιρετική επιλογή εάν χρειάζεστε αξιοπιστία και ανοχή σφαλμάτων. Η πιθανότητα αποτυχίας του βιομηχανικού ελεγκτή (με τα σωστά χέρια) πλησιάζει την πιθανότητα μιας αποκάλυψης ζόμπι. Αλλά υπάρχει επίσης ένα μείον - είτε εκείνοι που έχουν ήδη αυτοματοποιήσει πολλούς μεταφορείς είτε ένα άτομο στον εγκέφαλο του οποίου δεν υπάρχουν νευρώνες αλλά κυκλώματα αναμετάδοσης, μπορούν να προγραμματίσουν και να διαμορφώσουν. Και τις περισσότερες φορές η διεπαφή τους είναι, για να το θέσω ήπια, ασκητική. Δυστυχώς, δεν είμαι τόσο έξυπνος, οπότε αυτή η επιλογή σίγουρα δεν είναι για μένα.

Και εδώ φτάνουμε στην πιο σύγχρονη εκδοχή- Πρόκειται για φθηνούς υπολογιστές με μία πλακέτα που βασίζονται στην αρχιτεκτονική ARM. Τώρα η επιλογή τους είναι απλά τεράστια, αλλά ο πιο δημοφιλής πρόγονος είναι ο Raspberri pi. Από τα πλεονεκτήματα, χαμηλή κατανάλωση ενέργειας, υπάρχουν έξοδοι χρήστη και ικανοποιητική απόδοση για την εκτέλεση απλών προγραμμάτων.

Υπάρχουν πολλές ακόμη εξωτικές επιλογές για την αυτοματοποίηση της εστίας σας, όπως το κρεβάτι με ξυπνητήρι στην Παγκόσμια Έκθεση του 1851 (που εφευρέθηκε από τον Θεόφιλο Κάρτερ). Ή την αγαπημένη σας διαστροφή - arduino με ασπίδες (συγγνώμη για το επιπόλαιο μιμίδιο)

2. Εξωτερικοί αισθητήρες, ελεγκτές, χειριστήρια.

Αυτό το θέμα είναι τόσο εκτεταμένο που δεν είναι δυνατό να περιγραφεί όλη η ποικιλομορφία σε αυτό το άρθρο, επομένως θα το αφήσουμε για μελλοντικά άρθρα. Εν συντομία, υπάρχουν:

Λύσεις DIY και λύσεις τύπου Arduino
- Κινεζικές λύσεις (παράδειγμα Sonoff)
- Ακριβές όμορφες λύσεις (π.χ. φωλιά)

3. Μαλακό

Ας μεταφέρουμε αυτή τη συζήτηση σε ξεχωριστό νήμα. Σήμερα θα εξετάσουμε μόνο μία από τις πολλές ανοιχτές πλατφόρμες. Θα υπάρξουν περισσότερες κριτικές. Θα απαντήσω στις ερωτήσεις σας γιατί:

Α) Ένας τεράστιος αριθμός υποστηριζόμενων υπηρεσιών,
β) Εύκολη και δωρεάν εγκατάσταση,
γ) Ωραία διεπαφή.

4. Υπηρεσίες τρίτων

Βοηθούν στη σύνδεση διαφορετικών υπαρχουσών λύσεων και στην αυτοματοποίηση ενεργειών σε smartphone και υπολογιστές. Ένα τυπικό παράδειγμα IFTTT.

Τι γίνεται αν δεν ξέρω πώς να προγραμματίζω ή έχω χρήματα;
Ξεχωριστά, υπάρχουν λύσεις σύγχρονων οικοσυστημάτων από Samsung, Xiaomi, Amazon, Apple, Google κ.λπ. Συμφωνώ ότι μερικές φορές οι αποφάσεις τους φαίνονται πολύ πιο όμορφες, αλλά ο μέσος μισθός ενός Ρώσου είναι περίπου $500, κάτι που δεν σας επιτρέπει να νιώσετε όλη τη γκάμα των γεύσεων.

1. Raspberry Pi 3 (τα παλαιότερα πιθανότατα λειτουργούν επίσης) 35 $
2. MicroSD 16GB όχι χαμηλότερη από την κατηγορία 10 (όσο πιο γρήγορα τόσο καλύτερα) με προσαρμογέα σε υπολογιστή 7$
3. Φορτιστής MicroUSB για 5V και περισσότερα από 2A 0 $ (προέκυψε από ένα παλιό τηλέφωνο)
4. Ο πολύτιμος χρόνος σας. Ανεκτιμητης ΑΞΙΑΣ.
5. Προαιρετική οθόνη με HDMI

Ας εγκαταστήσουμε:

1. Κατεβάστε ένα βολικό πρόγραμμα για εγγραφή σε μονάδα flash USB. Προτείνω τη φορητή έκδοση
2. Μεταβείτε στον ιστότοπο και κατεβάστε την πιο πρόσφατη έκδοση του Hassbian
3. Αποσυμπιέστε την κύρια εικόνα σε οποιονδήποτε φάκελο.
4. Ανοίξτε το Etcher
5. Επιλέξτε την κύρια εικόνα μας
6. Επιλέξτε τη μονάδα flash μας για εγγραφή
7. Πατήστε το κουμπί έναρξης
8. ???
9. Κέρδος

Μετά την εγγραφή, αφαιρέστε τη μονάδα flash USB και τοποθετήστε την στο raspberry pi.

ΕΙΝΑΙ ΥΠΟΧΡΕΩΤΙΚΟ ΝΑ ΤΟΠΟΘΕΤΗΣΕΤΕ ΤΟ ΚΑΛΩΔΙΟ ΙΝΤΕΡΝΕΤ ΣΤΟ RASPBERRY!!!

Όταν ενεργοποιείται η τροφοδοσία, η κόκκινη λυχνία πρέπει να ανάβει και η πράσινη λυχνία θα πρέπει να αρχίσει να αναβοσβήνει τυχαία. Περιμένουμε με ένα φλιτζάνι τσάι για 10 λεπτά.

Μετά από αυτό, πρέπει να βρούμε τη διεπαφή ιστού του συστήματος έξυπνου σπιτιού μας. Υπάρχουν διάφοροι τρόποι για να γίνει αυτό:

1) Δείτε μέσω hdmi τη γραμμή εντολών μας και βρείτε εκεί μια IP όπως 192.168.1.x (ή οποιαδήποτε άλλη)
2) κοιτάξτε στις ρυθμίσεις του δρομολογητή ποιος διακομιστής DHCP εκχώρησε τη διεύθυνση στη νέα συσκευή
3) Χρησιμοποιήστε έναν σαρωτή δικτύου (για παράδειγμα,

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

Δομικό διάγραμμα του συστήματος «Smart Home» που βασίζεται στο Raspberry Pi 3

Χτισμένο με βάση το Raspberry Pi 3, το Smart Home επιτρέπει όχι μόνο να αναλαμβάνει τον έλεγχο και τη διαχείριση σχεδόν όλων των επικοινωνιών στο σπίτι, αλλά και να αυξάνει αυθαίρετα τη λειτουργικότητα κατά τη λειτουργία.

Βασικά χαρακτηριστικά του Raspberry Pi 3

Ο νέος μικροϋπολογιστής έλαβε:

  1. Επεξεργαστής ARM Cortex-A53.
  2. ένα gigabyte RAM?
  3. ενσωματωμένο WiFi και Bluetooth 4.1.
  4. πλήρης συμβατότητα με προηγούμενα μοντέλα.

Ο επεξεργαστής έχει τέσσερις πυρήνες, 64 bit, συχνότητα 1,2 GHz, που είναι 10 φορές υψηλότερη από την απόδοση του πρώτου μοντέλου.

Πρότυπο WiFi 802.11b / g / n με δυνατότητα μεταφοράς δεδομένων σε ταχύτητες έως και 600 Mb / s σε συχνότητα 5,0 GHz.

Κατόπιν παραγγελίας του Raspberry Pi, η Broadcom ανέπτυξε και κυκλοφόρησε ένα νέο μονοκρύσταλλο BCM2837 με αρχιτεκτονική παρόμοια με τα κρύσταλλα BCM2835 και BCM2836, που εξασφάλιζε συμβατότητα με προηγούμενα μοντέλα.

Raspberry Pi 3 και Arduino Single Board Computers - Κύριες διαφορές

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

Το Raspberry Pi 3 τροφοδοτείται από έναν ισχυρό τετραπύρηνο επεξεργαστή που λειτουργεί 40 φορές πιο γρήγορα από το ρολόι Arduino. Το Raspberry Pi 3 RAM έχει χωρητικότητα 128.000 φορές μεγαλύτερη από τη χωρητικότητα RAM του Arduino.

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

Οι εργασίες που μπορεί να λύσει το Raspberry Pi 3 με λογισμικό ξεπερνούν τις δυνάμεις ενός απλού Arduino. Κάνει όμως εξαιρετική δουλειά με τις εργασίες αμιγώς hardware projects, με την ανάγνωση και την επεξεργασία αναλογικών σημάτων.

Η επεξεργασία των αναλογικών σημάτων πραγματοποιείται σε πραγματικό χρόνο και αυτά τα σήματα μπορούν να προέρχονται από τσιπ οποιουδήποτε τύπου και κατασκευαστή. Προκειμένου το Raspberry Pi 3 να επεξεργάζεται αναλογικά σήματα με τον ίδιο τρόπο, χρειάζεται επιπλέον υλικό.

Υλοποίηση του έργου «Smart Home» βασισμένο στο Raspberry Pi 3

Για όσους αποφασίσουν να δημιουργήσουν ένα Raspberry Pi 3 "Smart Home" με τα χέρια τους, πρέπει πρώτα να αποφασίσετε ποιες λειτουργίες θα εφαρμοστούν, πώς θα συμπεριληφθούν στη διαμόρφωση εργασίας. Και, σύμφωνα με αυτό, ολοκληρώστε το μελλοντικό σύστημα με τις απαραίτητες συσκευές.

Περιφερειακά Smart Home

Για να υλοποιήσετε το έργο Raspberry Pi 3 Smart Home, θα χρειαστείτε τις ακόλουθες ενότητες:

  • ενότητα ;
  • Μονάδα υποστήριξης ασύρματης επικοινωνίας.
  • αισθητήρας μέτρησης υγρασίας και ;

Επιπλέον, το σύστημα Raspberry Pi 3 Smart Home θα απαιτεί κάρτα μνήμης MicroSD 32 GB, τροφοδοτικό, ρελέ πέντε βολτ.

Μία από τις πιο σημαντικές πρόσθετες συσκευές για την υλοποίηση του έργου Raspberry Smart Home είναι η μονάδα NodeMCU ESP-12E με διεπαφή ασύρματου Wi-Fi και κεραία microstrip ενσωματωμένη στην πλακέτα της μονάδας.

Λειτουργικά συστήματα

Όπως κάθε υπολογιστής, ένα Raspberry Pi 3 χωρίς λογισμικό είναι απλώς μια άχρηστη συλλογή ηλεκτρονικών εξαρτημάτων.

Για να μετατραπεί αυτό το σετ σε εργαλείο που υλοποιεί τη λειτουργικότητά του, χρειάζεται να «ζωντανέψει», δηλαδή να γεμίσει με το κατάλληλο λογισμικό.

Αυτή η διαδικασία πραγματοποιείται σε διάφορα στάδια. Πρώτα πρέπει να επιλέξετε και να κάνετε λήψη για το Raspberry Pi 3 "Smart Home" iOS - ένα λειτουργικό σύστημα για κινητά.

Το Raspberry Pi 3 χρησιμοποιεί μια κάρτα μνήμης micro SD ως φορέα για το λειτουργικό σύστημα και τη φιλοξενία προγραμμάτων σε αυτήν. Μπορείτε να επιλέξετε έναν από τους τρεις τρόπους εγκατάστασης του λειτουργικού συστήματος:

  1. αγοράστε μια κάρτα SD στην οποία το λειτουργικό σύστημα έχει ήδη προεγκατασταθεί.
  2. κατεβάστε το NOOBS (New Out Of the Box Software) - πρόγραμμα εγκατάστασης OS στην κάρτα μνήμης και, στη συνέχεια, εγκαταστήστε το λειτουργικό σύστημα απευθείας από την κάρτα.
  3. τοποθετήστε την εικόνα του λειτουργικού συστήματος απευθείας στην κάρτα SD.

Περισσότερα από 40 διαφορετικά λειτουργικά συστήματα έχουν αναπτυχθεί για το σύστημα Raspberry Smart Home. Τα πιο συχνά χρησιμοποιούμενα λειτουργικά συστήματα είναι τα Raspbian OS, Ubuntu Mate, Windows 10 IoT, RICS OS.

Τα περισσότερα προσαρμοσμένα στο υλικό Raspberry Pi 3

Το λειτουργικό σύστημα είναι Raspbian OS, εγκατεστημένο από το πρόγραμμα εγκατάστασης NOOBS που έχει ληφθεί στην κάρτα SD.

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

Πριν ξεκινήσετε να εργάζεστε με τον μικροϋπολογιστή, θα πρέπει να προετοιμάσετε τις απαραίτητες συσκευές και αξεσουάρ.

Για την πρώτη κιόλας εκτέλεση θα χρειαστείτε:

  • κάρτα microSD με χωρητικότητα τουλάχιστον τεσσάρων gigabyte (κατά προτίμηση 32 gigabyte).
  • Τροφοδοτικό πέντε βολτ.
  • καλώδιο με υποδοχές HDMI.
  • οθόνη με σύνδεση HDMI.
  • πληκτρολόγιο και ποντίκι με σύνδεση USB.
  • υπολογιστής με υποδοχή κάρτας SD.
  • Σύνδεση στο Διαδίκτυο - Ethernet.

Τα επόμενα βήματα είναι:

  1. μορφοποίηση της κάρτας SD.
  2. λήψη του αρχείου εγκατάστασης του NOOBS και εξαγωγή του στον ριζικό κατάλογο της κάρτας SD.
  3. η κάρτα εισάγεται στην υποδοχή μικροϋπολογιστή, όλες οι συσκευές είναι συνδεδεμένες, η τροφοδοσία ρεύματος είναι ενεργοποιημένη.
  4. Στην πρώτη εκκίνηση, επιλέγεται το απαιτούμενο λειτουργικό σύστημα από τη λίστα και ξεκινά η εγκατάστασή του.
  5. με την ολοκλήρωση της εγκατάστασης, εγκαταστήστε και διαμορφώστε τα προγράμματα Raspberry Pi 3 "Smart Home".

Εγκατάσταση του διακομιστή Homebridge και διαμόρφωση μονάδων

Το σύστημα Smart Home λειτουργεί με την τεχνολογία Home Kit, η οποία συνδυάζει όλες τις έξυπνες οικιακές συσκευές σε μία εφαρμογή και δέχεται φωνητικές εντολές που δίνονται στα ρωσικά. Αλλά δεν υπάρχουν τόσες πολλές τέτοιες συσκευές, ειδικά εκείνες που «καταλαβαίνουν» τη ρωσική γλώσσα, και εκτός αυτού, είναι πολύ ακριβές.

Ο διακομιστής Homebridge λειτουργεί ως ένα είδος γέφυρας μεταξύ όλων των συσκευών στο σπίτι και του Home Kit. Αυτός ο διακομιστής προσομοιώνει το API Home Kit.

Εκατοντάδες διάφορες προσθήκες είναι διαθέσιμες στον διακομιστή, χάρη στις οποίες κατέστη δυνατή η διαχείριση όλων των οικιακών συσκευών που δεν έχουν καν σχεδιαστεί δομικά για να λειτουργούν με το Home Kit. Το κύριο πλεονέκτημα του Homebridge είναι ότι μπορεί να τρέξει σε οποιονδήποτε υπολογιστή, συμπεριλαμβανομένου του Raspberry Pi 3.

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

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

συμπέρασμα

Ένα σύστημα "Smart Home" που βασίζεται στο Raspberry Pi 3 θα κοστίζει πολλές φορές φθηνότερα από ένα παρόμοιο έτοιμο σύστημα και η λειτουργικότητά του μπορεί να αυξηθεί σχεδόν απεριόριστα.

Βίντεο: Raspberry Pi Model 3 B - εγκατάσταση του συστήματος ελέγχου έξυπνου σπιτιού Domoticz

Γεια σας φίλοι

Στις κριτικές μου για τις έξυπνες οικιακές συσκευές του οικοσυστήματος Xiaomi - έχω αναφέρει επανειλημμένα το όνομα Domoticz. Τέλος, πήγα να μοιραστώ την εμπειρία μου σχετικά με αυτό το θέμα και να σας πω τι είναι και πώς μπορείτε να συμπληρώσετε τις τυπικές δυνατότητες ενός έξυπνου σπιτιού από τη Xiaomi χρησιμοποιώντας αυτό το σύστημα. Είναι αδύνατο να το πούμε αυτό στο πλαίσιο μιας κριτικής, αλλά πρέπει να ξεκινήσετε από κάπου - ας πάμε ...

Εισαγωγή - λίγα λόγια για τον Domoticz

1. Τι είναι το Domoticz;
Αυτό είναι ένα λογισμικό ανοιχτού κώδικα πολλαπλών πλατφορμών που επικεντρώνεται στη δημιουργία ενός έξυπνου συστήματος ελέγχου σπιτιού. Υποστηρίζει μεγάλο αριθμό διαφορετικών συσκευών από διαφορετικούς προμηθευτές, συμπεριλαμβανομένων έργων με συσκευές Xiaomi.
2. Ποιες συσκευές Xiaomi μπορούν να ελεγχθούν από την Domoticz;
Θα μιλήσω μόνο για συσκευές που έχω δοκιμάσει προσωπικά. Αυτή τη στιγμή, μπορείτε να ελέγξετε το Xiaomi Gateway - και όλες τις συσκευές που ελέγχει - κουμπιά, αισθητήρες ανοίγματος και κίνησης, υποδοχές ZigBee, διακόπτες Aqara. Υποστηρίζονται επίσης gadgets φωτισμού Yeelight - λάμπες RGBW και White, φωτιστικό οροφής Celling Light.
Διάβασα για την εργασία με αισθητήρες bluetooth miflora.
3. Γιατί χρειάζομαι το Domoticz;
Το σύστημα έχει πιο ευέλικτες επιλογές για τη ρύθμιση παραμέτρων σεναρίων - για παράδειγμα, έλεγχος της δραστηριότητας της συσκευής, η οποία δεν βρίσκεται στο MiHome, ή δημιουργία μεταβλητών - που επιτρέπουν μια συνθήκη - για παράδειγμα, το πάτημα ενός πλήκτρου - να εκτελεί διαφορετικές ενέργειες, ανάλογα με το τιμή της μεταβλητής.
Τα σενάρια που δημιουργούνται στο Domoticz δεν εξαρτώνται από κινεζικούς διακομιστές και πρόσβαση στο Διαδίκτυο.
Το Domoticz επεκτείνει τη λειτουργικότητα των συσκευών - για παράδειγμα, νέες ενέργειες "ελεύθερης πτώσης" ή "ειδοποίησης" για ένα ζάρι ή "Απελευθέρωση παρατεταμένου κλικ" για ένα κουμπί.
4. Εάν χρησιμοποιήσω το Domoticz, δεν θα μπορώ να εργαστώ με το MiHome;
Και τα δύο συστήματα ζουν τέλεια παράλληλα - η λειτουργικότητα του MiHome διατηρείται πλήρως, απλώς μερικά από τα σενάρια θα ζουν σε ένα σύστημα - μερικά σε ένα άλλο. Βασικά όλα τα σενάρια μπορούν να ζουν στο Domoticz.
5. Γιατί χρειάζομαι το MiHome εάν χρησιμοποιώ το Domoticz;
Τουλάχιστον για την προσθήκη νέων συσκευών. Η επιλογή είναι δική σας - αλλά η γνώμη μου - αυτή τη στιγμή το Domoticz χρησιμοποιείται καλύτερα ως πρόσθετο στο MiHome
6. Τι χρειάζομαι για να συνδέσω συσκευές Xiaomi στο Domoticz;
Θέλω να σας καθησυχάσω αμέσως - δεν χρειάζονται κολλητήρια, προγραμματιστές και χοροί με ντέφι. Επίσης, δεν θα χρειαστείτε Linux ή εικονικές μηχανές - μπορείτε να δοκιμάσετε τα πάντα σωστά στα Windows που λειτουργούν και αν σας αρέσει, τότε είναι λογικό να διαθέσετε μια ξεχωριστή πλατφόρμα υλικού για αυτό, για παράδειγμα, τον ήρωα της σημερινής αναθεώρησης.
Κυριολεκτικά μετά τα πρώτα επιτυχημένα πειράματα στον επιτραπέζιο υπολογιστή μου, ενθουσιάστηκα με την ιδέα μιας ξεχωριστής βάσης υλικού για το Domoticz. Σταμάτησα την επιλογή μου, αφού μελέτησα το κοινό - στο Raspberry Pi Model 3 B - έναν συμπαγή αλλά ισχυρό υπολογιστή μονής πλακέτας που βασίζεται στον επεξεργαστή BCM2837 Soc με 4 πυρήνες Cortex-A53 που λειτουργούν σε συχνότητα 1,2 GHz, 1 GB μνήμης RAM και Ασύρματες μονάδες Wi-Fi και Bluetoth 4.1 .

Σειρά

Συμπεριέλαβα 4 είδη στην παραγγελία μου -

Οθόνη πληρωμής


Raspberry Pi Model 3 B Motherboard -
Είναι ενδιαφέρον ότι το κατάστημα έχει δύο εκδόσεις - κινέζικα και αγγλικά. Την στιγμή της αγοράς, το κινέζικο κόστιζε 7 $ φθηνότερα και το πήρα. Τι υπάρχει κινέζικο - για να είμαι ειλικρινής, είναι ένα μυστήριο για μένα.
Θήκη για Raspberry Pi Model 3 B -
Τροφοδοτικό HN - 528i AC / DC 5V 2A -
Χάλκινες ψύκτρες για Raspberry Pi -
Επίσης για ένα πλήρες σετ θα χρειαστείτε μια κάρτα microSD - τουλάχιστον 4 GB και ένα καλώδιο HDMI. Είχα και ένα καλώδιο και μια κάρτα 32 GB στο απόθεμά μου, οπότε δεν το αγόρασα.

Τι περιέχεται στη συσκευασία

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


Ας εξετάσουμε λεπτομερέστερα. Τροφοδοτικό με βύσμα τύπου C και υποδοχή micro-USB.


Το δηλωμένο μέγιστο ρεύμα είναι 2Α σε τάση 5 V.


Δοκιμαστική ενεργοποίηση με φορτίο 2Α - δείχνει κάποια πτώση τάσης, αλλά εντός του επιτρεπόμενου εύρους, η τροφοδοσία ρεύματος είναι λίγο πολύ ειλικρινής.


Σετ από τρία χάλκινα καλοριφέρ σε σακούλα για παθητική ψύξη.


Όλα τα καλοριφέρ έχουν τετράγωνο σχήμα, δύο καλοριφέρ με ακίδες και μήκος πλευράς περίπου 12 mm και ένα επίπεδο με πλευρά περίπου 15 mm.


Σκούρα πλαστική θήκη με ανάγλυφη εικόνα βατόμουρου στο καπάκι


Διαστάσεις θήκης - περίπου 90 x 65 mm




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


Ολοκληρώθηκε με αξεσουάρ - ήρθε η ώρα να προχωρήσετε στο πιο σημαντικό πράγμα
RASPBERRY PI 3 MODEL B
Το Raspberry Pi 3 Model B είναι ο άμεσος διάδοχος του Raspberry Pi 2 Model B. Η πλακέτα είναι πλήρως συμβατή με τον προκάτοχό του, αλλά διαθέτει καλύτερη απόδοση και νέα χαρακτηριστικά επικοινωνίας:
Επεξεργαστής 64-bit τετραπλού πυρήνα ARM Cortex-A53 με ταχύτητα ρολογιού 1,2 GHz σε τσιπ μονού τσιπ Broadcom BCM2837. ενσωματωμένο Wi-Fi 802.11n και Bluetooth 4.1.
Επιπλέον, ο επεξεργαστής έχει αρχιτεκτονική ARMv53, που σημαίνει ότι μπορείτε να χρησιμοποιήσετε το αγαπημένο σας λειτουργικό σύστημα: Debian Wheezy, Ubuntu Mate, Fedora Remix και ακόμη και MS Windows 10.


Προδιαγραφές περισσότερα
CPU - Broadcom BCM2837, ARM Cortex-A53 Quad Core, 1,2 GHz
Αριθμός πυρήνων επεξεργαστή - 4
GPU - VideoCore IV 3D
RAM - 1 GB
Αποθηκευτικός χώρος - microSD
Δικτύωση
Ethernet 10/100
WiFi 2.4G 150mb/s
Έξοδος βίντεο - HDMI
Θύρες USB - 4
Ασύρματο - Bluetooth
Έξοδος ήχου - 3,5 Jack
85,6 x 53,98 x 17 mm, 45 γραμμάρια


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


Σε μία από τις μεγάλες πλευρές του υπολογιστή υπάρχουν θύρες micro USB για τροφοδοσία, θύρα HDMI πλήρους μεγέθους, θύρα κάμερας CSI-2 - για σύνδεση κάμερας μέσω διασύνδεσης MIPI, υποδοχή ήχου 3,5 mm. Επίσης στην επάνω πλευρά βρίσκεται η μονάδα επεξεργαστή και το Ethernet / USB Hub lan9514-jzx


Στην μπροστινή πλευρά υπάρχουν 4 θύρες USB και μια θύρα Ethernet


Υπάρχουν 40 ακροδέκτες εισόδου/εξόδου γενικής χρήσης (GPIO) στην άλλη πλευρά της μητρικής πλακέτας.


Στη δεύτερη ακραία πλευρά - υπάρχει μια θύρα οθόνης DSI για τη σύνδεση μιας τυπικής οθόνης


Στην κάτω πλευρά της πλακέτας υπάρχει μια μονάδα μνήμης LPDDR2 SDRAM - EDB8132B4PB-8D-F


Και μια υποδοχή micro-SD για κάρτα μνήμης


Οι χάλκινες ψύκτρες τοποθετούνται στο USB / Ethernet Hub και ο επεξεργαστής στη μία πλευρά


Και στο τσιπ μνήμης από την άλλη. Αυτή η ψύκτρα είναι επίπεδη - δεν παρεμβαίνει στην εγκατάσταση της πλακέτας του υπολογιστή στη θήκη


Τα πάντα ταιριάζουν τέλεια στη θήκη, δεν υπάρχουν βιδωτές συνδέσεις - κάθεται σε πλαστικές προεξοχές.


Όλες οι εγκοπές στη θήκη ταιριάζουν ακριβώς με τις υποδοχές του υπολογιστή




Για να ξεκινήσουμε, χρειαζόμαστε μια εξωτερική οθόνη (τηλεόραση) με είσοδο HDMI, πληκτρολόγιο USB, θα είναι πιο βολικό εάν υπάρχει επίσης ποντίκι και τροφοδοτικό. Οθόνη, πληκτρολόγιο και ποντίκι - θα χρειαστούν μόνο τη στιγμή της εγκατάστασης, τότε μόνο το τροφοδοτικό θα είναι αρκετό.

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

Για να εγκαταστήσετε το λειτουργικό σύστημα, το πρώτο βήμα είναι να κάνετε λήψη του αρχείου με διανομές - . Ενώ γίνεται λήψη του αρχείου σχεδόν ενάμιση gigabyte, φορτώνουμε το βοηθητικό πρόγραμμα για τη μορφοποίηση της κάρτας SD - SD Card Formatter -. Αυτή η διανομή είναι πολύ πιο συμπαγής - μόνο 6 MB, οπότε χωρίς να χάσετε χρόνο, εγκαταστήστε το πρόγραμμα


και, μετά την εγκατάσταση, τοποθετήστε την κάρτα μνήμης στη συσκευή ανάγνωσης καρτών (έχετε μια συσκευή ανάγνωσης καρτών, όχι) και εκτελέστε τη μορφοποίηση κάρτας SD. Στο μενού Επιλογές, πρέπει να ορίσετε το "FORMAT SIZE ADJUSTMENT" σε "ON"


Αφού περιμένετε να ολοκληρωθεί η λήψη ενός μεγάλου κιτ διανομής, ανοίξτε το αρχείο που προκύπτει και αποσυσκευάστε τα περιεχόμενά του σε μια πρόσφατα διαμορφωμένη μονάδα flash USB.
Το επόμενο βήμα είναι η πρώτη εκκίνηση του Raspberry Pi (μια μονάδα flash με ένα εγγεγραμμένο κιτ διανομής, φυσικά, την εγκαθιστούμε σε αυτήν). Συγγνώμη για την ποιότητα των επόμενων φωτογραφιών - από την οθόνη της τηλεόρασης :(
Στην πρώτη εκκίνηση, ξεκινά το μενού επιλογής λειτουργικού συστήματος - τι να εγκαταστήσετε και η λίστα έχει ακόμη και μια έκδοση των Windows 10 για Raspberry Pi. Σε αυτό το στάδιο, μπορείτε να επιλέξετε τη γλώσσα (στο κάτω μέρος της οθόνης) - Τα ρωσικά είναι διαθέσιμα και θα συνδεθούν στο δίκτυο Wi-Fi - Κουμπί δικτύων Wi-Fi


Η επιλογή που χρειάζομαι - Raspbian με βάση το Linux Debian - διατίθεται σε δύο γεύσεις, lite ΚΑΙ full, με γραφική διεπαφή. Διάλεξα την πλήρη έκδοση


Μετά από αυτό, μπορούμε να πάμε με ασφάλεια να πιούμε τσάι με κουλούρια, η εγκατάσταση θα διαρκέσει πολύ.


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


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


Για να ελέγξουμε το Raspberry από έναν επιτραπέζιο υπολογιστή, χρειαζόμαστε οποιοδήποτε πρόγραμμα τερματικού, χρησιμοποιώ το παλιό καλό Putty


Προεπιλεγμένο όνομα χρήστη και κωδικός πρόσβασης - πιΚαι σμέουρα. Για να αλλάξετε τον κωδικό πρόσβασης, χρησιμοποιήστε την εντολή passwd.


Συνιστώ να ορίσετε αμέσως μια στατική διεύθυνση IP για το Raspberry. Μπορείτε να μάθετε τις τρέχουσες διευθύνσεις χρησιμοποιώντας την εντολή ifconfig , όπου
Το eth0 είναι ethernet
εδώ είναι η τοπική διεπαφή 127.0.0.1
Το wlan0 είναι η διεπαφή wi-fi

Και για να επεξεργαστείτε το αρχείο με τις ρυθμίσεις - εισαγάγετε την εντολή
sudo nano /etc/dhcpcd.conf
και στο αρχείο που ανοίγει, κάνοντας κύλιση μέχρι το τέλος, προσθέτουμε τις απαραίτητες ρυθμίσεις, ανάλογα με το περιβάλλον που θα χρησιμοποιήσουμε.
Για παράδειγμα, θέλουμε να χρησιμοποιήσουμε τη διεύθυνση 192.168.0.222, η μάσκα είναι 255.255.255.0, η πύλη και η διεύθυνση DNS είναι 192.168.0.1
Για Ethernet εισάγουμε
διεπαφή eth0

στατικοί δρομολογητές=192.168.0.1

για wifi
διεπαφή wlan0
static ip_address=192.168.0.222/24
στατικοί δρομολογητές=192.168.0.1
static domain_name_servers=192.168.0.1


Πατήστε ctrl+x για έξοδο από το πρόγραμμα επεξεργασίας
Για να αποθηκεύσετε τις αλλαγές - πατήστε "Y" και στη συνέχεια εισάγετε

Εγκατάσταση Domoticz
Το μεγαλύτερο μέρος της εργασίας εγκατάστασης έχει ήδη γίνει, τώρα πρέπει να εγκαταστήσουμε το σύστημα Domoticz. Αυτό γίνεται με μία εντολή -
sudo curl -L install.domoticz.com | sudo bash
Το οποίο ξεκινά τη διαδικασία εκκίνησης και εγκατάστασης του συστήματος


Κατά τη διαδικασία εγκατάστασης, το πρόγραμμα εγκατάστασης θα κάνει ερωτήσεις σχετικά με την τοποθεσία εγκατάστασης κ.λπ. - Έφυγα από προεπιλογή όλες αυτές τις στιγμές.


Μετά την επιτυχή εγκατάσταση, το πρόγραμμα εγκατάστασης θα γράψει τις διευθύνσεις και τις θύρες της διεπαφής web του συστήματος Domoticz


Όμως, για να δουλέψουμε με την πύλη Xiaomi, χρειαζόμαστε μια έκδοση beta του συστήματος. Η αναβάθμιση στην πιο πρόσφατη έκδοση beta γίνεται με τις εντολές
cd ~/domotiz
sudo ./updatebeta



Τώρα το σύστημα Domoticz είναι διαθέσιμο μέσω της διεπαφής ιστού:

Τώρα είναι η ώρα να αρχίσετε να προσθέτετε συσκευές Xiaomi. Αλλά πρώτα -

Προπαρασκευαστικές εργασίες

Λοιπόν, τι χρειάζεστε για να ξεκινήσετε να εργάζεστε με την Domoticz;
Κράτηση διευθύνσεων IP
Το πρώτο βήμα είναι να ορίσετε στατικές διευθύνσεις IP για τις συσκευές που σκοπεύετε να διαχειριστείτε - προς το παρόν πρόκειται για πύλη και λάμπες. Αυτό γίνεται στον οικιακό δρομολογητή σας χρησιμοποιώντας έναν πίνακα πελάτη DHCP που μοιάζει κάπως έτσι -


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


Χρησιμοποιώντας αυτές τις πληροφορίες, πρέπει να καταχωρίσετε την έκδοση μόνιμων διευθύνσεων IP σε αυτές τις συσκευές - καθώς θα ελέγχονται ακριβώς από IP και εάν αλλάξει η διεύθυνση, το Domoticz θα χάσει την επαφή μαζί της. Ο πίνακας κράτησης διευθύνσεων μοιάζει κάπως έτσι -

Λειτουργία για προγραμματιστές

Η λειτουργία προγραμματιστή πρέπει να είναι ενεργοποιημένη. Για το Xiaomi Gateway, πρέπει να μεταβείτε στο μενού, να επιλέξετε την επιλογή σχετικά, στο κάτω μέρος της οθόνης όπου είναι γραμμένη η έκδοση (έχω 2.23) - κάντε κλικ σε αυτό μέχρι να εμφανιστούν δύο νέες επιλογές στο μενού, μπορούν να στα κινέζικα, στο παράδειγμά μου - στα αγγλικά. Κάντε κλικ στο πρώτο από τα δύο πρωτόκολλα επικοινωνίας τοπικού δικτύου, ενεργοποιήστε τον επάνω διακόπτη στο μενού και σημειώστε τον κωδικό πρόσβασης της πύλης.


Για τις λάμπες, όλα είναι πιο απλά - πρέπει να εγκαταστήσετε την εφαρμογή Yeelight, αν δεν την έχετε εγκαταστήσει ακόμα και για κάθε λάμπα - μεταβείτε στο μενού, λειτουργία προγραμματιστή - ενεργοποιήστε

Προσθήκη συσκευών

Για να προσθέσετε συσκευές, μεταβείτε στην καρτέλα Ρυθμίσεις - Εξοπλισμός
127.0.0.1:8080/#/Υλικό (αντί για 127.0.0.1 - η διεύθυνση του Domoticz σας)
Επιλέγουμε τον τύπο της συσκευής Xiaomi Gateway, την ονομάζουμε με κάποιο τρόπο, υποδεικνύουμε τη διεύθυνση IP της, την οποία κρατήσαμε στο δρομολογητή, εισάγουμε τον κωδικό πρόσβασης που λάβαμε στο παράθυρο της λειτουργίας προγραμματιστή. Θύρα - λειτουργεί για μένα στη θύρα 54321. Το wiki domotics περιγράφει μια σύνδεση με τη θύρα 9898


Για να προσθέσετε λαμπτήρες - απλώς προσθέστε τη συσκευή YeeLight LED - δεν χρειάζεται να καθορίσετε διευθύνσεις, οι λάμπες θα τραβήξουν μόνες τους.


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

συσκευές

Οι συσκευές θα προστεθούν ΠΟΛΥ περισσότερο από όσο περιμένετε :) Μια λίστα με αυτές είναι διαθέσιμη στην καρτέλα Ρυθμίσεις - Συσκευές.
127.0.0.1:8080/#/Συσκευές


Για παράδειγμα, κάθε αισθητήρας θερμοκρασίας και υγρασίας θα προστεθεί ως τρεις συσκευές, ξεχωριστά θερμοκρασία, ξεχωριστά υγρασία και όλα μαζί. Υποδοχές - ξεχωριστή πρίζα (ελεγχόμενη συσκευή) ξεχωριστά - ως αισθητήρας κατανάλωσης ενέργειας. Αλλά η πύλη - ένας ξεχωριστός οπίσθιος φωτισμός, μια ξεχωριστή σειρήνα συναγερμού, ένα ξεχωριστό ξυπνητήρι, ένα κουδούνι και ένας έλεγχος έντασης ήχου. Για να προσθέσετε μια συσκευή στη λίστα των χρησιμοποιούμενων συσκευών, κάντε κλικ στο πράσινο βέλος στο τέλος της γραμμής. Αφαίρεση από χρησιμοποιημένο - μπλε βέλος. Ό,τι δεν χρειαζόμαστε, δεν το προσθέτουμε.
Οι συσκευές που προστέθηκαν προς χρήση βρίσκονται σε πολλές καρτέλες -

Διακόπτες

Αυτή η καρτέλα περιέχει όλες τις διαχειριζόμενες συσκευές
127.0.0.1:8080/#/Διακόπτες φωτός
Διακόπτες, κουμπιά, λάμπες και πολλά άλλα. Εδώ μπορούμε να ενεργοποιήσουμε, να απενεργοποιήσουμε και να κάνουμε οποιεσδήποτε ενέργειες με συσκευές σε χειροκίνητη λειτουργία.

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

Θερμοκρασία

Σε αυτήν την καρτέλα ομαδοποιούνται οι αισθητήρες κλίματος - υγρασία και θερμοκρασία
127.0.0.1:8080/#/Θερμοκρασία
Στην αρχή, ονομάζονται όλοι το ίδιο, μπορείτε να προσδιορίσετε πού βρίσκεται με τη μαρτυρία τους και τον έλεγχο με την εφαρμογή Mi Home, μετά την οποία μπορούν να μετονομαστούν ανάλογα.

Βοηθητική

Ο αισθητήρας φωτός της πύλης είναι ομαδοποιημένος εδώ - αν και οι ενδείξεις του είναι πολύ περίεργες, και οι μετρητές κατανάλωσης ενέργειας των πριζών.
127.0.0.1:8080/#/Βοηθητικό πρόγραμμα

Σενάρια

Για να δημιουργήσετε σενάρια, πρέπει να μεταβείτε στην καρτέλα - Ρυθμίσεις - Για προχωρημένους - Εκδηλώσεις. Το σενάριο διατίθεται σε δύο εκδόσεις - block scripting και lua scripting.

Παραδείγματα σεναρίων

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

Ακριβώς το ίδιο σενάριο στο lua

Παραδείγματα χρήσης

Θα δώσω μεγαλύτερη προσοχή σε συγκεκριμένα σενάρια σε άλλες κριτικές, εδώ ως παράδειγμα θα δώσω ένα σενάριο που ΑΔΥΝΑΤΟεφαρμόστε στο Mi Home, δηλαδή, διακόπτη Aqara δύο κουμπιών με καλώδια ανοίγματος - το αριστερό κουμπί θα λειτουργήσει όπως προορίζεται - σπάστε και συνδέστε τη φάση και το δεξί - δεν είναι συνδεδεμένο στη γραμμή (για να τροφοδοτήσετε τον διακόπτη, αρκεί για να συνδέσετε μόνο ένα από τα κουμπιά) - θα ανάψει και θα απενεργοποιήσει τη λυχνία Yeelight, η οποία δεν έχει φυσική σύνδεση με τον διακόπτη.
Σε αυτό το σενάριο, η κατάσταση της λυχνίας Yeelight θα ελεγχθεί, η τιμή του ίδιου του διακόπτη On ή Off δεν θα έχει σημασία. Εάν η κατάσταση της λάμπας είναι διαφορετική από την Απενεργοποίηση, τότε λειτουργεί και θα σβήσει και αν είναι σβηστή θα ανάψει.

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

Έκδοση βίντεο της κριτικής (2 μέρη) -



Ευχαριστώ για την προσοχή. Σκοπεύω να αγοράσω +170 Προσθήκη στα αγαπημένα Μου άρεσε η κριτική +99 +231

Το σύστημα είναι πολύ απλό, σας επιτρέπει να ελέγχετε το δίκτυο (εξωτερικό ή τοπικό)Οι ακίδες GPIO έχουν διαμορφωθεί για έξοδο και λήψη της κατάστασής τους (δηλαδή δείτε τι είναι on/off). Στείλτε τυχόν εντολές που μπορούν να επεξεργαστούν μέσα στο Raspberry. Λάβετε την κατάσταση των pin GPIO (ως 0 ή 1)έχει ρυθμιστεί για είσοδο. Ο σχεδιαστής θα διαμορφώσει τις ακίδες GPIO που χρειάζεστε για είσοδο ή έξοδο.

Εάν χρειάζεστε ένα πιο ευέλικτο σύστημα, τότε είναι καλύτερο να χρησιμοποιήσετε το προηγούμενο.

Ο χρήστης χρειάζεται μόνο να συναρμολογήσει τη διεπαφή στον κατασκευαστή, να κατεβάσει το αρχείο με αρχεία και να το αποσυσκευάσει στο RaspberryPi 2 του.
Το αρχείο θα περιέχει έτοιμα αρχεία που σχετίζονται με το τμήμα web (html, css, js), sh-script για αρχικοποίηση pins και διακομιστή για ανταλλαγή δεδομένων Αρχική stD Rp . Δεν απαιτείται εγκατάσταση πρόσθετων προγραμμάτων.

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

Εμφάνιση

Εισαγωγικό μέρος.

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

Λειτουργεί σε οποιαδήποτε συσκευή - υπολογιστή, φορητό υπολογιστή, tablet, κινητό τηλέφωνο.


Κύρια οθόνη διεπαφής. Μπορεί να υπάρχουν έως και πέντε δωμάτια.

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

Ας ανοίξουμε το διάδρομο:

Εδώ μπορεί να εντοπιστεί: πολλά κουμπιά διαμορφωμένα για έξοδο (BCM0 , BCM1 κ.λπ.)για να ενεργοποιήσετε κάτι με επιστροφή κατάστασης. Αν είναι κάτι δηλαδή (π.χ. υπερυψωμένο φως)ενεργοποιημένη, η ετικέτα θα τονιστεί.

Πολλαπλά κουμπιά (SENTSIG1 κ.λπ.)για να στείλετε οποιαδήποτε εντολή στο RaspberryPi.

και μερικά χωράφια (IN_BCM2 κ.λπ.)για να λάβετε την κατάσταση των ακίδων GPIO (ως 0 ή 1)έχει ρυθμιστεί για είσοδο. 0 - η καρφίτσα τραβιέται στο "έδαφος", 1 - υπάρχει τάση στον πείρο.

Στο μέλλον, μπορείτε να αλλάξετε τα ονόματα των κουμπιών και να τα αλλάξετε.

σταυρός στην επάνω δεξιά πλευρά - κλείνοντας τον πίνακα.

Κουμπί κάτω πληροφορίεςκρύβει τον πίνακα με πληροφορίες σχετικά με την κατάσταση του συστήματος.

Επιγραφή Συνδέω-συωδεομαι!λέει ότι όλα είναι καλά, και Ενημέρωση καταμέτρησης:- είναι απλώς ένας μετρητής αιτημάτων (το πρόγραμμα περιήγησης σε διαστήματα ~ 700 ms ζητά δεδομένα από το arduino). Το διάστημα μπορεί να αλλάξει.

Εάν κάτι πάει στραβά, θα εμφανιστεί ένα μήνυμα στην οθόνη. ΛΑΘΟΣ, και στο πληροφορίεςθα περιγραφεί η αιτία του σφάλματος.

Ολόκληρος ο αλγόριθμος του συστήματος περιγράφεται στο τέλος του άρθρου.

Τέλος εισαγωγικού μέρους.

Κατασκευαστής

Ένα σύντομο βίντεο σχετικά με τη συνεργασία με τον σχεδιαστή μπορείτε να δείτε εδώ αυτός ο σύνδεσμος.

Το "έξυπνο σπίτι" θα λειτουργεί σε οποιαδήποτε συσκευή, αλλά πρέπει να το σχεδιάσετε σε κανονικό υπολογιστή ή φορητό υπολογιστή.

Τα cookies πρέπει να είναι ενεργοποιημένα στο πρόγραμμα περιήγησης. Ωστόσο, περιλαμβάνονται ήδη σχεδόν όλα.

Ο κατασκευαστής είναι εξαιρετικά απλός και διαισθητικός. Ανοίγοντας στην επόμενη καρτέλα εδώ, θα βρεθείτε στην πρώτη σελίδα (είναι τέσσερις συνολικά):

Για να κατανοήσετε και να εξασκηθείτε, κάντε τα πάντα όπως γράφετε παρακάτω.

Εδώ πρέπει να επιλέξετε τον αριθμό των δωματίων (μέγιστο 5). Ας υποθέσουμε ότι έχουμε δύο δωμάτια (διάδρομος και κουζίνα)στη συνέχεια επιλέξτε 2 και κάντε κλικ στο Επόμενο.

Στο "όνομα του έξυπνου σπιτιού σας" και στα "ονόματα δωματίων", μπορείτε να χρησιμοποιήσετε μόνο γράμματα, αριθμούς, κενά και under_underscores.

Στο μέλλον, μπορείτε να το διορθώσετε στο αρχείο index.html.

Στην επόμενη σελίδα, πρέπει να βρείτε ένα όνομα για το "έξυπνο σπίτι" σας (αυτό θα γραφεί στην καρτέλα του προγράμματος περιήγησης)και εισάγετέ το στο πεδίο Τίτλος σελίδας.

Στα χωράφια Διεύθυνση διακομιστήΚαι Θύρα διακομιστήτίποτα να γράψω (έγινε για το μέλλον).

Ονόματα δωματίωνέχουμε ήδη (διάδρομος και κουζίνα), εισαγάγετε τα και κάντε κλικ στο κουμπί "Επόμενο" ...

Εδώ θα δείτε την κύρια οθόνη της μελλοντικής διεπαφής σας:

Κάντε κλικ στο κουμπί "Διάδρομος"...

Επιλέξτε δύο κουμπιά για να ενεργοποιήσετε κάτι με επιστροφή κατάστασης (Αριθμός κουμπιών ενεργοποίησης/απενεργοποίησης).
Ένα κουμπί για αποστολή εντολής (Αριθμός κουμπιών σήματος αποστολής).
Και ένα πεδίο για λήψη κατάστασης από τυχόν pin (Αριθμός πεδίων για λήψη πληροφοριών).

Μπορούν να επιλεγούν έως πέντε κουμπιά.

Τώρα κλείστε τον πίνακα με το κουμπί, κάντε το ίδιο με την «Κουζίνα» και κάντε κλικ στο κουμπί «Επόμενο»…

Η κύρια οθόνη θα εμφανιστεί με το κουμπί "Λήψη αρχείου":

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

Προσοχή! Το Raspberry Pi 2 έχει συνολικά 28 GPIO (BCM0 - BCM27). Εάν δημιουργήσετε περισσότερα από 27 κουμπιά/πεδία απόδειξης στον κατασκευαστή, τότε όλα είναι περιττά BCMθα εκχωρηθεί αριθμός 28 , και για τα επιπλέον πεδία λήψης IN_BCMη τιμή απλά θα αυξηθεί. Δεν θα λειτουργήσουν.

Σύνδεση
Ας συγκεντρώσουμε ένα απλό σχήμα για τη δοκιμή του συστήματος:

Συνδέστε το LED στην καρφίτσα BCM 1, μέσω μιας αντίστασης 500-1000 ohm. Όταν πατήσετε το κουμπί BCM1 στη διεπαφή, η λυχνία θα ανάψει / θα απενεργοποιηθεί και η επιγραφή θα αλλάξει χρώμα.

Συνδέστε επίσης καλώδια. μέσω μιας αντίστασης 500-1000 ohmπρος την BCM3, με αυτό το σύρμα θα μπορείτε να πατήσετε στο +3,3 ή Εδαφος, και στο χωράφι IN_BCM3μηδέν προς ένα. Έτσι, μπορείτε να παρακολουθείτε ορισμένα συμβάντα.

BCM2χρησιμοποιήστε μόνο κατά την έξοδο. Εάν γίνεται ως είσοδος (IN_BCM2), τότε μην το χρησιμοποιήσετε και μην το επαναλάβετε ως έξοδο (BCM2).

Εφαρμογή κουμπιού SENTSIGπεριγράφεται παρακάτω.

HomestDRp
Αφού αποσυσκευάσετε το αρχείο, θα έχετε έναν φάκελο - mydomrpXXXXXXXXXX, μετονομάστε το έτσι ώστε να βγει mydomrpκαι μπες σε αυτό.

Μετονομασία αρχείων ευρετήριοXXXXXXXXX.htmlσε index.htmlΚαι initXXXXXXXXX.shσε init.sh.

Σε φάκελο mydomrpλήψη αρχείων index.html, init.sh, jquery.jsΚαι στυλ.cssκαι πρόγραμμα homestdrp.

Ανοιγμα αρχείου index.htmlκαι στη δωδέκατη γραμμή - var flagobnov = 0, προωθήστε το μηδέν στο ένα - var flagobnov = 1 (απενεργοποιημένο στον κατασκευαστή).Αποθηκεύστε το αρχείο.

Πρόσθετες εξηγήσεις για τα αρχεία δίνονται στο τέλος του άρθρου.

Τώρα στο πρόγραμμα homestdrp...

homestdrpείναι ένας διακομιστής ιστού που δέχεται αιτήματα από τον πελάτη, στέλνει εντολές στο RaspberryPi, διαβάζει την κατάσταση των ακίδων GPIO και στέλνει πληροφορίες/κατάσταση πίσω στον πελάτη Ιστού. Με άλλα λόγια, σκοπός του είναι η ανταλλαγή δεδομένων μεταξύ του web client (browser) και του RaspberryPi. Λειτουργεί στο πρωτόκολλο TCP και στο μέλλον επίσης στο UDP.

πηγή

#περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω απόκριση χαρακτήρων = "HTTP/1.1 200 OK\r\n" "Τύπος περιεχομένου: κείμενο/html; σύνολο χαρακτήρων=UTF-8\r\n\r\n"; char answer_css = "HTTP/1.1 200 OK\r\n" "Content-Type: text/css; charset=UTF-8\r\n\r\n"; char answer_js = "HTTP/1.1 200 OK\r\n" "Content-Type: text/js; charset=UTF-8\r\n\r\n"; char answer_text = "HTTP/1.1 200 OK\r\n" "Τύπος περιεχομένου: κείμενο/κείμενο; σύνολο χαρακτήρων=UTF-8\r\n\r\n"; char answer_403 = "HTTP/1.1 200 OK\r\n" "Content-Type: text/html; charset=UTF-8\r\n\r\n" "403" "" "

403

\r\n"; #define BUFSIZE 1024 #define ARRAY_SIZE 90000 #define BSIZ 512 char send1_array = (0,); char send2_array = (0,); char patch_to_dir = (0,); char fpfile = (0,); char buffer = (0,); int count_simvol = 0; ανυπόγραφο int PORTW = 0; int len_dat = 0; int count_warning_log =0; void error_log (char *my_error) ( char file_error_log = (0,); snprintf(file_error_ , "%s", "/var/log/ErrorhomeRp.log"); time_t t; time(&t); FILE *f; f = fopen(file_error_log, "a"); if(f == NULL) ( printf ("Σφάλμα ανοίγματος /var/log/ErrorhomeRp.log.\n"); έξοδος(0); ) fprintf(f, "%s", ctime(&t)); fprintf(f, "Σφάλμα %s\n\ n", my_error); printf("Σφάλμα %s Γράψτε στο /var/log/ErrorhomestdRp.log.\n", my_error); fclose(f); exit(0); ) void warning_access_log(char *war_ac) (count_warning_log++ ; char file_Warning_Access_log = (0,); snprintf(file_Warning_Access_log, 31, "%s", "/var/log/Warning_AccessRp.log"); if(count_warning_log > 100) ( system("gzip -f /var/log/ Warning_AccessRp.log"); count_warning_log =0; ti me_t t; χρόνος(&t); ΑΡΧΕΙΟ *f; f = fopen(file_Warning_Access_log, "w"); fprintf(f, "%s", ctime(&t)); fprintf(f, "%s\n\n", war_ac); printf("Write to /var/log/Warning_AccessRp.log:\n%s\n", war_ac); fclose(f); ) else (time_t t; time(&t); FILE *f; f = fopen(file_Warning_Access_log, "a"); fprintf(f, "%s", ctime(&t)); fprintf(f, "%s\n \n", war_ac); printf("Write to /var/log/Warning_AccessRp.log:\n%s\n", war_ac); fclose(f); ) ) void read_in_file(char *name_file) (count_simvol = 0 ; memset(send1_array, 0, ARRAY_SIZE * sizeof(char)); memset(fpfile, 0, 64 * sizeof(char)); snprintf(fpfile, (int)strlen(patch_to_dir) + (int)strlen(name_file) + 1 , "%s%s", patch_to_dir, name_file); FILE *file; file = fopen(fpfile,"r"); if(file == NULL) error_log ("open file."); int ch; while(ch = getc(αρχείο), ch != EOF) ( send1_array = (char) ch; count_simvol++; if(count_simvol == ARRAY_SIZE - 2) break; ) fclose(file); ) int main(int argc, char *argv) ( if(argc != 4) error_log ("not argumets."); PORTW = strtoul(argv, NULL, 0); // port για διακομιστή web 80 strncpy(patch_to_dir, argv, 63); // διαδρομή προς τον φάκελο len_dat = atoi(argv); // αριθμός χαρακτήρων warning_access_log("START"); ///////////////////// //////////////////////// WEB //////////////////////// // /////////////// int one = 1, client_fd; struct sockaddr_in svr_addr, cli_addr; socklen_t sin_len = sizeof(cli_addr); int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); αν (κάλτσα< 0) error_log("not socket."); setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(int)); svr_addr.sin_family = AF_INET; svr_addr.sin_addr.s_addr = INADDR_ANY; svr_addr.sin_port = htons(PORTW); if(bind(sock, (struct sockaddr *) &svr_addr, sizeof(svr_addr)) == -1) { close(sock); error_log("bind."); } if(listen(sock, 10) == -1) { close(sock); error_log("listen."); } ////////////////////////////////////////// work file ////////////////////////////////////////////////// char flin_fldb = {0,}; snprintf(flin_fldb, (int)strlen(patch_to_dir) + (int)strlen("init.sh 1 "), "%s%s", patch_to_dir, "init.sh 1"); system(flin_fldb); char bufRec = {0,}; char To_GPIO = {0,}; FILE *mf; char in_data = {0,}; char gp_file = {0,}; printf("Receive data from RPi\n\n"); for(;;) { client_fd = accept(sock, (struct sockaddr *) &cli_addr, &sin_len); if(client_fd == -1) continue; memset(buffer, 0, BUFSIZE * sizeof(char)); read(client_fd, buffer, BUFSIZE - 1); if((strstr(buffer, "file.db")) != NULL) { memset(in_data, 0, 256 * sizeof(char)); memset(bufRec, 0, BSIZ * sizeof(char)); int i = 0; int ip = 0; for(i = 0; i < len_dat; i++) { memset(gp_file, 0, 32 * sizeof(char)); snprintf(gp_file, 29, "%s%d%s", "/sys/class/gpio/gpio", i, "/value"); if(ip >54) ( in_data = "0"; ip++; in_data = " "; ip++; ) other ( mf = fopen (gp_file, "r"); if(mf == NULL) error_log ("gpio, fail last όρισμα.") ; in_data = getc(mf); ip++; in_data = " "; ip++; fclose(mf); ) ) printf("Δεδομένα:%s\n", in_data); int len_ara = (int)strlen(in_data) + 59; snprintf(bufRec, len_ara, "%s%s", answer_text, in_data); write(client_fd, bufRec, len_ara - 1); κλείσιμο(client_fd); ) else if((strstr(buffer, "comanda")) != NULL) /////////// comand ( memset(To_GPIO, 0, 64); snprintf(To_GPIO, (int)strlen(patch_to_dir ) + (int)strlen("init.sh 0 ") + 4, "%sinit.sh 0 %c%c%c", patch_to_dir, buffer, buffer, buffer); system(To_GPIO); close(client_fd); warning_access_log(buffer); printf("To Gpio:%s\n", To_GPIO); ) else if((strstr(buffer, "GET / ")) != NULL) ( read_in_file ("index.html"); int len_ara = count_simvol + (int)strlen(response) + 1; memset(send2_array, 0, len_ara * sizeof(char)); snprintf(send2_array, len_ara, "%s%s", απάντηση, send1_array); write(client_fd, send2_array, count_simvol + 59); close(client_fd); warning_access_log (buffer); printf("Trans index.html.\n\n"); ) else if((strstr(buffer, "style.css")) != NULL) ( read_in_file("style.css"); int len_ara = count_simvol + (int)strlen(response_css) + 1; memset(send2_array, 0, len_ara * sizeof(char)); snprintf(send2_array, len_ara, "%s %s", answer_css, send1_array); write(client_fd, send2 _array, count_simvol + 58); κλείσιμο(client_fd); warning_access_log(buffer); printf("Transstyle.css.\n\n"); ) else if((strstr(buffer, "jquery.js")) != NULL) ( read_in_file ("jquery.js"); int len_ara = count_simvol + (int)strlen(response_js) + 1; memset(send2_array, 0 , len_ara * sizeof(char)); snprintf(send2_array, len_ara, "%s%s", answer_js, send1_array); write(client_fd, send2_array, count_simvol + 57); close(client_fd); warning_access_log(buffer); printf( "Trans jquery.js.\n\n"); ) else (write(client_fd, answer_403, sizeof(response_403) - 1); close(client_fd); warning_access_log(buffer); ) ) ) //END main //gcc -Wall -Wextra -Werror homestdrp.c -o homestdrp

Τώρα αντιγράψτε τον φάκελο mydomrpσε οποιοδήποτε βολικό μέρος στο RaspberryPi, για παράδειγμα, στη ρίζα, - /mydomrp, δημιουργήστε αρχεία homestdrpΚαι init.shεκτελέσιμο...

sudo chmod +x /mydomrp/homestdrp sudo chmod +x /mydomrp/init.sh

Και τρέχουμε το πρόγραμμα με τρεις παραμέτρους:

sudo /mydomrp/homestdrp 80 /mydomrp/ 6

Αργότερα, για να αυτοματοποιήσετε την εκκίνηση, προσθέστε αυτήν την εντολή στο αρχείο rc.τοπικό

Nano /etc/rc.local

Εισαγάγετε μέχρι τη γραμμή έξοδος 0, σαν αυτό:

... (/mydomrp/homestdrp 80 /mydomrp/ 6)& έξοδος 0

Σχετικά με τις παραμέτρους:

Πρώτη παράμετρος - TCP Λιμάνι. Μπορείτε να καθορίσετε οποιαδήποτε θύρα, αλλά αν δεν έχετε πλέον διακομιστές που να καταλαμβάνουν την τυπική θύρα (80), τότε καθορίστε την, καλά, αν είναι κατειλημμένη, τότε γράψτε κάτι άλλο, για παράδειγμα 82 (θα μπεις στο "έξυπνο σπίτι" κάπως έτσι - η διεύθυνση :82 ) .

Δεύτερη παράμετρος- Η διαδρομή προς το φάκελο /mydomrp/ (με υποχρεωτική κάθετο / στο τέλος).

Τέταρτη παράμετρος- τον όγκο των δεδομένων που αποστέλλονται στον πελάτη (δεν αξίζει να μπω σε λεπτομέρειες αυτού του σημείου, τουλάχιστον προς το παρόν), πρέπει να δείτε αυτό το σχήμα στο αρχείο index.htmlστη γραμμή if(vars.length == 6). Στον κώδικα είναι εδώ:

προβολή(); setInterval(show,680); function show()( if(flagobnov == 1) ( $.ajax(( type: "POST", url: "file.db", timeout:560, cache: false, success: function(data)( var vars = data.split(" "); if(vars.length == 6) ΑΥΤΟ ΤΟ ΨΗΦΙΟ ( count_obnov++; ...

Μετά από μια επιτυχημένη εκκίνηση, homestdrpπρώτα από όλα εκτελεί το σενάριο init.sh (Έναρξη init.sh), το οποίο πρώτα καταργεί όλους τους συνδέσμους προς όλα τα GPIO και, στη συνέχεια, δημιουργεί τα απαραίτητα (Εξαγωγή επιλεγμένης καρφίτσας)και ορίζει τους τρόπους λειτουργίας τους (in/out) (Επιλεγμένη καρφίτσα αρχικοποίησης) .


Για λάθη - sh: ηχώ: Σφάλμα εισόδου/εξόδουδεν πειράζει, έτσι πρέπει να είναι. Εξάλλου, το σενάριο διαγράφει GPIO που δεν υπάρχουν ούτως ή άλλως.

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

Όλες οι ενέργειες homestdrp, ακολουθούμενη από εγγραφή σε ένα αρχείο /var/log/Warning_AccessRp.log, και οι προειδοποιήσεις είναι γραμμένες εκεί.

Σε περίπτωση κρίσιμου σφάλματος (για παράδειγμα, μην προσθέσετε όρισμα), θα γραφτεί σε ένα αρχείο /var/log/ErrorhomestdRp.logκαι το πρόγραμμα θα σταματήσει.

Τώρα αν σταματήσεις homestdrp(Ctrl + c), τότε η διεπαφή θα αναφέρει ένα σφάλμα:

Εξηγήσεις

Πώς να χρησιμοποιήσετε το κουμπί SENTSIGΧ?

Ανοίγοντας το αρχείο init.sh (από το φάκελο /mydomrp), μεταξύ άλλων, θα βρείτε τις ακόλουθες γραμμές:

104) # αντίδραση στο κουμπί SENTSIG1 ;; 109) # αντίδραση στο κουμπί SENTSIG2 ;; ...

Εδώ είναι (αντί για # αντίδραση στο κουμπί SENTSIG1)και πρέπει να εισάγετε τις εντολές σας.
Δηλαδή, αν αντί για «# αντίδραση στο κουμπί SENTSIG1» γράψτε επανεκκίνηση (χωρίς #), αποθηκεύστε το αρχείο και κάντε κλικ στο κουμπί στη διεπαφή SENTSIG1, τότε το raspberry θα επανεκκινήσει ή αν αντί για "# αντίδραση στο κουμπί SENTSIG2" γράψετε apt-get ενημέρωση && apt-get αναβάθμιση, τότε θα ενημερωθεί.

Γενικά, μπορείς να κάνεις ό,τι θέλεις.

Επεξηγήσεις για το αρχείο index.html

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

SetInterval(show,680); ...

... λαμβάνει μια απάντηση σε μορφή κειμένου (δεδομένα χωρισμένα με κενά)και τις αποσυνθέτει σε μεταβλητές.

... /* λήψη */ if(vars == 1) ( $(".d2otkl").show(); $(".d2vkl").hide(); ) else if(vars == 0) ( $(".d2otkl").hide(); $(".d2vkl").show(); ) $("#indata3").html("INDATA3" + " " + vars); if(vars == 1) ( $(".d3otkl").show(); $(".d3vkl").hide(); ) else if(vars == 0) ($(".d3otkl"). hide(); $(".d3vkl").show(); ) ...

Εάν εγκαταστήσετε το σύστημα όπου η ποιότητα επικοινωνίας αφήνει πολλά να είναι επιθυμητή (για παράδειγμα, στη χώρα), δηλαδή τα ping εκεί είναι πολύ μεγάλα, τότε θα εμφανιστούν σφάλματα "timeout". Για να αποφύγετε αυτό, πρέπει να αυξήσετε το χρονικό όριο λήξης αιτήματος:

προβολή(); setInterval(show,680); συνάρτηση show()( if(flagobnov == 1) ( $.ajax(( type: "POST", url: "file.db", timeout:560, /* αυτός ο αριθμός (σε χιλιοστά του δευτερολέπτου)*/ cache: false, ...

Η προεπιλογή είναι 560 ms, αυξήστε το σε βήματα των 100 ms και δοκιμάστε. Κατά συνέπεια, είναι απαραίτητο να αυξηθεί setInterval(show,680), επίσης για 100 ms.

Μπορείτε να αλλάξετε τα ονόματα των κουμπιών (D2, D3, SENTSIG1, κ.λπ.) εδώ:

...

Δ2
Δ2
SENTSIG1
...

Μπορείτε να αλλάξετε τα ονόματα των πεδίων για τη λήψη δεδομένων (IN_BCM3, IN_BCM5, κ.λπ.) εδώ:

... $("#indata3").html("IN_BCM3" + " " + vars); ...

Το πρόγραμμα περιήγησης ζητά συνεχώς δεδομένα και έτσι δημιουργεί κίνηση. Για να το αποφύγετε αυτό, μπορείτε είτε να κλείσετε τη σελίδα είτε να καταργήσετε το σχόλιο αυτού του μπλοκ:

/*slmode++; if(slmode > 70) ( $(".pansl").show(300); flagobnov = 0; slmode = 0; )*/

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

Αφού κάνετε αλλαγές σε index.htmlφροντίστε να ανανεώσετε τη σελίδα στο πρόγραμμα περιήγησής σας.

Όλες οι ερωτήσεις και οι ευχές γράψτε στα σχόλια!

Αυτα για τωρα,

Φόρτωση...Φόρτωση...