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

Fanair: ένας μετεωρολογικός σταθμός για το δωμάτιό σας: 6 βήματα (με εικόνες)
Fanair: ένας μετεωρολογικός σταθμός για το δωμάτιό σας: 6 βήματα (με εικόνες)

Βίντεο: Fanair: ένας μετεωρολογικός σταθμός για το δωμάτιό σας: 6 βήματα (με εικόνες)

Βίντεο: Fanair: ένας μετεωρολογικός σταθμός για το δωμάτιό σας: 6 βήματα (με εικόνες)
Βίντεο: ► Вентилятор коробки. Высокоскоростной. Дождь и гроза звучат для сна. Белый шум. 10 часов. 2024, Νοέμβριος
Anonim
Fanair: ένας μετεωρολογικός σταθμός για το δωμάτιό σας
Fanair: ένας μετεωρολογικός σταθμός για το δωμάτιό σας

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

Η Fanair χρησιμοποιεί πολλαπλούς αισθητήρες για να αντιληφθεί:

  • θερμοκρασία
  • υγρασία
  • φως
  • ορισμένα αέρια
  • πίεση αέρα

Είναι πολύ συμπαγές και χρησιμοποιεί το Raspberry Pi 3 B, για να πάρει τις τιμές, να τις αποθηκεύσει σε μια βάση δεδομένων MySQL και στη συνέχεια να τις κάνει εύκολα διαθέσιμες σε έναν ιστότοπο. Στον κώδικα και τον ιστότοπο περιλαμβάνεται η δυνατότητα λήψης πραγματικών δεδομένων καιρού για την τοποθεσία σας, έτσι ώστε ο ιστότοπος να μπορεί να χρησιμοποιηθεί για τον έλεγχο και των εξωτερικών καιρικών συνθηκών.

Βήμα 1: Αποκτήστε όλα τα απαιτούμενα στοιχεία

Αποκτήστε όλα τα απαιτούμενα αντικείμενα
Αποκτήστε όλα τα απαιτούμενα αντικείμενα

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

Για πιο συγκεκριμένα αντικείμενα έφτιαξα αυτό το Bill of Materials.

  • Raspberry Pi 3 Β
  • MPC3008-ADC 8 καναλιών 10-bit
  • Αισθητήρας θερμοκρασίας και υγρασίας θερμόμετρο AM2301
  • WR Rademacher WR-tyoe 930-1 PCB
  • Θήκη ABS για πρωτότυπο (μαύρο)
  • LDR
  • Αισθητήρας αερίου MQ135
  • 2x BC517 Τρανζίστορ Darlington
  • RGB LED
  • Πακέτο αντίστασης
  • Βομβητής
  • Καλώδια
  • Βαρόμετρο BMP280
  • Αθόρυβος ανεμιστήρας USB (5V)

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

Βήμα 2: Ετοιμάστε το Raspberry Pi σας

Αποκτήστε το Raspian Jessie με το λειτουργικό σύστημα Pixel από τον επίσημο ιστότοπο Raspberry Pi και μόλις το κατεβάσετε, αποσυμπιέστε το. Θα λάβετε ένα αρχείο εικόνας. Για να το αποκτήσετε στο Pi θα πρέπει να το γράψετε στην κάρτα SD χρησιμοποιώντας Win32 Disk Imager. Μόλις εγκατασταθεί, επιλέξτε το αρχείο εικόνας και τη μονάδα δίσκου στην οποία βρίσκεται η κάρτα SD. Στη συνέχεια, πατήστε εγγραφή και περιμένετε μέχρι να τελειώσει.

Όταν τελειώσει κάντε κλικ στην κάρτα SD σας στο File Explorer και ανοίξτε το αρχείο που ονομάζεται "cmdline.txt" πηγαίνετε στο τέλος του αρχείου κειμένου λίγο πριν το rootwait και γράψτε "ip = 254.169.10.2" με κενά φυσικά. Αφού το αποθηκεύσετε, πρέπει να κάνετε δεξί κλικ κάπου μέσα στο παράθυρο και να δημιουργήσετε ένα νέο αρχείο που ονομάζεται "ssh". Παρατηρήστε ότι αυτό το αρχείο δεν έχει επέκταση αρχείου. Για να βεβαιωθείτε ότι δεν έχει επέκταση, κάντε κλικ στην επιλογή "προβολή" στην εξερεύνηση αρχείων και ελέγξτε τα "κρυφά αρχεία". Εάν όντως μετονομάσει και διαγράψει την επέκταση, έτσι απλά διαβάζει 'ssh'.

Αφού γίνει αυτό, μπορείτε τελικά να βάλετε την κάρτα SD σας στο Raspberry Pi. Κατεβάστε έναν πελάτη ssh (προτείνω το MobaXterm). Και συνδεθείτε χρησιμοποιώντας το ssh με την IP που ορίσατε νωρίτερα '254.169.10.2'. Το όνομα χρήστη είναι "pi", ο κωδικός πρόσβασης "βατόμουρο". Εάν θέλετε, μπορείτε να αλλάξετε τον κωδικό πρόσβασης πληκτρολογώντας την εντολή 'sudo passwd' στο τερματικό και ακολουθώντας τις οδηγίες. Δεδομένου ότι πρόκειται να χρησιμοποιήσουμε ένα καλό κομμάτι της κάρτας SD για το Fanair, θα πρέπει να επεκτείνετε τον διαθέσιμο χώρο αποθήκευσης πληκτρολογώντας 'sudo rapi-config' επιλέγοντας 'Advanced Options' και στη συνέχεια 'Expand File System'. Εάν σας ζητηθεί επανεκκίνηση.

Θα χρησιμοποιήσουμε τη διεπαφή 1 καλωδίου, SPI και I2C. Για να μπορέσετε να τα χρησιμοποιήσετε πρέπει πρώτα να τα ρυθμίσετε!

Βήμα 3: Συνδέστε τα πάντα μαζί

Συνδέστε τα πάντα μαζί
Συνδέστε τα πάντα μαζί
Συνδέστε τα πάντα μαζί
Συνδέστε τα πάντα μαζί

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

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

Βήμα 4: Δημιουργήστε τη βάση δεδομένων σας

Για αποτελεσματική αποθήκευση όλων των δεδομένων που θα λάβετε, θα χρησιμοποιήσουμε μια βάση δεδομένων TSQL MySQL. Πριν εγκαταστήσετε το MySQL ας βεβαιωθούμε ότι όλα είναι ενημερωμένα πληκτρολογώντας μερικές εντολές στο τερματικό:

  • 'sudo apt-get ενημέρωση'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Αποδεχτείτε κάθε προτροπή πληκτρολογώντας "y" και εισαγάγετε.

Για να εγκαταστήσετε τον τύπο MySQL:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Όταν σας ζητηθεί, δημιουργήστε έναν κωδικό πρόσβασης root της επιλογής σας.

Αφού ολοκληρωθεί η εγκατάσταση της σύνδεσης χρησιμοποιώντας:

'mysql -uroot -p'

Και πληκτρολογώντας τον κωδικό πρόσβασής σας.

Πάρτε τον κωδικό Fanair από το My Github! Κάντε κλικ στο «Κλωνοποίηση ή λήψη» και στη συνέχεια στο «Λήψη ZIP». Αποσυμπιέστε τον κώδικα σε ένα φάκελο της επιλογής σας. Το ερώτημα για τη δημιουργία της πλήρως λειτουργικής βάσης δεδομένων βρίσκεται στο φάκελο της βάσης δεδομένων. Ανοίξτε το αρχείο αντιγράψτε τον κώδικα και επικολλήστε τον στο τερματικό με ανοιχτό το MySQL. Στη συνέχεια, κάντε κλικ στο enter και η βάση δεδομένων είναι έτοιμη!

Βήμα 5: Timeρα για τον Κώδικα

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

Όπως είπα, υπάρχουν μερικά πράγματα που πρέπει ακόμα να αλλάξουν / προστεθούν για να λειτουργήσει σωστά το πρόγραμμα. Πρώτα απ 'όλα, το πρόγραμμα χρησιμοποιεί το Darksky API για να λάβει τα δεδομένα καιρού με βάση το γεωγραφικό μήκος και πλάτος. Για να το χρησιμοποιήσετε, πρέπει να εγγραφείτε. Οι πρώτες 1000 κλήσεις είναι δωρεάν και στη συνέχεια κοστίζει $ 0.0001 ανά κλήση. Έχω ακούσει αν δεν πληρώσετε ο λογαριασμός σας μπλοκαριστεί. Για να είμαστε δίκαιοι 0.0001 $ ανά κλήση είναι αρκετά φθηνό. Η Fanair καλεί τα πιο πρόσφατα δεδομένα κάθε ώρα, πράγμα που σημαίνει ότι σε ένα χρόνο αν εκτελείται πλήρης απασχόληση θα σας κοστίσει μόνο 0,876 $. Παίρνετε επίσης 41 ημέρες δωρεάν εάν η Fanair λειτουργεί κανονικά.

Μόλις εγγραφείτε, αναζητήστε το κλειδί API. Αναζητήστε το γεωγραφικό πλάτος και το γεωγραφικό πλάτος της τοποθεσίας σας στους χάρτες Google ή προσπαθήστε να το κάνετε στο Google. Δημιουργήστε ένα νέο αρχείο κειμένου τον ριζικό κατάλογο του Fanair (με κλάσεις, main.py…). Ονομάστε το αρχείο 'key_location.txt'. Ανοίξτε το αρχείο κειμένου και στην πρώτη γραμμή επικολλήστε το κλειδί Darksky API. Στη δεύτερη γραμμή επικολλήστε το γεωγραφικό μήκος και στην τρίτη γραμμή επικολλήστε το γεωγραφικό πλάτος (και τα δύο σε δεκαδική μορφή). Όταν τελειώσετε αποθηκεύστε το αρχείο.

