Η ασύρματη επικοινωνία μεταξύ ηλεκτρονικών συσκευών και μονάδων είναι πολύ σημαντική, για να τις καταστήσουμε «κατάλληλες» στον κόσμο του Διαδικτύου των πραγμάτων. Το πρωτόκολλο HTTP και η γλώσσα HTML κατέστησαν δυνατή τη μεταφορά των δεδομένων οπουδήποτε στον κόσμο, μέσω του διαδικτύου. Έχουμε ήδη καλύψει ορισμένα έργα που χρησιμοποιούν Wi-Fi με το Arduino, ρίξτε μια ματιά σε αυτά για να ξεκινήσετε:
- Αποστολή email χρησιμοποιώντας το Arduino και το ESP8266 WiFi Module
- Ρομπότ ελεγχόμενο με WiFi χρησιμοποιώντας το Arduino
- Έλεγχος RGB LED με χρήση Arduino και Wi-Fi
Τώρα σε αυτό το σεμινάριο, χτίζουμε ένα πρόγραμμα για την αποστολή δεδομένων στον Ιστό χρησιμοποιώντας τη μονάδα Arduino και Wi-Fi. Για αυτό χρειαζόμαστε πρώτα μια διεύθυνση IP είτε Global είτε Local server, εδώ για λόγους ευκολίας και επίδειξης, χρησιμοποιούμε Local Server.
Απαιτούμενα στοιχεία:
- Arduino UNO
- Ενότητα ESP8266 Wi-Fi
- Καλώδιο USB
- Σύνδεση καλωδίων
- ΦΟΡΗΤΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
- Παροχή ηλεκτρικού ρεύματος
Ενότητα Wi-Fi ESP8266:
Συνδέσεις κυκλώματος:
Το διάγραμμα κυκλώματος για το "Post Data from Arduino to Web" δίνεται παρακάτω. Χρειαζόμαστε κυρίως μια μονάδα Arduino και ESP8266 Wi-Fi. Οι ακίδες Vcc και GND του ESP8266 συνδέονται άμεσα με 3.3V και το GND του Arduino και το CH_PD συνδέονται επίσης με 3.3V. Οι ακίδες Tx και Rx του ESP8266 συνδέονται απευθείας με τους ακροδέκτες 2 και 3 του Arduino. Το λογισμικό Serial Library χρησιμοποιείται για να επιτρέπει τη σειριακή επικοινωνία στους ακροδέκτες 2 και 3 του Arduino. Έχουμε ήδη καλύψει λεπτομερώς την ενότητα Interfacing του ESP8266 Wi-Fi στο Arduino.
Χρησιμοποιώντας εδώ το λογισμικό Serial Library, επιτρέψαμε τη σειριακή επικοινωνία στους ακροδέκτες 2 και 3 και τις κάναμε Rx και Tx αντίστοιχα. Από προεπιλογή, τα Pin 0 και 1 του Arduino χρησιμοποιούνται για σειριακή επικοινωνία, αλλά χρησιμοποιώντας τη βιβλιοθήκη SoftwareSerial, μπορούμε να επιτρέψουμε τη σειριακή επικοινωνία σε άλλες ψηφιακές καρφίτσες του Arduino.
Σημείωση: Για να δείτε την απόκριση του ESP8266 στη σειριακή οθόνη, ανοίξτε το Serial Monitor του Arduino IDE.
Επεξήγηση εργασίας:
Πρώτα απ 'όλα πρέπει να συνδέσουμε τη μονάδα Wi-Fi με το δρομολογητή Wi-Fi για σύνδεση δικτύου. Στη συνέχεια, θα διαμορφώσουμε τον τοπικό διακομιστή, θα στείλουμε τα δεδομένα στον Ιστό και τέλος θα κλείσουμε τη σύνδεση. Αυτή η διαδικασία και οι εντολές εξηγούνται στα παρακάτω βήματα:
1. Πρώτα πρέπει να δοκιμάσουμε τη μονάδα Wi-Fi στέλνοντας εντολή AT , θα επιστρέψει μια απόκριση που περιέχει ΟΚ .
2. Μετά από αυτό, πρέπει να επιλέξουμε τη λειτουργία χρησιμοποιώντας την εντολή AT + CWMODE = mode_id , έχουμε χρησιμοποιήσει τη λειτουργία id = 3. Αναγνωριστικά λειτουργίας:
1 = Λειτουργία σταθμού (πελάτης)
2 = Λειτουργία AP (κεντρικός υπολογιστής)
3 = AP + Λειτουργία σταθμού (Ναι, το ESP8266 έχει διπλή λειτουργία!)
3. Τώρα πρέπει να αποσυνδέσουμε τη μονάδα Wi-Fi από το προηγουμένως συνδεδεμένο δίκτυο Wi-Fi, χρησιμοποιώντας την εντολή AT + CWQAP, καθώς το ESP8266 είναι προεπιλεγμένο αυτόματα συνδεδεμένο με οποιοδήποτε προηγουμένως διαθέσιμο δίκτυο Wi-Fi
4. Μετά από αυτό, ο χρήστης μπορεί να επαναφέρει την ενότητα με εντολή AT + RST . Αυτό το βήμα είναι προαιρετικό.
5. Τώρα πρέπει να συνδέσουμε το ESP8266 σε δρομολογητή Wi-Fi χρησιμοποιώντας τη δεδομένη εντολή
6. Τώρα λάβετε διεύθυνση IP χρησιμοποιώντας τη δεδομένη εντολή:
Θα επιστρέψει μια διεύθυνση IP.
7. Τώρα ενεργοποιήστε τη λειτουργία πολλαπλής χρήσης χρησιμοποιώντας το AT + CIPMUX = 1 (1 για πολλαπλή σύνδεση και 0 για μία σύνδεση)
8. Τώρα ρυθμίστε το ESP8266 ως διακομιστή χρησιμοποιώντας AT + CIPSERVER = 1, port_no (η θύρα μπορεί να είναι 80). Τώρα το Wi-Fi σας είναι έτοιμο. Εδώ χρησιμοποιείται το «1» για τη δημιουργία του διακομιστή και το «0» για τη διαγραφή του διακομιστή.
9. Τώρα χρησιμοποιώντας τη δεδομένη εντολή, ο χρήστης μπορεί να στείλει δεδομένα στον τοπικό διακομιστή που δημιουργήθηκε:
Αναγνωριστικό = Αρ. Ταυτότητας της σύνδεσης μετάδοσης
Μήκος = Το μέγιστο μήκος δεδομένων είναι 2 kb
10. Μετά την αποστολή αναγνωριστικού και μήκους στο διακομιστή, πρέπει να στείλουμε δεδομένα όπως: Serial.println ("[email protected]");
11. Μετά την αποστολή δεδομένων πρέπει να κλείσουμε τη σύνδεση με δεδομένη εντολή:
Τώρα τα δεδομένα έχουν μεταδοθεί στον τοπικό διακομιστή.
12. Τώρα πληκτρολογήστε Διεύθυνση IP στη γραμμή διευθύνσεων στο πρόγραμμα περιήγησης ιστού και πατήστε enter Τώρα ο χρήστης μπορεί να δει μεταδιδόμενα δεδομένα στην ιστοσελίδα.
Ελέγξτε το παρακάτω βίντεο για πλήρη διαδικασία.
Βήματα για προγραμματισμό:
1. Συμπεριλάβετε το SoftwareSerial Library για να επιτρέψετε τη σειριακή επικοινωνία στο PIN 2 & 3 και δηλώστε ορισμένες μεταβλητές και συμβολοσειρές.
#περιλαμβάνω
2. Μετά από αυτό, πρέπει να καθορίσουμε ορισμένες λειτουργίες για την εκτέλεση των επιθυμητών εργασιών μας.
Στη συνάρτηση Setup () , αρχίζουμε την ενσωματωμένη σειριακή επικοινωνία UART για ESP8266 ως client.begin (9600). με ρυθμό baud 9600.
άκυρη ρύθμιση () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Έτοιμο συστήματος.."); }
3. Στη λειτουργία wifi_init () , αρχικοποιούμε τη μονάδα wifi στέλνοντας κάποιες εντολές όπως επαναφορά, λειτουργία ρύθμισης, σύνδεση σε δρομολογητή, ρύθμιση παραμέτρων σύνδεσης κ.λπ. Αυτές οι εντολές έχουν επίσης εξηγηθεί παραπάνω στο τμήμα περιγραφής.
άκυρο wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Στη λειτουργία connect_wifi () , στέλνουμε δεδομένα εντολών στο ESP8266 και στη συνέχεια διαβάζουμε την απόκριση από τη μονάδα Wi-Fi ESP8266.
void connect_wifi (συμβολοσειρά cmd, int t) {int temp = 0, i = 0; ενώ (1) {Serial.println (cmd);…………………
5. Η λειτουργία sendwebdata () χρησιμοποιείται για την αποστολή δεδομένων στον Τοπικό διακομιστή ή στην ιστοσελίδα.
void sendwebdata (String webPage) {int ii = 0; ενώ (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0"); client.print ("AT + CIPSEND = 0");…………………
6. Η λειτουργία void send () χρησιμοποιείται για την αποστολή συμβολοσειρών δεδομένων στη λειτουργία sendwebdata () . Αυτό θα σταλεί περαιτέρω στην ιστοσελίδα.
άκυρο Αποστολή () {webpage = "
Καλώς ορίσατε στο Circuit Digest
"; sendwebdata (ιστοσελίδα); ιστοσελίδα = όνομα; ιστοσελίδα + = dat;…………………7. Η συνάρτηση get_ip () χρησιμοποιείται για τη λήψη διεύθυνσης IP του τοπικού διακομιστή που δημιουργήθηκε.
8. Στη λειτουργία void loop () , στέλνουμε οδηγίες στον χρήστη για ανανέωση της σελίδας και ελέγχουμε εάν ο διακομιστής είναι συνδεδεμένος. Όταν ο χρήστης ανανεώνει ή ζητά την ιστοσελίδα, τα δεδομένα μεταδίδονται αυτόματα στην ίδια διεύθυνση IP.
κενός βρόχος () {k = 0; Serial.println ("Ανανεώστε τη σελίδα σας"); ενώ (k <1000)………………
Μπορούμε να εμφανίσουμε οποιαδήποτε δεδομένα από το Arduino έως την ιστοσελίδα χρησιμοποιώντας αυτήν τη διαδικασία, όπως θερμοκρασία δωματίου και υγρασία, χρόνος ρολογιού, συντεταγμένες GPS, καρδιακό ρυθμό κλπ.