Πίνακας περιεχομένων:
- Βήμα 1: Εγκατάσταση Arduino IDE, ESP8266 Boards and Libraries and Your ThingSpeak Account
- Βήμα 2: Εξερεύνηση του σκίτσου
- Βήμα 3: Εξηγήσεις για…
- Βήμα 4: Επικοινωνίες
- Βήμα 5: Κύριες μεταβλητές
Βίντεο: Πώς να φτιάξετε το δικό σας ανεμόμετρο χρησιμοποιώντας διακόπτες καλαμιών, αισθητήρα εφέ Hall και μερικά αποκόμματα στο Nodemcu - Μέρος 2 - Λογισμικό: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Εισαγωγή
Αυτή είναι η συνέχεια της πρώτης ανάρτησης "Πώς να φτιάξετε το δικό σας ανεμόμετρο χρησιμοποιώντας διακόπτες καλαμιού, αισθητήρα εφέ Hall και μερικά αποκόμματα στο Nodemcu - Μέρος 1 - Υλικό" - όπου παρουσιάζω πώς να συναρμολογείτε τις συσκευές μέτρησης ταχύτητας και κατεύθυνσης του ανέμου. Εδώ θα αξιοποιήσουμε το λογισμικό ελέγχου μέτρησης που έχει σχεδιαστεί για χρήση σε ένα Nodemcu χρησιμοποιώντας το Arduino IDE.
Περιγραφή Έργου
Στην προηγούμενη ανάρτηση, οι συσκευές οπλισμένες και συνδεδεμένες με το Nodemcu είναι σε θέση να μετρήσουν την ταχύτητα και την κατεύθυνση του ανέμου. Το λογισμικό ελέγχου σχεδιάστηκε για να διαβάζει την περιστροφή του ανεμόμετρου για κάποιο χρονικό διάστημα, να υπολογίζει τη γραμμική ταχύτητα, να διαβάζει την κατεύθυνση στην οποία βρίσκεται το πτερύγιο, να εμφανίζει τα αποτελέσματα στο OLED, να δημοσιεύει τα αποτελέσματα στο ThingSpeak και να κοιμάται για 15 λεπτά έως ότου η επόμενη μέτρηση.
Αποποίηση ευθυνών: Αυτό το ανεμόμετρο δεν πρέπει να χρησιμοποιείται για επαγγελματικούς σκοπούς. Είναι μόνο για ακαδημαϊκή ή οικιακή χρήση.
Σημείωση: Τα αγγλικά δεν είναι η φυσική μου γλώσσα. Αν βρείτε γραμματικά λάθη που σας εμποδίζουν να κατανοήσετε το έργο, ενημερώστε με για να τα διορθώσω. Σε ευχαριστώ πάρα πολύ.
Βήμα 1: Εγκατάσταση Arduino IDE, ESP8266 Boards and Libraries and Your ThingSpeak Account
Εγκατάσταση Arduino IDE και Nodemcu
Εάν δεν έχετε εγκαταστήσει ποτέ το IDE το Arduino, διαβάστε το σεμινάριο στον σύνδεσμο - Πώς να εγκαταστήσετε το Arduino IDE - όπου μπορείτε να βρείτε τις πλήρεις οδηγίες.
Επόμενο βήμα, για να εγκαταστήσετε τον πίνακα Nodemcu χρησιμοποιήστε αυτό το σεμινάριο από το Magesh Jayakumar Instructables που είναι πολύ πλήρες. Πώς να εγκαταστήσετε το Nodemcu no Arduino IDE
Εγκατάσταση Βιβλιοθηκών
Επόμενο βήμα πρέπει να εγκαταστήσετε τις βιβλιοθήκες που χρησιμοποιεί το σκίτσο. Είναι κοινά και μπορείτε να ακολουθήσετε τα βήματα που φαίνονται παρακάτω.
Βιβλιοθήκη ThingSpeak -
Βιβλιοθήκη ESP8266 -
Δημιουργία λογαριασμού ThingSpeak
Για να χρησιμοποιήσετε το ThingSpeak (https://thingspeak.com/) πρέπει να δημιουργήσετε έναν λογαριασμό (εξακολουθεί να είναι δωρεάν για ορισμένο αριθμό αλληλεπιδράσεων) όπου μπορείτε να αποθηκεύσετε τα δεδομένα που μετρήθηκαν στο ανεμόμετρό σας και να παρακολουθείτε τις συνθήκες ανέμου στο σπίτι σας, ακόμα και μέσω κινητού τηλεφώνου. Χρησιμοποιώντας το ThingSpeak, μπορείτε να δώσετε στο κοινό πρόσβαση στα δεδομένα που συλλέξατε σε όποιον ενδιαφέρεται. Αυτό είναι ένα καλό πλεονέκτημα του ThingSpeak. Εισαγάγετε την αρχική σελίδα και ακολουθήστε τα βήματα για να δημιουργήσετε τον λογαριασμό σας.
Μόλις δημιουργηθεί ο λογαριασμός, εισαγάγετε αυτό το σεμινάριο - ThingSpeak Ξεκινώντας - για να δημιουργήσετε τα κανάλια σας. Είναι αρκετά καλά εξηγημένο. Συνοψίζοντας, πρέπει να δημιουργήσετε ένα κανάλι στο οποίο θα αποθηκευτούν τα δεδομένα. Αυτό το κανάλι έχει ένα αναγνωριστικό και ένα κλειδί API που πρέπει να αναφέρονται στο σκίτσο κάθε φορά που θέλετε να καταγράψετε δεδομένα. Το ThingSpeak θα αποθηκεύσει όλα τα δεδομένα σε μια τράπεζα και θα τα εμφανίζει κάθε φορά που αποκτάτε πρόσβαση στον λογαριασμό σας, με τον τρόπο που έχετε διαμορφώσει.
Βήμα 2: Εξερεύνηση του σκίτσου
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ
Στο διάγραμμα, μπορείτε να καταλάβετε το φλουξόγραμμα του σκίτσου. Όταν ξυπνήσετε (συνδέσετε) το Nodemcu, θα συνδεθεί στο δίκτυό σας Wi-Fi, του οποίου τις παραμέτρους έχετε διαμορφώσει και θα αρχίσει να μετράει 1 λεπτό χρόνου για να εκτελέσετε τις μετρήσεις. Πρώτον, θα μετρήσει τις περιστροφές του ανεμόμετρου για 25 δευτερόλεπτα, υπολογίστε η γραμμική ταχύτητα και διαβάστε την κατεύθυνση του ανέμου. Τα αποτελέσματα εμφανίζονται στο OLED. Κάντε ξανά τα ίδια βήματα και για αυτή τη δεύτερη ανάγνωση, θα μεταδοθεί στο ThingSpeak.
Στη συνέχεια, ο Nodemcu κοιμάται για 15 λεπτά για να εξοικονομήσει μπαταρία. Καθώς χρησιμοποιώ ένα μικρό ηλιακό πάνελ, είναι επιτακτική ανάγκη να το κάνω. Εάν χρησιμοποιείτε πηγή 5V, μπορείτε να τροποποιήσετε το πρόγραμμα έτσι ώστε να μην κοιμάται και να συνεχίσετε να μετράτε τα δεδομένα.
Δομή των προγραμμάτων
Στο διάγραμμα, μπορείτε να δείτε τη δομή του σκίτσου.
Ανεμόμετρο_Εγκατάστατα
Είναι το κύριο πρόγραμμα που φορτώνει τις βιβλιοθήκες, ξεκινά τις μεταβλητές, ελέγχει τη διακοπή επισύναψης, καλεί όλες τις συναρτήσεις, υπολογίζει την ταχύτητα του ανέμου, καθορίζει την κατεύθυνσή του και το θέτει σε αδράνεια.
διαβιβάσεις
Συνδέστε το WiFi και στείλτε τα δεδομένα στο ThingSpeak.
διαπιστευτήρια.η
Τα κλειδιά του δικτύου WiFi και τα αναγνωριστικά του λογαριασμού σας στο ThingSpeak. Εδώ θα αλλάξετε τα αναγνωριστικά κλειδιών και τα API σας.
ορίζει.η
Περιέχει όλες τις μεταβλητές του προγράμματος. Εδώ μπορείτε να αλλάξετε τους χρόνους ανάγνωσης ή πόσο καιρό πρέπει να κοιμάται ο nodemcu.
λειτουργίες
Περιέχει τις συναρτήσεις για συνδυασμό των παραμέτρων και ανάγνωση του πολυπλέκτη καθώς και τη λειτουργία ανάγνωσης των περιστροφών του ανεμόμετρου.
oledΕμφάνιση
Εμφάνιση αποτελεσμάτων στην ταχύτητα και κατεύθυνση του ανέμου στην οθόνη.
Βήμα 3: Εξηγήσεις για…
Επισύναψη διακοπής
Η περιστροφή του ανεμόμετρου μετριέται με τη συνάρτηση attachInterrupt () (και detachInterrupt ()) στο GPIO 12 (pin D6) του Nodemcu (Έχει δυνατότητα διακοπής στις ακίδες D0-D8).
Οι διακοπές είναι συμβάντα ή συνθήκες που προκαλούν τον μικροελεγκτή να σταματήσει την εκτέλεση της εργασίας που εκτελεί, να λειτουργήσει προσωρινά σε διαφορετική εργασία και να επιστρέψει στην αρχική εργασία.
Μπορείτε να διαβάσετε τις λεπτομέρειες της λειτουργίας στο σύνδεσμο για το σεμινάριο του Arduino. Δείτε το attachInterrupt ().
Σύνταξη: attachInterrupt (pin, λειτουργία επανάκλησης, τύπος/λειτουργία διακοπής).
pin = D6
συνάρτηση επανάκλησης = rpm_anemometer - μετράει κάθε παλμό σε μια μεταβλητή.
Τύπος διακοπής/τρόπος = ΑΝΕΜΙΣΤΗΣΗ - διακοπή όταν ο πείρος μεταβεί από χαμηλά σε υψηλά.
Σε κάθε παλμό που παράγεται από το magneto στον αισθητήρα Hall, ο πείρος πηγαίνει από χαμηλά σε υψηλά και η λειτουργία μέτρησης ενεργοποιείται και αθροίζεται ο παλμός σε μια μεταβλητή, κατά τη διάρκεια των 25 δευτερολέπτων που έχει καθοριστεί. Μόλις λήξει ο χρόνος, ο μετρητής αποσυνδέεται (detachInterrupt ()) και η ρουτίνα υπολογίζει την ταχύτητα ενώ είναι αποσυνδεδεμένος.
Υπολογισμός της ταχύτητας ανέμου
Μόλις καθοριστεί πόσες περιστροφές έκανε το ανεμόμετρο σε 25 δευτερόλεπτα, υπολογίζουμε την ταχύτητα.
- RADIO είναι η μέτρηση από τον κεντρικό άξονα του ανεμόμετρου μέχρι την άκρη της μπάλας του πινγκ πονγκ. Πρέπει να έχετε μετρήσει πολύ καλά τη δική σας - (δείτε αυτό στο διάγραμμα που λέει 10 cm).
- RPS (περιστροφές ανά δευτερόλεπτο) = περιστροφές / 25 δευτερόλεπτα
- RPM (περιστροφές ανά λεπτό) = RPS * 60
- OMEGA (γωνιακή ταχύτητα - ακτίνια ανά δευτερόλεπτο) = 2 * PI * RPS
- Γραμμική_Επιτάχυνση (μέτρα ανά δευτερόλεπτο) = OMEGA * RADIO
- Linear_Velocity_kmh (Km ανά ώρα) = 3,6 * Linear_Velocity και αυτό είναι που θα σταλεί στο ThingSpeak.
Διαβάστε την κατεύθυνση του ανεμοθώρακα
Για να διαβάσετε τη θέση του πτερυγίου για να καθορίσετε την κατεύθυνση του ανέμου, το πρόγραμμα στέλνει χαμηλά και υψηλά σήματα στον πολυπλέκτη με όλους τους συνδυασμούς των παραμέτρων A, B, C (μήτρα muxABC) και περιμένετε να λάβετε στο pin A0 το αποτέλεσμα που μπορεί να είναι οποιαδήποτε τάση μεταξύ 0 και 3.3V. Οι συνδυασμοί φαίνονται στο διάγραμμα.
Για παράδειγμα, όταν C = 0 (χαμηλό), Β = 0 (χαμηλό), Α = 0 (χαμηλό) ο πολυπλέκτης του δίνει τα δεδομένα του πείρου 0 και στέλνει το σήμα στο Α0 που διαβάζεται από το Nodemcu. αν C = 0 (χαμηλό), Β = 0 (χαμηλό), Α = 1 (υψηλό) ο πολυπλέκτης θα σας στείλει τα δεδομένα του πείρου 1 και ούτω καθεξής, μέχρι να ολοκληρωθεί η ανάγνωση των 8 καναλιών.
Καθώς το σήμα είναι αναλογικό, το πρόγραμμα μετατρέπεται σε ψηφιακό (0 ή 1), εάν η τάση είναι μικρότερη ή ίση με 1,3V το σήμα είναι 0. αν είναι μεγαλύτερο από 1.3V το σήμα είναι 1. Η τιμή 1.3V είναι αυθαίρετη και για μένα, λειτούργησε πολύ καλά. Υπάρχουν πάντα μικρές διαρροές ρεύματος και αυτό προστατεύει ότι δεν υπάρχουν ψευδώς θετικά.
Αυτά τα δεδομένα αποθηκεύονται σε ένα διάνυσμα val [8] που θα συγκριθεί με τον πίνακα διευθύνσεων ως πυξίδα. Δείτε την μήτρα στο διάγραμμα. Για παράδειγμα, εάν το διάνυσμα που λαμβάνεται είναι [0, 0, 1, 0, 0, 0, 0, 0, 0] υποδεικνύει στο πλέγμα την κατεύθυνση Ε και αντιστοιχεί σε γωνία 90 μοιρών. εάν [0, 0, 0, 0, 0, 0, 1, 1] υποδεικνύει στη μήτρα τη διεύθυνση WNW και αντιστοιχεί σε γωνία 292,5 μοιρών. Το Ν αντιστοιχεί σε [1, 0, 0, 0, 0, 0, 0, 0, 0] και γωνία 0 μοιρών.
Αυτό που θα σταλεί στο ThingSpeak είναι υπό γωνία επειδή δέχεται μόνο αριθμούς.
Βήμα 4: Επικοινωνίες
Πώς να στείλετε δεδομένα στο ThingSpeak
Η συνάρτηση thingspeaksenddata () είναι υπεύθυνη για την αποστολή των δεδομένων.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Αποστολή των δεδομένων ταχύτητας στο πεδίο 1 του καναλιού μου
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Αποστολή των δεδομένων διεύθυνσης στο πεδίο2 του καναλιού μου
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Αποστολή στο κανάλι μου myChannelNumber, με το γραμμένο API myWriteAPIKey που υποδεικνύεται από το TS. Αυτά τα δεδομένα δημιουργήθηκαν από την TS κατά τη δημιουργία του λογαριασμού και του καναλιού σας.
Στις παραπάνω εικόνες μπορείτε να δείτε πώς το ThingSpeak εμφανίζει τα ληφθέντα δεδομένα.
Σε αυτόν τον σύνδεσμο μπορείτε να έχετε πρόσβαση στα δεδομένα του έργου μου στο δημόσιο κανάλι του ThingSpeak.
Βήμα 5: Κύριες μεταβλητές
παραμέτρους πτερυγίων ανέμου
- MUX_A D5 - mux pi A έως Nodemcu pin D5
- MUX_B D4 - mux pin B έως Nodemcu pin D4
- MUX_C D3 - mux pin C έως Nodemcu pin D3
- READPIN 0 - Αναλογική είσοδος στο NodeMcu = A0
- NO_PINS 8 - αριθμός mux καρφιτσών
- val [NO_PINS] - θύρες 0 έως 7 του mux
- wind_Direction_Angle - Γωνία κατεύθυνσης ανέμου
- String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - cardenals, εξασφαλίσεις και δευτερεύουσες εξασφαλίσεις
- windAng [16] = {0, 22,5, 45, 67,5, 90, 112,5, 135, 157,5, 180, 202,5, 225, 247,5, 270, 292,5, 315, 337,5} - γωνίες κάθε κατεύθυνσης
- Digηφίο [16] [NO_PINS] - Πίνακας κατευθύνσεων
- muxABC [8] [3] - ABC mux συνδυασμοί
παραμέτρους ανεμόμετρου
- rpmcount - μετρήστε πόσες πλήρεις περιστροφές έκανε το ανεμόμετρο στον καθορισμένο χρόνο
- timemeasure = 25,00 - χρόνος διάρκειας μέτρησης σε δευτερόλεπτα
- timetoSleep = 1 - Χρόνος αφύπνισης Nodemcu σε λεπτά
- sleepTime = 15 - χρόνος για να συνεχίσετε να κοιμάστε σε λεπτά
- rpm, rps - συχνότητες περιστροφής (περιστροφές ανά λεπτό, περιστροφές ανά δευτερόλεπτο)
- ακτίνα - μέτρα - το μέτρο του μήκους του φτερού ανεμόμετρου
- linear_velocity - γραμμική ταχύτητα σε m/seg
- linear_velocity_kmh - γραμμική ταχύτητα σε km/h
- ωμέγα - ακτινική ταχύτητα σε rad/seg
Παρακάτω μπορείτε να βρείτε το πλήρες σκίτσο. Δημιουργήστε έναν νέο φάκελο στο φάκελο Arduino του υπολογιστή σας με το ίδιο όνομα με το κύριο πρόγραμμα (Anemometer_Instructables) και τοποθετήστε τους όλους μαζί.
Εισαγάγετε τα δεδομένα του δικτύου wifi και το αναγνωριστικό ThingSpeak και το κλειδί συγγραφέα API στο τμήμα Credentials.h και αποθηκεύστε. Ανεβάστε στο Nodemcu και αυτό είναι όλο.
Για να ελέγξετε τη λειτουργία του συστήματος, συνιστώ έναν καλό περιστρεφόμενο ανεμιστήρα.
Για πρόσβαση στα δεδομένα μέσω κινητού τηλεφώνου, κατεβάστε την εφαρμογή για IOS ή Android που ονομάζεται ThingView, η οποία, ευτυχώς, εξακολουθεί να είναι δωρεάν.
Διαμορφώστε τις ρυθμίσεις του λογαριασμού σας και θα είστε έτοιμοι να δείτε τις συνθήκες ανέμου στο σπίτι σας όπου κι αν βρίσκεστε.
Εάν σας ενδιαφέρει, αποκτήστε πρόσβαση στο κανάλι μου στο αναγνωριστικό καναλιού ThingSpeak: 438851, το οποίο είναι δημόσιο και εκεί θα βρείτε τις μετρήσεις του ανέμου και της κατεύθυνσης στο σπίτι μου.
Ελπίζω πραγματικά να διασκεδάσετε.
Αν έχετε οποιαδήποτε αμφιβολία μη διστάσετε να επικοινωνήσετε μαζί μου.
Χαιρετισμοί
Συνιστάται:
Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino σας στο δίκτυο IP;: 11 βήματα (με εικόνες)
Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino με το δίκτυο IP;: Όπως πολλοί άνθρωποι πιστεύετε ότι το Arduino είναι μια πολύ καλή λύση για αυτοματοποίηση σπιτιού και ρομποτικό! Αλλά από την άποψη της επικοινωνίας, το Arduinos έρχεται μόνο με σειριακούς συνδέσμους. Δουλεύω σε ένα ρομπότ που πρέπει να είναι μόνιμα συνδεδεμένο με ένα διακομιστή που λειτουργεί
Πώς να φτιάξετε το δικό σας λειτουργικό σύστημα! (παρτίδα και παράδειγμα στο εσωτερικό): 5 βήματα
Πώς να φτιάξετε το δικό σας λειτουργικό σύστημα! (παρτίδα και Παράδειγμα μέσα): Φτιάξτε το τώρα
Σεμινάριο: Πώς να φτιάξετε έναν απλό αισθητήρα θερμοκρασίας χρησιμοποιώντας DS18B20 και Arduino UNO: 3 βήματα
Φροντιστήριο: Πώς να φτιάξετε έναν απλό αισθητήρα θερμοκρασίας χρησιμοποιώντας το DS18B20 και το Arduino UNO: Περιγραφή: Αυτό το σεμινάριο θα σας δείξει μερικά απλά βήματα για τον τρόπο λειτουργίας του αισθητήρα θερμοκρασίας. Χρειάζονται μόνο λίγα λεπτά για να γίνει πραγματικότητα στο έργο σας. Καλή τύχη ! Το ψηφιακό θερμόμετρο DS18B20 παρέχει θερμοκρασία 9-bit έως 12-bit Κελσίου
Αισθητήρας εφέ Hall στο Arduino χρησιμοποιώντας Fidget Spinner: 3 βήματα (με εικόνες)
Αισθητήρας εφέ Hall στο Arduino χρησιμοποιώντας Fidget Spinner: Περίληψη Σε αυτό το έργο εξηγώ πώς λειτουργεί ο αισθητήρας εφέ αίθουσας που μετρά την ταχύτητα του fidget spinner με τον πίνακα arduino. λειτουργεί: -Ένας αισθητήρας φαινομένου Hall είναι ένας μορφοτροπέας που μεταβάλλει την τάση εξόδου του ως απόκριση σε μαγνητικό πεδίο. Εφέ Hall
Πώς να φτιάξετε το δικό σας φορτιστή αυτοκινήτου USB για οποιοδήποτε IPod ή άλλες συσκευές που φορτίζουν μέσω USB: 10 βήματα (με εικόνες)
Πώς να φτιάξετε το δικό σας φορτιστή αυτοκινήτου USB για οποιοδήποτε IPod ή άλλες συσκευές που φορτίζουν μέσω USB: Δημιουργήστε έναν φορτιστή αυτοκινήτου USB για οποιοδήποτε iPod ή άλλη συσκευή που φορτίζει μέσω USB συνδέοντας μαζί έναν προσαρμογέα αυτοκινήτου που εξάγει 5v και USB θηλυκό βύσμα. Το πιο σημαντικό μέρος αυτού του έργου είναι να βεβαιωθείτε ότι η έξοδος του προσαρμογέα αυτοκινήτου που επιλέξατε είναι στοιχηματισμένη