Στον ίδιο κατάλογο δημιουργήστε ένα άλλο αρχείο κειμένου που ονομάζεται 'database_dsn.txt'. Η πρώτη γραμμή πρέπει να λέει "localhost". Η δεύτερη γραμμή είναι "root". Στην τρίτη γραμμή θα πρέπει να πληκτρολογήσετε τον κωδικό πρόσβασής σας που κάνατε για τη βάση δεδομένων νωρίτερα και την τέταρτη και τελευταία γραμμή να πληκτρολογήσετε 'fanair'.

Κάντε δεξί κλικ στο αρχείο main.py και επιλέξτε επεξεργασία. Το 'fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' πρέπει να αλλάξει. Εάν ακολουθήσατε την εικόνα, οι πρώτες 5 τιμές πρέπει να αλλάξουν από '5, 26, 17, 27, 22, 4' σε '20, 21, 26, 19, 13 '. Το '/home/muhsin/Applications/Fanair' θα πρέπει επίσης να αλλάξει στη ρίζα της διαδρομής Fanair (όπου βρίσκεται το main.py). Βεβαιωθείτε ότι έχετε τοποθετήσει μια κάθετο μπροστά από το «σπίτι» αλλά όχι μετά το «Fanair».

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

Από την εμπειρία μου, δεν έχω πάντα τη σωστή ημερομηνία και ώρα στο Raspberry Pi. Για να βεβαιωθείτε ότι θα λάβετε τη σωστή ημερομηνία, προτείνω να ακολουθήσετε αυτόν τον οδηγό: Ημερομηνία και ώρα συγχρονισμού Raspberry Pi.

Τέλος, πρέπει να εγκατασταθούν μερικές βιβλιοθήκες και να ενεργοποιηθούν μερικές διεπαφές:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 install adafruit_python_dht'

1-καλώδιο:

  1. 'sudo raspi-config'
  2. «Επιλογές διασύνδεσης»
  3. "1 καλώδιο"
  4. επιτρέπω
  5. 'sudo nano /boot/config.txt'
  6. Προσθέστε αυτήν τη γραμμή στο αρχείο: 'dtoverlay = w1-gpio'
  7. 'sudo επανεκκίνηση'

SPI:

  1. 'sudo raspi-config'
  2. «Επιλογές διασύνδεσης»
  3. 'SPI'
  4. επιτρέπω
  5. 'sudo επανεκκίνηση'
  6. 'sudo nano /boot/config.txt'
  7. Αναζητήστε το 'dtparam = spi = on' και αποσυνδέστε το αφαιρώντας το hashtag.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config'"
  2. «Επιλογές διασύνδεσης»
  3. "I2C"
  4. επιτρέπω
  5. 'sudo επανεκκίνηση'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Αναζητήστε dtparam = i2c_arm = on και αποσυνδέστε το αφαιρώντας το hashtag.

φλάσκα

pip3 εγκατάσταση Flask

σύνδεσμος mysql

'pip3 install -Iv mysql -connector == 2.1.4'

spidev

'pip3 install py-spidev'

Σκοτεινός ουρανός

'pip3 install darkskylib'

Βήμα 6: Δοκιμάστε το

Αν έχετε καταφέρει να τα καταφέρετε, πατήστε τον εαυτό σας στην πλάτη. Τώρα γίνονται όλα για να λειτουργήσει σωστά η Fanair. Για να το δοκιμάσετε, πληκτρολογήστε 'cd ""'. Η τοποθεσία του αρχείου είναι "/home/pi" για παράδειγμα εάν μόλις επικολλήσατε στον αρχικό σας κατάλογο. Στη συνέχεια, πληκτρολογήστε "python3 main.py" και αφήστε το να ξεκουραστεί για 15 λεπτά, ώστε να έχει δεδομένα στη βάση δεδομένων όταν τελειώσει. Μετά από αυτό πατήστε 'ctrl + c' διακοπή διακοπής του προγράμματος και πληκτρολογήστε 'python3 Flask.py'. Για να δείτε αν λειτουργεί ο ιστότοπός σας, πρέπει να περιηγηθείτε στη διεύθυνση IP του Pi που κάνατε με το ': 5000' μετά από αυτό (όπως αυτό: 169.254.10.1:5000 ').

Για να εκτελεστεί αυτόματα μετά την εκκίνηση:

'sudo nano /etc/rc.local'

Στο τέλος του αρχείου ΑΛΛΑ ΠΡΙΝ από την έξοδο 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Συγχαρητήρια τώρα που το σενάριο θα πρέπει να τρέχει από την εκκίνηση και ΕΙΣΑΙ ΕΓΙΝΕ! Εάν σκοπεύετε να διατηρήσετε το έργο σε λειτουργία και δεν το έχετε ήδη προτείνει να τα κολλήσετε όλα μαζί, απλά για να βεβαιωθείτε ότι όλα θα παραμείνουν στη θέση τους. Αν και αν δεν παίζετε για να το μετακινήσετε πολύ, μια σανίδα ψωμιού λειτουργεί επίσης φυσικά.

Συνιστάται: