Πώς να φτιάξετε το δικό σας συνδεδεμένο κουμπί Wi-Fi με το ESP8266

Πώς να φτιάξετε το δικό σας συνδεδεμένο κουμπί Wi-Fi με το ESP8266

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





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





Σήμερα θα φτιάξουμε ένα κουμπί με δυνατότητα Wi-Fi χρησιμοποιώντας ένα NodeMCU και θα το προγραμματίσουμε να χρησιμοποιεί το IFTTT για να κάνει… καλά, οτιδήποτε! Γραπτές οδηγίες μετά το βίντεο, αν προτιμάτε.





Αυτό που θα χρειαστείτε

Θα χρειαστείτε:

  • 1 x πίνακας NodeMCU (ESP8266), διαθέσιμος για 2-3 $ στο AliExpress
  • 1 x Πλήκτρο
  • 1 x LED (προαιρετικό)
  • 1 x αντίσταση 220 Ohm (προαιρετικό)
  • Καλώδια Breadboard και hookup
  • Micro USB για προγραμματισμό
  • Υπολογιστής με εγκατεστημένο το Arduino IDE

Εκτός από το NodeMCU, θα πρέπει να μπορείτε να βρείτε τα περισσότερα από αυτά τα μέρη σε οποιοδήποτε κιτ εκκίνησης Arduino. Αυτό το σεμινάριο θα υποθέσει ότι χρησιμοποιείτε το προαιρετικό LED και αντίσταση, αλλά δεν είναι απαραίτητα.



Βήμα 1: Ρύθμιση του κυκλώματος

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

Το μοβ σύρμα συνδέεται καρφίτσα D0 στη μία πλευρά του κουμπιού. Το πράσινο σύρμα συνδέει την άλλη πλευρά του κουμπιού με το RST καρφίτσα Το Το μπλε σύρμα τρέχει από καρφίτσα D1 στην αντίσταση και το LED. Το αρνητικό σκέλος του LED προσκολλάται στο Καρφίτσα GND του NodeMCU.





Όταν ρυθμιστεί το breadboard θα πρέπει να μοιάζει κάπως έτσι:

πώς να ελέγξετε για νεκρά pixel

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





Βήμα 2: Ρύθμιση του IDE

Πριν ασχοληθείτε με την κωδικοποίηση, πρέπει να κάνετε κάποιες προετοιμασίες. Εάν δεν το έχετε κάνει ήδη, ρυθμίστε το Arduino IDE ώστε να αναγνωρίζει την πλακέτα NodeMCU. Μπορείτε να το προσθέσετε στη λίστα των πινάκων σας μέσω Αρχείο> Προτιμήσεις Το

Μπορείτε να βρείτε μια πιο λεπτομερή εξήγηση για αυτό το βήμα στο άρθρο εισαγωγής του NodeMCU.

Για το έργο αυτό απαιτούνται δύο βιβλιοθήκες. Μεταβείτε στο Σκίτσο> Συμπερίληψη βιβλιοθήκης> Διαχείριση βιβλιοθηκών Το Ψάχνω για ESP8266WIFI από τον Ivan Grokhotkov και εγκαταστήστε το. Αυτή η βιβλιοθήκη είναι γραμμένη για τη δημιουργία συνδέσεων Wi-Fi με την πλακέτα NodeMCU.

Επόμενη αναζήτηση για IFTTTWebhook από τον John Romkey και εγκαταστήστε την τελευταία έκδοση. Αυτή η βιβλιοθήκη έχει σχεδιαστεί για να απλοποιεί τη διαδικασία αποστολής webhooks στο IFTTT.

Αυτή είναι όλη η προετοιμασία που χρειαζόμαστε, ας κωδικοποιήσουμε!

Πώς θα λειτουργήσει ο κώδικας

Θα χρησιμοποιήσουμε το ESP8266WIFI βιβλιοθήκη για τη δημιουργία σύνδεσης Wi-Fi. ο IFTTTWebhooks η βιβλιοθήκη κάνει αίτημα στο IFTTT --- σε αυτή την περίπτωση, για δημοσίευση στο Twitter. Στη συνέχεια, δώστε οδηγίες στην πλακέτα NodeMCU να κοιμηθεί όταν δεν χρησιμοποιείται για εξοικονόμηση ενέργειας.

Όταν πατηθεί το κουμπί, θα συνδεθεί το D0 και RST καρφίτσες. Αυτό επαναφέρει τον πίνακα και η διαδικασία επαναλαμβάνεται.

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

Αυτό το σεμινάριο περνά τον κώδικα σε κομμάτια για να βοηθήσει στην κατανόηση. Αν θέλετε να μπείτε απευθείας στην επιχείρηση, μπορείτε να βρείτε το πλήρης κωδικός στο Pastebin Το Σημειώστε ότι θα χρειαστεί ακόμα να συμπληρώσετε τα διαπιστευτήριά σας Wi-Fi και IFTTT σε αυτόν τον κώδικα για να λειτουργήσει!

Βήμα 3: Δοκιμή βαθύ ύπνου

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

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Εδώ, συμπεριλαμβάνουμε τις βιβλιοθήκες μας, μαζί με τον καθορισμό μερικών μεταβλητών που θα χρειαστούμε στο σκίτσο μας. Θα παρατηρήσετε ότι το ledPin και το wakePin αριθμούνται διαφορετικά εδώ σε σύγκριση με το διάγραμμα Fritzing παραπάνω. Το NodeMCU έχει διαφορετικό pinout από τους πίνακες Arduino. Αυτό όμως δεν είναι πρόβλημα, λόγω αυτού του εύχρηστου διαγράμματος:

Τώρα δημιουργήστε μια λειτουργία ρύθμισης:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

Εδώ, ρυθμίζουμε τη σειριακή θύρα μας και χρησιμοποιούμε ένα βρόχο while για να περιμένουμε μέχρι να ξεκινήσει. Δεδομένου ότι αυτός ο κωδικός θα ενεργοποιηθεί μετά το πάτημα του κουμπιού επαναφοράς, εκτυπώνουμε 'Πατημένο το κουμπί' στη σειριακή οθόνη. Στη συνέχεια, λέμε στο NodeMCU να κοιμηθεί μέχρι το κουμπί που συνδέει το wakePin στο RST πιέζεται η καρφίτσα.

Τέλος, για δοκιμή, προσθέστε αυτό στο δικό σας βρόχος() μέθοδος:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

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

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

Σημείωση για τη σειριακή οθόνη

Μπορεί να έχετε παρατηρήσει κάποιους ανόητους χαρακτήρες στη σειριακή οθόνη κατά τη διάρκεια ορισμένων έργων σας. Αυτό οφείλεται συνήθως στη μη ρύθμιση της σειριακής οθόνης στον ίδιο ρυθμό baud με το Serial.begin (XXXX) τιμή.

Πολλοί οδηγοί προτείνουν την έναρξη της σειριακής σύνδεσης με ρυθμό baud 115200 για ένα έργο όπως αυτό. Δοκίμασα πολλούς συνδυασμούς, και όλοι είχαν διαφορετικούς βαθμούς αηδίας πριν και μετά τα σειριακά μηνύματα. Σύμφωνα με διάφορες αναρτήσεις του φόρουμ, αυτό μπορεί να οφείλεται σε ελαττωματικό πρόβλημα συμβατότητας πίνακα ή λογισμικού. Δεδομένου ότι δεν επηρεάζει πολύ το έργο, επιλέγω να προσποιούμαι ότι δεν συμβαίνει.

πώς να κάνετε κολάζ στο facebook

Εάν αντιμετωπίζετε προβλήματα με τη σειριακή οθόνη, δοκιμάστε διαφορετικούς ρυθμούς baud και δείτε ποιος λειτουργεί καλύτερα για εσάς.

Βήμα 4: Σύνδεση σε Wi-Fi

Τώρα δημιουργήστε μια λειτουργία για σύνδεση στο δίκτυό σας Wi-Fi.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

Αυτή η μέθοδος επιχειρεί να συνδεθεί στο δίκτυό σας δέκα φορές με ένα δεύτερο ενδιάμεσο. Επιτυχία ή αποτυχία εκτύπωσης σύνδεσης στη σειριακή οθόνη.

Βήμα 5: Κλήση της μεθόδου σύνδεσης

Αυτή τη στιγμή, το connectToWifi () δεν καλείται ποτέ. Προσθέστε μια κλήση στη λειτουργία ρύθμισης μεταξύ του μηνύματος 'Πατημένο κουμπί' και αποστολή του πίνακα για ύπνο.

connectToWifi();

Σε περίπτωση που αναρωτιέστε πού ταιριάζει, θα πρέπει να μοιάζει με αυτό:

Στο πάνω μέρος του σκίτσου αντικαταστήστε το ssid και Κωδικός πρόσβασης μεταβλητές με τα διαπιστευτήριά σας Wi-Fi. Αποθηκεύστε το σκίτσο σας και ανεβάστε το στον πίνακα.

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

Βήμα 6: Ρύθμιση της ενσωμάτωσης IFTTT

