Η ιδέα δανείζεται από το έργο. ESP8266 Weather Display.
Αποφάσισα να το θυμηθώ.
Οι ακόλουθες εργασίες καθορίστηκαν:
- Ενημέρωση κώδικα που σχετίζεται με τη χρήση νέα έκδοση βιβλιοθήκες ArduinoJson.h.
- Επαναπρογράψτε τον κώδικα χρησιμοποιώντας τη λειτουργία millis () αντί για τη λειτουργία καθυστέρησης (). Είναι σαφές ότι με τη χρήση καθυστέρησης για να ορίσετε μια παύση μεταξύ αλλαγής πληροφοριών στην οθόνη, είναι αδύνατο να εφαρμοστούν οι έλεγχοι κουμπιών.
- Κάνε κατεβάστε σκίτσα μέσω Wifi;
- Απομακρύνετε από το ογκώδες Wemos D1 R2 στο μίνι Wemos D1 mini.
- Όποτε είναι δυνατόν Ρυθμίστε την οθόνη;
- Χρησιμοποιήστε μια έτοιμη θήκη με τρύπες για συσκευές για συσκευές LCD1602.
- Χρησιμοποιήστε τα τυπικά κουμπιά 6x6 που έχουν κολληθεί στο πινέλο. Προσθέστε κουμπιά ελέγχου φωτισμού, ένα κουμπί καρουσέλ για την αλλαγή των εμφανιζόμενων δεδομένων και ένα κουμπί για αναγκαστική ενημέρωση δεδομένων από το διακομιστή.
Χρησιμοποιήθηκαν τα ακόλουθα στοιχεία:
- Η θήκη είναι κατασκευασμένη από πλαστικό ABS με σετ καλύμματος για τα κουμπιά.
- Αντηρίδες νάυλον 6 + 5 mm αρσενικό M3 μαύρο, 4 τεμάχια.
- M3 καρφιά νάυλον μαύρο, 4 τεμάχια?
- Νάιλον στύλοι 6 + 5 mm αρσενικό Μ2 λευκό, 3 τεμ.
- Βάση νάυλον 6 mm μητέρα λευκό, 1 τεμάχιο.
- Βάση νάυλον 8 mm μητέρα λευκό, 1 τεμάχιο.
- Ράφια νάυλον 10 χιλιοστά μητέρα λευκό, 2 τεμάχια.
- LCD 1602 (I2C), κίτρινο.
- Wemos d1 mini;
- Wemos d1 DC-Power ασπίδα?
- Πινέλο 3x7;
- Κουμπιά 6x6, ύψος 7 mm, 3pcs.
- Dupont σύρματα 10cm μητέρα μητέρα, 4 τεμάχια?
- 24 AWG σύρματα μαύρα και κόκκινα.
- Σύρματα από σιλικόνη 20 AWG μπλε και άσπρο.
- Αντίσταση 5 kOhm - 2 τεμ., 10 kOhm - 1 τεμάχιο (που έρχεται σε επαφή με το χέρι)?
- Τροφοδοτικό 9V 1A;
- Εποξειδική κόλλα δύο συστατικών.
Η χρησιμοποιούμενη περίπτωση έχει πολλά πλεονεκτήματα. Πρώτον, εκτός από την οθόνη, η τυποποιημένη τυπική μονάδα αποσύνδεσης 3x7 με τα στοιχεία που είναι εγκατεστημένα και στις δύο πλευρές τοποθετείται τέλεια σε ύψος. Δεύτερον, σε δύο άκρα έχει ορθογώνια ανοίγματα για ψύξη. Αποδείχθηκε ότι οι βραχυκυκλωτήρες μεταξύ αυτών των τρυπών κόβονται τέλεια με μίνι-αρχεία 3 και 4 mm. Αν κόψετε δύο ζευγάρια και κόψετε μια μικρή ορθογώνια οπή στην θήκη, τότε ο συνδετήρας τροφοδοσίας DC-005 πηγαίνει τέλεια στην τρύπα που σχηματίζεται με πολύπλοκη γεωμετρία. Επίσης, το πίσω μέρος αυτής της θήκης έχει μια μεγάλη τετράγωνη τρύπα, η οποία, προφανώς, έπρεπε να εγκαταστήσει μπαταρίες.Μέσα από αυτό, είναι εύκολο να συνδέσετε κάτι μέσα χωρίς να αποσυναρμολογήσετε την θήκη. Στη συνέχεια, μπορεί απλά να κλείσει με γυαλί ή πλαστικό.
Δημιουργία προόδου:
Πρώτον, κατασκευάστηκε ένα πρωτότυπο σε ένα χαρτόνι.
Στη συνέχεια, η υπόθεση ολοκληρώνεται με ένα αρχείο.
Μετά από αυτό, τα κύρια εξαρτήματα είναι συγκολλημένα και το εξάρτημα πραγματοποιείται. Τα πόδια ήταν ειδικά λυγισμένα έτσι ώστε οι αποσπώμενες αρθρώσεις να ταιριάζουν σε ύψος. Κάποια ράφια από νάυλον έπρεπε να τοποθετηθούν έτσι ώστε όλα τα κουμπιά να ήταν στο ίδιο ύψος.
Ως αποτέλεσμα, η μπροστινή πλευρά του πίνακα με κουμπιά, αντιστάσεις και καλώδια έχει ως εξής:
Ως αποτέλεσμα, τα εσωτερικά της συσκευής μοιάζουν με αυτό:
Όταν συναρμολογηθεί, η συσκευή μοιάζει με αυτή:
Αντιμετώπιση δυσκολιών:
- Για πολύ καιρό δεν κατάλαβα γιατί τα κουμπιά δεν λειτούργησαν, παρόλο που το πολύμετρο έδειξε καθαρά 0 όταν πιέζονταν τα κουμπιά και 4,6 - 5,0 V όταν πιέζονταν (ανάλογα με την τροφοδοσία). Αποδείχθηκε ότι στις συσκευές Wemos / Lolin είναι απαραίτητο να υποδείξετε τους αριθμούς GPIO ως αριθμούς καρφίτσας στο σκίτσο. Για παράδειγμα, το D5 είναι GPIO14. Αυτός είναι ο 14ος ακροδέκτης.
const κουμπί intPin = 14;
- Για να δείτε τον καιρό, η κατάσταση είναι απαραίτητη:
currentMillis - previousMillis == weatherTime
Αυστηρή αλληλογραφία, διότι πρέπει να γίνει μία φορά.
Για να υποβάλετε αίτημα στον διακομιστή, η προϋπόθεση είναι απαραίτητη:currentMillis - previousMillis> = getDataTime
Χαλαρή συμμόρφωση, επειδή εκτελείται μέχρι να οριστεί η σημαία "λήψη δεδομένων".
Στην πραγματικότητα, αυτό δεν είναι προφανές, και για να καταλάβουμε αυτό, χρειάστηκε πολύ καιρό. - Επίσης, έπρεπε να βασανίσω με την απάντηση του διακομιστή:
String weather = ρίζα ["weather"] [0] ["main"]; Περιγραφή συμβολοσειράς = root ["weather"] [0] ["περιγραφή"];
Το μηδέν ήταν εντελώς αναπάντητο. Αποδεικνύεται ότι στη Μόσχα υπάρχουν δύο μετεωρολογικοί σταθμοί και ο δεύτερος δεν λειτουργεί πάντα (για να λάβετε δεδομένα από αυτό, πρέπει να καθορίσετε [1] εάν είναι ενεργός).
Η αποθήκη με κώδικα και βιβλιοθήκες βρίσκεται εδώ.