- Απαιτούμενα στοιχεία:
- Αισθητήρας θερμοκρασίας LM35:
- Σύνδεση LM35 με NodeMCU:
- Επεξήγηση κώδικα:
- Κώδικας HTML για εμφάνιση θερμοκρασίας στην ιστοσελίδα:
- Εργαζόμενος:
Στο προηγούμενο ξεκίνημα με το σεμινάριο NodeMCU, είδαμε τι είναι το NodeMCU και πώς μπορούμε να το προγραμματίσουμε χρησιμοποιώντας το Arduino IDE . Όπως γνωρίζετε, το NodeMCU διαθέτει τσιπ Wi-Fi στο εσωτερικό του, μπορεί επίσης να συνδεθεί στο Διαδίκτυο. Είναι πολύ χρήσιμο να δημιουργείτε έργα IoT. Χρησιμοποιήσαμε προηγουμένως το ThingSpeak με το Arduino για να φτιάξουμε το θερμόμετρο IoT, αλλά εδώ θα δημιουργήσουμε τη δική μας ιστοσελίδα για να εμφανίσουμε τη θερμοκρασία.
Σε αυτό το σεμινάριο θα διερευνήσουμε περισσότερα σχετικά με αυτό το ενδιαφέρον MCU και αργά βουτάμε στο Διαδίκτυο των πραγμάτων, συνδέοντας το NodeMCU με το Διαδίκτυο. Εδώ θα χρησιμοποιήσουμε αυτήν την ενότητα για να λάβουμε τη θερμοκρασία δωματίου στο πρόγραμμα περιήγησης ιστού, δηλαδή θα κάνουμε έναν διακομιστή ιστού για να εμφανίσει τη θερμοκρασία χρησιμοποιώντας το LM35 ως αισθητήρα θερμοκρασίας.
Απαιτούμενα στοιχεία:
- NodeMCU - ESP12
- Αισθητήρας θερμοκρασίας LM35
- Ψωμί
- Συνδετήρες αρσενικού-θηλυκού
Αισθητήρας θερμοκρασίας LM35:
Το LM35 είναι ένας αναλογικός γραμμικός αισθητήρας θερμοκρασίας. Η παραγωγή του είναι ανάλογη με τη θερμοκρασία (σε βαθμό Κελσίου). Το εύρος θερμοκρασίας λειτουργίας κυμαίνεται από -55 ° C έως 150 ° C. Η τάση εξόδου κυμαίνεται κατά 10mV σε απόκριση κάθε αύξησης ή πτώσης της θερμοκρασίας oC. Μπορεί να λειτουργήσει από τροφοδοσία 5V καθώς και 3,3 V και το ρεύμα αναμονής είναι μικρότερο από 60uA.
Σημειώστε ότι το LM35 είναι διαθέσιμο σε 3 παραλλαγές σειράς, δηλαδή LM35A, LM35C και LM35D. Η κύρια διαφορά είναι στο εύρος των μετρήσεων θερμοκρασίας. Η σειρά LM35D έχει σχεδιαστεί για τη μέτρηση 0 έως 100 βαθμούς Κελσίου, ενώ όπως η σειρά LM35A έχει σχεδιαστεί για τη μέτρηση ενός ευρύτερου εύρους από -55 έως 155 βαθμούς Κελσίου. Η σειρά LM35C έχει σχεδιαστεί για να μετρά από -40 έως 110 βαθμούς Κελσίου.
Έχουμε ήδη χρησιμοποιήσει το LM35 με πολλούς άλλους μικροελεγκτές για τη μέτρηση της θερμοκρασίας:
- Ψηφιακό θερμόμετρο με χρήση μικροελεγκτή LM35 και 8051
- Μέτρηση θερμοκρασίας με χρήση μικροελεγκτή LM35 και AVR
- Ψηφιακό θερμόμετρο χρησιμοποιώντας αισθητήρες θερμοκρασίας Arduino και LM35
- Μέτρηση θερμοκρασίας δωματίου με Raspberry Pi
Σύνδεση LM35 με NodeMCU:
Το διάγραμμα κυκλώματος για σύνδεση LM35 με NodeMCU δίνεται παρακάτω:
Το LM35 είναι ένας αναλογικός αισθητήρας, οπότε πρέπει να μετατρέψουμε αυτήν την αναλογική έξοδο σε ψηφιακή. Γι 'αυτό χρησιμοποιούμε ADC pin του NodeMCU που ορίζεται ως A0. Θα συνδέσουμε την έξοδο του LM35 στο A0.
Έχουμε 3,3 V ως τάση εξόδου στις ακίδες του NodeMCU. Έτσι, θα χρησιμοποιήσουμε 3.3V ως Vcc για LM35.
Επεξήγηση κώδικα:
Ο πλήρης κώδικας με το βίντεο επίδειξης δίνεται στο τέλος του άρθρου. Εδώ εξηγούμε μερικά μέρη του κώδικα. Έχουμε ήδη εξηγήσει ότι ανεβάζουμε κώδικα στο MCU χρησιμοποιώντας το Arduino IDE.
Πρώτον, πρέπει να συμπεριλάβουμε τη βιβλιοθήκη ESP8266wifi για πρόσβαση στις λειτουργίες Wi-Fi.
#περιλαμβάνω
Στη συνέχεια, εισαγάγετε το όνομα και τον κωδικό πρόσβασης Wi-Fi στο πεδίο SSID και κωδικός πρόσβασης . Αρχικοποίησε επίσης τις μεταβλητές και ξεκινήστε τον διακομιστή στη θύρα 80 με ρυθμό baud 115200.
const char * ssid = "*********"; // Ο κωδικός σας ssid const * password = "***********"; // Ο κωδικός πρόσβασής σας temp_celsius = 0; float temp_fahrenheit = 0; Διακομιστής WiFiServer (80); άκυρη ρύθμιση () { Serial.begin (115200);
Η σύνδεση του Wi-Fi πραγματοποιείται καλώντας αυτές τις λειτουργίες.
Serial.println (); Serial.println (); Serial.print ("Σύνδεση σε"); Serial.println (SSD); WiFi.begin (SSD, κωδικός πρόσβασης);
Η σύνδεση μπορεί να διαρκέσει λίγα δευτερόλεπτα για να ξεκινήσει, επομένως συνεχίστε να εμφανίζεται το «…» έως ότου η σύνδεση δεν δημιουργηθεί. Στη συνέχεια, το σύστημα θα συνεχίσει να περιμένει και να ελέγχει για σύνδεση πελάτη
ενώ (WiFi.status ()! = WL_CONNECTED) { καθυστέρηση (500); Serial.print ("."); } Serial.println (""); Serial.println ("Το WiFi είναι συνδεδεμένο"); server.begin (); Serial.println ("Ο διακομιστής ξεκίνησε"); Serial.println (WiFi.localIP ()); }
Στην ενότητα βρόχου , διαβάστε τιμές αισθητήρα και μετατρέψτε τις σε Κελσίου και Φαρενάιτ και εμφανίστε αυτές τις τιμές στη σειριακή οθόνη.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Για να μετατρέψετε αναλογικές τιμές σε Κελσίου Έχουμε 3,3 V στον πίνακα μας και γνωρίζουμε ότι η τάση εξόδου του LM35 κυμαίνεται κατά 10 mV σε κάθε βαθμό άνοδο / πτώση Κελσίου. Έτσι, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1.8 + 32.0; Serial.print ("Temperature ="); Serial.print (temp_celsius); Serial.print ("Κελσίου");
Κώδικας HTML για εμφάνιση θερμοκρασίας στην ιστοσελίδα:
Εμφανίζουμε τη θερμοκρασία σε μια ιστοσελίδα έτσι ώστε να είναι προσβάσιμη από οπουδήποτε στον κόσμο μέσω διαδικτύου. Ο κώδικας HTML είναι πολύ απλός. πρέπει απλώς να χρησιμοποιήσουμε τη συνάρτηση client.println για να επαναλάβουμε κάθε γραμμή του κώδικα HTML, ώστε το πρόγραμμα περιήγησης να μπορεί να το εκτελέσει.
Αυτό το μέρος εμφανίζει κώδικα HTML για τη δημιουργία μιας ιστοσελίδας που εμφανίζει την τιμή θερμοκρασίας.
WiFiClient client = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Τύπος περιεχομένου: κείμενο / html"); client.println ("Σύνδεση: κλείσιμο"); // η σύνδεση θα κλείσει μετά την ολοκλήρωση της απόκρισης client.println ("Ανανέωση: 10"); // ενημερώστε τη σελίδα μετά από 10 δευτερόλεπτα client.println (); client.println (""); client.println (""); client.print ("
Ψηφιακό θερμόμετρο
"); client.print ("Θερμοκρασία (* C) = "); client.println (temp_celsius); client.print ("
Θερμοκρασία (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); καθυστέρηση (5000); }Εργαζόμενος:
Αφού ανεβάσετε τον κωδικό χρησιμοποιώντας το Arduino IDE, ανοίξτε τη σειριακή οθόνη και πατήστε το κουμπί Reset στο NodeMCU.
Τώρα, μπορείτε να δείτε ότι η πλακέτα είναι συνδεδεμένη στο δίκτυο Wi-Fi που έχετε ορίσει στον κωδικό σας και επίσης έχετε το IP. Αντιγράψτε αυτήν την IP και επικολλήστε την σε οποιοδήποτε πρόγραμμα περιήγησης ιστού. Βεβαιωθείτε ότι το σύστημά σας στο οποίο χρησιμοποιείτε το πρόγραμμα περιήγησης ιστού πρέπει να είναι συνδεδεμένο στο ίδιο δίκτυο.
Το ψηφιακό θερμόμετρο σας είναι έτοιμο και η θερμοκρασία θα ανανεώνεται αυτόματα στο πρόγραμμα περιήγησης ιστού μετά από κάθε 10 δευτερόλεπτα
Για να κάνετε αυτήν την ιστοσελίδα προσβάσιμη από το Διαδίκτυο, απλά πρέπει να ρυθμίσετε το Port Forwarding στο δρομολογητή / μόντεμ σας. Ελέγξτε τον πλήρη κώδικα και το βίντεο παρακάτω.
Ελέγξτε επίσης:
- Μετεωρολογικός σταθμός Raspberry Pi: Παρακολούθηση υγρασίας, θερμοκρασίας και πίεσης μέσω Διαδικτύου
- Παρακολούθηση Ζωντανής Θερμοκρασίας και Υγρασίας μέσω Διαδικτύου με χρήση του Arduino και του ThingSpeak