Το IFTTT επιτρέπει την ενσωμάτωση με μια τεράστια γκάμα υπηρεσιών διαδικτύου. Το χρησιμοποιήσαμε στο σεμινάριο LED Wi-Fi PC tower για να στείλουμε μια ειδοποίηση κάθε φορά που λαμβάνεται νέο μήνυμα ηλεκτρονικού ταχυδρομείου. Σήμερα θα το χρησιμοποιήσουμε για να στείλουμε ένα tweet με το πάτημα ενός κουμπιού.

Πλοηγηθείτε στο Τα Applets μου σελίδα και επιλέξτε Νέο Applet

Κάντε κλικ στο +αυτό και συνδεθείτε με Webhooks Το Επιλέγω 'Λήψη αιτήματος ιστού' και ονομάστε την εκδήλωσή σας. Κρατήστε το απλό ! Σημειώστε το όνομα του συμβάντος, θα πρέπει να το προσθέσετε στον κωδικό NodeMCU αργότερα. Κάντε κλικ 'Δημιουργία σκανδάλης' Το

Τώρα επιλέξτε +αυτό Το Αναζητήστε το Κελάδημα υπηρεσία και συνδεθείτε σε αυτήν --- θα χρειαστεί να την εξουσιοδοτήσετε για ανάρτηση στον λογαριασμό σας στο Twitter. Επιλέγω «Δημοσίευσε ένα tweet» και επιλέξτε το μήνυμά σας.

Η επόμενη οθόνη θα σας ζητήσει να ελέγξετε τη μικροεφαρμογή. Κάντε κλικ στο τέλος. Αυτό είναι!

Βήμα 7: Προσθήκη διαπιστευτηρίων IFTTT στον κώδικα

Πίσω στο Arduino IDE θα χρειαστεί να προσθέσετε το κλειδί IFTTT API και το όνομα συμβάντος στις καθορισμένες μεταβλητές σας. Για να βρείτε το κλειδί API, μεταβείτε στο Τα Applets μου και επιλέξτε Webhooks σύμφωνα με το Υπηρεσίες αυτί. Επιλέγω Τεκμηρίωση για πρόσβαση στο κλειδί σας.

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

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Σημείωση, τα ανεστραμμένα κόμματα πρέπει να παραμείνουν, αντικαθιστούν μόνο το κείμενο.

Μεταξύ της κλήσης στο connectToWifi () και στέλνοντας τον πίνακα για ύπνο, δημιουργήστε ένα παράδειγμα του αντικειμένου βιβλιοθήκης IFTTTWebhook. Το LED σηματοδοτεί την ολοκλήρωση της εργασίας πριν ξεκινήσει ξανά ο βαθύς ύπνος.

πώς να διορθώσετε δυστυχώς οι υπηρεσίες google play έχουν σταματήσει
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

Σκανδάλη κλήσης στο άγκιστρο το αντικείμενο ενεργοποιείται από τη μικροεφαρμογή IFTTT και πρέπει να δημοσιεύεται στον λογαριασμό σας στο Twitter. Αποθηκεύστε το σκίτσο σας και ανεβάστε το. Θα πρέπει τώρα να έχετε ένα πλήρες λειτουργικό κουμπί tweeting.

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

Εγινε! Πώς θα μπορούσατε να το βελτιώσετε περαιτέρω;

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

Παρά τη χρήση βαθύ ύπνου, μπορεί να διαπιστώσετε ότι η μπαταρία θα εξαντλήθηκε αρκετά γρήγορα. Υπάρχουν πολλά Συμβουλές εξοικονόμησης ενέργειας Arduino που βοηθούν σε τέτοιου είδους έργα. Αν και πιο δύσκολο από αυτό το σεμινάριο, αν φτιάξατε το δικό σας Arduino που καταναλώνει ενέργεια από την αρχή, ένα κουμπί Wi-Fi με μπαταρία θα μπορούσε να διαρκέσει για μήνες!

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

Πίστωση εικόνας: Vadmary / Φωτογραφίες καταθέσεων

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ 6 Ακουστικές εναλλακτικές λύσεις: Οι καλύτερες δωρεάν ή φτηνές εφαρμογές ηχητικών βιβλίων

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

Διαβάστε Επόμενο
Σχετικά θέματα
  • DIY
  • Arduino
  • Σεμινάρια έργων DIY
Σχετικά με τον Συγγραφέα Ο anαν Μπάκλεϊ(216 δημοσιευμένα άρθρα)

Ο Ian Buckley είναι ανεξάρτητος δημοσιογράφος, μουσικός, ερμηνευτής και παραγωγός βίντεο που ζει στο Βερολίνο της Γερμανίας. Όταν δεν γράφει ή δεν είναι στη σκηνή, ασχολείται με ηλεκτρονικά ή κώδικα DIY με την ελπίδα να γίνει τρελός επιστήμονας.

Περισσότερα από τον Ian Buckley

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή
Κατηγορία Diy