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

Tweerstationneke A.k.a. Ολλανδικός καιρός σταθμός: 4 βήματα
Tweerstationneke A.k.a. Ολλανδικός καιρός σταθμός: 4 βήματα

Βίντεο: Tweerstationneke A.k.a. Ολλανδικός καιρός σταθμός: 4 βήματα

Βίντεο: Tweerstationneke A.k.a. Ολλανδικός καιρός σταθμός: 4 βήματα
Βίντεο: НАША ЖИЗНЬ ИЗМЕНИЛАСЬ ПОСЛЕ ПОЯВЛЕНИЯ ............ 2024, Ιούλιος
Anonim
Tweerstationneke A.k.a. Ολλανδικός Μετεωρολογικός Σταθμός
Tweerstationneke A.k.a. Ολλανδικός Μετεωρολογικός Σταθμός

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

Έχει σχεδιαστεί γύρω από δύο ολλανδικές ιστοσελίδες. Μάλλον μπορείτε να το δείτε στον αστείο τοπικό τίτλο αυτού του θέματος! Το ένα δίνει την τοπική πρόβλεψη ανά πόλη κάθε 10 λεπτά σε μορφή json. Το άλλο δίνει την πρόγνωση της βροχής για τις επόμενες δύο ώρες σε μορφή απλού κειμένου που είναι πάντα βολικό να γνωρίζετε. Είμαι βέβαιος ότι εάν δεν ζείτε στην Ολλανδία, μπορείτε εύκολα να προσαρμόσετε αυτό το θέμα σε οποιαδήποτε άλλη υπηρεσία.

Προμήθειες

  • Ένας πίνακας ESP8266. προτείνετε να χρησιμοποιήσετε ένα μίνι Wemos D1
  • Οθόνη TFT 1,8 ιντσών με 128*160 κουκκίδες. Χρώμα 16 bit
  • Λίγα καλώδια
  • Το πρόγραμμα όπως είναι ή για να ξεκινήσετε για να δημιουργήσετε το δικό σας
  • Ένα ωραίο κουτί για να τα συνδυάσετε όλα. Χρησιμοποιήστε ένα τυπικό ή εκτυπώστε το δικό σας με το συνημμένο σχέδιο

Βήμα 1: Φτιάξτε το Πρωτότυπο

Φτιάξτε το Πρωτότυπο
Φτιάξτε το Πρωτότυπο

Σύνδεση οθόνης και χειριστηρίου

Χρησιμοποιήστε ένα μικρό επίπεδο καλώδιο και κολλήστε τον πίνακα και την οθόνη TFT μαζί. Χρησιμοποιήστε τη λίστα για να συνδέσετε σωστά τα εξαρτήματα ιόντων

ΟΘΟΝΗ TFT ------------------ WEMOS

LED ------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0- --------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ----------------------------- GNDVCC --------------------- ---------- 3V3

Εναλλακτικά μπορείτε να βάλετε το LED στο 3v3 αντί για τον πείρο D8. Έχω χρησιμοποιήσει την καρφίτσα D8 για να έχω τη συσκευή να κοιμάται γύρω στις 23:00 το βράδυ και να ξυπνάω ξανά στις 07:00. Αποτελεσματική θα είναι η πρώτη στιγμή που διαβάζει το δελτίο καιρού μετά από αυτό το διάστημα, αφού διαβάζει την κεφαλίδα για να ελέγξει την ώρα. Δεν υπάρχει ρολόι πραγματικού χρόνου σε αυτήν τη συσκευή.

Εάν όλα αυτά λειτουργούν, προσθέστε το καλώδιο usb στο Wemos και φορτώστε το λογισμικό. Εάν όλα λειτουργούν, μπορείτε να ξεκινήσετε την κατασκευή του κουτιού.

Βήμα 2: Σχεδιασμός προγράμματος

Σχεδιασμός Προγράμματος
Σχεδιασμός Προγράμματος

Οι ιδέες μου για αυτήν τη συσκευή καιρού όπου

  • Εύκολα προσαρμόσιμο σε άλλο περιβάλλον wifi
  • Εμφάνιση πρόγνωσης καιρού και πρόβλεψης βροχής
  • Χωρίς κουμπιά
  • Χωρίς ήχο, απλό qui, χωρίς φασαρία

Έχοντας αυτό κατά νου, δημιούργησα ένα πρόγραμμα το οποίο ξεκινά με τον κωδικό WifiManager όταν δεν μπορεί να ανακαλύψει ένα γνωστό δίκτυο Wifi. Δημιουργεί το δικό του δίκτυο και εμφανίζει το όνομα στην οθόνη. Αυτό σας δίνει την ευκαιρία να ορίσετε τις παραμέτρους Wifi στο δικό σας οικιακό δίκτυο.

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

Οι πληροφορίες για τον καιρό λαμβάνονται από τον ιστότοπο σε μήνυμα json style. Οι πληροφορίες σε αυτό μετατρέπονται και αποθηκεύονται σε καθολικές μεταβλητές. Με αυτόν τον τρόπο μπορούμε να αποσυνδέσουμε την ανάκτηση των πληροφοριών από την εμφάνιση τους. Δεν υπάρχει κανένας λόγος να ανακτήσουμε τον καιρό γρηγορότερα μία φορά ανά 10 λεπτά.

Η απόκτηση της βροχής είναι ακόμα πιο απλή. Σερβίρεται σε μορφή απλού κειμένου, με την ποσότητα βροχής να αναμένεται ως τιμή 0..255. μια κάθετη μπάρα? ένα χρόνο σε κάθε γραμμή. Αυτό κάθε 5 λεπτά για τις επόμενες 2 ώρες. Η τιμή βροχής παρέχεται με έξυπνο τρόπο όπου οι μικρές τιμές δίνουν περισσότερο χώρο για να δείξουν τη διαφορά ως μεγαλύτερες τιμές. Ο τύπος που χρησιμοποιείται είναι ο εξής:

mmhour = στρογγυλή (ισχύς (10, (τιμή βροχής - 109) / 32) * 10) / 10;

Σημειώστε ότι οι "φορές 10, διαιρέστε με 10" είναι τέχνασμα για να διασφαλίσετε ότι έχουμε 1 δεκαδικό πίσω από την τελεία. Ανάλογα με τη μέγιστη αναμενόμενη βροχή τις επόμενες 2 ώρες, χρησιμοποιούνται 3 κλίμακες για το γράφημα.

  1. Αναμένεται μέγιστο 5 mm/ώρα
  2. Αναμένεται μέγιστο 20 mm/ώρα
  3. Η μέγιστη τιμή λαμβάνεται από την υψηλότερη τιμή στην πρόβλεψη

Εδώ, στην Ολλανδία, η τιμή όλων των εποχών είναι περίπου 80 mm/ώρα. έτσι αυτή η κλίμακα θα είναι τέλεια. Για άλλες χώρες μπορεί να είναι σοφό να το αλλάξουμε αυτό.

Βήμα 3: Κωδικός προγράμματος

Κωδικός Προγράμματος
Κωδικός Προγράμματος

Ρυθμίσεις επεξεργαστή

Το λογισμικό για αυτήν τη συσκευή καιρού δημιουργείται στο περιβάλλον προγραμματισμού Arduino. Θα το βρείτε συνημμένο εδώ για τη διευκόλυνσή σας. Χρησιμοποιήστε το ως έχει? ή να το αλλάξετε ανάλογα με τις ανάγκες σας. Όλο το κείμενο που μπορεί να εμφανιστεί στην οθόνη TFT ΟΡΙΖΕΤΑΙ πάνω από το πρόγραμμα. που σημαίνει ότι μπορείτε εύκολα να το αλλάξετε στη δική σας γλώσσα αν θέλετε. Χρησιμοποίησα το Wemos D1 mini, αλλά παρόμοιες σανίδες θα λειτουργήσουν επίσης.

Στο περιβάλλον Arduino χρησιμοποίησα τις ακόλουθες ρυθμίσεις.

  • Πίνακας: LOLIN (WEMOS) D1 RA & Mini
  • Ταχύτητα μεταφόρτωσης: 115200
  • Συχνότητα CPU: 80 MHz
  • Μέγεθος φλας: 4M (Χωρίς SPIFFS) Απενεργοποιημένη χαμηλότερη μνήμη V2

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

Χρησιμοποιήστε το αρχείο.ino και φορτώστε το στον επεξεργαστή arduino. Ρυθμίστε τον πίνακα στον επεξεργαστή. Επισυνάψτε το αρχείο κεφαλίδας που διασφαλίζει ότι οι απαιτούμενες συστοιχίες PROGMEM σε στυλ C περιλαμβάνονται στο πρόγραμμα.

κάρτα SD

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

Αν και ξοδεύω πολύ χρόνο προσπαθώντας να κάνω την κάρτα SD να λειτουργήσει με την οθόνη, δεν κατάφερα να έχω μια λειτουργική κατάσταση. Θα μπορούσα να χρησιμοποιήσω την οθόνη. ανακτήστε ένα αρχείο από την κάρτα SD με επιτυχία, αλλά μετά από αυτό δεν μπορούσα πλέον να φτάσω στην οθόνη TFT. Η αλλαγή βιβλιοθηκών, η σειρά των βιβλιοθηκών και το «γδύσιμο» του προγράμματος στο μικρότερο σώμα για να αποκλείσω άλλες δυνατότητες δεν με βοήθησαν.

Για να προσθέσω στην απογοήτευσή μου. υπάρχουν πολλά παραδείγματα στο διαδίκτυο ανθρώπων που κάνουν παρόμοια πράγματα με θετικό αποτέλεσμα, χμμμ. Μπορεί να είναι πρόβλημα υλικού στην οθόνη TFT; Something κάτι που δεν σκέφτηκα; Οποιεσδήποτε προτάσεις είναι ευπρόσδεκτες για μια επόμενη προσπάθεια. Στο τέλος αφού περάσετε μερικά βράδια σε αυτό. Αποφάσισα να αφήσω αυτόν τον δρόμο. Δεδομένου ότι οι εικόνες είναι μόνο 50x50 εικονοστοιχεία (που οδηγούν σε 5000 bytes η καθεμία σε χρώμα 16 bit), το ESP είναι σε θέση να το αποθηκεύσει με ευκολία στο PROGMEM. Αυτό λοιπόν είναι το κόλπο που χρησιμοποίησα.

Αυτή η επιλογή οδήγησε σε μια ακόμη πρόκληση. Πώς να πάρετε την εικόνα BMP που είχα σε αναγνώσιμη μορφή. Μετά από κάποια αναζήτηση ανακάλυψα τον ιστότοπο από τον Henning Karlsen που έλυσε αυτό το παζλ νωρίτερα. Δημιούργησε ένα πρόγραμμα που μετατρέπει αρχεία τύπου-p.webp

Βήμα 4: Δημιουργήστε το πλαίσιο

Δημιουργήστε το κουτί
Δημιουργήστε το κουτί
Δημιουργήστε το κουτί
Δημιουργήστε το κουτί
Δημιουργήστε το κουτί
Δημιουργήστε το κουτί

Αυτό δεν είναι το πρώτο κουτί που χρειαζόμουν. Πολλά τυποποιημένα κουτιά διατίθενται από τους προμηθευτές. Χρησιμοποιώντας ένα μικρό πριόνι, ένα μαχαίρι, ένα τρυπάνι κλπ, είναι εύκολο να δημιουργήσετε μια τρύπα για την οθόνη στο κουτί. Αλλά ποτέ δεν κατάφερα να φτιάξω ένα ωραίο ορθογώνιο. Μάλλον δεν υπάρχουν αρκετές δεξιότητες και/ή υπομονή;-)

Η λύση: wasμουν τυχερός. Έχω ένα κολέγιο που μοιάζει με τον υπεράνθρωπο αν πρόκειται για βιολί με τεχνικά πράγματα. Περιλαμβάνει επίσης σχεδιασμό και εκτύπωση 3D. Έτσι αποφάσισε να προσφέρει πολύ από τον ελεύθερο χρόνο του για να μετρήσει την οθόνη TFT και τον μικροελεγκτή και να δημιουργήσει ένα κουτί γύρω από αυτήν. Όλα ταιριάζουν όμορφα, ρίξτε μια ματιά στις εικόνες. Περιέχει ακόμη και κουμπώματα για την οθόνη, μια τρύπα για την υποδοχή USB και ένα μέρος για να διορθώσετε το μικροελεγκτή.

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

Συνιστάται: