Πίνακας περιεχομένων:
- Βήμα 1: Προαπαιτούμενα
- Βήμα 2: Χτίζοντας το Διοικητικό Συμβούλιο
- Βήμα 3: Σχηματικό
- Βήμα 4: Προσθήκη Irremote Library στο λογισμικό Arduino
- Βήμα 5: Καταγράψτε τους κωδικούς από τα τηλεχειριστήριά σας
- Βήμα 6: Δημιουργήστε την ιστοσελίδα για το τηλεχειριστήριό σας
- Βήμα 7: Ανεβάστε τον κωδικό τηλεχειριστηρίου στο Arduino σας
- Βήμα 8: Συνδεθείτε στον διακομιστή Web από τον υπολογιστή σας
- Βήμα 9: Προαιρετικό Βήμα: Επεξεργαστείτε το αρχείο Hosts σας για να το κάνετε πιο εύκολο στη χρήση
Βίντεο: Τηλεχειριστήριο βασισμένο σε πρόγραμμα περιήγησης Arduino (linux): 9 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Έχουμε παιδιά. Μου αρέσουν πολύ αλλά συνεχίζουν να κρύβουν το τηλεχειριστήριο για το δορυφόρο και την τηλεόραση όταν ανοίγουν τα παιδικά κανάλια. Αφού συνέβη αυτό σε καθημερινή βάση για αρκετά χρόνια, και αφού η αγαπημένη μου γυναίκα μου επέτρεψε να έχω Arduino για τα Χριστούγεννα, αποφάσισα ότι ήρθε η ώρα να κάνω κάτι χρήσιμο (στα μάτια της!) Με το Arduino. Εδώ λοιπόν έχουμε το αποκορύφωμα αυτού: μια διαδικτυακή διεπαφή με το Arduino που αντικαθιστά τα τηλεχειριστήρια μου και είναι προσβάσιμη από το εσωτερικό δίκτυό μου. Όταν καταλάβω γιατί το ethernet shield μου δεν επιτρέπει στο arduino μου να κρατήσει ένα σκίτσο, θα γράψω ένα νέο σκίτσο που χρησιμοποιεί την ασπίδα ethernet ως διακομιστή ιστού, πράγμα που σημαίνει ότι δεν χρειάζομαι apache εγκατεστημένο στον υπολογιστή μου. Μείνετε συντονισμένοι, θα φτάσω εκεί!
Βήμα 1: Προαπαιτούμενα
Υλικό: Arduino πλευρά: Arduino - Χρησιμοποιώ Arduino Uno R2 Breadboard - το τοπικό σας κατάστημα ηλεκτρονικών ειδών ή την κουζίνα εάν θέλετε ένα αυθεντικό περίβλημα για τοποθέτηση ψωμιού - χρησιμοποίησα μια παλιά πλαστική θήκη με διαφανές καπάκι ένα από ένα σπασμένο τηλεχειριστήριο (ευχαριστώ παιδιά!) Δέκτης υπέρυθρων - πήρα το δικό μου από ένα μαγικό μάτι τηλεχειριστήριο Transistor - χρησιμοποίησα μια αντίσταση BC547 - χρησιμοποίησα μεταβλητή αντίσταση 1.5k ohm σε 1k ohm καλώδια βραχυκυκλωτήρα ψωμιού - πήρα το δικό μου από συμπαγές κύλινδρο καλωδίου RJ45 Πλευρά υπολογιστή: Υπολογιστής για χρήση ως διακομιστής USB καλώδιο στο λογισμικό Arduino: Λογισμικό Arduino - από arremino.cc irremote βιβλιοθήκη - από https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (ευχαριστώ Ken, εξαιρετική δουλειά!) Διακομιστής Ιστού Apache με εγκατεστημένη PHP - apache.org Εσωτερική διεύθυνση IP - η δική μου είναι 192.168.0.9 Εικόνα του τηλεχειριστηρίου σας - google ή μια φωτογραφία που τραβήχτηκε στην κάμερα. Έχω αποθηκεύσει το δικό μου σε ανάλυση 200x600
Βήμα 2: Χτίζοντας το Διοικητικό Συμβούλιο
Συνιστάται ιδιαίτερα η χρήση ενός breadboard για ένα arduino. Τοποθέτησα το Arduino μου και ένα breadboard στο ίδιο περίβλημα και ένωσα όλες τις καρφίτσες που χρησιμοποιώ τακτικά απευθείας στο breadboard μόνιμα. Καρφίτσες Arduino που χρησιμοποιούνται για αυτό το έργο: 5v, γείωση Digitalηφιακές ακίδες 3, 11 (ο ακροδέκτης 3 ελέγχει το LED LED, ο πείρος 11 συνδέεται με τον δέκτη IR)
Βήμα 3: Σχηματικό
Αυτό το σχηματικό είναι πολύ απλό, 4 εξαρτήματα και 6 καλώδια. Συνδέσεις LED IR: Συνδέστε το ένα από τα πόδια της αντίστασης στην ψηφιακή ακίδα Arduino 3 Συνδέστε το άλλο σκέλος της αντίστασης στη βάση του τρανζίστορ (το μεσαίο σκέλος στην περίπτωσή μου) Συνδέστε τον πομπό του τρανζίστορ στη γείωση Συνδέστε τον συλλέκτη του τρανζίστορ στο αρνητικό σκέλος του LED (κοντό πόδι, επίπεδη πλευρά του LED) Συνδέστε το θετικό πόδι (μακρύ πόδι, καμπύλη πλευρά) του LED στις συνδέσεις δέκτη IR 5 ακίδων (θα πρέπει να βρείτε το pinout για ο συγκεκριμένος δέκτης IR): καρφίτσα GND στη γείωση VS pin έως 5v VO pin στο ψηφιακό pin Arduino 11
Βήμα 4: Προσθήκη Irremote Library στο λογισμικό Arduino
Το irremote είναι μια μεγάλη βιβλιοθήκη που γράφτηκε από τον Ken Shirriff και διατίθεται από το ιστολόγιό του στη διεύθυνση https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Λήψη της βιβλιοθήκης από https:// arcfn.com/files/IRremote.zip και εγκαταστήστε το όπως θα κάνατε σε οποιαδήποτε άλλη βιβλιοθήκη για το arduino. Το ιστολόγιό του έχει πολλές χρήσιμες πληροφορίες σχετικά με τη βιβλιοθήκη και τον τρόπο εγκατάστασής της.
Βήμα 5: Καταγράψτε τους κωδικούς από τα τηλεχειριστήριά σας
Εδώ ξεκινά το βαρετό (αλλά αναπόφευκτο) μέρος: Πατώντας κάθε κουμπί στο τηλεχειριστήριο, αποθηκεύοντας τη συμβολοσειρά εξόδου και αντιστοιχίζοντάς την στο εικονικό τηλεχειριστήριο. Χρειάζεται μόνο να το κάνετε μία φορά, περιμένετε περίπου 20 λεπτά περίπου. Ξεκινήστε έναν επεξεργαστή κειμένου για να αποθηκεύσετε την έξοδο. Δημιουργήστε ένα νέο έγγραφο και πληκτρολογήστε κάθε κουμπί στο τηλεχειριστήριό σας, ένα ανά γραμμή: Power Up Down Left Right.. et cetera Ξεκινήστε το Arduino IDE και κάντε κλικ στο "Αρχεία-> Παραδείγματα-> IRremote-> IRrecvDump" και ανεβάστε το το Arduino σας. Αυτό το παράδειγμα θα ρίξει τους απομακρυσμένους κωδικούς στη σειριακή θύρα. Ξεκινήστε την οθόνη σειριακής θύρας και πατήστε ένα πλήκτρο στο τηλεχειριστήριό σας. Θα δείτε μια συμβολοσειρά να εμφανίζεται στο παράθυρο σειριακής οθόνης: "Αποκωδικοποιημένο *: * (* bit)". Αντιγράψτε αυτήν τη γραμμή και αποθηκεύστε την στο έγγραφό σας στην κατάλληλη γραμμή. Επαναλάβετε μέχρι να αποθηκεύσετε όλα τα κλειδιά σας στο αρχείο κειμένου. Ξέρω πόσο διασκεδαστικό είναι αυτό το κομμάτι, το έχω κάνει δύο φορές μέχρι τώρα: P Τώρα πρέπει να κάνουμε μια μικρή αναζήτηση και αντικατάσταση στο αρχείο κειμένου: αναζήτηση για "Αποκωδικοποιημένο" αντικατάσταση με "" αναζήτηση για: "0x" αντικατάσταση με "," αναζήτηση για "(" αντικατάσταση με "," αναζήτηση για "bits" "αντικατάσταση με" "Άρα για μια γραμμή όπως: Αποκωδικοποιημένο NEC: 0x000110 (15 bits) θα πρέπει τώρα να έχουμε μια γραμμή που λέει: NEC, 000110, 15
Βήμα 6: Δημιουργήστε την ιστοσελίδα για το τηλεχειριστήριό σας
Τώρα πρέπει να χαρτογραφήσουμε τα κουμπιά στην εικόνα του τηλεχειριστηρίου σας.
Χρησιμοποίησα τη διεύθυνση https://www.maschek.hu/imagemap/imgmap για να αντιστοιχίσω τα κουμπιά και τροποποίησα τον κώδικα που σας δίνει ο ιστότοπος για να λειτουργήσει.
Κάντε κλικ στο "Χρήση εικόνας στον υπολογιστή σας: [επιλογή αρχείου]", επιλέξτε την εικόνα σας, κάντε κλικ στο [μεταφόρτωση], κάντε κλικ στο [αποδοχή] Αποθέστε ορθογώνια, κύκλους κ.λπ. σε κάθε κουμπί. Για το HREF βάλτε /remote.php?command= και τη γραμμή για αυτό το κουμπί από το έγγραφο κειμένου για παράδειγμα /remote.php?command=NEC, 000110, 15 Θα ήταν σοφό (και να βοηθήσετε πάρα πολύ στον εντοπισμό σφαλμάτων) αν συμπληρώσετε επίσης Alt: με το όνομα του κουμπιού, αλλά αυτό εξαρτάται από εσάς.
Επαναλάβετε για κάθε κουμπί.
Ολα τελείωσαν? Μετά θα συνεχίσουμε. Στο κάτω μέρος αυτής της σελίδας είναι "Κωδικός", κάντε κλικ σε αυτό και θα ανοίξει ένα πλαίσιο που θα εμφανίζει τον κωδικό για τον χάρτη εικόνας. Αντιγράψτε το και επικολλήστε το σε ένα νέο έγγραφο κειμένου. Αυτό είναι το κύριο μέρος της ιστοσελίδας μας.
Εδώ είναι η πλήρης ιστοσελίδα μου, απλώς αντικαταστήστε την…
με τον δικό σας κωδικό παραπάνω και αποθηκεύστε τον ως remote.php στον κατάλογο ιστού σας (/var/www στο linux) μαζί με τις εικόνες του τηλεχειριστηρίου σας. Αλλάξτε τις γραμμές για τις δικές σας εικόνες:
"https://www.w3.org/TR/html4/loose.dtd">
Έλεγχος LED Arduino
Βήμα 7: Ανεβάστε τον κωδικό τηλεχειριστηρίου στο Arduino σας
Δημιουργήστε ένα νέο σκίτσο και επικολλήστε τον ακόλουθο κώδικα σε αυτό:/ * * WebRemote * Ένα IR LED πρέπει να είναι συνδεδεμένο στο Arduino PWM pin 3. * Έκδοση 0.1 Ιούλιος, 2009 * Αυτός ο κωδικός πνευματικών δικαιωμάτων Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-πειραματισμός/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); επιστροφή obj? } boolean end = false; char inData [64]; // Μέγεθος ανάλογα με το δείκτη byte = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Σειριακός << "Σειριακή θύρα προετοιμασμένη" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; μακρύ sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (index == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; δείκτης = 0; Διακοπή; } else {if (index <64) // Μέγεθος πίνακα {pch += inChar; ευρετήριο ++; }}} εάν (έληξε) {// Αναλύστε τα δεδομένα στα inData εδώ… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++? // παραλείψτε ',' ή '' // i τώρα δείχνει την αρχή του hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j τώρα δείχνει "," ή "" μετά το εξάγωνο sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); για (i = 0; i <sTemp.length (); i ++) {k = sTemp ; αν (! ((k> = '0' && k = 'A' && k <= 'F'))) σπάσει. sHex *= 16; εάν (k> = '0' && k <= '9') sHex += (k - '0'); αλλιώς αν (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); αν (! ((k> = '0' && k = 'A' && k <= 'F'))) σπάσει. } sTemp = pch.substring (j+1); sBits = 0; για (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; εάν (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Τύπος κώδικα:" << sType << "Hex:"; Serial.print (sHex, HEX); Σειριακό << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; τελείωσε = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBits); } else if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } else if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } else if (sType.equals (String (""))) {Serial << "Delaying" << EOP; καθυστέρηση (450)? } καθυστέρηση (30); }}
Βήμα 8: Συνδεθείτε στον διακομιστή Web από τον υπολογιστή σας
.. ή τηλέφωνο ή android ή ipad ή οτιδήποτε άλλο: μεταβείτε στη διεύθυνση https:// webserver IP/remote.php στο πρόγραμμα περιήγησής σας Για μένα η διεύθυνση είναι https://192.168.0.9/remote.php, αλλά η δική σας αναμφίβολα θα είναι διαφορετική. Εάν όλα λειτουργούν, θα πρέπει να δείτε μια εικόνα του τηλεχειριστηρίου σας με κουμπιά στα οποία μπορείτε να κάνετε κλικ.
Βήμα 9: Προαιρετικό Βήμα: Επεξεργαστείτε το αρχείο Hosts σας για να το κάνετε πιο εύκολο στη χρήση
Ένα βήμα που έκανα ήταν η επεξεργασία του αρχείου κεντρικών υπολογιστών μου (/etc/hosts σε linux, C: / Windows / System32 / Drivers / etc / hosts στα windows). Σημειώστε ότι αυτό το αρχείο μπορεί να επεξεργαστεί μόνο σε μια γραμμή εντολών διαχειριστή (windows) ή από su (linux) Προσθέστε τη γραμμή ip.add.re.ss τηλεχειριστήριο αντικαταστήστε το ip.add.re.ss με τη διεύθυνση IP του διακομιστή και αποθηκεύστε το αρχείο Το Θα πρέπει να το κάνετε αυτό σε κάθε συσκευή που θέλετε να αποκτήσετε πρόσβαση στην ιστοσελίδα με το σύντομο όνομα. Τώρα μπορείτε να αποκτήσετε πρόσβαση στο τηλεχειριστήριο με https://remote/remote.php Αυτή είναι η πρώτη μου κατάλληλη οδηγία, να είστε ευγενικοί και ενημερώστε με αν υπάρχουν προβλήματα ώστε να τα διορθώσω.
Συνιστάται:
Πρόγραμμα οδήγησης LED AT-Step βασισμένο σε 3Α ATTiny84: 7 βήματα (με εικόνες)
Πρόγραμμα οδήγησης LED Step-Down 3A βασισμένο σε ATTiny84: Εάν θέλετε να τροφοδοτήσετε LED 10W, μπορείτε να χρησιμοποιήσετε αυτό το πρόγραμμα οδήγησης LED 3A. Με 3 LED Cree XPL, μπορείτε να επιτύχετε 3000 lumens
Αποστολή δεδομένων στην πλατφόρμα AskSensors IoT από το πρόγραμμα περιήγησης στο Web: 6 βήματα
Αποστολή δεδομένων στην πλατφόρμα AskSensors IoT από το πρόγραμμα περιήγησης στο Web: Έχω δημοσιεύσει πρόσφατα έναν οδηγό που δείχνει έναν οδηγό βήμα προς βήμα για τη σύνδεση ενός κόμβου MSPU ESP8266 με την πλατφόρμα IoT AskSensors. Έλαβα κάποια σχόλια από άτομα που ενδιαφέρονται περισσότερο για την πλατφόρμα AskSensors, αλλά δεν έχουν στο χέρι τους ένα MCU κόμβου. Αυτό εγώ
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων - Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: 6 βήματα
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων | Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: Γεια σας παιδιά σήμερα θα κάνουμε υγρασία & σύστημα παρακολούθησης θερμοκρασίας χρησιμοποιώντας ESP 8266 NODEMCU & Αισθητήρας θερμοκρασίας DHT11. Η θερμοκρασία και η υγρασία θα ληφθούν από τον αισθητήρα DHT11 & μπορεί να δει σε ένα πρόγραμμα περιήγησης ποια ιστοσελίδα θα διαχειριστεί
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: 6 βήματα (με εικόνες)
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: Επισκόπηση Αυτό το Instructable θα επικεντρωθεί στο πώς να δώσετε στον νεκρό Roomba έναν νέο εγκέφαλο (Raspberry Pi), μάτια (κάμερα Web) και έναν τρόπο ελέγχου των πάντων από ένα πρόγραμμα περιήγησης ιστού. Υπάρχουν πολλές αμυχές του Roomba που επιτρέπουν τον έλεγχο μέσω της σειριακής διεπαφής. Δεν έχω
Τηλεχειριστήριο βασισμένο σε Arduino για Eskate ή Hydrofoil: 5 βήματα (με εικόνες)
Τηλεχειριστήριο βασισμένο σε Arduino για Eskate ή Hydrofoil: Αυτό το διδακτικό θα σας δείξει πώς να φτιάξετε ένα φυσικό τηλεχειριστήριο για χρήση με eskate ή ηλεκτρικό υδροπτέρυγο που περιλαμβάνει όλο τον κώδικα και το υλικό που χρειάζεστε. Υπάρχει πολλή συγκόλληση, αλλά είναι επίσης διασκεδαστικό να γίνει. Τι μπορεί να κάνει το τηλεχειριστήριο; Συνεργασία