Πίνακας περιεχομένων:
- Βήμα 1: Λογαριασμός Υλικού
- Βήμα 2: Αισθητήρας θερμοκρασίας DS18B20
- Βήμα 3: Σύνδεση των αισθητήρων στο NodeMCU
- Βήμα 4: Εγκατάσταση των κατάλληλων βιβλιοθηκών
- Βήμα 5: Δοκιμή των αισθητήρων
- Βήμα 6: Χρήση του Blynk
- Βήμα 7: Συμπέρασμα
Βίντεο: IoT Made Simple: Παρακολούθηση πολλαπλών αισθητήρων: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Πριν από μερικές εβδομάδες, δημοσίευσα εδώ ένα σεμινάριο σχετικά με την παρακολούθηση της θερμοκρασίας χρησιμοποιώντας έναν DS18B20, έναν ψηφιακό αισθητήρα που επικοινωνεί μέσω ενός διαύλου 1-Wire, στέλνοντας δεδομένα μέσω Διαδικτύου με NodeMCU και Blynk:
IoT Made Simple: Παρακολούθηση θερμοκρασίας οπουδήποτε
Αλλά αυτό που χάσαμε στην εξερεύνηση, ήταν ένα από τα μεγάλα πλεονεκτήματα αυτού του είδους αισθητήρα, η δυνατότητα συλλογής πολλαπλών δεδομένων, από πολλαπλούς αισθητήρες συνδεδεμένους στο ίδιο δίαυλο 1 καλωδίου. Και τώρα ήρθε η ώρα να το εξερευνήσουμε.
Θα επεκτείνουμε αυτό που αναπτύχθηκε στο τελευταίο σεμινάριο, παρακολουθώντας τώρα δύο αισθητήρες DS18B20, που έχουν διαμορφωθεί ο ένας στον Κελσίου και ο άλλος στο Φαρενάιτ. Τα δεδομένα θα σταλούν σε μια εφαρμογή Blynk, όπως φαίνεται στο παραπάνω μπλοκ διάγραμμα.
Βήμα 1: Λογαριασμός Υλικού
- NodeMCU ESP 12-E (*)
- 2 X DS18B20 Αισθητήρας θερμοκρασίας
- Αντίσταση 4.7K Ohms
- BreadBoard
- Καλωδίωση
(*) Οποιοσδήποτε τύπος συσκευής ESP μπορεί να χρησιμοποιηθεί εδώ. Τα πιο συνηθισμένα είναι τα NodeMCU V2 ή V3. Και τα δύο θα λειτουργούν πάντα καλά.
Βήμα 2: Αισθητήρας θερμοκρασίας DS18B20
Θα χρησιμοποιήσουμε σε αυτό το σεμινάριο μια αδιάβροχη έκδοση του αισθητήρα DS18B20. Είναι πολύ χρήσιμο για απομακρυσμένη θερμοκρασία σε υγρές συνθήκες, για παράδειγμα σε υγρό έδαφος. Ο αισθητήρας είναι απομονωμένος και μπορεί να λάβει μετρήσεις έως τους 125oC (η Adafrut δεν συνιστά τη χρήση του πάνω από 100oC λόγω του καλωδίου PVC μπουφάν).
Ο DS18B20 είναι ένας ψηφιακός αισθητήρας που το κάνει καλό ακόμη και σε μεγάλες αποστάσεις! Αυτοί οι ψηφιακοί αισθητήρες θερμοκρασίας 1 καλωδίου είναι αρκετά ακριβείς (± 0,5 ° C σε μεγάλο εύρος) και μπορούν να δώσουν έως και 12 bits ακρίβειας από τον ενσωματωμένο ψηφιακό σε αναλογικό μετατροπέα. Λειτουργούν τέλεια με το NodeMCU χρησιμοποιώντας ένα μόνο ψηφιακό pin, και μπορείτε ακόμη και να συνδέσετε πολλαπλά στον ίδιο pin, καθένα έχει ένα μοναδικό αναγνωριστικό 64-bit εγγεγραμμένο στο εργοστάσιο για να τα διαφοροποιήσει.
Ο αισθητήρας λειτουργεί από 3,0 έως 5,0V, πράγμα που σημαίνει ότι μπορεί να τροφοδοτηθεί απευθείας από έναν από τους ακροδέκτες 3.3V NodeMCU.
Ο αισθητήρας έχει 3 καλώδια:
- Μαύρο: GND
- Κόκκινο: VCC
- Κίτρινο: 1-Wire Data
Εδώ, μπορείτε να βρείτε τα πλήρη δεδομένα: DS18B20 Datasheet
Βήμα 3: Σύνδεση των αισθητήρων στο NodeMCU
- Συνδέστε τα 3 καλώδια από κάθε αισθητήρα στο mini Breadboard όπως φαίνεται στην παραπάνω φωτογραφία. Χρησιμοποίησα ειδικούς συνδετήρες για να στερεώσω καλύτερα το καλώδιο του αισθητήρα σε αυτό.
-
Σημειώστε ότι και οι δύο αισθητήρες βρίσκονται παράλληλα. Εάν έχετε περισσότερους από 2 αισθητήρες, πρέπει να κάνετε το ίδιο.
- Κόκκινο ==> 3,3V
- Μαύρο ==> GND
- Κίτρινο ==> D4
- Χρησιμοποιήστε αντίσταση 4,7K ohm μεταξύ VCC (3.3V) και Data (D4)
Βήμα 4: Εγκατάσταση των κατάλληλων βιβλιοθηκών
Για να χρησιμοποιήσετε σωστά το DS18B20, θα χρειαστούν δύο βιβλιοθήκες:
- OneWire
- DallasTemperature
Εγκαταστήστε και τις δύο βιβλιοθήκες στο αποθετήριο Arduino IDE Library.
Σημειώστε ότι η βιβλιοθήκη OneWire ΠΡΕΠΕΙ να είναι η ειδική, τροποποιημένη για χρήση με το ESP8266, διαφορετικά θα λάβετε σφάλμα κατά τη μεταγλώττιση. Θα βρείτε την τελευταία έκδοση στον παραπάνω σύνδεσμο.
Βήμα 5: Δοκιμή των αισθητήρων
Για τον έλεγχο των αισθητήρων, κατεβάστε το παρακάτω αρχείο από το GitHub μου:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Multiple Temperature Sendor Test**2 x OneWire Sensor: DS18B20*Συνδέεται με NodeMCU D4 (ή Arduino Pin 2)**Αναπτύχθηκε από τον Marcelo Rovai - 25 Αυγούστου 2017 **************** **********************************************/ #περιλαμβάνω # περιλαμβάνει #define ONE_WIRE_BUS 2 // DS18B20 στο pin NodeMCU D4 OneWire oneWire (ONE_WIRE_BUS). DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Δοκιμή δεδομένων διπλού αισθητήρα"); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Ο αισθητήρας 0 θα καταγράψει τη θερμοκρασία στο Celcius temp_1 = DS18B20.getTempFByIndex (1); // Ο αισθητήρας 0 θα καταγράψει το Temp στο Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); καθυστέρηση (1000)? }
Κοιτάζοντας τον παραπάνω κώδικα, θα πρέπει να παρατηρήσουμε ότι οι πιο σημαντικές γραμμές είναι:
temp_0 = DS18B20.getTempCByIndex (0); // Ο αισθητήρας 0 θα καταγράψει τη θερμοκρασία στο Κελσίου
temp_1 = DS18B20.getTempFByIndex (1); // Ο αισθητήρας 0 θα καταγράψει τη θερμοκρασία στο Φαρενάιτ
Η πρώτη θα επιστρέψει μια τιμή από τον Αισθητήρα [0] (δείτε το "index (0)") σε Κελσίου (δείτε το τμήμα του κώδικα: "getTempC". Η δεύτερη γραμμή σχετίζεται με τον Αισθητήρα [1] και θα επιστρέψει δεδομένα Θα μπορούσατε να έχετε εδώ "n" αισθητήρες, αφού έχετε διαφορετικό "δείκτη" για κάθε έναν από αυτούς.
Ανεβάστε τώρα τον κωδικό στο NodeMCU και παρακολουθήστε τη θερμοκρασία χρησιμοποιώντας τη Σειριακή οθόνη.
Η παραπάνω φωτογραφία δείχνει το αναμενόμενο αποτέλεσμα. Κρατήστε κάθε έναν από τους αισθητήρες στο χέρι σας, θα δείτε ότι η θερμοκρασία ανεβαίνει.
Βήμα 6: Χρήση του Blynk
Μόλις αρχίσετε να καταγράφετε δεδομένα θερμοκρασίας, ήρθε η ώρα να τα δείτε από οπουδήποτε. Θα το κάνουμε αυτό χρησιμοποιώντας το Blynk. Έτσι, όλα τα καταγεγραμμένα δεδομένα θα εμφανίζονται σε πραγματικό χρόνο στην κινητή συσκευή σας και επίσης θα δημιουργήσουμε ένα ιστορικό αποθετήριο για αυτό.
Ακολουθήστε τα παρακάτω βήματα:
- Δημιουργήστε ένα νέο έργο.
- Δώστε του ένα όνομα (στην περίπτωσή μου "Dual Temperature Monitor")
- Επιλέξτε Νέα συσκευή - ESP8266 (WiFi) ως "Οι συσκευές μου"
- Αντιγράψτε το AUTH TOKEN για χρήση στον κωδικό (μπορείτε να το στείλετε στο email σας).
-
Περιλαμβάνει δύο widget "Gauge", που ορίζουν:
- Εικονική καρφίτσα που θα χρησιμοποιείται με κάθε αισθητήρα: V10 (Αισθητήρας [0]) και V11 (Αισθητήρας [1])
- Εύρος θερμοκρασίας: -5 έως 100 oC για αισθητήρα [0]
- Εύρος θερμοκρασίας: 25 έως 212 oC για αισθητήρα [1]
- Η συχνότητα ανάγνωσης δεδομένων: 1 δευτερόλεπτο
- Περιλαμβάνει ένα γραφικό στοιχείο "Γράφημα ιστορίας", το οποίο ορίζει τα V10 και V11 ως εικονικές ακίδες
- Πατήστε "Αναπαραγωγή" (Το τρίγωνο στη δεξιά επάνω γωνία)
Φυσικά, η εφαρμογή Blynk θα σας πει ότι το NodeMCU είναι εκτός σύνδεσης. It'sρθε η ώρα να ανεβάσετε ολόκληρο τον κωδικό στο Arduino IDE. Μπορείτε να το αποκτήσετε εδώ:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Αλλάξτε τα "εικονικά δεδομένα" με τα δικά σας διαπιστευτήρια.
/ * Διαπιστευτήρια Blynk */
char auth = "Ο ΚΩΔΙΚΟΣ ΣΑΣ BLYNK AUTH ΕΔΩ"; / * Διαπιστευτήρια WiFi */ char ssid = "YOUR SSID"; char pass = "YOUR PASSWORD";
Και αυτό είναι!
Παρακάτω ο πλήρης κωδικός. Είναι βασικά ο προηγούμενος κώδικας, όπου καταχωρήσαμε με παραμέτρους Blynk και συγκεκριμένες συναρτήσεις. Σημειώστε τις 2 τελευταίες γραμμές του κώδικα. Αυτά είναι τα πιο σημαντικά εδώ. Εάν έχετε περισσότερους αισθητήρες συλλογής δεδομένων, θα πρέπει επίσης να έχετε αντίστοιχες νέες γραμμές με αυτές (με καθορισμένες τις σχετικές νέες εικονικές ακίδες).
/**************************************************************
* IoT Multiple Temperature Monitor with Blynk * Η βιβλιοθήκη Blynk έχει άδεια με άδεια MIT * Αυτός ο κώδικας παραδείγματος είναι δημόσιος τομέας. **Multiple OneWire Sensor: DS18B20*Αναπτύχθηκε από τον Marcelo Rovai - 25 Αυγούστου 2017 ******************************** ***************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Σχολιάστε το απενεργοποιήστε τις εκτυπώσεις και εξοικονομήστε χώρο / * Διαπιστευτήρια Blynk * / char auth = "Ο ΚΩΔΙΚΟΣ ΣΑΣ BLYNK AUTH ΕΔΩ"; / * Διαπιστευτήρια WiFi */ char ssid = "YOUR SSID"; char pass = "YOUR PASSWORD"; / * TIMER */ #include SimpleTimer timer; / * DS18B20 Temperature Sensor */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 στο arduino pin2 αντιστοιχεί σε D4 στη φυσική πλακέτα OneWire oneWire (ONE_WIRE_BUS). DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Δοκιμή δεδομένων διπλού αισθητήρα"); } void loop () {timer.run (); // Ξεκινά το SimpleTimer Blynk.run (); } /******************************************** ****Αποστολή δεδομένων αισθητήρα στο Blynk ************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Ο αισθητήρας 0 θα καταγράψει τη θερμοκρασία στο Celcius temp_1 = DS18B20.getTempFByIndex (1); // Ο αισθητήρας 0 θα καταγράψει το Temp στο Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // εικονική ακίδα V10 Blynk.virtualWrite (11, temp_1); // εικονική καρφίτσα V11}
Μόλις μεταφορτωθεί και εκτελεστεί ο κώδικας, ελέγξτε την εφαρμογή Blynk. Θα πρέπει τώρα να λειτουργεί επίσης όπως φαίνεται στην παραπάνω οθόνη εκτύπωσης από το iPhone μου.
Βήμα 7: Συμπέρασμα
Όπως πάντα, ελπίζω ότι αυτό το έργο μπορεί να βοηθήσει άλλους να βρουν τον δρόμο τους στον συναρπαστικό κόσμο της ηλεκτρονικής, της ρομποτικής και του IoT!
Επισκεφτείτε το GitHub για ενημερωμένα αρχεία: NodeMCU Dual Temp Monitor
Για περισσότερα έργα, επισκεφθείτε το ιστολόγιό μου: MJRoBot.org
Saludos από τον νότο του κόσμου!
Τα λέμε στο επόμενο διδακτικό μου!
Σας ευχαριστώ, Μαρσέλο
Συνιστάται:
Ρομπότ πολλαπλών αισθητήρων ελεγχόμενου Wifi: 6 βήματα
Ρομπότ ελεγχόμενης πολλαπλής ανίχνευσης Wifi: σε αυτό το σεμινάριο, θα σας δείξω πώς να φτιάξετε ένα έξυπνο ρομπότ με ελεγχόμενο wifi χρησιμοποιώντας το nodemcu. Με αυτό το rover, μπορείτε να παρατηρήσετε τις παραμέτρους του ρομποτικού περιβάλλοντος (φως, θερμοκρασία, υγρασία) χρόνο με το smartphone σας. πρώτο ρολόι
Πώς να φτιάξετε αυτοματοποίηση στο σπίτι με βάση το IoT με ρελέ ελέγχου αισθητήρων NodeMCU: 14 βήματα (με εικόνες)
Πώς να κάνετε αυτοματοποίηση οικιακού αυτοματισμού με ρελέ ελέγχου αισθητήρων NodeMCU: Σε αυτό το έργο που βασίζεται στο IoT, έχω κάνει το Home Automation with Blynk και το NodeMCU module ρελέ ελέγχου με ανατροφοδότηση σε πραγματικό χρόνο. Στη χειροκίνητη λειτουργία, αυτή η μονάδα ρελέ μπορεί να ελεγχθεί από κινητό ή smartphone και, χειροκίνητο διακόπτη. Στην Αυτόματη Λειτουργία, αυτό το
Πώς να χρησιμοποιήσετε το Sensor21.com για την παρακολούθηση αισθητήρων: 3 βήματα
Πώς να χρησιμοποιήσετε το Sensor21.com για την Παρακολούθηση Αισθητήρων: Εάν χρειάζεστε μια πλατφόρμα για την παρακολούθηση και τον έλεγχο απομακρυσμένων συσκευών και αισθητήρων για τα DIY έργα σας, το sensor21.com μπορεί να είναι μια καλή λύση για εσάς. Διαθέτει έτοιμο προς χρήση φιλικό προς το χρήστη GUI. Εύκολη προσθήκη αισθητήρων και παρακολούθηση τους με γραφήματα. Ρύθμιση συναγερμών για
RPIEasy - Συσκευή πολλαπλών αισθητήρων με βάση RPI: 6 βήματα
RPIEasy - Συσκευή πολλαπλών αισθητήρων βασισμένος σε RPI: Εάν κάποιος σχεδιάζει να δημιουργήσει μερικούς αισθητήρες DIY, τότε πέρα από το δημοφιλές ESP8266 τη φθηνή και χαμηλή κατανάλωση " Raspberry Pi Zero W " Το modell είναι επίσης μια σημαντική επιλογή. Το RPI Zero W κοστίζει περίπου 10USD και η κατανάλωση ενέργειας είναι
UbiDots-Σύνδεση ενός ESP32 και δημοσίευση δεδομένων πολλαπλών αισθητήρων: 6 βήματα
UbiDots-Σύνδεση ενός ESP32 και δημοσίευση δεδομένων πολλαπλών αισθητήρων: Το ESP32 και το ESP 8266 είναι πολύ οικεία SoC στον τομέα του IoT. Αυτά είναι ένα είδος όφελος για τα έργα IoT. Το ESP 32 είναι μια συσκευή με ενσωματωμένο WiFi και BLE. Απλώς δώστε τις διαμορφώσεις SSID, κωδικού πρόσβασης και IP και ενσωματώστε τα πράγματα σε