Πίνακας περιεχομένων:
- Βήμα 1: Ρύθμιση Pi Zero W
- Βήμα 2: Συνδεθείτε στο WiFi
- Βήμα 3: Ενημερώστε και εγκαταστήστε το απαιτούμενο λογισμικό
- Βήμα 4: Σύνδεση με έναν αισθητήρα (σε αυτό το παράδειγμα ένα Arduino)
- Βήμα 5: Ρυθμίστε τις δυνατότητες σημείου πρόσβασης WiFi
- Βήμα 6: Εναλλαγή μεταξύ σημείου πρόσβασης Wi -Fi και λειτουργιών πελάτη
- Βήμα 7: Τελικές παρατηρήσεις
- Βήμα 8: Παράδειγμα σεναρίου καταγραφής Python
Βίντεο: Raspberry Pi Zero W Datalogger: 8 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Χρησιμοποιώντας ένα Raspberry Pi Zero W, μπορείτε να φτιάξετε έναν φθηνό και εύχρηστο καταγραφικό δεδομένων, ο οποίος μπορεί είτε να συνδεθεί σε τοπικό δίκτυο wifi είτε να χρησιμεύσει ως σημείο πρόσβασης στο πεδίο που σας επιτρέπει να κατεβάζετε δεδομένα ασύρματα με το smartphone σας.
Παρουσίασα αυτήν τη ρύθμιση στο American Geophysical Union Fall Meeting 2017, ως έναν τρόπο για να κάνετε τη δική σας ρύθμιση καταγραφής δεδομένων. Μπορείτε να βρείτε αυτήν την παρουσίαση εδώ.
Τι θα χρειαστείτε:
- Ένα Raspberry Pi Zero W
- Μια κάρτα micro SD
- καλώδιο USB ή τροφοδοτικό USB
- Υπολογιστής με συσκευή ανάγνωσης καρτών USB
-
Προαιρετικό (αλλά χρήσιμο):
- miniHDMI -> προσαρμογέας HDMI (για σύνδεση του Pi σε οθόνη)
- Προσαρμογέας USB OTG (για σύνδεση πληκτρολογίου στο Pi
Βήμα 1: Ρύθμιση Pi Zero W
Για να ξεκινήσετε, τοποθετήστε μια εικόνα Rasbian σε μια κάρτα microSD (σε αυτό το σεμινάριο χρησιμοποίησα το 2017-07-05-raspbian-jessie-lite, διαθέσιμο εδώ). Μπορεί να χρησιμοποιηθεί μια lite έκδοση (χωρίς επιφάνεια εργασίας) καθώς η ρύθμιση θα γίνει μέσω της γραμμής εντολών.
Τοποθετήστε την κάρτα SD στο Pi, συνδέστε την οθόνη και ένα πληκτρολόγιο και ενεργοποιήστε την συνδέοντας το καλώδιο τροφοδοσίας. Η ρύθμιση χωρίς κεφαλή είναι επίσης δυνατή, αλλά θα απαιτούσε σύνδεση μέσω SSH.
Αφού ξεκινήσει το Pi login (προεπιλεγμένο όνομα χρήστη: pi, κωδικός: βατόμουρο) και αλλάξτε τον κωδικό πρόσβασης με την εντολή "passwd".
Το πληκτρολόγιο μπορεί να διαμορφωθεί εισάγοντας "sudo raspi-config" στο τερματικό.
Βήμα 2: Συνδεθείτε στο WiFi
Για να συνδεθείτε στο διαδίκτυο, θα πούμε στο Pi σε ποιο δίκτυο πρέπει να συνδεθεί. Ξεκινήστε ανοίγοντας το ακόλουθο αρχείο.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Εδώ, προσθέστε τις πληροφορίες δικτύου στο κάτω μέρος.
δίκτυο = {
ssid = "όνομα δικτύου" psk = "κωδικός πρόσβασης δικτύου"}
Σε περίπτωση εταιρικού δικτύου, μπορείτε να χρησιμοποιήσετε την ακόλουθη ρύθμιση (προσαρμόστε το WPA-EAP // TTLA // MSCHAPv2 στις ισχύουσες ρυθμίσεις).
δίκτυο = {
ssid = "ssid" #Εισαγάγετε το όνομα του δικτύου σας key_mgmt = WPA-EAP eap = TTLS ταυτότητα = "xxxxx" #Εισαγάγετε τον κωδικό πρόσβασης του λογαριασμού σύνδεσής σας = "xxxxx" #Enter the passwork phase2 = "auth = MSCHAPv2"}
Αποθηκεύστε πατώντας CTRL+O και βγείτε με CTRL+X.
Τώρα αναφέρετε το αρχείο ρυθμίσεων στο/etc/network/interfaces
sudo nano/etc/network/interfaces
Αλλάξτε το μέρος wlan0 σε:
auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Και πάλι, αποθηκεύστε το αρχείο (CTRL+O) και μετά βγείτε (CTRL+X).
Μετά την επανεκκίνηση (sudo επανεκκίνηση), η σύνδεση wifi θα πρέπει να λειτουργεί. Μπορείτε να το δοκιμάσετε πινγκάροντας έναν ιστότοπο.
ping www.google.com
Ακυρώστε το ping με CTRL+C
Για ασύρματη σύνδεση στο Pi μέσω SSH, θα πρέπει να ενεργοποιήσετε το SSH:
sudo raspi-config
Μεταβείτε στο "5 Επιλογές διασύνδεσης" και ενεργοποιήστε το SSH. Στη συνέχεια, επιστρέψτε και βγείτε από τη διαμόρφωση.
Αναζητήστε τη διεύθυνση IP του Pi:
ifconfig
Η IP θα βρίσκεται κάτω από το "inet addr:" της διεπαφής wlan0.
Τώρα μπορείτε να συνδεθείτε στο Pi μέσω WiFi, εάν βρίσκεστε στο ίδιο δίκτυο. Κατεβάστε το Putty (για παράθυρα), εισαγάγετε τη διεύθυνση IP που βρήκατε στο "Όνομα κεντρικού υπολογιστή" και πατήστε "Άνοιγμα". Μετά την αποδοχή της προειδοποίησης θα πρέπει τώρα να μπορείτε να δείτε τη γραμμή εντολών και να συνδεθείτε.
Βήμα 3: Ενημερώστε και εγκαταστήστε το απαιτούμενο λογισμικό
Αφού λειτουργήσει το WiFi, ενημερώστε το Pi με:
sudo apt -get ενημέρωση -y && sudo apt -get αναβάθμιση -y
Αφού ολοκληρωθεί η ενημέρωση (μπορεί να χρειαστεί λίγος χρόνος), εγκαταστήστε το λογισμικό με το οποίο θα χρησιμοποιούμε.
sudo apt-get install python3 python3-serial apache2 -y
Βήμα 4: Σύνδεση με έναν αισθητήρα (σε αυτό το παράδειγμα ένα Arduino)
Είτε συνδέστε το Arduino μαζί με ένα πληκτρολόγιο χρησιμοποιώντας ένα διανομέα USB, είτε συνδέστε το Arduino μέσω της μοναδικής θύρας USB και κάντε τη ρύθμιση με SSH μέσω WiFi.
Για να είναι δυνατή η πρόσβαση στη σειριακή θύρα στην οποία είναι συνδεδεμένο το Arduino, είναι χρήσιμο να δώσετε πρόσβαση στον προεπιλεγμένο λογαριασμό pi. Καθώς το Arduino συνήθως εκχωρείται στη θύρα "/dev/ttyACM0", χρησιμοποιήστε την ακόλουθη εντολή για να δώσετε στον χρήστη "pi" πρόσβαση στη θύρα:
sudo chown pi: /dev /ttyACM0
Υποθέτοντας ότι το Arduino έχει ήδη ρυθμιστεί για την αποστολή δεδομένων μέσω της σειριακής θύρας, μπορείτε να δείτε τα δεδομένα σε python με τον ακόλουθο τρόπο:
Ανοιχτό python.
python3
Σειρά εισαγωγής:
σειρά εισαγωγής
Ανοίξτε τη θύρα com:
ser = serial. Serial (port = '/dev/ttyACM0', baudrate = 9600, timeout = 5)
Όπου το baudrate του Arduino ήταν 9600 σε αυτήν την περίπτωση.
Μπορείτε να διαβάσετε και να εκτυπώσετε μια γραμμή εκτελώντας τον ακόλουθο κώδικα:
ser.readline (). αποκωδικοποίηση ('utf-8')
Εάν το χρησιμοποιείτε, μπορείτε να κλείσετε τη σύνδεση και να βγείτε από την Python με:
ser.close ()
έξοδος()
Βήμα 5: Ρυθμίστε τις δυνατότητες σημείου πρόσβασης WiFi
Ρυθμίζοντας το Pi Zero W σε λειτουργία σημείου πρόσβασης wifi, μπορείτε να συνδεθείτε σε αυτό με οποιαδήποτε συσκευή wifi. Αυτό επιτρέπει τη ρύθμιση του καταγραφικού και τη λήψη δεδομένων μέσω wifi, δεν απαιτούνται καλώδια ή προγράμματα οδήγησης.
Για αυτό, το Adafruit διαθέτει ένα καλό σεμινάριο. Μερικές μικρές παρατηρήσεις:
- Για το πρόγραμμα οδήγησης /etc/hostapd/hostapd.conf, μην χρησιμοποιείτε τη γραμμή προγραμμάτων οδήγησης.
- Το βήμα "Ενημέρωση hostapd" δεν πρέπει να είναι απαραίτητο.
Εάν το σημείο πρόσβασης δεν λειτουργεί στο τέλος του σεμιναρίου, δοκιμάστε να επανεκκινήσετε το Pi (sudo επανεκκίνηση).
Βήμα 6: Εναλλαγή μεταξύ σημείου πρόσβασης Wi -Fi και λειτουργιών πελάτη
Μερικές φορές θα θέλετε να ενημερώσετε το λογισμικό ή να εγκαταστήσετε νέο λογισμικό στο Raspberry Pi, αλλά αυτό απαιτεί σύνδεση στο Διαδίκτυο. Ευτυχώς η εναλλαγή μεταξύ των δύο είναι πολύ εύκολη.
Συνδεθείτε στο Pi με SSH (μέσω καλωδίου, όχι wifi!). Ξεκινήστε διακόπτοντας τις υπηρεσίες σημείου πρόσβασης:
sudo cystemctl διακοπή hostapd.service
sudo cystemctl stop isc-dhcp-server.service
Στη συνέχεια, επεξεργαστείτε το αρχείο διεπαφών δικτύου:
sudo nano/etc/network/interfaces
Εδώ θα πρέπει να σχολιάσετε τις παραμέτρους φιλοξενίας και να καταργήσετε τις παραμέτρους σύνδεσης δικτύου. Αλλάξτε το από αυτό:
#-Παράμετροι φιλοξενίας:
allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 # -Δίκτυα (παράμετροι): #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Σε αυτό:
Παράμετροι #
Αποθηκεύστε και κλείστε το αρχείο.
Στη συνέχεια εκτελείτε τις ακόλουθες εντολές:
sudo systemctl εκκίνηση wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Τώρα το Pi σας θα πρέπει να συνδεθεί ξανά στο wifi, επιτρέποντάς σας να ενημερώσετε και να εγκαταστήσετε λογισμικό.
Για να επιστρέψετε στη λειτουργία σημείου πρόσβασης, αλλάξτε τα σχόλια στο/etc/network/interfaces και επανεκκινήστε το Pi.
Βήμα 7: Τελικές παρατηρήσεις
Ρύθμιση ιστότοπου
Ο διακομιστής apache βρίσκεται στο/var/www/. Για να αλλάξετε την προεπιλεγμένη σελίδα, επεξεργαστείτε το αρχείο /var/www/html/index.html.
Μπορείτε να κάνετε τα αρχεία εδώ διαθέσιμα για λήψη μέσω της σύνδεσης wifi, μεταβαίνοντας στο πρόγραμμα περιήγησής σας στη διεύθυνση IP του Pi (192.168.42.1). Στη συνέχεια, οποιαδήποτε συσκευή με δυνατότητα wifi μπορεί να τα κατεβάσει χωρίς επιπλέον λογισμικό.
Σύνδεση SFTP
Μέσω SSH, μπορεί να γίνει σύνδεση FTP. Μπορείτε να χρησιμοποιήσετε το Filezilla για να μεταφέρετε γρήγορα και εύκολα μεγάλο αριθμό αρχείων (δείτε την εικόνα).
Ρολόι πραγματικού χρόνου
Καθώς το εσωτερικό ρολόι του Pi θα παρασυρθεί σημαντικά εάν δεν υπάρχει σύνδεση στο διαδίκτυο, θα χρειαστεί μια μονάδα ρολογιού πραγματικού χρόνου (RTC) εάν απαιτείται ακριβής χρονομέτρηση. Μια τέτοια ενότητα είναι η RasClock, οι οδηγίες εγκατάστασης μπορούν να βρεθούν εδώ. Άλλα ρολόγια με βάση το i2c είναι επίσης διαθέσιμα (δηλ. DS3231)
συμπέρασμα
Εάν όλα πήγαν σωστά, θα πρέπει τώρα να έχετε έναν καταγραφικό δεδομένων Pi Zero που λειτουργεί! Ένα παράδειγμα σεναρίου καταγραφής python περιλαμβάνεται στο επόμενο βήμα.
Βήμα 8: Παράδειγμα σεναρίου καταγραφής Python
εισαγωγή os
σειριακή εισαγωγή από χρόνο ώρας εισαγωγής από ημερομηνία εισαγωγής datetime εισαγωγή numpy ως np ser = σειριακή. Σειρά (port = 'COM4', baudrate = 57600, timeout = 5) directory = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () try: while True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = directory + day_timestring +'.dat '#Read out δεδομένα και λάβετε αμέσως τη χρονική γραμμή = ser.readline (). αποκωδικοποίηση ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (γραμμή [1]) εκτός από: u = np.nan δοκιμάστε: v = float (γραμμή [2]) εκτός από: v = np.nan δοκιμάστε: w = float (γραμμή [3]) εκτός: w = np.nan δοκιμάστε: c = float (γραμμή [5]) εκτός από: c = np.nan Ts = 1/403*c ** 2 - 273,15 δοκιμάστε: Ta = float (γραμμή [8]) εκτός: Ta = np.nan if (os.path.isfile (file_today)): με ανοιχτό (file_today, 'a') ως fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: με ανοιχτό (file_today, 'w') ως fileobject: fileobject.write ('"Time", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (nowtime+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () εκτός από KeyboardIntrupt: ser.close ()
Συνιστάται:
Ξύλινη οθόνη παιχνιδιών LED Powered by Raspberry Pi Zero: 11 βήματα (με εικόνες)
Ξύλινη οθόνη παιχνιδιών LED Powered by Raspberry Pi Zero: Αυτό το έργο υλοποιεί μια οθόνη LED βασισμένη σε WS2812 20x10 pixel με μέγεθος 78x35 cm, η οποία μπορεί εύκολα να εγκατασταθεί στο σαλόνι για να παίξει ρετρό παιχνίδια. Η πρώτη έκδοση αυτού του πίνακα χτίστηκε το 2016 και ανακατασκευάστηκε από πολλούς άλλους ανθρώπους. Αυτός ο έμπειρος
Συνδρομητικός μετρητής YouTube χρησιμοποιώντας οθόνη E-Paper και Raspberry Pi Zero W: 5 βήματα (με εικόνες)
Συνδρομητικός μετρητής YouTube χρησιμοποιώντας οθόνη E-Paper και Raspberry Pi Zero W: Σε αυτό το εγχειρίδιο, θα σας δείξω πώς να φτιάξετε τον δικό σας μετρητή συνδρομητών Youtube χρησιμοποιώντας οθόνη ηλεκτρονικού χαρτιού και Raspberry Pi Zero W για να ρωτήσετε το API του YouTube και ενημερώστε την οθόνη. Οι οθόνες ηλεκτρονικού χαρτιού είναι εξαιρετικές για αυτό το είδος έργου καθώς έχουν
Waveshare Game-HAT MOD Raspberry PI Zero/Zero W [EN/ES]: 4 Βήματα
Waveshare Game-HAT MOD Raspberry PI Zero/Zero W [EN/ES]: ENGLISH/INGLÉS: Όπως γνωρίζετε, η συναρμολόγηση του Waveshare Game-HAT είναι αρκετά απλή αν είναι ένα από τα μοντέλα που είναι πλήρως συμβατά με το σχέδιο, είναι το Raspberry Pi 2/3 / 3A + / 3B / 3B + /, προσωπικά προτιμώ ότι η κονσόλα παιχνιδιών μπορεί να είναι
Alaska Datalogger: 5 βήματα (με εικόνες)
Alaska Datalogger: Η Αλάσκα βρίσκεται στα πρόθυρα της προώθησης της κλιματικής αλλαγής. Η μοναδική του θέση να έχει ένα αρκετά ανέγγιχτο τοπίο, γεμάτο με μια ποικιλία καναρινιών ορυχείων άνθρακα, δίνει πολλές δυνατότητες έρευνας. Ο φίλος μας Monty είναι αρχαιολόγος που βοηθάει να
Arduino Datalogger: 8 βήματα (με εικόνες)
Arduino Datalogger: Σε αυτό το σεμινάριο, θα κάνουμε έναν απλό καταγραφέα δεδομένων χρησιμοποιώντας το Arduino. Το θέμα είναι να μάθουμε τα βασικά της χρήσης του Arduino για τη λήψη πληροφοριών και εκτύπωση στο τερματικό. Μπορούμε να χρησιμοποιήσουμε αυτήν τη βασική ρύθμιση για να ολοκληρώσουμε μια σειρά εργασιών. Για να ξεκινήσετε