Διαφήμιση
Οι διακόπτες Dusk-til-dawn και χρονοδιακόπτες είναι και οι δύο εύχρηστοι τρόποι αυτοματοποίησης των φώτων σας. Δεν θα ήταν υπέροχο αν μπορούσατε να συνδυάσετε τα δύο ή ακόμα και να τα συνδέσετε στο Διαδίκτυο για ένα πραγματικά έξυπνο σύστημα φωτισμού;
Ένα Raspberry Pi, ένα ρελέ, ένας αισθητήρας φωτός και μια παύλα κώδικα είναι το μόνο που χρειάζεστε για να επιτύχετε αυτό το αυτόματο νιρβάνα φωτισμού σε ένα κορδόνι.
Τι θα χρειαστείτε
Τα εξαρτήματα για τον έξυπνο διακόπτη ανίχνευσης φωτός είναι εύχρηστα. Θα χρειαστείς:
- Οποιοδήποτε μοντέλο Raspberry Pi που τρέχει Raspbian.
- ΕΝΑ πίνακας ρελέ, εντοπίζεται εύκολα στο Amazon.
- Ενα Αισθητήρας φωτεινότητας Adafruit TSL2561.
- Καλώδια αλτών.
- Μερικά φώτα για αυτοματοποίηση!
Πώς λειτουργεί ένας έξυπνος διακόπτης με αισθητήρα φωτός
Χρησιμοποιώντας ένα ρελέ με τον ίδιο τρόπο όπως το δικό μας αυτόματο πρόγραμμα ανοίγματος πόρτας γκαράζ Πώς να αυτοματοποιήσετε την πόρτα του γκαράζ σας με IFTTT και Raspberry PiΣε αυτό το σεμινάριο, θα σας δείξουμε πώς να αυτοματοποιήσετε την πόρτα του γκαράζ σας χρησιμοποιώντας τίποτα περισσότερο από ένα Raspberry Pi και IFTTT. Διαβάστε περισσότερα , μπορείτε να προγραμματίσετε ένα Raspberry Pi για να ενεργοποιήσετε και να απενεργοποιήσετε ένα κύκλωμα φωτισμού σε συγκεκριμένες ώρες. Η προσθήκη ενός αισθητήρα φωτεινότητας στο μείγμα σημαίνει ότι το Pi μπορεί να ανιχνεύσει το επίπεδο φωτισμού περιβάλλοντος και να επιλέξει να ανάψει τα φώτα μόνο όταν είναι πραγματικά απαραίτητα.
Επειδή το Pi είναι ένας μικροσκοπικός υπολογιστής που μπορεί να συνδεθεί σε ένα δίκτυο, μπορείτε επίσης να τον ρυθμίσετε για έλεγχο μέσω του Διαδικτύου. Τα έξυπνα φώτα σας θα έχουν τρεις εισόδους για να καθορίσουν πότε ανάβουν:
- Ένα προγραμματισμένο πρόγραμμα.
- Το επίπεδο φωτισμού περιβάλλοντος.
- Ένα σήμα παράκαμψης αποστέλλεται μέσω του δικτύου.
Βήμα 1: Συνδέστε το Raspberry Pi στο ρελέ
Εάν είστε νέοι για τη χρήση του GPIO, ξεκινήστε διαβάζοντας Όλα όσα πρέπει να γνωρίζετε για τις καρφίτσες Raspberry Pi GPIO.
Αρχικά, ελέγξτε αν η πλακέτα ρελέ σας διαθέτει βραχυκυκλωτήρα που συνδέει τους ακροδέκτες VCC και JD-VCC. Εάν έχει, αφαιρέστε το.

Με όλα απενεργοποιημένα, συνδέστε την πλακέτα ρελέ στο Pi σας ως εξής:
- Pi Pin 2 (5v) στο JD-VCC στην πλακέτα ρελέ.
- Pi Pin 6 (GND) έως GND στην πλακέτα ρελέ.
- Pi Pin 15 (GPIO 22) έως IN1 στην πλακέτα ρελέ
- Pi Pin 17 (3.3v) έως VCC στην πλακέτα ρελέ.

Βήμα 2: Συνδέστε τον αισθητήρα φωτεινότητας
Το TSL2561 είναι ένας αισθητήρας φωτός που μπορεί να ανιχνεύσει υπέρυθρο, πλήρες φάσμα και ορατό από τον άνθρωπο φως. Μπορεί να στείλει μια πολύ ακριβή ψηφιακή ανάγνωση στο Raspberry Pi. Ο αισθητήρας αναφέρει το επίπεδο φωτός σε κλίμακα 0,1 (χωρίς φως) έως 40.000 (λαμπερός ήλιος).
Ο πίνακας TSL2561 μιλά στο Raspberry Pi χρησιμοποιώντας το πρωτόκολλο i2c. Το I2C χρειάζεται μόνο δύο συνδέσεις, μία για ένα ρολόι για να διατηρούν συγχρονισμένο τις δύο συσκευές και μία για τη μεταφορά δεδομένων. Φυσικά, ο αισθητήρας lux χρειάζεται επίσης κάποια ισχύ, οπότε υπάρχουν τέσσερις συνδέσεις που πρέπει να γίνουν συνολικά:
- Συνδέστε το Pi Pin 1 (3.3v) στο Vin (ή VCC) στον αισθητήρα lux
- Συνδέστε το Pi Pin 3 (SDA) στο SDA στον αισθητήρα lux
- Συνδέστε το Pi Pin 5 (SCL) στο SCL στον αισθητήρα lux
- Συνδέστε το Pi Pin 9 (GND) στο GND στον αισθητήρα lux

Βήμα 3: Διαμόρφωση και εγκατάσταση εξαρτήσεων
Πριν προχωρήσετε περισσότερο, θα πρέπει να ελέγξετε ότι το I2C είναι ενεργοποιημένο στο Raspberry Pi (είναι απενεργοποιημένο από προεπιλογή). Πληκτρολογήστε τα ακόλουθα στο τερματικό:
sudo raspi-config
Επιλέγω Επιλογές διασύνδεσης> P5 I2C, μετά επιλέξτε Ναί.

Κτύπημα Εισαγω μετά επιλέξτε Φινίρισμα για έξοδο από την οθόνη διαμόρφωσης. Επανεκκινήστε το Pi για να εφαρμοστεί η αλλαγή:
επανεκκίνηση sudo
Ορισμένες εξαρτήσεις είναι απαραίτητες για να μπορεί το Pi να επικοινωνεί με την πλακέτα αισθητήρων. Πληκτρολογήστε τις ακόλουθες εντολές:
sudo apt-get ενημέρωση. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-εργαλεία
Μπορείτε να ελέγξετε ότι όλα λειτουργούν πληκτρολογώντας:
sudo i2cdetect -y 1
Εάν οι εξαρτήσεις σας είναι εγκατεστημένες και ο αισθητήρας lux είναι συνδεδεμένος σωστά, θα δείτε μια απάντηση ως εξής:

Εδώ το βοηθητικό πρόγραμμα αναφέρει ότι βρήκε μια συσκευή I2C (τον αισθητήρα lux) στη διεύθυνση I2C 39.
Δεν έχετε τελειώσει ακόμα με τις εξαρτήσεις. Θα χρειαστείτε επίσης μερικές βιβλιοθήκες. Αρχικά, δημιουργήστε έναν φάκελο για να διατηρήσετε όλα όσα σχετίζονται με αυτό το έργο σε:
mkdir ~ / φωτισμός. cd ~ / φωτισμός
Στη συνέχεια, πραγματοποιήστε λήψη μπουκάλι, ένα ελαφρύ πλαίσιο που θα δημιουργήσει έναν απλό διακομιστή ιστού στο Pi σας. Θα το χρησιμοποιήσετε για τον έλεγχο των φώτων σας από τον ιστό.
κλαίω https://bottlepy.org/bottle.py
Οι άλλες βιβλιοθήκες που θα χρειαστείτε είναι στο Github, οπότε αν το Raspberry Pi δεν έχει ήδη εγκαταστήσει το Git, προσθέστε το τώρα:
sudo apt-get εγκατάσταση git
Τώρα κλωνοποιήστε δύο βιβλιοθήκες, όπως αυτό:
git κλώνος https://github.com/adafruit/Adafruit_Python_GPIO.git. git κλώνος https://github.com/adafruit/Adafruit_Python_PureIO.git
Και τέλος, δημιουργήστε ένα δοκιμαστικό σενάριο δημιουργώντας ένα νέο αρχείο:
nano test.py
Επικολλήστε αυτόν τον κωδικό (ευγενική προσφορά του Adafruit):
#! / usr / bin / env python. # - * - κωδικοποίηση: utf-8 - * - από __future__ εισαγωγή απόλυτη_αποστολή, διαίρεση, print_function, unicode_literals. από tsl2561 εισαγωγή TSL2561. αν __name__ == "__main__": tsl = TSL2561 (debug = True) εκτύπωση (tsl.lux ())
Τύπος Ctrl + X για αποθήκευση, ακολουθώντας τις οδηγίες στην οθόνη για έξοδο.
Όταν τελειώσετε, εκτελέστε το δοκιμαστικό σενάριο:
python test.py
Εάν όλα είναι εγκατεστημένα και λειτουργούν, θα λάβετε έναν αριθμό. Αυτός ο αριθμός είναι μια ανάγνωση lux από τον αισθητήρα. Δοκιμάστε να αποκλείσετε τον αισθητήρα ή να τον μετακινήσετε έτσι ώστε να παίρνει περισσότερο ή λιγότερο φως. Στη συνέχεια, εκτελέστε ξανά το δοκιμαστικό σενάριο και δείτε πώς αλλάζει ο αριθμός.
Βήμα 4: Δημιουργήστε τα σενάρια αυτοματισμού
Το Raspberry Pi θα ανάψει τα φώτα όταν σκοτεινιάσει, αλλά θα σβήσει επίσης σε συγκεκριμένες ώρες. Για παράδειγμα, ίσως θέλετε τα φώτα σας να ανάβουν όταν σκοτεινιάσει το βράδυ και μετά σβήστε τα μεσάνυχτα για εξοικονόμηση ηλεκτρικής ενέργειας. Θα μπορούσαν να ανάψουν ξανά νωρίς το πρωί και μετά να απενεργοποιηθούν όταν φωτιστεί.
Για να διαχειριστείτε ένα πρόγραμμα με πολλές ζώνες χρονισμού όπως αυτό, υπάρχουν δύο διαφορετικά σενάρια. Ενας (onzone.py) θα λειτουργεί κάθε λεπτό κατά τη διάρκεια των ωρών που θέλετε να ανάβουν τα φώτα σας εάν είναι σκοτεινό. Το άλλο (offzone.py) θα λειτουργεί κάθε λεπτό κατά τη διάρκεια των χρόνων που θέλετε να σβήνουν τα φώτα ανεξάρτητα από το επίπεδο φωτός.

Τα σενάρια θα προγραμματιστούν να εκτελεστούν χρησιμοποιώντας εργασίες cron Πώς να προγραμματίσετε εργασίες σε Linux με Cron και CrontabΗ ικανότητα αυτοματοποίησης εργασιών είναι μία από αυτές τις φουτουριστικές τεχνολογίες που είναι ήδη εδώ. Κάθε χρήστης Linux μπορεί να επωφεληθεί από το σύστημα προγραμματισμού και τις εργασίες χρήστη, χάρη στο cron, μια εύχρηστη υπηρεσία φόντου. Διαβάστε περισσότερα . Επιλέγοντας ποιες ώρες της ημέρας και της νύχτας εκτελείται κάθε σενάριο, θα είναι εύκολο να ορίσετε τις ώρες που μπορούν να ανάβουν αυτόματα τα φώτα σας. Μπορείτε να ρυθμίσετε όσες περιόδους ενεργοποίησης και απενεργοποίησης θέλετε.
Εκτός από τα σενάρια για τον αυτόματο έλεγχο των φώτων, υπάρχει ένα τρίτο σενάριο για τη διαχείριση καταστάσεων παράκαμψης. Αυτό θα σας επιτρέψει να ανάψετε τα φώτα από απόσταση ανεξάρτητα από το επίπεδο φωτισμού περιβάλλοντος.
Σενάριο 1: Η ζώνη ON
Αυτό το σενάριο Python θα εκτελείται κάθε λεπτό της ημέρας που θέλετε να ανάβουν τα φώτα εάν είναι σκοτεινό. Κατεβάστε το σενάριο αντιγράφοντας και επικολλώντας αυτήν την εντολή στο τερματικό:
κλαίω https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Κάθε φορά που εκτελείται το onzone.py, λαμβάνει μια τιμή lux από τον αισθητήρα για να δει αν είναι σκοτεινό. Εάν είναι, τότε θα ελέγξει για να δει εάν τα φώτα είναι αναμμένα ή σβηστά. Εάν είναι απενεργοποιημένα, θα τα ενεργοποιήσετε. Εάν δεν είναι σκοτεινό, το σενάριο θα δει αν τα φώτα είναι αναμμένα. Εάν είναι, θα τα απενεργοποιήσει εκτός εάν έχουν παρακαμφθεί.
Το σενάριο χρησιμοποιεί μια μεταβλητή που ονομάζεται χαμηλή ροή για να αποφασίσετε σε ποιο σημείο είναι αρκετά σκοτεινό για να ανάψετε τα φώτα. Μπορείτε να το αλλάξετε σε κάτι κατάλληλο για τη δική σας εγκατάσταση αλλάζοντας την τιμή σε αυτήν τη γραμμή κοντά στην κορυφή του onzone.py:
lowlux = 50
Σενάριο 2: Η ζώνη OFF
Αυτό το σενάριο θα εκτελείται κάθε λεπτό της ημέρας που θέλετε να σβήσουν τα φώτα, εκτός εάν έχουν παρακαμφθεί. Κατεβάστε το σενάριο:
κλαίω https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Αυτό το σενάριο δεν ενδιαφέρεται για το πόσο φωτεινό ή σκοτεινό είναι. Η δουλειά του είναι απλώς να σβήσει τα φώτα εάν είναι αναμμένα (εκτός εάν έχουν παρακαμφθεί).
Σενάριο 3: Ο διακομιστής παράκαμψης
Αυτό το σενάριο δημιουργεί μια απλή υπηρεσία ιστού που μπορεί να δεχτεί εντολές για να κάνει τις ακόλουθες ενέργειες:
- Ανάψτε τα φώτα για μερικά λεπτά, ανεξάρτητα από το επίπεδο φωτισμού περιβάλλοντος.
- Σβήστε τα φώτα.
- Μάθετε αν τα φώτα είναι αναμμένα ή σβηστά.
- Μάθετε για πόσο περισσότερο πρέπει να παραμείνουν τα φώτα όταν έχουν παρακαμφθεί.
Κατεβάστε το σενάριο:
κλαίω https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Πριν προχωρήσετε στο επόμενο βήμα, εκτελέστε το σενάριο offzone.py ως εξής:
python offzone.py
Αυτό θα δημιουργήσει τα αρχεία ελέγχου που χρησιμοποιούν τα σενάρια για να παρακολουθούν τα πάντα.
Βήμα 5: Προγραμματίστε τα σενάρια
Το Raspberry Pi μπορεί να εκτελέσει τα σενάρια αυτοματισμού με cron. Ρυθμίστε το πρόγραμμα ως εξής:
sudo crontab -e
Επικολλήστε αυτές τις δύο γραμμές στον επεξεργαστή κειμένου:
* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL. * 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL
Σημείωση: Εάν το όνομα χρήστη με το οποίο συνδεθήκατε στο Raspberry Pi δεν ήταν το προεπιλεγμένο πι, αλλάξτε τη διαδρομή ανάλογα.
Αναφέρετε όλες τις ώρες που θέλετε να ανάβουν τα φώτα όταν είναι σκοτεινό στην πρώτη γραμμή. Όλες οι ώρες όπου θέλετε τα φώτα σβήνουν στη δεύτερη γραμμή.
Τώρα ρυθμίστε το σενάριο παράκαμψης να εκτελείται αυτόματα κατά την εκκίνηση του Pi:
sudo nano /etc/rc.local
Επικολλήστε αυτήν τη γραμμή στο κάτω μέρος του αρχείου και, στη συνέχεια, αποθηκεύστε και βγείτε:
nohup python /home/pi/lighting/lightserver.py &
Τέλος, επανεκκινήστε το Raspberry Pi, ώστε να μπορείτε να ελέγξετε ότι το σενάριο διακομιστή φορτώνει όπως πρέπει
επανεκκίνηση sudo
Βήμα 6: Δοκιμάστε το ρελέ
Πριν συνδέσετε τα φώτα σας, ελέγξτε ότι όλα λειτουργούν χρησιμοποιώντας τη λειτουργία παράκαμψης. Πληκτρολογήστε τα ακόλουθα σε ένα πρόγραμμα περιήγησης ιστού στο ίδιο δίκτυο με το Pi σας, αντικαθιστώντας τη διεύθυνση IP με τη διεύθυνση του δικού σας Raspberry Pi:
11.22.33.44.11234/overrideon/3
Εάν όλα είναι καλά, θα ακούσετε το κλικ του ρελέ και το πρόγραμμα περιήγησης θα ανταποκριθεί ότι τα φώτα έχουν ενεργοποιηθεί για τρία λεπτά.
Ενώ το ρελέ είναι κλειστό, μπορείτε να ελέγξετε τις άλλες λειτουργίες παράκαμψης. Αυτό θα σας πει για πόσα ακόμη λεπτά θα παραμείνουν τα φώτα λόγω της παράκαμψης:
11.22.33.44onym234/getoverrideremaining
Αυτό θα σας πει ότι τα φώτα είναι αναμμένα:
11.22.33.44.11234/lightstatus
Τέλος, μπορείτε να τα απενεργοποιήσετε ξανά με:
11.22.33.44.11234/overrideoff
Το ρελέ θα κάνει κλικ καθώς ανοίγει.
Βήμα 7: Συνδέστε τα φώτα σας
Απενεργοποιήστε και αποσυνδέστε το Raspberry Pi πριν συνδέσετε τα φώτα σας στο ρελέ. Χρησιμοποιήστε τους κανονικά ανοιχτούς συνδέσμους (ΟΧΙ) στην πλακέτα ρελέ στη θέση ενός κανονικού διακόπτη, όπως αυτό:

Τέλος, μπορείτε να εγκαταστήσετε τον αισθητήρα lux σε ένα μέρος όπου θα συλλάβει το επίπεδο φωτισμού περιβάλλοντος. Λάβετε υπόψη ότι το TSL2561 θα αναφέρει ότι είναι κορεσμένο εάν αντιμετωπίζει άμεσο έντονο ηλιακό φως, οπότε είναι καλύτερο να το κρατήσετε στη σκιά εάν είναι δυνατόν.
Περισσότερα έργα Raspberry Pi για να δοκιμάσετε
Η απομακρυσμένη παράκαμψη της νέας εγκατάστασης έξυπνου φωτισμού πληκτρολογώντας εντολές σε ένα πρόγραμμα περιήγησης ιστού είναι πολύ δυσκίνητη. Ένας καλύτερος τρόπος είναι να συνδέσετε κάτι σαν το Amazon Echo για να διευκολύνετε τα πράγματα. Συνδυάζοντας την υπηρεσία Alexa και την υπηρεσία Webhooks IFTTT είναι ένας απλός τρόπος προσθήκης φωνητικού ελέγχου.
Δείτε μας οδηγός για τη χρήση IFTTT για να σας βοηθήσουμε να ξεκινήσετε.

Μια άλλη επιλογή είναι να χρησιμοποιήσετε συντομεύσεις Siri. Μια μεμονωμένη συντόμευση με μενού μπορεί να ζητήσει την κατάσταση των φώτων και να χρησιμοποιήσει τις λειτουργίες παράκαμψης για να τις ενεργοποιήσετε και να απενεργοποιήσετε.
Εάν σας άρεσε αυτό το έργο, φροντίστε να τα δείτε παράξενα έργα Raspberry Pi 10 πιο περίεργα έργα Raspberry PiΥπάρχει ένας τρελός επιστήμονας μέσα στον καθένα μας, και το Raspberry Pi αφήνει τον εσωτερικό σας λοβό να βγει και να παίξει. Μερικές φορές, τα πράγματα γίνονται παράξενα. Πραγματικά περίεργο. Διαβάστε περισσότερα για περισσότερες ιδέες.
Ο Hamish είναι ανεξάρτητος συγγραφέας, λάτρης της δια βίου τεχνολογίας και επιβεβαιωμένος nerd. Εργάστηκε στα τμήματα πληροφορικής πολλών πολυεθνικών προτού τελικά απολύσει το αφεντικό του και το πήγε μόνο του.