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

Παρακολούθηση θερμοκρασίας και υγρασίας: 6 βήματα (με εικόνες)
Παρακολούθηση θερμοκρασίας και υγρασίας: 6 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση θερμοκρασίας και υγρασίας: 6 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση θερμοκρασίας και υγρασίας: 6 βήματα (με εικόνες)
Βίντεο: 6 πράγματα που δεν ξέρεις για το iPhone! | 2022 Tips 2024, Ιούλιος
Anonim
Παρακολούθηση θερμοκρασίας και υγρασίας
Παρακολούθηση θερμοκρασίας και υγρασίας
Παρακολούθηση θερμοκρασίας και υγρασίας
Παρακολούθηση θερμοκρασίας και υγρασίας

Σε αυτό το διδακτικό θα σας δείξω πώς να φτιάξετε τη δική σας συσκευή παρακολούθησης θερμοκρασίας και υγρασίας για το σαλόνι σας. Η συσκευή διαθέτει επίσης δυνατότητες WiFi, με σκοπό την καταγραφή των δεδομένων σε απομακρυσμένο διακομιστή (π.χ. Raspberry Pi) και την πρόσβαση σε αυτά αργότερα μέσω μιας απλής διεπαφής ιστού.

Τα κύρια μέρη της συσκευής είναι ένας μικροελεγκτής ESP8266, ένας αισθητήρας θερμοκρασίας και υγρασίας DHT11 και μια οθόνη LCD 16x4 χαρακτήρων. Το έργο είναι πλήρως ανοιχτού κώδικα, οπότε μη διστάσετε να κατεβάσετε το σχηματικό, διάταξη πίνακα και τα αρχεία σχεδίασης για το περίβλημα και να κάνετε όποιες αλλαγές σας αρέσουν.

Βήμα 1: Εργαλεία και ανταλλακτικά

Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά

Για να φτιάξετε την οθόνη, θα χρειαστείτε τα ακόλουθα μέρη:

1 x ESP-12F [2 €]-Από όσο γνωρίζω τα ESP-12E και ESP-12F είναι βασικά πανομοιότυπα, με τη διαφορά ότι το ESP-12F έχει καλύτερη κεραία.

1 x Αισθητήρας θερμοκρασίας και υγρασίας DHT11 [0,80 €] - Το DHT22 θα λειτουργήσει επίσης, αλλά θα πρέπει να γίνουν κάποιες αλλαγές στο μοντέλο 3D του περιβλήματος, το DHT22 είναι επίσης λίγο πιο ακριβό.

1 x 16x4 Χαρακτήρας LCD 5V [3,30 €] - Ναι, θα χρειαστείτε ένα 5V καθώς το PCB έχει σχεδιαστεί έτσι ώστε η οθόνη LCD να τροφοδοτείται απευθείας από 5V και όχι από τον ρυθμιστή τάσης. Αυτό έγινε προκειμένου να μειωθεί το φορτίο στον ρυθμιστή τάσης αλλά και επειδή οι οθόνες 5V τείνουν να είναι φθηνότερες. Αλλά μην ανησυχείτε, παρόλο που το ESP8266 λειτουργεί σε 3.3V θα συνεχίσει να λειτουργεί μια χαρά.

1 x LD1117V33 SMD Voltage Regulator, επίσης γνωστό ως LD33 (πακέτο SOT223) [0,80 €]

1 x 100nF Κεραμικός πυκνωτής SMD (πακέτο 0603)

1 x 10uF Tantalum SMD Capacitor (συσκευασία 3528)

1 x 10K SMD Resistor (πακέτο 0805)

1 x κατσαρόλα ξυρίσματος 10Κ (μέσω τρύπας)

1 x 47Ω SMD Resistor (πακέτο 0805) - Αυτό είναι μόνο για τον περιορισμό του ρεύματος που πηγαίνει στον οπίσθιο φωτισμό της οθόνης LCD. Πειραματιστείτε ελεύθερα με διαφορετικές τιμές αντίστασης και επιλέξτε την ένταση που προτιμάτε.

1 x SMD Momentary Switch [0,80 €] - Το συγκεκριμένο που χρησιμοποίησα είναι αυτό, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε στιγμιαίο διακόπτη θέλετε με το ίδιο αποτύπωμα. Wasμουν επίσης σε θέση να βρω τους ίδιους διακόπτες στο eBay για λιγότερο, παίρνοντας περισσότερους από έναν.

1 x 5.5x2.1mm Jack Jack (βάση πάνελ) [0,50 €] - Αυτό που χρησιμοποίησα έχει διάμετρο κοπής 8mm και μήκος 9mm. Μπορεί εύκολα να βρεθεί στο eBay αναζητώντας το "Panel Mount DC Jack" (δείτε συνημμένη εικόνα).

1 x 2.54mm (100mil) 40-pin αρσενική κεφαλίδα καρφιτσών (μέσω οπής)

1 x 2,54mm (100mil) 40-pin Machine Female Pin Header (Through hole)

1 x 2,54mm (100mil) Jumper - Είναι το ίδιο με αυτά που χρησιμοποιούνται σε μητρικές πλακέτες υπολογιστών.

4 x Μ3 μπουλόνια 8 mm

4 ένθετα με σπείρωμα M3 4x4mm - Μπορούν να βρεθούν εύκολα αναζητώντας την ένδειξη "M3 Press -In Brass Copper Inserts" στο eBay (δείτε συνημμένη εικόνα).

4 x Μ2 μπουλόνια 12mm

4 x Μ2 Καρύδια

1 x Καλώδιο σύνδεσης USB τύπου A έως 5,5x2,1mm DC [1,5 €] - Αυτό θα επιτρέψει την τροφοδοσία της συσκευής σας είτε από έναν τυπικό φορτιστή τηλεφώνου είτε σχεδόν από οποιονδήποτε υπολογιστή με θύρα USB. Η συσκευή αντλεί μόνο 300mA τη χειρότερη περίπτωση και 250mA κατά μέσο όρο, οπότε ακόμη και μια θύρα USB 2.0 θα το κάνει.

1 x PCB - Το πάχος της πλακέτας δεν είναι κρίσιμο, οπότε απλώς επιλέξτε 1,6 mm, η οποία είναι συνήθως η φθηνότερη επιλογή με τους περισσότερους κατασκευαστές PCB.

3 x Τεμάχια Stranded Wire (περίπου 60mm το καθένα)

3 x Τεμάχια σωλήνων θερμότητας (περίπου 10mm το καθένα)

Και τα ακόλουθα εργαλεία:

Συγκολλητικό σίδερο

Μετατροπέας USB σε σειριακό - Θα το χρειαστείτε για τον προγραμματισμό του ESP8266 στον πίνακα.

Κατσαβίδι Phillips ή/και Hex Key - Ανάλογα με τον τύπο των βιδών που θα χρησιμοποιήσετε.

Τρισδιάστατος εκτυπωτής - Εάν δεν έχετε πρόσβαση σε τρισδιάστατο εκτυπωτή, μπορείτε πάντα να χρησιμοποιήσετε ένα γενικό πλαστικό πλαίσιο έργου και να κάνετε τις αποκοπές μόνοι σας με ένα Dremel. Οι ελάχιστες εσωτερικές διαστάσεις για ένα τέτοιο κουτί θα πρέπει να είναι ύψος 24mm, μήκος 94mm και πλάτος 66mm. Θα χρειαστεί επίσης να χρησιμοποιήσετε stand-off 8 mm M2 για την τοποθέτηση της οθόνης LCD.

Dremel - Απαιτείται μόνο αν δεν πάτε για το περίβλημα με 3D εκτύπωση.

Βήμα 2: Κατασκευή του PCB

Κατασκευή του PCB
Κατασκευή του PCB
Κατασκευή του PCB
Κατασκευή του PCB
Κατασκευή του PCB
Κατασκευή του PCB

Το πρώτο βήμα είναι να φτιάξετε το PCB. Μπορείτε να το κάνετε είτε χαράζοντάς το μόνοι σας είτε πηγαίνοντας στον ιστότοπο του αγαπημένου σας κατασκευαστή PCB και πραγματοποιήστε μια παραγγελία. Εάν δεν σκοπεύετε να κάνετε οποιεσδήποτε αλλαγές στη διάταξη του πίνακα, μπορείτε απλά να πάρετε το αρχείο ZIP που περιέχει τα αρχεία gerber που επισυνάπτονται σε αυτό το βήμα και να το στείλετε απευθείας στον κατασκευαστή. Σε περίπτωση που θέλετε να κάνετε αλλαγές, μπορείτε να βρείτε τα σχηματικά αρχεία και τα σχέδια διάταξης του πίνακα εδώ.

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

Ο σύνδεσμος U3 είναι εκεί που πρόκειται να συνδεθεί ο αισθητήρας DHT11. Στην ιδανική περίπτωση, θα πρέπει να χρησιμοποιήσετε μια γυναικεία κεφαλίδα με γωνία 90 ° για αυτόν τον σκοπό. Αλλά αν σας αρέσω δεν μπορείτε να βρείτε ένα, απλώς πάρτε ένα ίσιο και λυγίστε το μόνοι σας. Εάν το κάνετε αργότερα, τα καλώδια του DHT11 θα είναι επίσης λίγο σύντομα, οπότε θα πρέπει να κολλήσετε μερικές επεκτάσεις. Η απόσταση μεταξύ της κεφαλίδας του πείρου και του αισθητήρα μόλις συνδεθεί πρέπει να είναι περίπου 5 mm.

Ο λόγος για τον οποίο θέλετε να χρησιμοποιήσετε κατεργασμένη κεφαλίδα καρφίτσας είναι επειδή οι οπές είναι μικρότερες σε σύγκριση με τις κανονικές γυναικείες κεφαλίδες καρφιτσών. Έτσι, τα καλώδια του αισθητήρα μπορούν να κάθονται εκεί δημιουργώντας μια σταθερή σύνδεση. Αλλά μπορείτε επίσης να δοκιμάσετε να κολλήσετε το DHT11 σε ένα κομμάτι ανδρικής κεφαλίδας καρφίτσας και να το συνδέσετε με αυτόν τον τρόπο σε μια κανονική γωνιακή κεφαλίδα θηλυκής καρφίτσας, η οποία θα πρέπει να λειτουργεί εξίσου καλά.

Βήμα 3: Κάνοντας το περίβλημα

Κάνοντας το περίβλημα
Κάνοντας το περίβλημα
Κάνοντας το περίβλημα
Κάνοντας το περίβλημα
Κάνοντας το περίβλημα
Κάνοντας το περίβλημα
Κάνοντας το περίβλημα
Κάνοντας το περίβλημα

Τώρα που το PCB είναι κολλημένο, ήρθε η ώρα να φτιάξετε το περίβλημα. Υπάρχουν δύο διαφορετικά μέρη που πρέπει να εκτυπωθούν, το κύριο σώμα του περιβλήματος και το καπάκι. Το καπάκι διαθέτει επίσης οπές στερέωσης για την τοποθέτησή του στον τοίχο σας.

Και τα δύο μέρη μπορούν να εκτυπωθούν με ένα τυπικό ακροφύσιο 0,4mm σε ύψος στρώματος 0,2mm, για τη δική μου περίπτωση ο χρόνος εκτύπωσης ήταν περίπου 4 ώρες και για τα δύο μέρη συνδυαστικά. Το καπάκι δεν απαιτεί κανένα στήριγμα για το κύριο μέρος του περιβλήματος, ωστόσο, κυρίως για το τμήμα κάτω από τις βιδωτές υποδοχές. Μετά την εκτύπωση να είστε πολύ προσεκτικοί με την αφαίρεση των στηριγμάτων, κατάφερα να σπάσω ένα από τα stand-off της οθόνης LCD ενώ το έκανα αυτό και έπρεπε να το κολλήσω ξανά με υπερκολλήματα.

Το περίβλημα έχει σχεδιαστεί στο FreeCAD, οπότε αν θέλετε να κάνετε οποιεσδήποτε αλλαγές θα πρέπει να είναι αρκετά απλό. Τα αρχεία STL για την εκτύπωση του περιβλήματος καθώς και τα αρχεία σχεδιασμού του FreeCAD μπορείτε να τα βρείτε στο Thingiverse.

Βήμα 4: Συναρμολόγηση της οθόνης

Με το περίβλημα τυπωμένο, χρόνος για να τα συνδυάσετε όλα. Αρχικά, τοποθετήστε την οθόνη LCD μέσα στη θήκη και σύρετε την προς τα αριστερά, έτσι ώστε να υπάρχει κενό μεταξύ αυτής και της οπής για τον αισθητήρα.

Εικόνα
Εικόνα

Στη συνέχεια, τοποθετήστε το PCB πάνω του, με τον αισθητήρα ήδη προσαρτημένο στην κεφαλίδα του πείρου.

Εικόνα
Εικόνα

Στη συνέχεια, σπρώξτε τον αισθητήρα στην τρύπα, σύρετε την οθόνη LCD στη θέση της και τοποθετήστε το PCB στην κεφαλίδα του πείρου. Τώρα στερεώστε την οθόνη LCD στη θέση της χρησιμοποιώντας παξιμάδια και μπουλόνια M2 και κολλήστε το PCB στην κεφαλίδα του πείρου.

Εικόνα
Εικόνα

Στη συνέχεια, τοποθετήστε το βύσμα τροφοδοσίας στη θέση του, συνδέστε μερικά καλώδια και κολλήστε τα άλλα άκρα τους στο PCB. Η χρήση κάποιων σωλήνων θερμοσυρρίκνωσης εδώ θα ήταν επίσης μια καλή ιδέα.

Εικόνα
Εικόνα

Το τελευταίο βήμα είναι να εγκαταστήσετε τα μεταλλικά σπειρωτά ένθετα ώστε το καπάκι να βιδωθεί στη θέση του με μπουλόνια Μ3. Για το σκοπό αυτό, θα πρέπει να χρησιμοποιήσετε το κολλητήρι σας για να τα ζεστάνετε, ώστε να μπορούν να ωθηθούν στις τρύπες. Μπορείτε να ρίξετε μια ματιά σε αυτό το οδηγό εάν χρειάζεστε περισσότερες πληροφορίες σχετικά με την προσθήκη μεταλλικών νημάτων στις τρισδιάστατες εκτυπώσεις σας.

Εικόνα
Εικόνα

Βήμα 5: Ρύθμιση του διακομιστή

Ρύθμιση του διακομιστή
Ρύθμιση του διακομιστή

Πριν από τη μεταφόρτωση του υλικολογισμικού στο ESP8266 υπάρχει ένα ακόμη πράγμα που πρέπει να γίνει, το οποίο είναι η δημιουργία ενός διακομιστή για την καταγραφή των δεδομένων που λαμβάνει η συσκευή. Για το σκοπό αυτό, μπορείτε να χρησιμοποιήσετε σχεδόν οποιοδήποτε μηχάνημα Linux θέλετε, από ένα Raspberry Pi στο ιδιωτικό σας δίκτυο έως ένα σταγονίδιο DigitalOcean. Πήγα με το αργότερα, αλλά η διαδικασία είναι σχεδόν η ίδια ανεξάρτητα από το τι θα επιλέξετε.

Εγκατάσταση Apache, MySQL (MariaDB) και PHP

Πρώτα πρέπει να ρυθμίσουμε το LAMP ή με άλλα λόγια να εγκαταστήσουμε Apache, MySQL (MariaDB) και PHP στο διακομιστή. Για αυτό θα χρειαστεί να χρησιμοποιήσετε τον διαχειριστή πακέτων της διανομής σας, για χάρη του παραδείγματος θα χρησιμοποιήσω το apt που είναι ο διαχειριστής πακέτων που χρησιμοποιείται σχεδόν από κάθε διανομή με βάση το Debian, συμπεριλαμβανομένου του Raspbian.

sudo apt ενημέρωση

sudo apt εγκατάσταση apache2 mysql-server mysql-client php libapache2-mod-php php-mysql

Αφού γίνει αυτό, εάν τοποθετήσετε τη διεύθυνση IP του διακομιστή σας στη γραμμή διευθύνσεων του προγράμματος περιήγησής σας, θα πρέπει να μπορείτε να δείτε την προεπιλεγμένη σελίδα του Apache.

Ρύθμιση της βάσης δεδομένων

Τώρα χρειαζόμαστε μια βάση δεδομένων για την καταγραφή των δεδομένων. Αρχικά, συνδεθείτε στο MySQL ως root εκτελώντας, sudo mysql

Και δημιουργήστε τη βάση δεδομένων και έναν χρήστη με πρόσβαση σε αυτήν ως εξής, ΔΗΜΙΟΥΡΓΙΑ "ΑΙΣΘΗΤΗΡΕΣ" ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ

ΧΡΗΣΗ «αισθητήρων». ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ «θερμοκρασία» («id» bigint (20) NOT NULL AUTO_INCREMENT, «client_id» smallint (6) NOT NULL, «value» smallint (6) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (" id`)) ΚΙΝΗΤΗΡΑ = InnoDB; ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ `υγρασία` (` id` bigint (20) NOT NULL AUTO_INCREMENT, `client_id` smallint (6) NOT NULL,` value` smallint (6) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (" id`)) ΚΙΝΗΤΗΡΑ = InnoDB; ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ '[username]'@'localhost' IDENTIFIED BY '[password]'; ΧΟΡΗΓΗΣΗ ΟΛΩΝ ΤΩΝ ΠΡΟΤΙΜΙΣΜΑΤΩΝ ΣΕ 'αισθητήρες'.* ΣΕ 'αισθητήρες'@'localhost'; ΕΞΟΔΟΣ

Βεβαιωθείτε ότι έχετε αντικαταστήσει το [όνομα χρήστη] και τον [κωδικό πρόσβασης] με το πραγματικό όνομα χρήστη και κωδικό πρόσβασης για τον χρήστη MySQL που σας αρέσει. Επίσης, σημειώστε τα γιατί θα τα χρειαστείτε για το επόμενο βήμα.

Διαμόρφωση των σεναρίων καταγραφής και διεπαφής ιστού

Αλλάξτε στον κατάλογο/var/www/html που είναι η ρίζα εγγράφου του προεπιλεγμένου εικονικού κεντρικού υπολογιστή του Apache, διαγράψτε το αρχείο HTML που περιέχει την προεπιλεγμένη ιστοσελίδα και κατεβάστε τα σενάρια καταγραφής και διεπαφής ιστού μέσα σε αυτό.

cd/var/www/html

sudo rm index.html sudo wget https://raw.githubusercontent.com/magkopian/esp-arduino-temp-monitor/master/server/log.php sudo wget https://raw.githubusercontent.com/magkopian/esp- arduino-temp-monitor/master/server/index.php

Τώρα επεξεργαστείτε το σενάριο καταγραφής χρησιμοποιώντας το nano, sudo nano log.php

Θα πρέπει να αντικαταστήσετε το [όνομα χρήστη] και τον [κωδικό πρόσβασης] με το όνομα χρήστη και τον κωδικό πρόσβασης για τον χρήστη MySQL που δημιουργήσατε στο προηγούμενο βήμα. Επίσης, αντικαταστήστε το [κλειδί πελάτη] με μια μοναδική συμβολοσειρά και σημειώστε το. Αυτό θα χρησιμοποιηθεί ως κωδικός πρόσβασης, ώστε η οθόνη να μπορεί να πιστοποιηθεί στον διακομιστή.

Τέλος, επεξεργαστείτε το index.php με nano, sudo nano index.php

και αντικαταστήστε το [όνομα χρήστη] και τον [κωδικό πρόσβασης] με το όνομα χρήστη και τον κωδικό πρόσβασης για τον χρήστη MySQL όπως κάνατε με το σενάριο καταγραφής.

Ρύθμιση HTTPS (προαιρετικό)

Αυτό μπορεί να είναι προαιρετικό, αλλά εάν η σύνδεση μεταξύ του ESP8266 και του διακομιστή είναι μέσω Διαδικτύου, συνιστάται ιδιαίτερα να χρησιμοποιήσετε κάποια κρυπτογράφηση.

Δυστυχώς, δεν μπορείτε απλώς να προχωρήσετε και να χρησιμοποιήσετε κάτι όπως το Let's Encrypt για την απόκτηση πιστοποιητικού. Αυτό συμβαίνει επειδή τουλάχιστον τη στιγμή της σύνταξης, η βιβλιοθήκη πελάτη HTTP για το ESP8266 εξακολουθεί να απαιτεί το δακτυλικό αποτύπωμα του πιστοποιητικού να παρέχεται ως δεύτερο όρισμα κατά την κλήση του http.begin (). Αυτό σημαίνει ότι εάν χρησιμοποιείτε κάτι όπως το Let's Encrypt, θα πρέπει να επαναφέρετε το υλικολογισμικό στο τσιπ κάθε 3 μήνες για να ενημερώσετε το δακτυλικό αποτύπωμα του πιστοποιητικού μετά από κάθε ανανέωση.

Ένας τρόπος για αυτό, θα ήταν να δημιουργήσετε ένα αυτο-υπογεγραμμένο πιστοποιητικό που λήγει μετά από πολύ καιρό (π.χ. 10 χρόνια) και να διατηρήσετε το σενάριο καταγραφής στον δικό του εικονικό κεντρικό υπολογιστή με τον δικό του υποτομέα. Με αυτόν τον τρόπο, μπορείτε να έχετε τη διεπαφή ιστού για πρόσβαση στα δεδομένα σε ξεχωριστό υποτομέα, που θα χρησιμοποιεί ένα κατάλληλο πιστοποιητικό από μια αξιόπιστη αρχή. Η χρήση ενός πιστοποιητικού που έχει υπογραφεί σε αυτήν την περίπτωση δεν αποτελεί ζήτημα ασφάλειας, καθώς το δακτυλικό αποτύπωμα του πιστοποιητικού που το προσδιορίζει μοναδικά θα κωδικοποιηθεί στο υλικολογισμικό και το πιστοποιητικό θα χρησιμοποιηθεί μόνο από το ESP8266.

Πριν ξεκινήσουμε, θα υποθέσω ότι έχετε ήδη ένα όνομα τομέα και ότι μπορείτε να δημιουργήσετε υποτομείς σε αυτό. Έτσι, για να δημιουργήσετε ένα πιστοποιητικό που λήγει μετά από 10 χρόνια εκτελέστε την ακόλουθη εντολή και απαντήστε στις ερωτήσεις.

sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout /etc/ssl/private/sensors.key -out /etc/ssl/certs/sensors.crt

Δεδομένου ότι αυτό είναι ένα αυτο-υπογεγραμμένο πιστοποιητικό, αυτό που απαντάτε στις περισσότερες ερωτήσεις δεν έχει μεγάλη σημασία, εκτός από την ερώτηση που ζητά το Κοινό Όνομα. Εδώ θα χρειαστεί να παρέχετε τον πλήρη υποτομέα που πρόκειται να χρησιμοποιηθεί για αυτόν τον εικονικό κεντρικό υπολογιστή. Ο υποτομέας που θα δώσετε εδώ θα πρέπει να είναι ο ίδιος με το Όνομα διακομιστή που θα ορίσετε αργότερα στη διαμόρφωση του εικονικού κεντρικού υπολογιστή σας.

Στη συνέχεια, δημιουργήστε μια νέα διαμόρφωση εικονικού κεντρικού υπολογιστή, sudo nano /etc/apache2/sites-available/sensors-ssl.conf

με το ακόλουθο περιεχόμενο, ServerName [υποτομέας] DocumentRoot/var/www/αισθητήρες SSLEngine ON SSLCertificateKeyFile /etc/ssl/private/sensors.key SSLCertificateFile /etc/ssl/certs/sensors.crt Options +FollowSymlinks -Indexes AllowOverride All ErrorLog $/Erg error-ssl.log CustomLog $ {APACHE_LOG_DIR} /sensors-access-ssl.log συνδυασμένο

Και πάλι, φροντίστε να αντικαταστήσετε τον [υποτομέα] με τον ίδιο υποτομέα που χρησιμοποιήσατε με το πιστοποιητικό. Σε αυτό το σημείο θα χρειαστεί να απενεργοποιήσετε τον προεπιλεγμένο εικονικό κεντρικό υπολογιστή του Apache, sudo a2dissite 000-προεπιλογή

αλλάξτε το όνομα του ριζικού καταλόγου εγγράφου, sudo mv/var/www/html/var/www/αισθητήρες

και τέλος ενεργοποιήστε τον νέο εικονικό κεντρικό υπολογιστή και επανεκκινήστε το Apache, sudo a2ensite αισθητήρες-ssl

sudo systemctl επανεκκίνηση apache2

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

openssl x509 -noout -δακτυλικό αποτύπωμα -sha1 -πληροφόρηση pem -in /etc/ssl/certs/sensors.crt

Το http.begin () αναμένει ότι οι οριοθετητές μεταξύ των byte του δακτυλικού αποτυπώματος θα είναι κενά, οπότε θα πρέπει να αντικαταστήσετε τα άνω και κάτω τελεία με διαστήματα πριν το χρησιμοποιήσετε στον κώδικά σας.

Τώρα, εάν δεν θέλετε να χρησιμοποιήσετε ένα αυτο-υπογεγραμμένο πιστοποιητικό για τη διεπαφή ιστού, ρυθμίστε έναν νέο υποτομέα και δημιουργήστε μια νέα διαμόρφωση εικονικού κεντρικού υπολογιστή, sudo nano /etc/apache2/sites-available/sensors-web-ssl.conf

με το ακόλουθο περιεχόμενο, ServerName [subdomain] DocumentRoot/var/www/sensors #SSLEngine ON #SSLCertificateFile /etc/letsencrypt/live/on'ssubdomain] /letsencrypt/liv/

Φροντίστε να αντικαταστήσετε τον [υποτομέα] με τον υποτομέα που έχετε ρυθμίσει για τη διεπαφή ιστού. Στη συνέχεια, ενεργοποιήστε τον νέο εικονικό κεντρικό υπολογιστή, επανεκκινήστε το Apache, εγκαταστήστε το certbot και λάβετε ένα πιστοποιητικό για τον νέο υποτομέα από το Let's Encrypt, sudo a2ensite αισθητήρες-web-ssl

sudo systemctl επανεκκίνηση apache2 sudo apt ενημέρωση sudo apt εγκατάσταση certbot sudo certbot certonly --apache -d [υποτομέας]

Αφού λάβετε το πιστοποιητικό, επεξεργαστείτε ξανά τη διαμόρφωση του εικονικού κεντρικού υπολογιστή για να σχολιάσετε τις γραμμές SSLEngine, SSLCertificateFile, SSLCertificateKeyFile και SSLCertificateChainFile και κάντε επανεκκίνηση του Apache.

Και τώρα μπορείτε να χρησιμοποιήσετε τον πρώτο υποτομέα που χρησιμοποιεί το αυτο-υπογεγραμμένο πιστοποιητικό για την αποστολή των δεδομένων από το ESP8266 στον διακομιστή, ενώ τον δεύτερο για την πρόσβαση στη διεπαφή ιστού από το πρόγραμμα περιήγησής σας. Το Certbot θα φροντίσει επίσης για την αυτόματη ανανέωση του πιστοποιητικού Let's Encrypt κάθε 3 μήνες, χρησιμοποιώντας έναν συστηματικό χρονοδιακόπτη ο οποίος θα πρέπει να είναι ενεργοποιημένος από προεπιλογή.

Βήμα 6: Προγραμματισμός του ESP8266

Προγραμματισμός του ESP8266
Προγραμματισμός του ESP8266

Τέλος, το μόνο που απομένει είναι να φορτώσετε το υλικολογισμικό στον μικροελεγκτή. Για να το κάνετε αυτό, κάντε λήψη του πηγαίου κώδικα για το υλικολογισμικό από εδώ και ανοίξτε τον χρησιμοποιώντας το Arduino IDE. Θα χρειαστεί να αντικαταστήσετε το [SSID] και το [Password] με το πραγματικό SSID και τον κωδικό πρόσβασης του δικτύου WiFi. Θα χρειαστεί επίσης να αντικαταστήσετε το [Client ID] και το [Client Key] στην κλήση συνάρτησης sprintf με αυτά που χρησιμοποιήσατε στο σενάριο PHP του διακομιστή. Τέλος, θα πρέπει να αντικαταστήσετε το [Host] με το όνομα τομέα ή τη διεύθυνση IP του διακομιστή. Εάν χρησιμοποιείτε HTTPS, θα χρειαστεί επίσης να δώσετε το δακτυλικό αποτύπωμα του πιστοποιητικού σας ως δεύτερο όρισμα στην κλήση συνάρτησης του http.begin (). Έχω εξηγήσει πώς να αποκτήσετε το δακτυλικό αποτύπωμα του πιστοποιητικού στην ενότητα "Ρύθμιση HTTPS" στο προηγούμενο βήμα.

Στη συνέχεια, εάν δεν το έχετε κάνει ήδη, θα χρειαστεί να εγκαταστήσετε το βασικό πακέτο ESP8266 Community χρησιμοποιώντας το Board Manager του Arduino IDE. Μόλις γίνει αυτό, επιλέξτε το NodeMCU 1.0 (μονάδα ESP-12E) από το μενού των πλακέτων. Στη συνέχεια, θα χρειαστεί να εγκαταστήσετε τη βιβλιοθήκη SimpleDHT χρησιμοποιώντας τη Διαχείριση βιβλιοθηκών. Τέλος, πατήστε το κουμπί Επαλήθευση στην επάνω αριστερή γωνία του παραθύρου IDE για να βεβαιωθείτε ότι ο κώδικας μεταγλωττίζεται χωρίς σφάλματα.

Και τώρα, ήρθε επιτέλους η ώρα να κάψετε το υλικολογισμικό στον μικροελεγκτή. Για να το κάνετε αυτό, μετακινήστε το βραχυκυκλωτήρα JP1 στα δεξιά, έτσι ώστε το GPIO0 του ESP8266 να συνδεθεί στη γείωση, το οποίο θα ενεργοποιήσει τη λειτουργία προγραμματισμού. Στη συνέχεια, συνδέστε το USB σε σειριακό μετατροπέα χρησιμοποιώντας καλώδια jumper στην κεφαλίδα προγραμματισμού που φέρει την ένδειξη P1. Ο πείρος 1 της κεφαλίδας προγραμματισμού είναι γειωμένος, ο πείρος 2 είναι ο πείρος λήψης του ESP8266 και ο ακροδέκτης 3 η μετάδοση. Χρειάζεστε τη λήψη του ESP8266 για να μεταβείτε στη μετάδοση του USB σε σειριακό μετατροπέα, τη μετάδοση στη λήψη και φυσικά τη γείωση στη γείωση.

Τέλος, τροφοδοτήστε τη συσκευή με 5V χρησιμοποιώντας το καλώδιο υποδοχής USB σε DC και συνδέστε τον μετατροπέα USB σε σειριακό στον υπολογιστή σας. Θα πρέπει τώρα να μπορείτε να δείτε την εικονική σειριακή θύρα όπου είναι συνδεδεμένο το ESP8266, μόλις ανοίξετε το μενού εργαλείων στο IDE σας. Τώρα, απλώς πατήστε το κουμπί Μεταφόρτωση και αυτό είναι όλο! Εάν όλα πήγαν όπως αναμενόταν, θα πρέπει να μπορείτε να δείτε τις ενδείξεις θερμοκρασίας και υγρασίας στην οθόνη LCD της συσκευής. Αφού συνδεθεί το ESP8266 στο δίκτυό σας και αρχίσει να επικοινωνεί με το διακομιστή, η τρέχουσα ημερομηνία και ώρα θα εμφανίζονται επίσης στην οθόνη.

Μετά από μερικές ώρες, όταν ο διακομιστής θα έχει συλλέξει μια καλή ποσότητα δεδομένων, θα πρέπει να μπορείτε να δείτε τους πίνακες θερμοκρασίας και υγρασίας, μεταβαίνοντας στο http (s): // [host] /index.php?client_id= [id του πελάτη]. Όπου [κεντρικός υπολογιστής] είναι είτε η διεύθυνση IP του διακομιστή σας είτε ο υποτομέας που χρησιμοποιείτε για τη διεπαφή ιστού και [αναγνωριστικό πελάτη] το αναγνωριστικό πελάτη της συσκευής το οποίο αν το αφήσετε στην προεπιλεγμένη τιμή του θα πρέπει να είναι 1.

Συνιστάται: