Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Χαρακτηριστικά
- Βήμα 2: Καλωδίωση
- Βήμα 3: Τρισδιάστατη εκτύπωση και κατασκευή του κυνηγητού
- Βήμα 4: Ρύθμιση του Raspberry PI
- Βήμα 5: Λογισμικό
- Βήμα 6: Πίνακας ελέγχου IOT
- Βήμα 7: Εισαγωγή των βασικών λειτουργιών
Βίντεο: Παρακολούθηση εύρους ζώνης: 7 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Καθώς ρωτούσα συχνά τον εαυτό μου ποιο εύρος ζώνης παρέχεται επί του παρόντος από τον ISP μου (χρησιμοποιώ μόντεμ LTE για σύνδεση στο Διαδίκτυο), σκέφτηκα ένα σύστημα παρακολούθησης εύρους ζώνης. Δεδομένου ότι το σύστημα πρέπει να είναι συμπαγές και να εξοικονομεί ενέργεια, επέλεξα ένα Raspberry Pi Zero ως κεντρικό στοιχείο. Το Raspberry συνδέεται με το μόντεμ μέσω WLAN, επομένως τα προβλήματα WLAN μπορούν επίσης να εντοπιστούν.
Προμήθειες
- Raspberry Pi Zero WH
- Waveshare e-ink display (2.9inch-e-paper-module)
- Μετατροπέας DC-DC (π.χ. DEBO DCDC 20W)
- RGB LED (βγαλμένο από παλιά συσκευή)
- Κουμπί
- Διακόπτης
- Ενότητα Relais (π.χ. μονάδα ρελέ 2 τρόπων 2 μονάδα ρελέ τρόπου)
- Αρσενικό βύσμα + Θύρα θηλυκό (και τα δύο ταιριάζουν στο μέγεθος του βύσματος τροφοδοσίας του μόντεμ σας)
- 3D εκτυπωμένη θήκη
Βήμα 1: Χαρακτηριστικά
- Το Raspberry Pi Zero συνδέεται μέσω WLAN, ελέγχει την ταχύτητα φόρτωσης και λήψης και πραγματοποιεί μια μέτρηση ping κάθε μισή ώρα. Μια έκδοση γραμμής εντολών του speedtest.net χρησιμοποιείται ως βάση για τις μετρήσεις.
- Το αποτέλεσμα της μέτρησης του εύρους ζώνης και του ping εμφανίζεται σε μια οθόνη e-ink. Εμφανίζεται επίσης ο χρόνος της μέτρησης.
- Εάν η ταχύτητα λήψης πέσει κάτω από μια καθορισμένη τιμή κατωφλίου, ένα ρελέ απενεργοποιεί και ενεργοποιεί το μόντεμ για μικρό χρονικό διάστημα. Επομένως, το μόντεμ επαναφέρεται χωρίς καμία τροποποίηση της συσκευής (διακόπτεται μόνο η παροχή ρεύματος).
- Ένα κουμπί στο μπροστινό μέρος της συσκευής είναι διαθέσιμο για τη χειροκίνητη μέτρηση του εύρους ζώνης.
- Οι μετρημένες τιμές εμφανίζονται σε έναν πίνακα ελέγχου Ubidots (πύλη IOT). Στην επισκόπηση μπορείτε επίσης να δείτε το χρονικό ιστορικό των μετρημένων τιμών και τους λόγους για τις τελευταίες επαναφορές.
- Στην πύλη IOT μπορείτε επίσης να βρείτε ένα κουμπί για την επαναφορά του modem από απόσταση.
- Η οθόνη εύρους ζώνης χρησιμοποιεί την τροφοδοσία του μόντεμ. Δεν απαιτείται επιπλέον παροχή. Το ρελέ διακόπτει την προώθηση της τροφοδοσίας στο μόντεμ - το βατόμουρο παραμένει ενεργοποιημένο.
Βήμα 2: Καλωδίωση
Στην πρώτη εικόνα μπορείτε να δείτε τον εσωτερικό σχεδιασμό της οθόνης εύρους ζώνης:
Τα κυριότερα συστατικά είναι:
- Πιέστε το κουμπί
- Οθόνη μελάνι
- Raspberry Pi Zero
- Ενότητα ρελέ
- RGB LED + αντιστάσεις (ανάλογα με το LED RGB που χρησιμοποιείτε)
- Διακόπτης
- Μετατροπέας DC-DC
- Θηλυκός σύνδεσμος
Η δεύτερη εικόνα δείχνει ένα σχηματικό σχήμα της καλωδίωσης. Ο θετικός πόλος της τάσης τροφοδοσίας τροφοδοτείται μέσω του διακόπτη στον μετατροπέα τάσης DC-DC (ο οποίος μετατρέπει την τάση τροφοδοσίας 12V του δρομολογητή σε 5V για το Raspberry) και μέσω του ρελέ (μέσω του κανονικά συνδεδεμένου πείρου) πίσω στο σύνδεσμος εξόδου. Έτσι το μόντεμ τροφοδοτείται επίσης με ρεύμα όταν η οθόνη εύρους ζώνης είναι απενεργοποιημένη.
Η μέτρηση του εύρους ζώνης μπορεί να ξεκινήσει χειροκίνητα μέσω ενός κουμπιού. Ένα LED RGB χρησιμοποιείται για την απεικόνιση των διαφόρων καταστάσεων λειτουργίας.
Η σύνδεση μεταξύ Raspberry Pi και οθόνης e-ink δεν εμφανίζεται στο διάγραμμα κυκλώματος. Συνδέστε την οθόνη σύμφωνα με τον πίνακα και το pin-out παραπάνω.
Βήμα 3: Τρισδιάστατη εκτύπωση και κατασκευή του κυνηγητού
Τα ακόλουθα μέρη χρειάζονται για τη θήκη (δείτε την παραπάνω εικόνα):
- κάτω μέρος
- ανώτερο τμήμα
- εμπρός
- πίσω
- 4x βάση
Όλα τα μέρη μπορούν να εκτυπωθούν χωρίς υποστηρίγματα. Μπορείτε επίσης να βρείτε τα αρχεία και μερικά άλλα σχέδιά μου στο Thingiverse:
Η οθόνη μπορεί να στερεωθεί στον μπροστινό πίνακα με τις βάσεις και μια ταινία διπλής όψης. Ο διακόπτης κουμπιού και ο θηλυκός σύνδεσμος βιδώνονται στο πίσω και πίσω πάνελ. Χρησιμοποίησα βίδες 3x20mm για να συνδέσω τα δύο μισά του περιβλήματος. Οι ανοχές στις αυλακώσεις για το μπροστινό και το πίσω πάνελ είναι σχετικά σφιχτές. Εάν είναι απαραίτητο, το μπροστινό και το πίσω πάνελ πρέπει να τρίβονται στην άκρη (στο εσωτερικό για να αποφευχθεί η καταστροφή της επιφάνειας).
Βήμα 4: Ρύθμιση του Raspberry PI
Αυτός ο οδηγός εγκατάστασης βασίζεται στη συλλογή πολλών οδηγιών εγκατάστασης από διαφορετικές πηγές (κατασκευαστές οθόνης e-Ink,…). Για μένα οι οδηγίες οδήγησαν στο επιθυμητό αποτέλεσμα. Δεδομένου ότι δεν είμαι ειδικός στο Linux, δεν έγιναν βελτιστοποιήσεις ή παρόμοια. Γνωρίζω ότι σίγουρα υπάρχουν καλύτερες και πιο αποτελεσματικές λύσεις.
Ας υποθέσουμε ότι έχετε ήδη εγκαταστήσει το Raspbian στο Pi σας (υπάρχουν πολλά σεμινάρια για το πώς να εγκαταστήσετε το βασικό λειτουργικό σύστημα) και έχετε μια οθόνη (μέσω miniHDMI), ποντίκι και πληκτρολόγιο συνδεδεμένα. Θεωρείται επίσης σωστή ρύθμιση σύνδεσης WLAN στο δρομολογητή ή στο Διαδίκτυο. Εκτός εάν αναφέρεται διαφορετικά, όλες οι διαδικασίες εγκατάστασης εκτελούνται στο τερματικό.
Εγκατάσταση απομακρυσμένης επιφάνειας εργασίας (για πρόσβαση στο PI από τον υπολογιστή σας):
sudo apt-get ενημέρωση
sudo apt-get
εγκαταστήστε το xrdp
ή μπορείτε επίσης να εργάζεστε ακέφαλοι μέσω του ssh (δείτε π.χ.
Αλλαξε κωδικό:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Εγκατάσταση speedtest:
sudo
apt-get install python-pip
sudo pip εγκατάσταση speedtest-cli
για να ελέγξετε εάν η εγκατάσταση ήταν επιτυχής εκτελέστε το Speedtest στο τερματικό:
speedtest-cli
αν όλα είναι σωστά, θα πρέπει να πάρετε κάτι όπως στην πρώτη εικόνα παραπάνω.
Εγκαταστήστε καλωδίωση PI
sudo apt-get install git-core
git κλώνος git: //git.drogon.net/wiringPi
cd καλωδίωσηPi
./χτίζω
(δείτε επίσης
Εναλλακτικό:
sudo apt-get install wiringpi
(δείτε
Εγκαταστήστε το BCM2835
(δείτε
Λήψη bcm2835-1.60.tar.gz (ή νεότερη έκδοση εάν υπάρχει)
πίσσα zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./Διαμορφώστε
φτιαχνω, κανω
sudo κάνει έλεγχο
sudo make install
Εγκαταστήστε τη βιβλιοθήκη απεικόνισης Python
sudo apt-get install python-imaging
Εναλλακτικό:
sudo apt-get install python-pil
Ενεργοποιήστε τη λειτουργία I2C.
Εκτελέστε την ακόλουθη εντολή για να διαμορφώσετε τον πίνακα Raspberry Pi:
sudo raspi-config
Επιλέξτε Επιλογές διεπαφής-> I2C -> ναι, για να ξεκινήσετε το βασικό πρόγραμμα οδήγησης I2C. Στη συνέχεια, πρέπει επίσης να τροποποιήσετε το αρχείο διαμόρφωσης. Εκτελέστε την ακόλουθη εντολή για να ανοίξετε το αρχείο διαμόρφωσης:
sudo nano /etc /modules
Προσθέστε τις ακόλουθες δύο γραμμές στο αρχείο διαμόρφωσης
i2c-bcm2708
i2c-dev
Δείτε επίσης
Ενεργοποιήστε τη λειτουργία SPI
Εκτελέστε την ακόλουθη εντολή για να διαμορφώσετε τον πίνακα Raspberry Pi:
sudo raspi-config
Επιλέξτε Επιλογές διεπαφής-> SPI -> ναι, για να ξεκινήσετε το βασικό πρόγραμμα οδήγησης SPI.
Εγκατάσταση πρόσθετων γραμματοσειρών:
sudo apt-get install ttf-mscorefonts-installer
Λήψη και εγκατάσταση γραμματοσειρών (Roboto + Droid)
gksudo
pcmanfm
Για να ξεκινήσετε τη διαχείριση αρχείων με δικαιώματα root και αντιγράψτε τις γραμματοσειρές truetype στο φάκελο/usr/share/fonts/truetype
Εναλλακτικό:
Αντιγράψτε τις γραμματοσειρές στο φάκελο "Λήψεις" με το WinSCP (το ssh πρέπει να είναι ενεργοποιημένο για χρήση του WinSCP)
sudo cp -r/home/pi/Λήψεις/droid/usr/share/fonts/truetype
sudo cp -r/home/pi/Λήψεις/roboto/usr/share/fonts/truetype
Χρειάζεστε δικαιώματα root για πρόσβαση στον φάκελο γραμματοσειράς. Maybeσως υπάρχουν καλύτεροι τρόποι για να γίνει αυτό (όπως προαναφέρθηκε δεν είμαι ειδικός στο Linux) αλλά και οι δύο τρόποι λειτούργησαν για μένα.
Αρχεία Python:
Χρησιμοποιήστε τον διαχειριστή αρχείων για να δημιουργήσετε έναν νέο φάκελο "bandwidth_monitor"
Αντιγράψτε όλα τα αρχεία στον κατάλογο bandwidth_monitor
Κάντε αρχεία python και script εκτελέσιμα
chmod +x *.py
chmod +x speedtest-cron.sh
Διαμόρφωση crontab
crontab -e
Το Crontab χρησιμοποιείται για τον προγραμματισμό της εκτέλεσης του προγράμματος π.χ. ταχύτητα δοκιμής κάθε 30 λεπτά. Προσθέστε τις ακόλουθες γραμμές στο crontab (δείτε επίσης το δεύτερο σχήμα):
@reboot/usr/bin/python /home/pi/bandwidth_monitor/post_restart_message.py &
@reboot sleep 30 &&/usr/bin/python /home/pi/bandwidth_monitor/poll_test_now_button.py */30 * * * * /home/pi/bandwidth_monitor/speedtest-cron.sh */3 * * * */usr/ bin/python /home/pi/bandwidth_monitor/poll_killswitch.py 13 03 * * */usr/bin/python /home/pi/bandwidth_monitor/refresh_display.py
Περιγραφή των προγραμματισμένων εργασιών:
- κατά την επανεκκίνηση το μήνυμα επανεκκίνησης γράφεται στον πίνακα ελέγχου του IOT
- κατά την επανεκκίνηση ξεκινά το κουμπί test_now_boll
- κάθε 30 λεπτά πραγματοποιείται μέτρηση εύρους ζώνης
- κάθε 3 λεπτά ελέγχεται η κατάσταση του κουμπιού απομακρυσμένης επαναφοράς (στον πίνακα ελέγχου IOT)
- μία φορά την ημέρα ξεκινά ένας κύκλος ανανέωσης οθόνης.
Ανατρέξτε στην ενότητα λογισμικού για μια σύντομη περιγραφή των προγραμμάτων.
Βήμα 5: Λογισμικό
Το λογισμικό χωρίζεται σε πολλά αρχεία / προγράμματα:
Το bandwidth_monitor_0_4.py είναι το κύριο πρόγραμμα που επικαλείται το Crontab κάθε μισή ώρα. Πραγματοποιεί δοκιμή εύρους ζώνης (μέσω της έκδοσης γραμμής εντολών του speedtest.net). Κατά τη διάρκεια της δοκιμής, το LED RGB είναι μπλε. Εάν το εύρος ζώνης είναι πάνω από το επιλεγμένο όριο, η τιμή εμφανίζεται στην οθόνη e-ink (μαζί με μια χρονική σήμανση) και εξάγεται στον πίνακα ελέγχου του Ubidots. Εάν το εύρος ζώνης είναι κάτω από το όριο, η λυχνία LED γίνεται κόκκινη και η μέτρηση επαναλαμβάνεται μετά από μια μικρή καθυστέρηση. Μετά από 3 αρνητικές προσπάθειες το ρελέ ενεργοποιείται και έτσι διακόπτεται η τροφοδοσία του μόντεμ. Ο κωδικός επαναφοράς (τιμή = 2) γράφεται στην ενότητα καταγραφής.
Το poll_killswitch.py διαβάζει την κατάσταση μιας boolean μεταβλητής στον πίνακα ελέγχου. Εάν το killswitch_state είναι αληθές, το relais ενεργοποιείται και διακόπτεται η τροφοδοσία του μόντεμ. Το LED RGB γίνεται πράσινο κατά τη διάρκεια της ψηφοφορίας του killswitch. Μετά την επαναφορά, το killswitch_state ορίζεται ψευδές και δημιουργείται μια καταχώριση στην ενότητα καταγραφής του πίνακα ελέγχου (τιμή = 1).
Το poll_test_now_button.py περιμένει το πάτημα του κουμπιού στην πρόσοψη της θήκης. Ενεργοποιώντας το κουμπί, ενεργοποιείται χειροκίνητα μια μέτρηση εύρους ζώνης. Όταν ξεκινά το πρόγραμμα (κατά την επανεκκίνηση του Raspberry Pi) το LED RGB αναβοσβήνει κόκκινο.
Το post_restart_message.py γράφει τον κωδικό επαναφοράς (τιμή = 3) στην ενότητα καταγραφής του πίνακα ελέγχου. Αυτό υποδεικνύει ότι η οθόνη εύρους ζώνης έχει επανεκκινήσει. Κατά την εκκίνηση του προγράμματος το LED RGB αναβοσβήνει μπλε.
Τα test_LED.py και test_relay.py είναι απλά σενάρια που μπορούν να χρησιμοποιηθούν για τον έλεγχο της λειτουργίας υλικού του LED RGB και του ρελέ.
Τα epdconfig.py και epd2in9.py είναι προγράμματα οδήγησης συσκευών για την οθόνη e-ink που παρέχεται από το Waveshare.
Για να επιτρέψετε στα προγράμματα να έχουν πρόσβαση στον πίνακα ελέγχου του Ubidots, πρέπει να προσθέσετε τα μεμονωμένα διακριτικά και τα ονόματα της συσκευής ή των μεταβλητών σας (εάν χρησιμοποιείτε διαφορετικές σημειώσεις). Αναζητήστε ενότητα όπως αυτή που φαίνεται στην παραπάνω εικόνα (αντικαταστήστε το XXXXXXXX με το διακριτικό σας).
Ολοκληρωμένα σεμινάρια για τον τρόπο δημιουργίας του ταμπλό και τον τρόπο ενσωμάτωσης του ταμπλό σε πρόγραμμα Python μπορείτε να βρείτε απευθείας στη σελίδα Ubidots (https://help.ubidots.com/el/) ή μέσω της Google.
Βήμα 6: Πίνακας ελέγχου IOT
Ο πίνακας ελέγχου που φιλοξενείται από το Ubidots (δείτε https://ubidots.com) περιέχει αρκετές περιοχές οι οποίες περιγράφονται εν συντομία παρακάτω.
- Ακολουθία χρόνου ταχύτητας αναβάθμισης και λήψης. Κάθε μισή ώρα μια νέα τιμή εισάγεται στο διάγραμμα.
- Χρονική πορεία του μετρημένου χρόνου ping. Κάθε μισή ώρα μια νέα τιμή εισάγεται στο διάγραμμα.
- Ακολουθία χρόνου της μέσης ταχύτητας λήψης. Η μέση τιμή για 24 ώρες υπολογίζεται και γράφεται στο διάγραμμα.
- Αναπαράσταση υπολογιστικών φύλλων των τρεχουσών τιμών μέτρησης συμπεριλαμβανομένης της χρονικής σφραγίδας.
- Κουμπί τηλεχειριστηρίου για επαναφορά του μόντεμ μέσω Διαδικτύου. Το ερώτημα εμφανίζεται κάθε 3 λεπτά, δηλαδή μπορεί να χρειαστεί λίγος χρόνος μέχρι να ολοκληρωθεί η ενέργεια.
- Καταγραφή των τελευταίων επαναλήψεων συμπεριλαμβανομένου του λόγου για την επαναφορά (απομακρυσμένη ενεργοποίηση, απενεργοποίηση ή απώλεια τάσης, πτώση κάτω από το ελάχιστο εύρος ζώνης)
Ολοκληρωμένα σεμινάρια για τον τρόπο δημιουργίας του ταμπλό και τον τρόπο ενσωμάτωσης του πίνακα ελέγχου σε ένα πρόγραμμα Python μπορείτε να βρείτε απευθείας στη σελίδα Ubidots (https://help.ubidots.com/el/) ή μέσω της Google.
Συνιστάται:
Αναλυτής WiFi διπλής ζώνης: 6 βήματα (με εικόνες)
Αναλυτής WiFi διπλής ζώνης: Αυτά τα χειριστήρια δείχνουν πώς να χρησιμοποιήσετε το Seeedstudio Wio Terminal για να δημιουργήσετε έναν αναλυτή WiFi διπλής ζώνης 2,4 GHz και 5 GHz
Κεραία για επέκταση εύρους ανοίγματος πύλης: 6 βήματα (με εικόνες)
Antenna to Extend Gate Opener Range: Όταν το χιόνι γίνει πολύ βαθύ στο όρος Hood, είναι πολύ διασκεδαστικό να κάνετε σκι, να κάνετε έλκηθρο, να χτίσετε φρούρια χιονιού και να ρίξετε τα παιδιά από το κατάστρωμα σε σκόνη. Αλλά τα γλαφυρά πράγματα δεν είναι τόσο διασκεδαστικά όταν προσπαθούμε να επιστρέψουμε στον αυτοκινητόδρομο και να ανοίξουμε την πύλη για να φτάσουμε
Διπλής ζώνης κιθάρα/συμπιεστής μπάσων: 4 βήματα (με εικόνες)
Dual-Band Guitar/Bass Compressor: Ιστορία στο παρασκήνιο: Ο φίλος μου που έπαιζε μπάσο παντρευόταν και ήθελα να του φτιάξω κάτι πρωτότυπο. Iξερα ότι έχει ένα σωρό πετάλια εφέ κιθάρας/μπάσου, αλλά δεν τον είδα ποτέ να χρησιμοποιεί συμπιεστή, οπότε ρώτησα. Είναι λίγο εθισμένος στα χαρακτηριστικά, έτσι είπε
Δημιουργία εύρους εύρους χρησιμοποιώντας λέιζερ και κάμερα: 6 βήματα
Κάνοντας εύρος εύρους χρησιμοποιώντας ένα λέιζερ και μια κάμερα: Αυτή τη στιγμή σχεδιάζω εσωτερικές εργασίες για την επόμενη άνοιξη, αλλά καθώς απέκτησα ένα παλιό σπίτι δεν έχω κανένα σχέδιο σπιτιού. Άρχισα να μετράω αποστάσεις τοίχου σε τοίχο χρησιμοποιώντας έναν χάρακα, αλλά είναι αργός και επιρρεπής σε σφάλματα. Σκέφτηκα να αγοράσω ένα εύρος εύρους
Παρακολούθηση παρακολούθησης ζώνης καρδιακού ρυθμού: 19 βήματα (με εικόνες)
Training Heart Rate Zone Monitor Watch: Το κολέγιο είναι μια ταραχώδης και χαοτική περίοδος στη ζωή σας, γι 'αυτό είναι πολύ σημαντικό να διατηρείτε το επίπεδο του άγχους σας χαμηλό. Ένας τρόπος που μας αρέσει να το κάνουμε είναι να γυμναζόμαστε, βοηθάει να διατηρείται το μυαλό σας καθαρό και το σώμα να αισθάνεται υγιές. Αυτός είναι ο λόγος που δημιουργήσαμε ένα portabl