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

Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino σας στο δίκτυο IP;: 11 βήματα (με εικόνες)
Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino σας στο δίκτυο IP;: 11 βήματα (με εικόνες)

Βίντεο: Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino σας στο δίκτυο IP;: 11 βήματα (με εικόνες)

Βίντεο: Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino σας στο δίκτυο IP;: 11 βήματα (με εικόνες)
Βίντεο: Έλεγχος λαμπτήρα AC με Arduino AC Dimmer 2024, Ιούλιος
Anonim
Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino στο δίκτυο IP
Πώς να φτιάξετε τη δική σας πύλη WIFI για να συνδέσετε το Arduino στο δίκτυο IP

Όπως τόσοι πολλοί άνθρωποι πιστεύετε ότι το Arduino είναι μια πολύ καλή λύση για αυτοματοποίηση σπιτιού και ρομποτική

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

Δουλεύω σε ένα ρομπότ που πρέπει να είναι μόνιμα συνδεδεμένο με ένα διακομιστή που τρέχει κώδικα τεχνητής νοημοσύνης. Προσπάθησα να χρησιμοποιήσω δίκτυο RF όπως είχα συνηθίσει για το domotic αλλά δεν είναι αρκετά αποδοτικό. Καθώς το ρομπότ κινείται δεν μπορώ να χρησιμοποιήσω το Ethernet Arduino Shield. Το Arduino Wifi Shield είναι ακριβό και μου φαίνεται ότι είναι παλιό σχέδιο.

Χρειαζόμουν κάτι που μπορεί να ανταλλάξει δεδομένα με έναν πολύ απλό και αποτελεσματικό τρόπο με έναν διακομιστή.

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

Εδώ μπορείτε να βρείτε πώς να δημιουργήσετε το ηλεκτρονικό στοιχείο και να κατεβάσετε το λογισμικό.

Χρησιμοποίησα αυτήν την πύλη για οικιακό αυτοματισμό και για Robotic.

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

Έκανα ένα άλλο οδηγό που χρησιμοποιεί ασπίδα ESP8266 και αποφεύγει τη συγκόλληση

Προμήθειες

Έγραψα ένα άλλο διδακτικό σε αυτό το θέμα

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

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

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

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

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

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

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

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

Είναι πιο εύκολο να χρησιμοποιηθεί με Arduino Mega που έχουν περισσότερα από ένα UART (Arduino Mega για παράδειγμα) αλλά μπορούν να λειτουργήσουν και με UNO.

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

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

Διαθέτει 3 LED που υποδεικνύει την κατάσταση και την κίνηση της Πύλης.

Παρέχει ένα GPIO που μπορεί να χρησιμοποιηθεί από το Arduino για να περιμένει να συνδεθεί η πύλη WIFI και IP.

Λειτουργεί σε 3 διαφορετικές λειτουργίες που έχουν οριστεί με διακόπτες:

  • Λειτουργία πύλης που είναι η κανονική λειτουργία
  • Λειτουργία διαμόρφωσης που χρησιμοποιείται για τον καθορισμό των παραμέτρων
  • Λειτουργία εντοπισμού σφαλμάτων που είναι για λειτουργία εντοπισμού σφαλμάτων

Οι περισσότερες από τις παραμέτρους μπορούν να τροποποιηθούν ώστε να ταιριάζουν στις ανάγκες σας.

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

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

Πάνω από το Arduino σας θα χρειαστείτε

  • 1 x μονάδα ESP8266-Επιλέγω το MOD-WIFI-ESP8266-DEV από την Olimex που κοστίζει περίπου 5 ευρώ και είναι αρκετά εύκολο στη χρήση.
  • Πηγή ισχύος 1 x 5v
  • 1 ρυθμιστής ισχύος 3.3v - χρησιμοποιώ LM1086
  • Πυκνωτής 1 x 100 microfarad
  • 1 x μονάδα ULN2803 APG (μπορεί να αντικατασταθεί από 3 x τρανζίστορ)
  • 8 x αντιστάσεις (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (κόκκινο, πράσινο, μπλε)
  • 1 x PCB Breadboard
  • μερικά καλώδια και συνδετήρες

Μόνο κατά τη διάρκεια των βημάτων κατασκευής, θα χρειαστείτε

  • 1 x FTDI 3.3v για τη διαμόρφωση
  • Συγκολλητικό σίδερο και κασσίτερος

Πριν από τη συγκόλληση, είναι σημαντικό να ρυθμίσετε όλα τα εξαρτήματα στο breadboard και να ελέγξετε ότι όλα είναι εντάξει.

Βήμα 4: Ας ξεκινήσουμε με το ηλεκτρονικό στο Breadboard

Ας ξεκινήσουμε με το ηλεκτρονικό στο Breadboard!
Ας ξεκινήσουμε με το ηλεκτρονικό στο Breadboard!

Η ηλεκτρονική διάταξη είναι διαθέσιμη σε μορφή Fritzing

Μπορείτε να το κατεβάσετε εδώ το βήμα 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Απλώς κάντε το σχήμα προσέχοντας την τάση.

Θυμηθείτε ότι το ESP8266 δεν υποστηρίζει τάση υψηλότερη από 3,3v. Το FTDI πρέπει να ρυθμιστεί σε 3,3v.

Βήμα 5: Πάμε στο Λογισμικό

Πάμε στο Λογισμικό!
Πάμε στο Λογισμικό!

Ας ξεκινήσουμε με την πλευρά της Πύλης

Έγραψα τον κωδικό με το Arduino IDE. Έτσι χρειάζεστε το ESP8266 για να είστε γνωστός ως πίνακας από το IDE. Επιλέξτε τον κατάλληλο πίνακα με το μενού Εργαλεία / πίνακες.

Εάν δεν βλέπετε κανένα ESP266 στη λίστα, αυτό σημαίνει ότι ίσως χρειαστεί να εγκαταστήσετε το ESP8266 Arduino Addon (μπορείτε να βρείτε εδώ τη διαδικασία).

Όλος ο κώδικας που χρειάζεστε είναι διαθέσιμος στο GitHub. Ρθε η ώρα να το κατεβάσετε!

Ο κύριος κωδικός της πύλης είναι εκεί:

Εκτός από το τυπικό Arduino και το ESP8266 περιλαμβάνει τον κύριο κωδικό που χρειάζεται αυτά τα 2 περιλαμβάνουν: LookFoString που χρησιμοποιείται για χειρισμό συμβολοσειρών και είναι εκεί:

Το ManageParamEeprom που χρησιμοποιείται για την ανάγνωση και την αποθήκευση παραμέτρων στο Eeprom ans είναι εκεί:

Μόλις λάβετε όλο τον κωδικό, ήρθε η ώρα να τον ανεβάσετε στο ESP8266. Πρώτα συνδέστε το FTDI σε μια θύρα USB του υπολογιστή σας.

Προτείνω να ελέγξετε τη σύνδεση πριν προσπαθήσετε να ανεβάσετε.

  • Ρυθμίστε τη σειριακή οθόνη Arduino στη νέα θύρα USB.
  • Ρυθμίστε την ταχύτητα στα 115200 και τα δύο cr nl (defaut speed for Olimex)
  • Ενεργοποιήστε το breadboard (το ESP8266 συνοδεύεται από λογισμικό που ασχολείται με εντολές AT)
  • Στείλτε "AT" με το σειριακό εργαλείο.
  • Πρέπει να λάβετε "OK" σε αντάλλαγμα.

Εάν όχι, ελέγξτε τη σύνδεσή σας και δείτε τις προδιαγραφές ESP8266.

Εάν έχετε "ΟΚ", είστε έτοιμοι να ανεβάσετε τον κωδικό

  • Απενεργοποιήστε το breadboard, περιμένετε μερικά δευτερόλεπτα,
  • πατήστε το μαύρο micro-swith του ESP8266. Είναι φυσιολογικό να παίρνετε λίγα σκουπίδια στη σειριακή οθόνη.
  • Πατήστε το IDE μεταφόρτωσης όπως για ένα Arduino.
  • Μετά την ολοκλήρωση της μεταφόρτωσης, ορίστε την σειριακή ταχύτητα σε 38400.

Θα δείτε κάτι όπως στην εικόνα.

Συγχαρητήρια ανεβάσατε με επιτυχία τον κωδικό!

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

Ας κάνουμε τη διαμόρφωση!
Ας κάνουμε τη διαμόρφωση!

Το configGPIO πρέπει να οριστεί σε 1 για είσοδο σε λειτουργία διαμόρφωσης

Αρχικά σαρώστε το WIFI εισάγοντας την εντολή: ScanWifi. Θα δείτε μια λίστα με το δίκτυο που εντοπίστηκε.

  • Στη συνέχεια, ορίστε το SSID σας εισάγοντας "SSID1 = το δίκτυό σας"
  • Στη συνέχεια, ορίστε τον κωδικό πρόσβασής σας εισάγοντας "PSW1 = το κωδικό πρόσβασής σας"
  • Στη συνέχεια, πληκτρολογήστε "SSID = 1" για να ορίσετε το τρέχον δίκτυο
  • Εισαγάγετε "Επανεκκίνηση" για να συνδέσετε την Πύλη στο WIFI σας.
  • Μπορείτε να επαληθεύσετε ότι έχετε λάβει IP εισάγοντας "ShowWifi".
  • Το μπλε LED θα ανάψει και το κόκκινο θα αναβοσβήνει.

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

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

Το τελευταίο απαιτούμενο βήμα είναι να ορίσετε τη θύρα ακρόασης διακομιστή UDP εισάγοντας "listenPort = xxxx".

Εισαγάγετε το "ShowEeprom" για να ελέγξετε τι αποθηκεύσατε μόλις στο Eeprom

Τώρα συνδέστε το GPIO2 στη γείωση για έξοδο από τη λειτουργία διαμόρφωσης

Το Gateway σας είναι έτοιμο να λειτουργήσει

Υπάρχουν κάποιες άλλες εντολές που μπορείτε να βρείτε στην τεκμηρίωση.

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

Let's Do the Arduino Side!
Let's Do the Arduino Side!
Let's Do the Arduino Side!
Let's Do the Arduino Side!

Πρώτα συνδέστε το Arduino

Αν έχετε Mega θα είναι πιο εύκολο να ξεκινήσετε. Ωστόσο, μπορείτε να χρησιμοποιήσετε ένα Uno.

Για να ελέγξετε καλύτερα την εργασία σας είναι να χρησιμοποιήσετε το παράδειγμα.

Μπορείτε να το κατεβάσετε από εκεί:

Περιλαμβάνει κώδικα SerialNetwork που είναι εδώ:

Απλώς ανεβάστε τον κώδικα μέσα στο Arduino σας.

Η πράσινη λυχνία LED αναβοσβήνει κάθε φορά που το Arduino στέλνει δεδομένα.

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

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

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

Απλά τρέξτε το

Κοιτάξτε την κονσόλα Java.

Κοιτάξτε την οθόνη Arduino.

Το Arduino στέλνει 2 διαφορετικά πακέτα.

  • Το πρώτο περιέχει τις ψηφιακές ακίδες 2 έως 6.
  • Η δεύτερη περιέχει 2 τυχαίες τιμές, το επίπεδο τάσης του Α0 σε mV και τον αυξανόμενο αριθμό.

Το πρόγραμμα Java

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

Βήμα 9: Isρθε η ώρα να κάνετε λίγη συγκόλληση

Isρθε η ώρα να κάνετε λίγη συγκόλληση!
Isρθε η ώρα να κάνετε λίγη συγκόλληση!
Isρθε η ώρα να κάνετε λίγη συγκόλληση!
Isρθε η ώρα να κάνετε λίγη συγκόλληση!
Isρθε η ώρα να κάνετε λίγη συγκόλληση!
Isρθε η ώρα να κάνετε λίγη συγκόλληση!

Λειτουργεί στο breadboard!

Itρθε η ώρα να το κάνουμε πιο στιβαρό με συγκόλληση εξαρτημάτων σε PCB

Πέρα από αυτό που κάνατε με το breadboard, πρέπει να προσθέσετε 3 συνδετήρες.

  • C1 1 x pin ένας που θα χρησιμοποιηθεί για είσοδο σε λειτουργία ανίχνευσης δικτύου.
  • C2 3 x ακίδες που θα χρησιμοποιηθούν για εναλλαγή μεταξύ λειτουργίας και ρύθμισης παραμέτρων.
  • C3 6 x ακίδες που θα χρησιμοποιηθούν για τη σύνδεση της πύλης είτε σε Arduino είτε σε FTDI.

Το C1 που είναι συνδεδεμένο στο GPIO2 πρέπει να είναι μη αυτόματα γειωμένο εάν θέλετε να ενεργοποιήσετε τα ίχνη δικτύου.

Το C2 που είναι συνδεδεμένο στο GPIO 4 μπορεί να ρυθμιστεί σε 2 διαφορετικές θέσεις. Ένα που ρυθμίστηκε στη γείωση για την κανονική λειτουργία λειτουργίας και ένα σε 3,3v για είσοδο σε λειτουργία διαμόρφωσης.

Ρυθμίστε όλα τα εξαρτήματα στο PCB σύμφωνα με το διάγραμμα και μετά ξεκινήστε να κολλάτε για να πάρετε το τελικό προϊόν!

Βήμα 10: Ας κάνουμε την τελική δοκιμή

Image
Image

Ξεκινήστε το πρόγραμμα δοκιμών Java.

Συνδέστε το Arduino.

Δύναμη στην πύλη.

Και κοιτάξτε την κονσόλα Java, την οθόνη Arduino, το LED Arduino και τα LED της πύλης.

Βήμα 11: Μπορείτε να προσαρμόσετε αυτό το σχέδιο στις δικές σας απαιτήσεις

Σχετικά με το υλικό

  • Εάν επιλέξετε κάποιο άλλο ESP8266, θα πρέπει να προσαρμοστείτε στις προδιαγραφές.
  • Εάν επιλέξετε άλλο ρυθμιστή 3.3v, πρέπει να αποδίδει πάνω από 500mA και θα πρέπει να προσαρμόσετε τον πυκνωτή.
  • Μπορείτε να τροποποιήσετε τις αντιστάσεις LED για να ρυθμίσετε τη φωτεινότητα.
  • Μπορείτε να καταργήσετε όλη τη λυχνία LED, αλλά προτείνω να διατηρήσετε τουλάχιστον το κόκκινο.
  • Μπορείτε να αντικαταστήσετε το ULN2803 με 3 τρανζίστορ (ή λιγότερο εγώ επιλέγετε να μην κρατήσετε το 3 LED).
  • Έκανα δοκιμή αλλά εκεί πρέπει να λειτουργεί με πίνακες Arduino 3.3v. Απλώς συνδέστε το Tx Rx στη σύνδεση 3.3v.

Σχετικά με τη διαμόρφωση

  • Μπορείτε να αποθηκεύσετε 2 διαφορετικά SSID και να αλλάξετε
  • Μπορείτε να τροποποιήσετε το GPIO που χρησιμοποιείται

Σχετικά με το λογισμικό

Συνιστάται: