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

Τραβήξτε και εμφανίστε περιβάλλοντα δεδομένα από οποιονδήποτε ιστότοπο μέσω Wifi (Δείκτης Northern Lights) Με NodeMcu: 6 βήματα
Τραβήξτε και εμφανίστε περιβάλλοντα δεδομένα από οποιονδήποτε ιστότοπο μέσω Wifi (Δείκτης Northern Lights) Με NodeMcu: 6 βήματα

Βίντεο: Τραβήξτε και εμφανίστε περιβάλλοντα δεδομένα από οποιονδήποτε ιστότοπο μέσω Wifi (Δείκτης Northern Lights) Με NodeMcu: 6 βήματα

Βίντεο: Τραβήξτε και εμφανίστε περιβάλλοντα δεδομένα από οποιονδήποτε ιστότοπο μέσω Wifi (Δείκτης Northern Lights) Με NodeMcu: 6 βήματα
Βίντεο: The Light Gate Welcomes Mike Clelland, August 7th, 2023- UFOs 2024, Νοέμβριος
Anonim
Τραβήξτε και εμφανίστε περιβάλλοντα δεδομένα από οποιονδήποτε ιστότοπο μέσω Wifi (Ένδειξη Northern Lights) με το NodeMcu
Τραβήξτε και εμφανίστε περιβάλλοντα δεδομένα από οποιονδήποτε ιστότοπο μέσω Wifi (Ένδειξη Northern Lights) με το NodeMcu

Το κίνητρό μου: Έχω δει ΠΟΛΛΑ εκπαιδευτικά για τη ρύθμιση/ χρήση ενός NodeMCU (βασισμένο στην ενότητα ESP8266) για την κατασκευή έργων IoT (internet of things). Ωστόσο, πολύ λίγα από αυτά τα σεμινάρια είχαν όλες τις λεπτομέρειες/ κώδικα/ διαγράμματα για ένα αρχάριο άτομο που πρέπει να ακολουθήσει από την αρχή μέχρι το τέλος και κανένα από αυτά δεν έκανε ακριβώς αυτό που ήθελα.

Τι θα καλύψει αυτό;: Αυτό θα καλύψει όλα όσα πρέπει να γνωρίζετε (και που δεν ήξερα), συμπεριλαμβανομένων:

  1. Υλικά (τι χρησιμοποίησα, συγκεκριμένα)
  2. Arduino, NodeMcu, ESP8266, ποια είναι η διαφορά;
  3. Ξεκινώντας με το NodeMcu

    1. Ρύθμιση του λογισμικού (Arduino IDE)
    2. Αναβοσβήνει ένα LED
    3. Επιλογές για την τροφοδοσία του NodeMcu
    4. Σύνδεση στο διαδίκτυο
  4. Πώς να τραβήξετε δεδομένα από έναν ιστότοπο

    1. "Επισήμανση" στις πληροφορίες που θέλετε στον ιστότοπο
    2. Thingspeak/ ThingHTTP/ API (μην φοβάστε, δεν απαιτείται κωδικοποίηση)
    3. Πρόσβαση σε αυτά τα δεδομένα από το NodeMCU
  5. Εμφάνιση των δεδομένων

    1. Τι χρησιμοποίησα (πώς να καλωδίω μια οθόνη 7 τμημάτων)
    2. Μερικές ιδέες/ πράγματα που θα είχα κάνει με περισσότερο χρόνο
  6. Πώς να φτιάξετε ένα κουτί υποθέτω

ΑΠΟΠΟΙΗΣΗ: Παρακολούθησα ΠΟΛΛΑ βίντεο για να μάθω πώς να το φτιάξω, και σχεδόν όλος ο κώδικας είναι συγκεντρωμένος από άλλες πηγές και δεν μπορώ να τα θυμηθώ όλα. Η κύρια πηγή έμπνευσης για αυτό ήταν αυτός ο τύπος που ουσιαστικά κάνει το ίδιο πράγμα που περιγράφω, αλλά βρήκα να κοσκινίζω αυτό που ήταν υλικό της οθόνης αφής και τι δεν μπερδεύει. Θεωρώ ότι αυτή η διδασκαλία είναι περισσότερο μια εισαγωγή στα έργα NodeMcu και κάπως IoT και όχι ένα συγκεκριμένο αντικείμενο, αλλά η έμπνευση για αυτόν τον συγκεκριμένο δείκτη (Northern Lights) ήταν αυτό διδάξιμο από το 2008. Μου άρεσε ο τρόπος που περιγράφεται ως "φτωχός" man's ambient orb ", εμφανίζει πληροφορίες περιβάλλοντος όπως μετοχές, προβολές στο youtube ή καιρικές συνθήκες χωρίς τη χρήση τηλεφώνων ή άλλων παρεμβατικών μέσων.

Βήμα 1: Υλικά

Υλικά
Υλικά
Υλικά
Υλικά

ΘΑ ΧΡΕΙΑΣΤΕ αυτά:

1. Ένας πίνακας NodeMcu

2. Ένα καλώδιο micro USB για τη μεταφόρτωση του κωδικού στον πίνακα και την τροφοδοσία του τελικού προϊόντος, αν το επιλέξετε.

3. LED, καλώδια βραχυκυκλωτήρων (αρσενικό-αρσενικό, αρσενικό-θηλυκό) και ένα breadboard για τη σύνδεση των πραγμάτων … αυτό είναι κάπως δεδομένο, αλλά ό, τι θέλετε να "εξάγετε" (να εμφανίζεται ή να εξαρτάται από τα δεδομένα) θα απαιτεί υλικό. Αν θέλετε να αναδημιουργήσετε την ατμόσφαιρα ή να κάνετε ακριβώς αυτό που έκανα, μια οθόνη 7 τμημάτων ή κάποια LED είναι αρκετά λεπτή. Ο πίνακας ψωμιού είναι απαραίτητος για την "πρωτοτυπία" πριν συνδέσετε πραγματικά τα πράγματα 4 πραγματικά, και θα εξηγήσω πώς λειτουργούν/ πώς συνδέονται τα πράγματα στη σχετική ενότητα. Εάν είστε απλώς αρχάριος, απλώς πάρτε ένα κιτ εκκίνησης arduino, καθώς περιέχει πολλά μικρά πράγματα (συμπεριλαμβανομένων όλων όσων χρησιμοποίησα), καθώς και arduino uno για άλλο έργο.

Πράγματα που ίσως χρειαστείτε:

4. Μια μονάδα τροφοδοσίας breadboard (Εάν θέλετε να τροφοδοτήσετε το NodeMcu με έναν τυπικό αντάπτορα τροφοδοσίας … Δεν θα το έκανα αυτό, επειδή μπορείτε απλώς να το τροφοδοτήσετε με ένα micro USB, το οποίο είναι πολύ πιο βολικό. Αν θέλετε να κάνετε το έργο σας εντελώς ασύρματο, τότε φυσικά θα χρειαστείτε μια μπαταρία, αλλά θα το αντιμετωπίσω στην ενότητα τροφοδοσίας.

5. Πεύκο 1/4 για κουτί lil '(αν θέλετε)

6. Κάποιο καπλαμά για να καλύψετε το κουτί σας και/ή να λειτουργήσει ως διαχύτης για το LED ή την οθόνη σας

7. Super (CA) ή/και κόλλα ξύλου για στερέωση 5. και 6.

Βήμα 2: Τι είναι ένα Node MCU;

Τι είναι το Node MCU
Τι είναι το Node MCU
Τι είναι το Node MCU
Τι είναι το Node MCU

Εάν είστε πραγματικός αρχάριος για τα ηλεκτρονικά όπως ήμουν, ίσως αναρωτιέστε ποια είναι η διαφορά μεταξύ μιας πλακέτας Arduino και μιας πλακέτας NodeMcu και ίσως έχετε επίσης ακούσει για το ESP8266 … ποια είναι η διαφορά μεταξύ αυτών;!;

Αυτό δεν είναι σε καμία περίπτωση τεχνικό, αλλά αυτό είναι που πρέπει να γνωρίζετε.

Το Arduino έχει τη δυνατότητα να διαβάζει εισόδους από μια σειρά ακίδων, "να κάνει πράγματα" χρησιμοποιώντας αυτές τις εισόδους και στη συνέχεια να εξάγει σε μια σειρά ακίδων. Είναι ουσιαστικά ένας μικρός υπολογιστής. Το Arduino κατασκευάζει ΠΟΛΛΕΣ διαφορετικές σανίδες και πολλές "ασπίδες" που συνδέονται στους πίνακες για να κάνουν επιπλέον πράγματα. Τα προϊόντα που πωλούν σήμερα και συνδέονται στο Διαδίκτυο είναι πολύ ακριβά και δεν έχουν μεγάλη κοινότητα που τα ακολουθεί. Ο κωδικός γράφεται και ανεβαίνει στους πίνακες από το λογισμικό "Arduino IDE", το οποίο υποστηρίζει C και C ++, με κάποια άλλη ειδική μορφοποίηση πασπαλισμένη. Δεν χρειάζεται να ξέρετε πώς να προγραμματίσετε C ή C ++ στο πρόγραμμα, αφού υπάρχει τέτοιο μια τρελή αφθονία κώδικα που διατίθεται στο διαδίκτυο, αλλά κάποια εξοικείωση με τον προγραμματισμό (ιδιαίτερα σε πράγματα όπως while and for loops, μεταβλητή δήλωση και εύρος κλπ) βοηθά στην επιτάχυνση της κατανόησης. Το Arduino IDE παρέχει επίσης μια ενιαία τοποθεσία για τη λήψη των απαραίτητων βιβλιοθηκών για διαφορετικούς πίνακες (περισσότερα για αυτό αργότερα, κατά τη ρύθμιση του NodeMcu).

Το ESP8266 είναι μια εξαιρετικά φθηνή μονάδα WiFi που ουσιαστικά κατέστησε τις ασπίδες arduino που ενεργοποιούνται στο διαδίκτυο (αν και εξακολουθείτε να βλέπετε πίνακες arduino που έχουν ενσωματωμένο wifi). Η κοινότητα DIY που περιβάλλει το ESP8266 είναι τόσο τεράστια που είναι σχεδόν η μόνη λογική επιλογή για την κατασκευή συσκευών με δυνατότητα διαδικτύου. Συχνά χρησιμοποιείται σε συνδυασμό με έναν πίνακα arduino μέσω των σειριακών ακίδων (Rx και Tx), αν και υποθέτω ότι ορισμένοι τα χρησιμοποιούν "stand alone", αλλά επειδή το μικροτσίπ είναι τόσο μικρό και δύσκολο να συνδεθεί με αυτό (έχει βασικά 6 ακίδες: 2 για σειριακό (μιλάμε για πράγματα), 2 για ισχύ (γείωση και VCC) και 2 GPIO (έξοδος εισόδου γενικής χρήσης), συν ότι λειτουργεί σε 3,3V και έτσι τα 5V θα το καταστρέψει) που αντικαταστάθηκε γρήγορα από…

Το NodeMcu, το οποίο είναι ένας πίνακας ανάπτυξης ανοιχτού κώδικα ακριβώς όπως και το Arduino, εκτός από το βασισμένο στο ESP8266. Μπορείτε πραγματικά να δείτε το ESP8266 ενσωματωμένο στην πλακέτα NodeMcu να κυκλώνεται στις εικόνες που επισυνάπτω. Αυτός ο πίνακας είναι απόλυτα φιλικός για προγραμματισμό και διασύνδεση και είναι βασικά συγκρίσιμος με ένα arduino nano. Έχει πολλές περισσότερες καρφίτσες και μπορεί να προγραμματιστεί μέσω USB απευθείας από τον υπολογιστή σας, χωρίς να χρειαστεί να περάσετε από άλλη πλακέτα. Επίσης, παρόλο που ο πίνακας εξακολουθεί να λειτουργεί τεχνικά σε λογική 3.3V και όχι σε λογική 5V, έχει ενσωματωμένα τσιπ για τη διαχείριση αυτής της τάσης, ώστε να μπορεί να τροφοδοτείται ακριβώς όπως το arduino σας, είτε μέσω USB είτε μέσω των ακίδων VCC (τάση σε) Το Βασικά, για οτιδήποτε IoT, το NodeMcu είναι ένας καλός, απλός, ενιαίος πίνακας για χρήση και είναι ενεργοποιημένο WiFi … αν και είναι μια καλή επιλογή και για έργα χωρίς wifi. Τεχνικά, η γλώσσα του NodeMcu "out of the box" είναι LUA, αλλά μετά από 1 φορά ρύθμιση στο Arduino IDE, θα μπορείτε να την προγραμματίσετε όπως θα κάνατε με οποιοδήποτε άλλο Arduino.

Βήμα 3: Ξεκινώντας με το NodeMcu

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

1. Ρύθμιση του λογισμικού (Arduino IDE)

  • Κατεβάστε το Arduino IDE από τον παραπάνω σύνδεσμο και επιλέξτε "απλώς λήψη" εάν δεν μπορείτε να κάνετε δωρεά
  • Ανοίξτε το λογισμικό Arduino IDE
  • Στην ενότητα Αρχείο -> Προτιμήσεις, Πρόσθετες διευθύνσεις διευθύνσεων πινάκων, επικολλήστε τον ακόλουθο σύνδεσμο "https://arduino.esp8266.com/versions/2.5.0-beta2/package_esp8266com_index.json"
  • Στην περιοχή Εργαλεία -> Πίνακας -> Διαχειριστής πινάκων (στο επάνω μέρος) κάντε κύλιση προς τα κάτω ή αναζητήστε το ESP8266 και κάντε κλικ στην εγκατάσταση
  • Mayσως χρειαστεί να κάνετε επανεκκίνηση του Arduino IDE για να εμφανιστεί αυτό, αλλά τώρα κάντε κλικ στην επιλογή Εργαλεία-> Πίνακας και επιλέξτε τον πίνακα που έχετε, δηλαδή τη μονάδα NodeMcu 1.0 ESP12-E
  • Μπορεί να μην χρειάζεται να κάνετε αυτό το βήμα, αλλά συνδέστε το usb στον υπολογιστή σας από το NodeMcu (οι λυχνίες θα αναβοσβήνουν) και μεταβείτε στον Πίνακα Ελέγχου-> Διαχείριση Συσκευών -> Θύρες -> και, στη συνέχεια, σημειώστε τη θύρα COM που έχει επισημανθεί "Silicone Labs …" αυτή είναι η θύρα COM που χρησιμοποιεί το NodeMcu
  • Επιστρέψτε στο Arduino IDE και στο Tools-> Port: και βεβαιωθείτε ότι αυτή η θύρα είναι επιλεγμένη
  • Όλα πρέπει να είναι καλά, αλλά βεβαιωθείτε ότι στα Εργαλεία, το μέγεθος του φλας είναι 4 (μην ανησυχείτε για το SPIFFS, ό, τι έχει επιλεγεί είναι καλό) και ότι η ταχύτητα μεταφόρτωσης είναι 115200 υποθέτω … Το NodeMcu χρησιμοποιεί στην πραγματικότητα ένα ρυθμό baud 9600 για να μεταφέρετε πληροφορίες στη σειριακή οθόνη (αν δεν ξέρετε τι σημαίνει αυτό μην ανησυχείτε, θα εμφανιστεί στο παράδειγμα), αλλά εάν στον κώδικα και στη συνέχεια στην οθόνη, έχετε 9600, είναι καλό.

2. Αναβοσβήνει ένα LED

Αυτό μοιάζει με τον προγραμματισμό "Hello World" (δηλαδή μωρό $ h1t), αλλά σας ενημερώνει ότι όλα είναι καλά με τον πίνακα και θα σας βοηθήσει να εξοικειωθείτε με το Arduino IDE. Αυτό ΔΕΝ δείχνει τις δυνατότητες WiFi της πλακέτας (το κάνουμε αυτό στο επόμενο παράδειγμα), απλώς βεβαιώνεται ότι είναι συνδεδεμένο και μπορεί να λειτουργήσει κ.λπ.

  • Ανοίξτε το arduino IDE, συνδέστε το NodeMcu
  • Πριν κάνετε οτιδήποτε, παρατηρήστε ότι υπάρχει πλαίσιο για τον πιο βασικό κώδικα που μπορείτε να γράψετε στο arduino σας, με έναν βρόχο εγκατάστασης () που εκτελείται μία φορά και έναν άλλο βρόχο () που θα τρέχει συνεχώς για πάντα. Ο τελικός μας κώδικας θα είναι δομημένος ακριβώς έτσι, με μερικά πράγματα να προστεθούν παραπάνω και μια συνάρτηση που ορίζεται στο κάτω μέρος
  • Αρχείο-> Παραδείγματα-> (στην ενότητα NodeMcu 1.0) ESP8266-> Αναλαμπή
  • Αυτό θα ανοίξει κάποιον κώδικα στο παράθυρο. Μη διστάσετε να το αποθηκεύσετε κάπου.
  • Σε αυτόν τον κώδικα, ο βρόχος setup () περιέχει τον ορισμό του ενσωματωμένου LED στην πλακέτα ως έξοδο και ο βρόχος εξάγει υψηλά και χαμηλά σε αυτό το LED. Σημειώστε ότι για το LED που είναι ενσωματωμένο στην πλακέτα (μόνο! Δεν είναι η τυπική περίπτωση), η έξοδος "LOW" (0 βολτ) θα το κάνει να ενεργοποιηθεί, αφού είναι από προεπιλογή και "Υ HIGHΗΛΗ" (3,3V σε Αυτή η περίπτωση υποθέτω), είναι απενεργοποιημένη
  • Εάν όλα έχουν ρυθμιστεί σωστά όπως περιγράφηκε παραπάνω, θα πρέπει να μπορείτε να κάνετε κλικ στο "Επαλήθευση" (το σημάδι ελέγχου στον κύκλο στην επάνω αριστερή γωνία) για να βεβαιωθείτε ότι δεν υπάρχουν σφάλματα (αυτό δεν θα έχει κανένα από τότε που δεν το κάνατε " μην το γράψετε, αλλά το δικό σας!), και όταν είναι όλα καλά, το "Upload" ακριβώς δίπλα
  • Μόλις κάνετε κλικ στη μεταφόρτωση, θα δείτε πράγματα που διαβάζονται στη μαύρη περιοχή στο κάτω μέρος και θα συμπληρωθούν τελείες/ %
  • Μην ανησυχείτε ότι λέει ότι θα καταλάβει το 33% της μνήμης … αυτό είναι βασικά ένα "σταθερό" ποσό που καταλαμβάνει ακόμη και ο πιο απλός κώδικας, αυτό που έγραψα καταλάμβανε μόνο 1% επιπλέον χώρο
  • Θα δείτε ότι η λυχνία LED στον πίνακα αρχίζει να αναβοσβήνει (κάτι που μπορεί να είχε ήδη κάνει), οπότε μη διστάσετε να αλλάξετε το ποσό των χιλιοστών του δευτερολέπτου (χιλιοστά του δευτερολέπτου) στο τμήμα καθυστέρησης του σεναρίου. Αν αυτός είναι ο πρώτος σας προγραμματισμός, η παρακολούθηση της λυχνίας LED που αναβοσβήνει σε ελαφρώς διαφορετική συχνότητα θα είναι πιθανώς μια πραγματική βόλτα με συγκίνηση

3. Επιλογές για την τροφοδοσία του NodeMcu

Δεν είμαι σίγουρος γιατί δεν το κατάλαβα αυτό στην αρχή, αλλά ο κώδικας που ανεβάζετε στον πίνακα θα παραμείνει εκεί και θα λειτουργεί για πάντα, εφόσον/ εφόσον παρέχεται ενέργεια σε αυτόν. Για παράδειγμα, μετά την ολοκλήρωση του βήματος 2, εάν τον αποσυνδέσετε από τον υπολογιστή σας, στη συνέχεια τον τροφοδοτήσετε αλλού, θα αρχίσει να αναβοσβήνει ξανά. Ο ευκολότερος τρόπος για να τροφοδοτήσετε το NodeMcu είναι απλώς να συνδέσετε ένα micro USB σε αυτό και, στη συνέχεια, σε ένα μπλοκ φόρτισης όπως χρησιμοποιείτε για το κινητό σας στον τοίχο (μπλοκ 5V 1A ή ό, τι κι αν είναι αυτό). Μη διστάσετε να κοιτάξετε τις άλλες οδηγίες μου για πληροφορίες σχετικά με τον τρόπο τροφοδοσίας, την πολικότητα των βυσμάτων DC, κ.λπ. παρά πολύ για αυτόν τον πίνακα και για κάθε LED που χρησιμοποιείτε, για παράδειγμα), αλλά η τάση πρέπει να είναι σε πολύ σφιχτό εύρος για να λειτουργούν όλα σωστά. Στο NodeMcu, μπορείτε να χρησιμοποιήσετε ένα τροφοδοτικό με οποιαδήποτε τάση από 3,3V έως 20V με ασφάλεια, αφού υπάρχει ένας ρυθμιστής στην πλακέτα που πετάει αυτήν την τάση προς τα κάτω (αυτό είναι ένα ωραίο χαρακτηριστικό). Με την ένταση του ήχου, το πέρασμα είναι εντάξει, καθώς η πλακέτα θα τραβήξει αυτό που χρειάζεται, αλλά με την τάση, είναι γενικά ασφαλέστερο να χρησιμοποιείτε τάσεις όσο πιο κοντά, χωρίς να υποβιβάζετε το απαιτούμενο #, οπότε χρειάζεται λιγότερη δουλειά/ σπατάλη ισχύος μειώνοντας την τάση. Εάν θέλετε να χρησιμοποιήσετε μια μπαταρία ή θέλετε να χρησιμοποιήσετε μια υποδοχή τροφοδοσίας DC (ίσως για να έχετε ένα ωραίο μακρύ καλώδιο), οι ακίδες που θα χρησιμοποιήσετε είναι οι παρακείμενες καρφίτσες γείωσης VIN.

4. Σύνδεση στο διαδίκτυο

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

Ανοίξτε το αρχείο κώδικα arduino που ονομάζεται "Wifi_connect" και αλλάξτε το SSID και τον κωδικό πρόσβασης στον δικό σας και μετά μεταβείτε

  • Παρατηρήστε ότι πάνω από τους βρόχους υπάρχει μια γραμμή #include, η οποία λέει στο Arduino να συμπεριλάβει μια βιβλιοθήκη γεμάτη με υλικό WiFi για το ESP8266. Αυτά είναι βασικά μια δέσμη βοηθητικών προγραμμάτων και πραγμάτων που συνδυάζονται μαζί και σας επιτρέπουν να κάνετε συγκεκριμένα πράγματα σχετικά απλά, χρησιμοποιώντας τα προκαθορισμένα πράγματα που περιέχονται στη βιβλιοθήκη. Για παράδειγμα, εάν αγοράσατε μια ασπίδα ή μια προσθήκη σε έναν πίνακα, πιθανότατα έχει βιβλιοθήκες που σχετίζονται με αυτήν, ώστε να μπορείτε πιο εύκολα να συνδεθείτε με αυτήν.
  • Εργαλεία-> Σειριακή οθόνη
  • Βεβαιωθείτε ότι η σειριακή οθόνη έχει ρυθμιστεί για ανάγνωση σε 9600. Εάν δεν είναι στη σωστή ταχύτητα, η σειριακή οθόνη θα φτύσει ένα ακατάστατο χάος, οπότε αυτός είναι ένας καλός δείκτης ότι η σειριακή οθόνη σας δεν είναι στον ίδιο ρυθμό με το σειριακό στον κώδικα
  • Κάντε κλικ στην επαλήθευση και εκτέλεση και παρακολουθήστε τη σειριακή οθόνη καθώς ολοκληρώνεται … θα σας πει μια δέσμη λεπτομερειών σχετικά με τη σύνδεση εάν λειτούργησε και δείχνει ότι το ESP8266 στο NodeMcu είναι ικανό να συνδεθεί στο WiFi σας! Δεν κάνει τίποτα, αλλά αν πάτε και συνδέσετε αυτόν τον πίνακα στον τοίχο κάπου, θα μπορούσατε να περιμένετε 30 δευτερόλεπτα και να είστε αρκετά σίγουροι ότι δημιουργεί μια σύνδεση με το διαδίκτυο, η οποία θα πρέπει επίσης να είναι συναρπαστική.
  • Για να δοκιμάσετε τον εαυτό σας, δοκιμάστε να συνδυάσετε τον κωδικό "bllink" και τον κωδικό "wifi_connect" για να ενεργοποιήσετε το ενσωματωμένο LED ή να αναβοσβήνει μόλις συνδεθεί στο διαδίκτυο. Αυτός είναι ένας πολύ καλός τρόπος για να μάθετε!

Αν κάνατε όλα τα παραπάνω, συγχαρητήρια! Έχετε δείξει ότι μπορείτε να ανεβάσετε κώδικα στο NodeMCU και ότι το NodeMcu μπορεί να συνδεθεί στο WiFi σας. Στην πραγματικότητα θα χρησιμοποιήσουμε μια ελαφρώς διαφορετική μέθοδο σύνδεσης στο WiFi, χρησιμοποιώντας τη βιβλιοθήκη MultiWifi και όχι την κανονική παλιά βιβλιοθήκη Wifi, καθώς σας επιτρέπει να προσθέσετε εύκολα μια λίστα WiFis και απλώς να προσπαθήσετε να συνδεθείτε με όποιο μπορεί.

Βήμα 4: Πώς να τραβήξετε δεδομένα από έναν ιστότοπο

Πώς να τραβήξετε δεδομένα από έναν ιστότοπο
Πώς να τραβήξετε δεδομένα από έναν ιστότοπο

Τα δεδομένα στους ιστότοπους αποθηκεύονται με πολύ τρομακτικό τρόπο. Το να φιλτράρετε αυτό στα πράγματα που θέλετε ή να το "αναλύσετε" είναι εξίσου τρομακτικό και η προσπάθεια να το κάνετε αυτό χωρίς σημαντική γνώση της HTML μπορεί να είναι τρομακτική … οπότε ο στόχος είναι να βγάλετε τα δεδομένα που θέλετε από το τρομακτικό μέρος σε ένα πολύ καθαρό και χαρούμενο μέρος. Λειτουργικά τι σημαίνει αυτό μεταβαίνει από μια διεύθυνση URL που εμφανίζει ολόκληρο τον ιστότοπο, σε μια διεύθυνση URL που εμφανίζει ΑΠΛΑ το μεμονωμένο κομμάτι δεδομένων που θέλετε.

1. "Επισήμανση" στις πληροφορίες που θέλετε στον ιστότοπο

Μεταβείτε στον ιστότοπο που σας ενδιαφέρει, για παράδειγμα εδώ

www.timeanddate.com/worldclock/canada/edmonton

στη συνέχεια, μεταβείτε στα δεδομένα που θέλετε, κάντε δεξί κλικ σε αυτό και επιλέξτε "επιθεώρηση". Θα ανοίξει το πρόγραμμα προβολής HTML στο πρόγραμμα περιήγησής σας και θα σας δείξει τον τελικό κλάδο του δέντρου από τον οποίο προέρχονται τα δεδομένα σας. Θεωρώ ότι το πιο εύκολο πρόγραμμα περιήγησης που χρησιμοποιείται για αυτό είναι το chrome, αλλά προφανώς ο firefox έχει κάποιες επεκτάσεις που το κάνουν καλύτερο… αλλά idk νιώθω ότι αυτό είναι απλά ένα κλασικό είδος προσώπου του firefox;

Εκεί ζουν τα δεδομένα. Μερικές φορές έχει μια ταυτότητα στην οποία αναφέρεται, μερικές φορές είναι ακριβώς γραμμένη. Λοιπόν, πώς μπορούμε να το εξαγάγουμε;

2. Thingspeak/ ThingHTTP/ API (μην φοβάστε, δεν απαιτείται κωδικοποίηση)

Δεν πρόκειται καν να μιλήσω για το τι είναι τα API και πώς τα δημιουργείτε, αλλά μπορείτε να τα φανταστείτε ως την πραγματική σύνδεση ή μετάδοση μεταξύ σας (τα αιτήματά σας) και πού βρίσκονται τα πράγματα για τα οποία ζητάτε. Η κλασική αναλογία είναι ένας σερβιτόρος σε ένα εστιατόριο. Για να το κάνετε αυτό χωρίς κωδικοποίηση, θα χρησιμοποιήσετε μια δωρεάν υπηρεσία που ονομάζεται "ThingSpeak", και συγκεκριμένα την εφαρμογή τους "ThingHTTP". Απλώς δημιουργήστε έναν λογαριασμό και, στη συνέχεια, μεταβείτε στις εφαρμογές, και στο κάτω μέρος, πράγμαhttp και δημιουργήστε έναν.

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

Υποθέτω ότι αυτή η διαδρομή μπορεί να δοθεί με μερικούς τρόπους, αλλά ο απλούστερος και μόνος τρόπος που γνωρίζω είναι να κάνετε δεξί κλικ σε αυτό το κομμάτι δεδομένων όπως περιγράφεται παραπάνω, να το επιθεωρήσετε και στη συνέχεια να κάνετε δεξί κλικ στη γραμμή που επισημαίνεται και αντιστοιχεί σε αυτά τα δεδομένα στο το πρόγραμμα προβολής HTML και πηγαίνετε στη διαδρομή Αντιγραφή-> x. Αυτό φαίνεται στη συνημμένη εικόνα.

Μόλις τελειώσετε, δοκιμάστε να μεταβείτε στη διεύθυνση URL που δημιουργήθηκε για εσάς και δείτε εάν περιέχει τα δεδομένα που θέλετε με κάποιο τρόπο με τα οποία μπορεί τουλάχιστον να εργαστείτε. Για παράδειγμα, η δική μου λέει ότι η θερμοκρασία είναι "XX F" αντί για τον αριθμό των βαθμών Κελσίου, αλλά οι μονάδες και το F στο τέλος μπορούν εύκολα να αλλάξουν εντός του κώδικα. ΕΙΝΑΙ ΕΞΑΙΡΕΤΙΚΑ ΚΟΙΝΟ ΓΙΑ ΝΑ ΠΑΡΕΤΕ ΤΟ ΛΑΘΟΣ ΟΤΙ ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΠΑΡΣΙΣΕΙ. Εάν συμβαίνει αυτό, δοκιμάστε να διαγράψετε μερικές από τις κεφαλίδες εντός του xpath, δείτε αν μπορείτε να βρείτε τα δεδομένα αλλού ή συμβουλευτείτε ένα φόρουμ όπου μπορεί να είναι σε θέση να εντοπίσει τις "κατεστραμμένες" πτυχές της συμβολοσειράς ανάλυσης. Αυτή η μέθοδος σίγουρα ΔΕΝ θα λειτουργήσει σε έναν ιστότοπο που δεν φορτώνει τα επιθυμητά δεδομένα με τον ιστότοπο, αλλά αντλεί (από μόνο του) από κάποια εξωτερική πηγή, η οποία απαιτεί λίγο χρόνο για να φορτωθεί. Ωστόσο, θα πρέπει να λειτουργεί καλά για πράγματα όπως πράγματα του youtube, καιρός κ.λπ.

3. Πρόσβαση σε αυτά τα δεδομένα από το NodeMCU

Έχω ήδη πληκτρολογήσει πολλά, οπότε δείτε τον συνημμένο κώδικα, ο οποίος έχει πολλά σχόλια, και αυτή τη στιγμή έχει ρυθμιστεί για ανάγνωση με πιθανότητα aurora borealis για Edmonton AB, Καναδάς (Μόνο!). Το πρώτο τσίμπημα που θα πρέπει να κάνετε είναι απλώς να αλλάξετε τη διεύθυνση URL (στην πραγματικότητα μόνο το 16ψήφιο βασικό μέρος του URL της διεύθυνσης URL) στο δικό σας πράγμαhttp.

Το δεύτερο πράγμα που πρέπει να τροποποιήσετε είναι στον βρόχο (), όπου η πραγματική "τιμή" εισάγεται και αποθηκεύεται ως μεταβλητή "η τιμή σας", η οποία είναι μια συμβολοσειρά (κείμενο). Μπορεί να χρησιμοποιηθεί με όποιο τρόπο θέλετε από εκεί και πέρα. Κατάργησα το σύμβολο του ποσοστού, χώρισα τα 2 ψηφία του % σε 2 μεταβλητές (για παράδειγμα το 14 % σε 1, 4) και τα έκρυψα καθένα ως ακέραιους αριθμούς, αλλά με μερικές γρήγορες αναζητήσεις ή σχόλια στο Google εδώ, θα πρέπει να μπορείτε για να εξαγάγετε ακριβώς τους αριθμούς που θέλετε από τη συμβολοσειρά του Θα χρειαστείτε αριθμούς για να μπορείτε να κάνετε πράγματα όπως να αποφασίσετε αν είναι μεγάλο ή μικρό ή διαιρούμενο με κάτι αρκετά για να ενεργοποιήσετε ή να απενεργοποιήσετε ή να εμφανίσετε τα πράγματα. Ο υπόλοιπος κώδικας από εκείνο το σημείο και μετά, συμπεριλαμβανομένης της συνάρτησης στο κάτω μέρος που ονομάζεται heftseg () χρησιμοποιούνται για την εμφάνιση των 2 αριθμών.

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

Βήμα 5: Εμφάνιση δεδομένων

Εμφάνιση των Δεδομένων
Εμφάνιση των Δεδομένων

1. Τι χρησιμοποίησα (πώς να καλωδίω μια οθόνη 7 τμημάτων)

Πήρα το συνημμένο διάγραμμα/ ακολούθησα την καλωδίωση που περιγράφεται από αυτό το άλλο εκπαιδευτικό.

Η καλωδίωση είναι αρκετά απλή, αλλά αν δεν έχετε χρησιμοποιήσει ποτέ ένα breadboard, τότε μπορεί να μπερδέψει αυτό που συμβαίνει. Ουσιαστικά ένας πίνακας ψωμιού προορίζεται να κάνει τις συνδέσεις σαφείς και προσωρινές.

Όλες οι ακόλουθες περιγραφές θα είναι σε σχέση με το συνημμένο διάγραμμα: Ένας πίνακας ψωμιού μπορεί να χωριστεί οριζόντια σε 2 επαναλαμβανόμενα μισά, το καθένα με 2 ξεχωριστά τμήματα: οριζόντια - και + σειρές που επεκτείνουν το μήκος της σανίδας (που χρησιμοποιείται για ισχύ) και κάθετες στήλες, τα οποία είναι αριθμημένα και αποτελούνται από 5 σημεία ανά στήλη που χρησιμοποιούνται για τη σήμανση συνδέσεων. Υπάρχει τότε ένα μικρό κενό και στη συνέχεια αυτά τα ίδια χαρακτηριστικά διπλασιάστηκαν στην άλλη πλευρά αυτής της φανταστικής διαχωριστικής γραμμής. Όλα τα σημεία στην οριζόντια + σειρά συνδέονται μεταξύ τους και όλα τα σημεία οριζόντιας σειράς συνδέονται μεταξύ τους. Αυτό σας επιτρέπει να συνδέσετε το ρεύμα στο ένα άκρο του breadboard και, στη συνέχεια, να μπορείτε να συνδέσετε τα πράγματα σε οποιοδήποτε σημείο κατά μήκος του + για να διακόψετε την παροχή ρεύματος, ακριβώς όπως μια μεγάλη μπάρα τροφοδοσίας για πρίζες. Το ίδιο ισχύει και για τη σειρά - η οποία χρησιμοποιείται για τη γείωση των πραγμάτων. Για τις αριθμημένες στήλες, κάθε σημείο σε μια αριθμημένη στήλη συνδέεται με τις άλλες 4 θέσεις. Σημειώστε ότι τα πέντε σημεία σε μια στήλη ΔΕΝ συνδέονται με τα πέντε απέναντι από τη φανταστική γραμμή στα μισά. Ο πίνακας ψωμιού θα μπορούσε να κοπεί κατά μήκος και καμία ηλεκτρική σύνδεση δεν θα κοπεί.

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

  1. ο πείρος γείωσης από το NodeMcu είναι συνδεδεμένος στη στήλη 2
  2. σύρμα από τη στήλη 2 έως την οριζόντια σειρά τάσης -7 (ορίζεται από τη συμβατική γείωση)
  3. από τη γραμμή γείωσης (ο αριθμός της στήλης είναι άσχετος, αφού συνδέεται ολόκληρη η σειρά) στη στήλη 22 μέσω αντίστασης
  4. στην καρφίτσα "γείωσης" στην οθόνη 7 τμημάτων, η οποία είναι επίσης συνδεδεμένη στη στήλη 22

Ο σκοπός της αντίστασης στο διάγραμμα είναι βασικά να "απορροφήσει" μέρος της υπερβολικής ισχύος που παράγεται στα LED, η οποία λειτουργεί λειτουργικά για να μειώσει την οθόνη. Θα δείτε ότι όταν ένα "1" φωτίζεται έναντι "8", το 1 είναι πολύ πιο φωτεινό, αφού είναι αναμμένα λιγότερα LED. Όσο λιγότερο φωτεινή εκπέμπετε το LED, τόσο περισσότερο θα διαρκέσει, οπότε η αντίσταση είναι απαραίτητη. Τα περισσότερα διαγράμματα για οθόνες 7 τμημάτων δείχνουν ότι υπάρχει μια αντίσταση σε σειρά με καθένα από τα μεμονωμένα τμήματα, αλλά αυτό φαίνεται να λειτουργεί καλά. Χρησιμοποίησα αντίσταση 1K ohm.

Να γνωρίζετε πολύ ποια καρφίτσες αντιστοιχούν σε ποια καρφίτσα στην οθόνη, καθώς αυτές αντιστοιχίζονται στον κώδικα.

2. Μερικές ιδέες/ πράγματα που θα είχα κάνει με περισσότερο χρόνο

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

  • ένα LED rgb που αλλάζει χρώμα ανάλογα με την τιμή ή καλύπτει κλίση, από πράσινο σε κόκκινο για παράδειγμα
  • πλήρη οθόνη LED
  • ένα λογικό on/off over/under true/false LED που απλώς ενεργοποιείται ή απενεργοποιείται για να δείξει κάτι
  • ένα μοτέρ που γυρίζει μια συγκεκριμένη ώρα της ημέρας, όπως για μια βαλβίδα σε ένα σύστημα ποτίσματος ή για να αφήσει μια απόλαυση για το σκυλί σας … Είμαι βέβαιος ότι υπάρχουν πιο αποτελεσματικοί τρόποι για να το κάνετε αυτό από την ερμηνεία της ώρας μέσω wifi, αλλά είναι μια επιλογή!

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

Βήμα 6: Χτίζοντας ένα κουτί

Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί
Χτίζοντας ένα κουτί

Όλες οι συνδέσεις που γίνονται μέσω του breadboard μπορούν να γίνουν μόνιμες είτε με συγκόλληση των καλωδίων απευθείας μεταξύ της πλακέτας και της εξόδου (όπως το LED), είτε με τη χρήση ενός πολύ μικρότερου breadboard ή PCB για να κάνετε συνδέσεις σε μια κλίμακα που μπορεί να χωρέσει το έργο σας Επέλεξα να χρησιμοποιήσω ένα μικροσκοπικό ψωμί που ήρθε στο κιτ που έδεσα και χρειάστηκε μόνο να κολλήσω μια αντίσταση στο τέλος ενός σύρματος … όχι πολύ στιβαρό, αλλά λειτουργικό!

Έκοψα 4 κομμάτια πεύκου 1/4 "x 3,5" στα 3,5 "(τα πλαϊνά) και ένα στα 4" (πάνω), και τα κόλλησα και τα κόλλησα, φροντίζοντας να έχουν όλα τα πρόσωπα τετράγωνα όσο το δυνατόν περισσότερο, έτσι ώστε κάθε πρόσωπο να ήταν όσο το δυνατόν πιο κοκκινωπό. Πριν κολλήσω τα μπροστινά ή τα πίσω κομμάτια, έβγαλα περιοχές για την οθόνη και την πλακέτα για να κολλήσουν αρκετά ώστε να φαίνονται/ συνδέονται αντίστοιχα. Η μικρή πλάκα ψωμιού που πήρα είχε κολλητική ταινία στο πίσω μέρος, ώστε να μπορεί να τοποθετηθεί σε ένα από τα πλευρικά τοιχώματα και η οθόνη των 7 τμημάτων θα μπορούσε να κρατηθεί στη θέση της, ξαπλώνοντας πρώτα το κομμάτι σε ταινία συσκευασίας, τοποθετώντας την οθόνη σε αυτήν την ταινία, και στη συνέχεια πασπαλίζουμε το μπέικιν πάουντερ πάνω/σε όλα τα κενά. Στη συνέχεια, έριξα κόλλα CA (σούπερ) στα κενά, η οποία, σε επαφή με τη μαγειρική σόδα, σκληρύνθηκε αμέσως για να κρατήσει την οθόνη στη θέση της, ξεπλένεται στο μπροστινό μέρος του μπροστινού κομματιού. Η ταινία συσκευασίας επρόκειτο να αποτρέψει οποιαδήποτε κόλλα να διαρρεύσει μεταξύ της οθόνης και της επιφάνειας της με την όψη προς τα κάτω και να την αποκρύψει μόλις στεγνώσει.

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

Συνιστάται: