Αυτοκίνητο με βιντεοκάμερα. Έλεγχος WiFi. Έλεγχος μηχανής μέσω WiFi χρησιμοποιώντας ESP8266 Nodemcu
Αυτή είναι μια μικρή ιστορία για το πώς να οικοδομήσουμε ένα ρομπότ με τη μορφή ενός αυτοκινήτου παιχνιδιών με μια βιντεοκάμερα που μπορεί να ελεγχθεί χρησιμοποιώντας έναν υπολογιστή ή ένα smartphone στο Android OS μέσω WiFi. Η συσκευή δεν έχει αυτονομία με την έννοια της συμπεριφοράς της (όπως η αναγνώριση οτιδήποτε), ο έλεγχος είναι μόνο από ένα άτομο, οπότε το "ρομπότ" δεν είναι μια εντελώς κατάλληλη λέξη στον τίτλο.
Όλοι άρχισαν με το γεγονός ότι η ιδέα της διαχείρισης των συσκευών παιχνιδιών πρώτου προσώπου (το λεγόμενο FPV) φαινόταν εξαιρετικά ενδιαφέρον από την άποψη της ίδιας της διαδικασίας. Μετά από όλα, μπορούμε έτσι να συνειδητοποιήσουμε την παρουσία μας, όχι στο Εικονικός κόσμος, και πραγματικά.
Είναι ευκολότερο και ταχύτερο να εφαρμόσει αυτή την ιδέα σε αυτοκίνητα παιχνιδιών ή μοντέλων. Οι τρέχουσες τεχνολογίες πρέπει να δώσουν σε αυτόν τον κλάδο και να προσφέρουν πολλά παρόμοια πράγματα. Ωστόσο, η πρόταση αυτή ήταν αρκετά ακριβή σε σύγκριση με αυτό που θα μπορούσε να γίνει.
Δεδομένου ότι αυτό είναι το πρώτο μου έργο, δεν ήμουν σε θέση να προγραμματίσω τίποτα κανονικά και αποφάσισα να αναζητήσω πρώτα τους ανθρώπους και τις λύσεις τους σε αυτό το καθήκον.
Ξεκινώντας τη μελέτη των επιλογών, πώς μπορώ να εφαρμόσω αυτή την ιδέα, βρήκα ένα πολύ Λεπτομερής περιγραφή Ένα τέτοιο έργο . Ο συγγραφέας του με βοήθησε με χαρά να καταλάβω τα προβλήματα που προκύπτουν κατά τη δημιουργία ενός ρομπότ.
Έτσι πρώτα και βρήκα τι ... Duino. Δεδομένου ότι ήταν η έτοιμη έκδοση του μικροελεγκτή, όπου δεν ήταν απαραίτητο να συγκεντρωθεί η ταινία προς αυτόν, το επέλεξα. Επίσης, μου άρεσε επίσης την παρουσία ενός bootloader που σας επιτρέπει να αναβοσβήνετε ένα μικροελεγκτή χωρίς προγραμματιστές.
Για να εφαρμόσετε αυτό το έργο, θα χρειαστείτε:
- Arduino Microcontroller (οποιοσδήποτε: Nano, Uno, Mega)
- Μπαταρία 9,6volt
- Κινεζική μηχανή στον ραδιοεπικοινωνιακό έλεγχο
- Router dir320 (ή οποιοδήποτε άλλο υλικολογικό λογισμικό ανοικτής γραφής)
- Logitech C310 Webcam ή οποιοδήποτε άλλο με ρεύμα UVC
Προγράμματα πέντε: στον υπολογιστή, στο Android, στο δρομολογητή (Server Control και το βίντεο), και στον μικροεπεξεργαστή.
Σχέδιο εργασίας: Σύνδεση επιτραπέζιος υπολογιστής (Laptop, τότε PC) με δρομολογητή WiFi. Στον δρομολογητή, όταν είναι ενεργοποιημένη, τα προγράμματα 2E φορτώνονται αυτόματα:
1) διακομιστής. Αυτό το πρόγραμμα ανοίγει την υποδοχή (σύνδεση) σε μια συγκεκριμένη θύρα και περιμένει όταν ο πελάτης συνδέεται με αυτή τη θύρα με αυτό (οποιοδήποτε πρόγραμμα που επικοινωνεί με αυτή τη θύρα και επίσης θα ενημερώσει συγκεκριμένα στο διακομιστή ότι είναι έτοιμο να εργαστεί μέσω μιας ανοικτής υποδοχής). Στη συνέχεια, μετά την εγκατάσταση της σύνδεσης, όλα όσα προέρχονται από τον πελάτη θα ανακατευθυνθούν από μια συγκεκριμένη διαδρομή, για εμάς είναι μια θύρα COM, ένας μικροεπεξεργαστής συνδέεται σε αυτή τη θύρα. Και αντίθετα, όλα όσα προέρχονται από τη θύρα COM θα επισκευαστούν από τον πελάτη.
2) Το πρόγραμμα επεξεργασίας βίντεο καταγράφει με Κάμερα USB και στείλτε σε μια συγκεκριμένη θύρα. Για να το δείτε, απλά πρέπει να έχετε μια σύνδεση με το δρομολογητή σε αυτό το λιμάνι.
Αφού εγκατασταθεί η σύνδεση WiFi μεταξύ του υπολογιστή και του δρομολογητή, εκτελέστε το πρόγραμμα ελέγχου ρομπότ στον υπολογιστή (ο ίδιος πελάτης), αυτό το πρόγραμμα συνδέεται με το πρόγραμμα διακομιστή στο δρομολογητή. Το ίδιο ή άλλο πρόγραμμα μεταδίδει βίντεο από δρομολογητή WiFi.
Στη συνέχεια, ο χρήστης μπορεί να ελέγξει το αυτοκίνητο και να πιέζει, για παράδειγμα, το κουμπί "forward". Το πρόγραμμα PC αναφέρεται στην εντολή "Προώθηση" απευθείας στο δρομολογητή, στην IP του, αλλά σε μια συγκεκριμένη θύρα. Στο δρομολογητή, αυτή η εντολή εισέρχεται στο πρόγραμμα διακομιστή, επειδή Αποστέλλεται στο λιμάνι του και μέσα στην ανοιχτή πρίζα. Το πρόγραμμα διακομιστή, χωρίς να κάνει τίποτα με αυτή την ομάδα, απλά το στέλνει στη θύρα COM. Έτσι, η ομάδα "προς τα εμπρός" αποδεικνύεται ότι βρίσκεται στον μικροεπεξεργαστή, η οποία ως απάντηση σε αυτό δίνει το σήμα "προς τα εμπρός σε ένα από τα συμπεράσματά του. Σε τέτοια συμπεράσματα, το κύκλωμα ελέγχου κινητήρα είναι συνδεδεμένο, επειδή Ο ίδιος ο μικροεπεξεργαστής μπορεί να τους διαχειριστεί λόγω της χαμηλής κατανάλωσης.
Ελέγξτε την εκτελεστική συσκευή μέσω του δρομολογητή, χωρίς μικροεπεξεργαστή δεν θα λειτουργήσει, επειδή Ο μικροεπεξεργαστής μπορεί να σχηματίσει σήματα "1" (τάση\u003e 2.5V) ή "0" (λιγότερο υποδεικνυόμενη) σε οποιαδήποτε από τις δωδεκάδες άλλα συμπεράσματα. Ο δρομολογητής δεν έχει συμπεράσματα, υπάρχουν μόνο θύρες I / O, όπως USB ή COM (σειριακό), στο οποίο 2-3 καλώδια.
Τώρα μέρος είναι πρακτικό. Θα πω εκ των προτέρων ότι παρά τις φαινομενικές δυσκολίες, όλα είναι πραγματικά απλά, αν μιλάμε για μια απλή αντιγραφή αυτού του έργου - τελικά, όλα έχουν ήδη γίνει και έργα. Απλά πρέπει να εκτελέσετε αυτήν την οδηγία ακριβώς.
Αρχικά, ο μικροελεγκτής ήταν freeduino maxserial ο οποίος είχε μια θύρα COM, η οποία ήταν μία από τις λίγες (όπως το θεωρούσαμε) για να συνδεθείτε με το δρομολογητή UART, γι 'αυτό χρειάζεστε για να κολλήσετε τον προσαρμογέα με το uarta στο com για να το συνδέσετε στο δρομολογητή. Δεν ήθελα πραγματικά να το πάρω, καθώς εξακολουθεί να υπάρχει Arduino, και ο Freeduino στην Ουκρανία δεν είναι.
Όπως σκέφτηκα αργότερα, ήταν απλώς ένα υπερβολικό ταξίδι του σχεδίου. Μπορείτε να κάνετε μόνο με 1 καλωδίωση που θα μεταβεί από το δρομολογητή TX (στο σχήμα) σε Rx (0 PIN) του μικροελεγκτή.
Δεν είναι σαφές γιατί αποδείχθηκε ότι είναι TX στο TX στο Freduin. Πιθανότατα, ο χαρακτηρισμός απλώς εφαρμόζεται εσφαλμένα. (εδώ 0 pin tx) Είναι καλύτερα να πάρετε το πρωτότυπο .
Αγόρασα μια καλή γραφομηχανή, αν και κινέζικα
Το μηχάνημα ήταν πολύ ισχυρό, 5 κιλά σε μια επίπεδη επιφάνεια τράβηξε πολύ σίγουρη. Επίσης, περιλάμβανε την μπαταρία για 6 βολτ. Όσον αφορά τα ηλεκτρονικά, η γραφομηχανή έχει ήδη ένα έτοιμο οδηγό οδήγησης, το οποίο μπορεί να υποβληθεί από τους διαχειριστές των εξόδων χαμηλής τάσης από ένα μικροελεγκτή (αν δεν ήταν τυχεροί με το μηχάνημα - ο οδηγός του κινητήρα θα μπορούσε επίσης να ληφθεί από το Arduino)
Ο δρομολογητής απαιτεί το υλικολογισμικό OpenWRT και τη λίστα των συσκευασιών που καθορίζονται στο σχήμα.
Ο δρομολογητής μπορεί να ρυθμιστεί ως σημείο πρόσβασης που μπορεί να συνδεθεί οποιαδήποτε συσκευή WiFi. Και ακόμα κι αν δεν υπάρχει λογισμικό Για τον έλεγχο του μηχανήματος - Χρησιμοποιήστε το ως ένα ασύρματο θάλαμο παρακολούθησης βίντεο.
Η κάμερα C310 συνδέεται ακριβώς θύρα USB Στον δρομολογητή και δεν απαιτεί συγκόλληση, απαιτεί μικρές ρυθμίσεις στο δρομολογητή. Το έργο έχει 2 αλυσίδες ισχύος, 1 αλυσίδα τροφοδοτείται από 9,6 βολτ - δρομολογητή και μικροελεγκτή, 2 αλυσίδα που τροφοδοτείται από 6 βολτ - μονάδα δίσκου και διεύθυνσης. Μπορείτε να κάνετε συνολικά 1 πηγή ισχύος 9,6 βολτ, αλλά πιο χωρητικότητας. Ο δρομολογητής καταναλώνει 2α, ο μικροελεγκτής καταναλώνει σχεδόν ανεπαίσθητα, το μηχάνημα 4α.
Το πρόγραμμα MicroController επεξεργάζεται τα μηνύματα που προέρχονται από τη σειριακή θύρα του δρομολογητή, η επεξεργασία απογειώνεται από το PORTB Arduino, για παράδειγμα, αν ήρθε στο δρομολογητή 2, στη συνέχεια, μεταφράζοντας Δυαδικό σύστημα Παίρνουμε 00000010 - τι αντιστοιχεί σε 2 ακίδες στο PORB. Μια τέτοια λύση σάς επιτρέπει να διαχειρίζεστε ταυτόχρονα πολλαπλούς καρφίτσες. Αυτό συνέβη στο τέλος:
Εφαρμογή για το Android:
Εφαρμογή PC:
Το έργο αυτό δεν έχει ακόμη ολοκληρωθεί και συνεχίζει να βελτιώνεται.
Στα σχέδια που χρησιμοποιούν το Arduino Mega, το δρομολογητή MR3020, για να αφήσετε έναν webakamer όπως είναι (είναι δυνατόν να προσθέσετε ένα σφαιρικό φακό για μεγαλύτερη προβολή), χρησιμοποιήστε το PWM για ομαλό και ακριβές έλεγχο, χρησιμοποιήστε τη μονάδα Servo για να προσθέσετε μια σειρά . Προσθέστε βίντεο στο Android.
- Πλήρης κατάλογος του διοικητικού συμβουλίου
Σε αυτό το άρθρο θα μάθετε πώς να δημιουργήσετε ένα σύστημα που μπορεί να ενεργοποιηθεί και να απενεργοποιήσετε το φορτίο συνεχές ρεύμα μέσω Εφαρμογή κινητού. Θα μάθετε επίσης πώς να κάνετε αυτό το έργο αμέσως ή από χρονομετρητές, εκ των προτέρων ορίστε να ενεργοποιήσετε και να απενεργοποιήσετε τα φορτία.
Επισκόπηση έργου
Μπορείτε να εφαρμόσετε αυτό το σύστημα όπου πρέπει να ενεργοποιήσετε το φορτίο DC Μια συγκεκριμένη ώρα. Σε αυτό θα σας βοηθήσει App androidχωρίς να απαιτείται διεπαφή υλικού, πληκτρολόγιο και Οθόνη LCD.
αξεσουάρ
ESP8266 Συγκρότημα φυτών Mackety
ESP8266 - ένα φθηνό τσιπ SOC με ένα ενσωματωμένο μικροελεγκτή και μια πλήρη στοίβα πρωτοκόλλου TCP / IP, πράγμα που σημαίνει ότι μπορεί να έχει άμεση πρόσβαση σε σας Δίκτυο Wi-Fi.
Δεδομένου ότι αυτό το τσιπ έχει το δικό του μικροελεγκτή, μπορείτε να τοποθετήσετε τον κώδικα της εφαρμογής σας ή μπορείτε να χρησιμοποιήσετε την ενότητα σαν έναν πομποδέκτη Wi-Fi που θα κάνουμε σε αυτό το έργο. Θα χρησιμοποιούσε πιο αποτελεσματικά αυτή τη μονάδα και ως πομποδέκτης και ως ελεγκτής, αλλά για μαθησιακούς σκοπούς θα αλληλεπιδρούμε με την ενότητα χρησιμοποιώντας το Arduino.
Το τσιπ ESP8266 έρχεται μέσα Διαφορετικές μονάδες. Θα χρησιμοποιήσουμε τη μονάδα ESP-01. Φυσικά, μπορείτε να χρησιμοποιήσετε οποιαδήποτε άλλη μονάδα.
Πρώτον, θα πρέπει να γνωρίζετε ότι η μονάδα λειτουργεί με τάση 3,3 V και η τάση υψηλής λογικής στάθμης από το Arduino πρέπει να είναι το ίδιο να μην βλάψει την ενότητα μας. Αυτό απαιτεί τον μετατροπέα στάθμης τάσης μεταξύ της πλακέτας Arduino (το οποίο εκτελείται 5 V) και η μονάδα. Τα καλά νέα είναι ότι μόνο η έξοδος για τη μετάδοση στο Arduino θα χρειαστεί στον μετατροπέα, καθώς η έξοδος λήψης αναγνωρίζει συνήθως λογικά σήματα με τάση 3,3 V από ESP8266.
Ένας από τους απλούστερους τρόπους για να εκτελέσετε αυτή τη μετατροπή είναι ένα σχέδιο από το Sparkfun. Μπορείτε να παραγγείλετε μια έτοιμη μονάδα.
Μετατροπέας επιπέδου 5V → 3.3V
Το παρακάτω σχήμα δείχνει το punout της μονάδας μας στο ESP8266:
Παραγωγή | Σκοπός |
---|---|
UTXD. | Μεταφορά δεδομένων μέσω UART |
URXD. | Λαμβάνοντας δεδομένα μέσω UART. Η έξοδος στην οποία συνδέεται πρέπει να είναι 3,3 V. |
Ch_pd. | Shutdown: Το χαμηλό επίπεδο εισόδου απενεργοποιεί το τσιπ, υψηλό επίπεδο Στην είσοδο το περιλαμβάνει. Για κανονική λειτουργία της μονάδας, πρέπει να το σφίξετε στη γραμμή τροφοδοσίας. |
Gpio0. | Κατά τη φόρτωση: πρέπει να υπάρχει υψηλό επίπεδο για να εισαγάγετε τον κανονικό τρόπο φόρτωσης. Το χαμηλό επίπεδο εισέρχεται Ειδικοί τρόποι Λήψεις. |
Gpio2. | Κατά τη φόρτωση: το χαμηλό επίπεδο προκαλεί το bootloader να εισάγει τη λειτουργία Flash Memory Load. Το υψηλό επίπεδο προκαλεί την κανονική λειτουργία φόρτωσης. |
Rst | Επαναφορά; Το ενεργό επίπεδο είναι χαμηλό. |
GND. | Γη. |
VCC. | Power / 3.3V. |
Χρησιμοποίησα LM317, προσαρμόσιμο γραμμικό ρυθμιστή τάσης με ρεύμα εξόδου μέχρι 1,5 Α, για να δώσει μια ενότητα με κατάλληλη πηγή ισχύος 3,3 V.
Σημείωση: Μην χρησιμοποιείτε την έξοδο 3.3 V από το Arduino, καθώς ο σταθεροποιητής τάσης 3.3 V στην πλακέτα Arduino δεν μπορεί να παράσχει την τρέχουσα τιμή για την ενότητα, ειδικά όταν η κατανάλωση ενέργειας είναι κορυφή κατά τη διάρκεια της μετάδοσης.
Χρησιμοποίησα BS170 (αντί του BSS138) για τον λογικό επίπεδο μετατροπέα. Και οι δύο λειτουργούν καλά.
Τώρα μπορείτε να συνδέσετε τη μονάδα σας σε έναν υπολογιστή χρησιμοποιώντας έναν μετατροπέα USB-TTL και να το δοκιμάσετε.
Συνέλευση του αναμεταδότη
Για τον έλεγχο του ρελέ, χρησιμοποίησα ένα διπολικό Transistor NPN BC337 με αντίσταση 1 COM με βάση. Προστασία από την αντίστροφη τάση του πηνίου, χρησιμοποίησα τη δίοδο 1N4007.
Κανονικά κλειστός (NC) Επικοινωνήστε με το ρελέ επαφής αποφάσισα να συνδεθώ με το έδαφος.
Arduino κώδικας
Τώρα αντιμετωπίζουμε ένα πρόβλημα. Το ESP8266 χρησιμοποιεί το UART ως μια διεπαφή εντολών και το Arduino Uno (το οποίο χρησιμοποιεί ATMEGA328) έχει μόνο μία θύρα UART. Αυτή η θύρα συνδέεται ήδη στη γέφυρα USB-TTL, καθώς και στα συμπεράσματα 0 και 1.
Ως λύση, μπορείτε να χρησιμοποιήσετε έναν εξομοιωτή για τη θύρα UART σε άλλη ψηφιακή έξοδο Arduino χρησιμοποιώντας βιβλιοθήκες Altsoftserial ή SoftwareSerial. Αυτό θα εξακολουθεί να έχει θύρα υλικού UART για σφάλματα και εκτύπωση μηνυμάτων στην κονσόλα και η θύρα λογισμικού είναι η επικοινωνία με την ενότητα.
Πολλοί άνθρωποι (συμπεριλαμβανομένου μου) αναφέρουν προβλήματα με ένα πρόγραμμα διαδοχικής θύρας όταν Υψηλές ταχύτητες Μεταδόσεις - όπως και για εκείνους που θα χρησιμοποιήσουμε με ESP8266, 115200 bits / s. Μπορώ να πω ότι έχετε το 50% των δεδομένων που δημιουργούνται από την ενότητα θα υποστούν βλάβη εάν χρησιμοποιείτε ένα λογισμικό UART και από τα δεδομένα που μεταδίδονται από το Arduino έως τη μονάδα δεδομένων σχεδόν 100% θα είναι σωστή. Έλαβα αυτά τα αποτελέσματα μετά από τα σήματα παρακολούθησης στις γραμμές RX και TX.
Ως λύση, πρόσθεσα μερικές οδηγίες για τον κωδικό για να διευκολύνω την επιλογή σας μεταξύ των θυρών του υλικού και του λογισμικού UART. Λάβετε υπόψη ότι δεν μπορείτε να χρησιμοποιήσετε την ίδια θύρα για την εντοπισμό σφαλμάτων και την επικοινωνία με την ενότητα, ώστε να πρέπει να επιλέξετε μεταξύ τους.
// Αφαιρέστε το σειριακό. ***, εάν θέλετε να χρησιμοποιήσετε μια σειριακή θύρα υλικού για επικοινωνία με ESP // Unlock ESP8266. *** Εάν θέλετε να χρησιμοποιήσετε το ESP για να χρησιμοποιήσετε μια σειριακή θύρα λογισμικού (3.3 συμπεράσματα) #DEFINE ESP8266_AVAILIBLE () Serial.Alial () //resp8266. Ifind () #DEFINE ESP8266_FIND (ARG) Serial.Find (ARG) //ESP8266.Find () #DEFINE () Serial.READ () // ESP8266. ) #DEFINE ESP8266_WRITE (Arg1, Arg2) Serial.Write (Arg1, Arg2) //resp8266.Write (//resp8266.write_arg1,rg2) #DEFINE ESP8266_Print (Arg) Serial.Print (ARG) //ESP8266.Print )
Στην πηγή θα βρείτε ένα μέρος του κώδικα που ορίζει την ενότητα με το δρομολογητή σας:
SendCommand ("στο + rst \\ r \\ n", 2000, debug). // Επανεκκινήστε τη μονάδα SendCommand ("στο + cwmode \u003d 1 \\ r \\ n", 1000, debug). // Διαμορφώστε ως σημείο πρόσβασης SendCommand ("AT + CWJAP \u003d \\" TUR \\ ", \\" 341983 # TUR \\ "\\ R \\ N", 3000, Debug). // **** Αλλάξτε το SSID και τον κωδικό πρόσβασης σύμφωνα με το δίκτυό σας ****** // καθυστέρηση (10.000). SendCommand ("στο + cifsr \\ r \\ n", 1000, debug). // Αποκτήστε τη διεύθυνση IP SendCommand ("στο + cipmux \u003d 1 \\ r \\ n", 1000, debug). // Διαμορφώστε για αρκετές συνδέσεις sendCommand ("at + cipserver \u003d 1.1337 \\ r \\ n", 1000, debug). // ενεργοποιήστε τον διακομιστή στη θύρα 1337
Το σκίτσο του κύκλου περιμένει την εντολή να έρθει Σύνδεση Wi-Fi. Επί του παρόντος, υποστηρίζονται οι ακόλουθες εντολές:
- «Con» για να αποκτήσετε μια κατάσταση συμπερασμάτων, ένα υψηλό ή χαμηλό λογικό επίπεδο.
- 'On \u003d' περιλαμβάνουν την κατάλληλη παραγωγή.
- 'Of \u003d' Απενεργοποιήστε την αντίστοιχη έξοδο.
- Το 'TM \u003d N / FS' ρυθμίζει τον χρονοδιακόπτη ισχύος (n) ή το κλείσιμο (F) της κατάλληλης παραγωγής.
Όλες οι εντολές έχουν απάντηση επιβεβαίωσης.
Σημειώσεις:
- Ορισμένα τμήματα του σκίτσου βασίζονται.
- Εάν χρησιμοποιείτε μονάδες με παλιό SDK, ενδέχεται να έχετε τα ίδια λάθη όπως έχω. Η μόνη λύση σε αυτή την περίπτωση είναι η ενημέρωση του υλικολογισμικού σας Τελευταία έκδοση. Κοιτάξτε, για να λάβετε βοήθεια στην ενημέρωση του υλικολογισμικού της μονάδας σε ESP8266. Ενημέρωσα το υλικολογισμικό από την έκδοση 1.3 έως 1.5.4.
Πλήρης κωδικός προγράμματος:
#Περιλαμβάνω.
App android
Για να διαχειριστείτε τα προαναφερθέντα εξαρτήματα υλικού, θα χρησιμοποιήσουμε μια απλή εφαρμογή Android. Αυτή η εφαρμογή θα μας επιτρέψει να ενεργοποιήσουμε ή να απενεργοποιήσουμε την έξοδο απευθείας ή μετά από μια συγκεκριμένη χρονική περίοδο.
Σημείωση: Η εφαρμογή απαιτεί Android 4.0 (Icecreamsandwich) ή υψηλότερη.
- Πρώτα απ 'όλα, πρέπει να γνωρίζετε τη διεύθυνση IP της μονάδας σας. Εάν χρησιμοποιήσατε μια σειριακή θύρα λογισμικού, η διεύθυνση IP θα εκτυπωθεί στην κονσόλα. Εάν χρησιμοποιήσατε σειριακή θύρα υλικού, τότε πρέπει να χρησιμοποιήσετε ένα καλώδιο για να παρακολουθείτε δεδομένα στις γραμμές RX και TX για να δείτε τη διεύθυνση IP. Πρέπει επίσης να γνωρίζετε τον αριθμό θύρας, το οποίο καθορίστηκε στο σκίτσο για το Arduino. Μετά από αυτό, πατήστε "Σύνδεση" για να πάρετε την κατάσταση και των τριών εξόδων. Πρέπει να βεβαιωθείτε ότι σας Wi-Fi Router Ενεργοποιημένη και είστε συνδεδεμένοι στο τοπικό δίκτυο.
- Τώρα κάντε κλικ σε οποιοδήποτε διακόπτη θέλετε να ενεργοποιήσετε / απενεργοποιήσετε. Κάθε φορά που θέλετε, μπορείτε να κάνετε κλικ στο "Refresh" για να ενημερώσετε την κατάσταση όλων των εξόδων.
- Στην καρτέλα Χρονοδιακόπτες, μπορείτε να ορίσετε οποιαδήποτε από αυτές τις τρεις εξόδους για να ενεργοποιήσετε / απενεργοποιήσετε σε ένα συγκεκριμένο χρονικό διάστημα (από 0 έως 24 ώρες).
- Μετά από οποιαδήποτε ενέργεια, θα λάβετε ένα μήνυμα με επιβεβαίωση του κατά πόσο η ομάδα ήταν επιτυχής, ή κάποιο σφάλμα προέκυψε.
Βίντεο επίδειξης
Αυτό είναι όλο! Ελπίζω ότι το άρθρο αποδείχθηκε χρήσιμο. Αφήστε σχόλια!
Έτσι θα ελέγξουμε δύο αναστρέψιμες (περιστροφή προς τις δύο κατευθύνσεις): το κύριο και το τιμόνι. Θα προκληθεί από την μπαταρία 3,7 V, αλλά μπορείτε επίσης να εφαρμόσετε σε 12 V κατ 'αρχήν εάν συμφωνείτε με την ισχύ του ελεγκτή ή να το οργανώσετε με ξεχωριστή μπαταρία.
Στο τμήμα ισχύος χρησιμοποιούμε το απλούστερο Μικροσκοπικός οδηγός Stepper Motor L9110s ή μπορείτε να χρησιμοποιήσετε τη συναρμολόγηση στο L293 \\ 8 Ή οποιαδήποτε λιγότερο ισχυρή θα βρείτε. Σε γενικές γραμμές, ζωγράφισα τα πάντα στην εικόνα.
Μπορείτε να αγοράσετε εξαρτήματα για το έργο στο Alexpress:
Ο ελεγκτής WiFi χρησιμοποίησε το αγαπημένο μου Nodemcu 0,9 ESP8266.αλλά μπορεί να χρησιμοποιήσει και Μικρό μέγεθος Wemos d1 mini.
Η μπαταρία μπορεί να φορτιστεί μέσω ενός μικρού USB, μετά την οποία τροφοδοτεί τον οδηγό κινητήρα απευθείας και ο ελεγκτής WiFi μέσω Αυξημένος μετατροπέας μέχρι 5 V.
Κωδικός προγράμματος:
#Περιλαμβάνω.
const char * ssid \u003d "Το όνομα του δικτύου σας Wi-Fi";
const char char * κωδικός πρόσβασης \u003d "Ο κωδικός πρόσβασης δικτύου".
int up \u003d 2; // διακριτές εξόδους
int down \u003d 14;
int αριστερά \u003d 4;
int δεξιά \u003d 12;
// Δημιουργήστε μια εμφάνιση του διακομιστή
// Καθορίστε το λιμάνι για να ακούσετε ως ένα επιχείρημα
Ο διακομιστής Wifiserver (80);
κενή εγκατάσταση () (
Serial.begin (9600);
Καθυστέρηση (10);
// Προετοιμασία των εξόδων
PinMode (επάνω, έξοδος);
Digitalwrite (επάνω, 0);
Pinmode (κάτω, έξοδος);
Digitalwrite (κάτω, 0);
Pinmode (αριστερά, έξοδος);
Digitalwrite (αριστερά, 0);
Pinmode (δεξιά, έξοδος);
Digitalwrite (δεξιά, 0);
// Συνδεθείτε στο δίκτυο WiFi
Serial.println ();
Serial.println ();
Serial.print ("σύνδεση με");
Serial.println (SSID);
Wifi.begin (SSID, κωδικός πρόσβασης);
Ενώ (wifi.status ()! \u003d Wl_connexed) (
Καθυστέρηση (500).
Serial.print (".");
}
Serial.println ("");
Serial.println ("συνδεδεμένο wifi");
// Έναρξη διακομιστή
Server.begin ();
Serial.println ("ξεκίνησε");
// Ενημερώστε τη διεύθυνση IP στην οθόνη Port
Serial.println (wifi.localip ());
}
κενό βρόχο () (
// Έλεγχος εάν συνδεθεί ο πελάτης
Wifullient client \u003d server.available ();
Αν (! Πελάτης) (
ΕΠΙΣΤΡΟΦΗ;
}
// αναμένετε ότι ο πελάτης δεν θα στείλει κανένα στοιχείο
Serial.println ("νέος πελάτης").
Ενώ (! Client.available ()) (
Καθυστέρηση (1);
}
// Διαβάστε την πρώτη συμβολοσειρά ερωτήματος
String req \u003d client.readstringuntil ("\\ r");
Serial.println (req);
client.flush ();
// επεξεργασία ομάδας
Εάν (req.indexof ("/ gpio / up")! \u003d -1) (
Digitalwrite (Up, 1);
Digitalwrite (κάτω, 0);
Καθυστέρηση (1000).
Digitalwrite (επάνω, 0);
Digitalwrite (κάτω, 0);
}
Αλλιώς εάν (req.indexof ("/ gpio / down")! \u003d -1) (
Digitalwrite (επάνω, 0);
Digitalwrite (κάτω, 1);
Καθυστέρηση (1000).
Digitalwrite (επάνω, 0);
Digitalwrite (κάτω, 0);
}
Αλλιώς εάν (req.indexof ("/ gpio / αριστερά")! \u003d -1) (
Digitalwrite (Up, 1);
Digitalwrite (κάτω, 0);
Digitalwrite (αριστερά, 1);
Digitalwrite (δεξιά, 0);
Καθυστέρηση (1000).
Digitalwrite (επάνω, 0);
Digitalwrite (κάτω, 0);
Digitalwrite (αριστερά, 0);
Digitalwrite (δεξιά, 0);
}
Αλλιώς εάν (req.indexof ("/ gpio / δεξιά")! \u003d -1) (
Digitalwrite (Up, 1);
Digitalwrite (κάτω, 0);
Digitalwrite (αριστερά, 0);
Digitalwrite (δεξιά, 1);
Καθυστέρηση (1000).
Digitalwrite (επάνω, 0);
Digitalwrite (κάτω, 0);
Digitalwrite (αριστερά, 0);
Digitalwrite (δεξιά, 0);
}
Αλλιώς (
Serial.println ("Μη έγκυρο αίτημα").
}
Client.flush ();
// Προετοιμασία για την απάντηση
String S \u003d "http / 1,1 200 ok \\ r \\ n \\ ncontent-type: κείμενο / html \\ r \\ n \\ n\\ r \\ n \\ r \\ n ";
S + \u003d "
Πάνω.
";
s + \u003d "
Αριστερά ";
S + \u003d "δεξιά
";
s + \u003d "
Κάτω ";
s + \u003d "
// Στείλτε την απάντηση στον πελάτη
client.print (s);
Καθυστέρηση (1);
Serial.println ("αποσύνδεση πελάτη");
) Το πρόγραμμα είναι γραμμένο σε Arduino ide. Πώς να διαμορφώσετε το Arduino IDE για να εργαστείτε με τον ελεγκτή NODEMCU 0,9 ESP8266 Κοιτάξτε τη σύνδεση. Μετά τη λήψη του προγράμματος στον ελεγκτή, η οθόνη θύρας μπορεί να διαβαστεί από τη διεύθυνση IP, την οποία θα λάβει η πλακέτα μετά τη σύνδεση με το δρομολογητή WiFi. Στο πρόγραμμα περιήγησης του υπολογιστή είναι απαραίτητο Γραμμή διεύθυνσης Καταχωρίστε αυτή τη διεύθυνση και μεταβείτε στη σελίδα που θα δημιουργήσει το πρόγραμμα ελεγκτή. Θα μοιάζει με αυτό:
Κάτω.
Όταν κάνετε κλικ στο σύνδεσμο UP, το μηχάνημα θα προχωρήσει προς τα εμπρός για το 1SEK και το STOP. Όταν κάνετε κλικ στο κάτω, το μηχάνημα 1 δευτερόλεπτο θα επιστρέψει. Αριστερά - Ο κινητήρας περιστροφής θα γυρίσει τον τροχό προς τα αριστερά και το μηχάνημα θα οδηγήσει 1 δευτερόλεπτα. Το ίδιο και δεξιά όταν κάνετε κλικ δεξιά.
Όλο αυτό το σύστημα θα συνεργαστεί μόνο με ένα διαμορφωμένο σημείο πρόσβασης WiFi (WiFi-router), αλλά στο μέλλον αναρωτιέμαι να παίζω με nodemcu 0,9 ελεγκτή ESP8266Ποια θα διοργανώσει το σημείο πρόσβασης και θα εκτελέσει τη λειτουργία Web Server, ακόμα και όταν εισάγετε το IP του από το πρόγραμμα περιήγησης, θα δούμε μια ιστοσελίδα με στοιχεία ελέγχου. Είναι επίσης ενδιαφέρον να διοργανώσετε τη μεταφορά δεδομένων από έναν τέτοιο ελεγκτή σε άλλο μέσω του αυτόνομου δικτύου WiFi.
Σε αυτό το άρθρο, πληροφορίες σχετικά με τον τρόπο συλλογής της δεξαμενής σας εξοπλισμένο με κάμερα Web και διαχειρίσιμο από το δρομολογητή WiFi.
Απαραόμενα υλικά:
- Κάμερα Web.
- TP-LINK TL-MR3020 δρομολογητή
- Servos SG90 - 2pcs
- Πλατφόρμα κάμερας Αντι-δόνηση
- Συσσωρευτής 7.2V 5000mAh
- Μπαταρία 5V 2000mAh
- Nano 3.0 Atmel Atmega328
- L298N Οδηγός κινητήρα
- Καλώδια, θερμικούς σωλήνες, κόμβος USB, διόδους και πολλά άλλα.
- Πλατφόρμα για το γούστο σας, επέλεξα το DD1-1
Συναρμολόγηση του τέρας μας
Ρύθμιση του δρομολογητή MR3020.
Πρώτα απ 'όλα, ας ξεκινήσουμε με το δρομολογητή. Σκέφτηκα για μεγάλο χρονικό διάστημα να επιλέξω ή-wrt ή cyberwrt. Ή-WRT Flexs στις ρυθμίσεις, αλλά όλες οι επεξεργασίες και η πραγματοποίηση των ρυθμίσεών σας πραγματοποιούνται μέσω του τερματικού με τη βοήθεια του προγράμματος Putty. Και αφού φοβόμουν να δουλέψω σε αυτές τις μητέρες μέσα από το τερματικό σταθμό, επέλεξα όπου υπάρχει γραφική διασύνδεση είναι η Cyberwrt, συν αυτό είναι δυνατό να συνδεθείτε μέσω της θύρας USB.
Για να αλλάξετε το υλικολογισμικό του δρομολογητή μας, πρέπει να κατεβάσετε το firmware Cyberwrt MR3020.
Όπως κατεβάσαμε, κάντε τα εξής:
1) Ενεργοποιήστε το δρομολογητή και περιμένετε τη λήψη.
2) Πηγαίνετε και συνδεθείτε στο 192.168.0.254 (προεπιλεγμένος admin \\ admin)
3) Βρείτε στο μενού στα εργαλεία του αριστερού συστήματος, υπάρχει το σημείο αναβάθμισης του συστήματος και ρίξτε το υλικολογισμικό μέσω της φόρμας Web
4) Περιμένετε να κάνετε επανεκκίνηση (περίπου 4 λεπτά)
Ο δρομολογητής είναι έτοιμος για διαμόρφωση.
Μπορείτε να επιλέξετε μία από τις λειτουργίες: "Σημείο πρόσβασης" και "πελάτης δικτύου Wi-Fi". Για να διαμορφώσετε τη λειτουργία πελάτη:
- Επιλέξτε τη λειτουργία πελάτη δικτύου Wi-Fi
- Η διεύθυνση IP της συσκευής σας (η συσκευή σας θα είναι διαθέσιμη σε αυτή τη διεύθυνση. Προσπαθήστε να επιλέξετε μια ακατοίκητη IP. Για παράδειγμα: 192.168.1.100)
- Μάσκα υποδικτύου (255.255.255.0)
- Πύλη (για παράδειγμα, IP του δρομολογητή ή πύλης στο σπίτι σας - 192.168.1.1)
- Τύπος κρυπτογράφησης (τύπος κρυπτογράφησης που χρησιμοποιείται στο οικιακό σας δίκτυο)
- Κωδικός πρόσβασης (κωδικός πρόσβασης, πρόσβαση στο οικιακό σας δίκτυο)
Εάν κάνατε τα πάντα σωστά, τότε θα πάτε rss string στο κάτω μέρος της οθόνης.
Όταν όλα τα κέρδη, θα έχετε ενότητες τμήματος, εκεί θα βρείτε τη μονάδα "ρομπότ". Εγκαθιστώ. Ετοιμος.
Συνδέστε το L298N, Arduino Nano, MR3020, κάμερα και άλλα
Στην εικόνα, όλα φαίνονται σαφώς, αλλά μόνο σε περίπτωση που θα γράψω.
Arduino Digital 4 - σε Pine Module Pine.
Arduino Digital 5 Έξοδος - σε Pine Module Inst.
Συμπέρασμα Arduino Ψηφιακή 6 - σε μονάδα PIN IN3.
Συμπέρασμα Arduino Digital 7 - σε Pine Module Pine.
Έξοδος Arduino GND - στο τερματικό μονάδας GND.
Μονάδα GND Clem - Μείωση Μπαταρία.
7.2V τερματικό μονάδας μονάδας - συν μπαταρία.
Το Clem Clem είναι ο σωστός κινητήρας.
Μονάδα LM Clem - αριστερός κινητήρας.
USB Λιμάνι Arduino. - Συνδεθείτε στο USB Hub
Web Camera - Συνδεθείτε στο Hub USB
USB HUB - Συνδεθείτε με το δρομολογητή USB
Γεύματα που λένε έτσι την εφοδιαστική, που πραγματοποιούνται από τη δεύτερη μπαταρία. Χωρητικότητα 2000 MA / H 5V, για να μην κάψουμε το δρομολογητή. Ναι, και με δύο μπαταρίες, το ρομπότ λειτουργεί σταθερά. Έτσι, το συνδέουμε απλά στην υποδοχή Micro USB. Μέσω ενός κόμβου USB που συνδέεται με τη διατροφή των ριζών παίρνει ήδη την κάμερα και το Arduux μας.
Σκίτσο για arduino nano
Πρέπει να κατεβάσετε τη βιβλιοθήκη Cyberlib, προορίζεται μόνο για το ATMEGA 328.
/ * Έκδοση 1.5 WiFi Tanka σε DD1-1 Εφαρμοσμένη: 1) Κίνηση κάμερας μέσω x και y 2) Βρεφείς 3) Προβολείς 4) Ήχος όταν είναι ενεργοποιημένη * / #Include
Κάνοντας αλλαγές στο δρομολογητή
Για να ελέγξετε τις κάμερες, έγιναν αλλαγές στη βιβλιοθήκη δρομολογητή. Θα χρειαστεί να κατεβάσετε τον αλλαγμένο κώδικα και να αντικαταστήσετε τα αρχεία προέλευσης σε αυτά.
Το Channel Vetal Channel έδειξε πώς να κάνει μια γραφομηχανή στον έλεγχο από σχεδόν οποιοδήποτε Android smartphone. Ταυτόχρονα, δεν θα χρησιμοποιήσουμε το "Arduino", πάρτε ένα μικροελεγκτή από τον κινέζικο κατασκευαστή "Esspandive" "ESP 8266", το πράγμα είναι το "Arduino" Plus Wi-Fi Module.
Όλα τα ραδιοφωνικά εξαρτήματα και οι μονάδες σε αυτό το κινεζικό κατάστημα.
Θυμηθείτε "Arduino Uno", είναι μεγάλο, και εδώ είναι ένα μικρό πράγμα, στο οποίο υπάρχει Wi-Fi, οι δυνατότητες του "Arduino". Σε αυτόν τον μικροελεγκτή, οι Κινέζοι έχουν αναπτύξει μια τέτοια ασπίδα. Είναι βολικό: μπορείτε να συνδέσετε 2 κινητήρες ή ακόμα και 4, ενώ μπορείτε να χρησιμοποιήσετε 11 συμπεράσματα. Θα πάρουμε επίσης 2 κινητήρες, 2 τυποποιημένους τροχούς "Arduino".
Όταν εισάγετε το "Arduino" στο "AliExpress" στην αναζήτηση, όχι μόνο τα τέλη ανοιχτά, αλλά, τα συνακόλουθη αγαθά. Ενδιαφέροντα στοιχεία, πρέπει να βρείτε κάτι ενδιαφέρον, δοκιμάστε.
Πάρτε 2 μπαταρίες 18650 στην εξουσία, είναι εγκιβωτίζοντας για 2 ACB, θα πάρουμε επίσης 2 γωνίες, οι διαστάσεις περίπου 5 ίντσες, δεν είναι τόσο σημαντικό, καθώς και ένα μείον μισό ένα κάνει, ίντσες. Το γεγονός είναι ότι ο σχεδιασμός μπορεί να είναι δικός σας, αλλά τα πνευματικά δικαιώματα είναι επιτυχημένα στο βίντεο είναι απλή.
Παίρνουμε 2 γωνίες, με τη βοήθεια των βιδών, πρέπει να συνδεθούν, έτσι ώστε η ασπίδα να μπορεί να ταιριάζει ασφαλώς. Τρυπήστε, η διάμετρος του οποίου είναι 3 mm, κάνει 4 τρύπες. Παίρνουμε μικροσκοπικές βίδες, σφιγκτήρα, συνδέστε αυτόν τον σχεδιασμό. Τέτοια αιθάλη λαμβάνεται, αντοχή Αυτή η ένωση Για μια τέτοια γραφομηχανή, όπως κάνουμε, αφθονούν.
Στο πλάι του δέντρου βίντεο τρυπά μια οπή με διάμετρο 8 mm, λαμβάνεται ένας σχεδιασμός, αλλά είναι απαραίτητο να κάνετε ακόμα 3 τρύπες με διάμετρο 3 mm: ένα για αυτή την προεξοχή, για αυτές τις οπές των συνδετήρων 2 περισσότερο.
Υποθέτουμε ότι υποκαθιστούμε με αυτόν τον τρόπο, σφίξτε με βίδες. Μία από τις ιδανικές περιπτώσεις, το μηχάνημα αρέσει, δεν υπάρχει τίποτα να προσθέσετε εδώ, δεν χρειάζεται να το επαναλάβετε. Κάνουμε τρύπες για τη στερέωση του συμβουλίου.
Δεν αλλάζουμε τίποτα, εκτός από εδώ, όπου το Tick είναι, επιλέξτε τη διεύθυνση στο αρχείο που θα ρίξουμε, στη συνέχεια, επιλέξτε την επιθυμητή θύρα COM, πατήστε το κουμπί Έναρξη. Επίσης, κάτω από το βίντεο υπάρχει ένας σύνδεσμος προς το πρόγραμμα που θέλετε να εγκαταστήσετε στο αγαπημένο σας Android.
Εξασφάλισε αυτή την αμοιβή, εισάγετε ένα μικροελεγκτή. Συνδέουμε τα καλώδια από τους κινητήρες, κοιτάζουμε αν ο πυθμένας θα είναι "a-", τότε από αυτή την πλευρά "b-" θα είναι η κορυφή. Ήρθε η ώρα να επισυνάψετε τους τροχούς. Έγινε εύκολα, καθώς οι τροχοί των κινητήρων είναι ένα κιτ. Σε αυτό το μέρος, τρυπήστε μια τρύπα με διάμετρο 4 mm, τοποθετήστε τη βίδα. Κάνουμε μια τόσο απλή λειτουργία, ρυθμίζουμε το ύψος, ακόμη και κάτω από εσάς, κάτι που αποδείχθηκε ότι είναι μια βίδα που έσκυψε έντονα. Είναι υπερβολικό. Αποδεικνύεται ότι η συσκευή είναι ακριβότερη σε μια δεκάρα που, γενικά, δεν χρειάζεται, με κάποιο τρόπο μοιάζει με ένα Κορυτό.
Ας δούμε λοιπόν πώς λαμβάνεται η συσκευή, η οποία θα ελέγχεται από το Android σε απόσταση μέσω WiFi. Φυσικά, ένα καλύτερο πράγμα. Διαμέρισμα μπαταριών Επισυνάψτε τη θερμοκάθεια, λαμβάνεται το μηχάνημα.
Τοποθετήστε τις μπαταρίες, πρέπει να είστε προσεκτικοί, καθώς συμβαίνει συχνά, ώστε όλα όσα φαίνεται να συγκεντρώνονται σωστά, εισάγονται μπαταρίες και η συσκευή δεν λειτουργεί. Αποδεικνύεται ότι αυτά τα μαύρα πλαστικά κουτιά. Δεν δίνουν τη μπαταρία στη θέση τους.
Πρόγραμμα και Skatch http://bbs.smartarduino.com/showthread.php?tid\u003d2013
Αίτηση διαχείρισης https://play.google.com/store/apps/details?id\u003dcom.doit.carset