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

Serial UDP/IP Gateway για Arduino Βασισμένο στην ασπίδα ESP8266: 8 βήματα
Serial UDP/IP Gateway για Arduino Βασισμένο στην ασπίδα ESP8266: 8 βήματα

Βίντεο: Serial UDP/IP Gateway για Arduino Βασισμένο στην ασπίδα ESP8266: 8 βήματα

Βίντεο: Serial UDP/IP Gateway για Arduino Βασισμένο στην ασπίδα ESP8266: 8 βήματα
Βίντεο: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Νοέμβριος
Anonim
Serial UDP/IP Gateway για Arduino Βασισμένο στην ασπίδα ESP8266
Serial UDP/IP Gateway για Arduino Βασισμένο στην ασπίδα ESP8266

Έχω ήδη δημοσιεύσει το 2016 αυτό το διδακτικό "Πώς να φτιάξετε τη δική σας πύλη Wifi για να συνδέσετε το Arduino σας στο Δίκτυο IP". Δεδομένου ότι έκανα κάποιες βελτιώσεις κώδικα και εξακολουθώ να χρησιμοποιώ αυτήν τη λύση.

Παρ 'όλα αυτά, υπάρχουν τώρα κάποιες ασπίδες ESP8266 που επιτρέπουν να κάνετε το ίδιο χωρίς συγκόλληση, αρκεί να μην χρησιμοποιείτε πλακέτες Micro ή Nano.

Αυτό το οδηγό θα εξηγήσει πώς να χρησιμοποιήσετε αυτές τις ασπίδες ESP82 ως σειριακή πύλη UDP/IP.

Αυτό παίρνει μέρος μιας παγκόσμιας υποδομής αυτοματισμού σπιτιού, μπορείτε να ρίξετε μια ματιά εδώ

Περισσότερες πληροφορίες σχετικά με την ασπίδα με αυτό το εκπαιδευτικό

Προμήθειες

1 Arduino Mega (το καλύτερο είναι να έχετε τουλάχιστον 1 Mega για ανάπτυξη και 1 Uno για φάση τρεξίματος)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 σύρματα σανίδων

Βήμα 1: Πώς λειτουργεί;

Πώς λειτουργεί ?
Πώς λειτουργεί ?

Το Gateway βασίζεται σε μια μονάδα ESP8266

Αυτή η μονάδα συνδέεται από τη μία πλευρά με τον σειριακό σύνδεσμο από την άλλη πλευρά στο δίκτυο IP με το Wifi.

Λειτουργεί ως μαύρο κουτί. Τα πακέτα δεδομένων που προέρχονται από τον σειριακό σύνδεσμο αποστέλλονται σε μια θύρα IP/Udp και αντίστροφα.

Απλώς πρέπει να ορίσετε τη δική σας διαμόρφωση (IP, WIFI…) μία φορά την πρώτη φορά που θα ενεργοποιήσετε την Πύλη.

Μπορεί να μεταφέρει είτε ακατέργαστα ASCII είτε δυαδικά δεδομένα (χωρίς HTTP, JSON…)

Έχει σχεδιαστεί για να συνδέει αντικείμενα με οικιακά λογισμικά που χρειάζονται γρήγορη και συχνή μεταφορά σύντομων πακέτων δεδομένων.

Βήμα 2: Ποιες είναι οι κύριες λειτουργίες;

Κυρίως είναι ένα μαύρο κουτί που μετατρέπει σειριακά δεδομένα σε πακέτο UDP και με τους δύο τρόπους.

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

Το Arduino μπορεί να στέλνει και να λαμβάνει μηνύματα προς / από διακομιστή συνδεδεμένο μέσω Internet μόνο με εκτύπωση / ανάγνωση σειριακού συνδέσμου. Δεν χρειάζεται ο προγραμματιστής Arduino να ενοχλεί το πρωτόκολλο IP.

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

Το Gateway διαθέτει 2 διαφορετικούς τρόπους λειτουργίας που επιλέγονται με τη ρύθμιση ενός GPIO

Ρύθμιση του GPIO στη γείωση και η Πύλη εισέρχεται σε λειτουργία διαμόρφωσης.

Ρύθμιση του GPIO δωρεάν και η πύλη εισέρχεται σε λειτουργία λειτουργίας πύλης.

Επιπλέον, η διαμόρφωση UDP/IP Gateway μπορεί να τροποποιηθεί εξ αποστάσεως

Βήμα 3: Κατασκευή υλικού

Κατασκευή Υλικού
Κατασκευή Υλικού

Πολύ λίγα πράγματα απαιτούνται

1 ESP8266 Shield - Βρήκα αυτό το UNO R3 ESP8266 Serial WiFi Shield Extend Board Module σε λιγότερο από 9 €

1 UNO που είναι ο στόχος Arduino

1 Mega που είναι το εργαλείο ανάπτυξης arduino (μπορείτε να το κάνετε χωρίς αλλά είναι αρκετά δύσκολο να διορθώσετε σφάλματα)

1 FTDI 3.3/5v για ανάπτυξη

Κάποια σύρματα

Βήμα 4: Λήψη του κώδικα πύλης

Κατεβάστε τον κωδικό πύλης
Κατεβάστε τον κωδικό πύλης

Κατά τη διάρκεια αυτού του βήματος, το Arduino χρησιμοποιείται μόνο για τροφοδοσία (με USB ή άλλη πηγή τροφοδοσίας) στην ασπίδα ESP8266

Συνδέστε το ESP8266 GPIO4 στη γείωση (για είσοδο στη λειτουργία διαμόρφωσης)

Προσέξτε να ρυθμίσετε το FTDI σε 3.3v όπως απαιτείται από την ασπίδα

Συνδέστε το FTDI στην ασπίδα (RX σε TX)

Ρυθμίστε το διακόπτη ασπίδας σε 1: απενεργοποίηση 2: απενεργοποίηση 3: σε 4: ενεργοποίηση

Συνδέστε την πλευρά USB του FTDI στον υπολογιστή σας

Επαναφέρετε την ασπίδα με το κουμπί ESP-RST

Κατεβάστε τον κωδικό Gateway εκεί στο GitHub

Ανοίξτε το Arduino IDE

  • Επιλέξτε τη θύρα οθόνης FTDI
  • Ανοίξτε το IDE Serial Monitor - Ρυθμίστε την ταχύτητα σε 38400
  • Επιλέξτε Generic ES8266 module board
  • Αναβαθμίστε το υλικολογισμικό ασπίδας με τον κωδικό πύλης

Ρυθμίστε το διακόπτη 3: απενεργοποίηση 4: απενεργοποίηση

Ανοίξτε το IDE Serial Monitor

Επαναφέρετε την ασπίδα με το κουμπί ESP-RST

Πρέπει να δείτε μηνύματα στην οθόνη που ξεκινούν με "προετοιμασία EEPROM" "Ολοκλήρωση αρχικοποίησης"….

Ρθε η ώρα να κάνετε τη διαμόρφωση

Βήμα 5: Ας κάνουμε τη διαμόρφωση πύλης

Κατά τη λήψη του κωδικού πύλης για πρώτη φορά, το ESP8266 Eeprom θα προετοιμαστεί με τις προεπιλεγμένες τιμές. Θα δείτε αυτού του είδους τα μηνύματα "set parameter: x size: yy"

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

Χρησιμοποιήστε τη σειριακή θύρα της οθόνης για αποστολή εντολής (ορίστε σε NL και CR).

Καθώς το SSID δεν έχει οριστεί αυτήν τη στιγμή, περιμένετε "Δεν ήταν δυνατή η σύνδεση στο yoursecondssid επανάληψη: 5"

Στη συνέχεια, θα ξεκινήσει αυτόματα μια σάρωση WIFI

Είναι καιρός να ορίσετε τα SSID σας με τις ακόλουθες εντολές:

  • SSID1 = yourchoice1
  • PSW1 = yourpsw1
  • SSID2 = yourchoice2
  • PSW2 = yourpsw2
  • SSID = 1 (για να επιλέξετε με ποιο SSID θα ξεκινήσετε)
  • RestartWifi

Μετά από μερικά δευτερόλεπτα μπορείτε να ελέγξετε τη σύνδεση με την εντολή "ShowWifi". Πρέπει να δείτε τη διεύθυνση IP που πήρε η πύλη από το διακομιστή DNS. Εάν συμβαίνει αυτό, είναι καιρός να προχωρήσουμε περαιτέρω

It'sρθε η ώρα να ορίσετε τη διεύθυνση διακομιστή IP σας εισάγοντας τις 4 δευτερεύουσες διευθύνσεις (διακομιστής που θα εκτελέσει τον κώδικα δοκιμής Java). Για παράδειγμα:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

Με την αποστολή μιας κενής εντολής θα δείτε όλες τις υποστηριζόμενες εντολές που μπορείτε να χρησιμοποιήσετε αργότερα για να ταιριάζουν στις απαιτήσεις σας. Όλες οι τιμές παραμέτρων αποθηκεύονται στο Eeprom και χρειάζονται επανεκκίνηση για να ληφθούν υπόψη.

Αφαιρέστε το καλώδιο διαμόρφωσης

Η ασπίδα λειτουργεί τώρα ως πύλη

Βήμα 6: Κάντε λήψη του Παραδείγματος κώδικα Arduino

Κάντε λήψη του Παραδείγματος κώδικα Arduino
Κάντε λήψη του Παραδείγματος κώδικα Arduino

Κατεβάστε πρώτα τον κύριο κώδικα Arduino εκεί στο GitHub

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

Στη συνέχεια, ανοίξτε τον κύριο κωδικό με ένα νέο Arduino IDE

Απενεργοποιήστε το διακόπτη ασπίδας 1 και 2 για να ελευθερώσετε τον σειριακό σύνδεσμο Arduino 0 για σύνδεση USB

Επαναφέρετε την ασπίδα

Συνδέστε τα καλώδια FTDI στο Mega Serial 2 (TX FTDI σε RX Mega και ούτω καθεξής)

Ξεκινήστε ένα νέο Arduino IDE (ή ένα εργαλείο TTY), συνδέστε το FTDI Usb και ξεκινήστε να παρακολουθείτε τον σειριακό σύνδεσμο

Ανεβάστε τον κώδικα Arduino μέσα στο Mega

Ενεργοποιήστε το διακόπτη ασπίδας 1 και 2 για να συνδέσετε τον σειριακό σύνδεσμο Arduino 0

Επαναφέρετε την ασπίδα

Πρέπει να δείτε αυτό το μήνυμα "εκκίνηση usb print" στην οθόνη

Βήμα 7: Ας κάνουμε την πλευρά του διακομιστή

Το παράδειγμα του διακομιστή είναι ένα πρόγραμμα Java που μπορείτε να κατεβάσετε εδώ στο GitHub

Απλώς εκτελέστε το και κοιτάξτε την κονσόλα Java και κοιτάξτε την οθόνη FTDI

Θα δείτε ανταλλαγές δεδομένων μεταξύ διακομιστή και Arduino

Βήμα 8: Για να προχωρήσετε παραπέρα

Να πάω παρακάτω
Να πάω παρακάτω
Να πάω παρακάτω
Να πάω παρακάτω

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

Εάν ενδιαφέρεστε για αυτήν την υποδομή, ενημερώστε με. Θα δημοσιεύσω πηγές.

Εάν θέλετε απλώς να χρησιμοποιήσετε την πύλη, μπορείτε να απλοποιήσετε τον κώδικα Arduino.

Αφού δημιουργήσετε και δοκιμάσετε τον κωδικό σας σε ένα Arduino Mega, μπορείτε εύκολα να τον αντικαταστήσετε με ένα Uno!

Επιπλέον, μπορείτε να συνδέσετε ένα καλώδιο μεταξύ του Arduino GPIO 7 και του ESP8266 GPIO 5 εάν θέλετε το Arduino σας να ελέγχει τη σύνδεση Wifi

Συνιστάται: