תוכן עניינים:

שלט רחוק מבוסס דפדפן Arduino (לינוקס): 9 שלבים (עם תמונות)
שלט רחוק מבוסס דפדפן Arduino (לינוקס): 9 שלבים (עם תמונות)

וִידֵאוֹ: שלט רחוק מבוסס דפדפן Arduino (לינוקס): 9 שלבים (עם תמונות)

וִידֵאוֹ: שלט רחוק מבוסס דפדפן Arduino (לינוקס): 9 שלבים (עם תמונות)
וִידֵאוֹ: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, נוֹבֶמבֶּר
Anonim
שלט רחוק מבוסס דפדפן Arduino (לינוקס)
שלט רחוק מבוסס דפדפן Arduino (לינוקס)
שלט רחוק מבוסס דפדפן Arduino (לינוקס)
שלט רחוק מבוסס דפדפן Arduino (לינוקס)

יש לנו ילדים. אני אוהב אותם עד הסוף אבל הם ממשיכים להסתיר את השלט הרחוק ללווין ולטלוויזיה כשהם מעלים את ערוצי הילדים. אחרי שזה קרה על בסיס יומי במשך כמה שנים, ואחרי שאשתי היקרה אפשרה לי לארדואינו לחג המולד החלטתי שהגיע הזמן להכין משהו שימושי (בעיניה!) עם הארדואינו. אז הנה יש לנו את השיא של זה: ממשק מבוסס אינטרנט ל- Arduino שמחליף את השלטים שלי ונגיש מהרשת הפנימית שלי. כאשר אבין מדוע מגן ה- Ethernet שלי לא יאפשר לארדואינו לשמור סקיצה, אכתוב סקיצה חדשה שתשתמש במגן ה- ethernet כשרת האינטרנט, כלומר אין צורך להתקין אפאצ'י במחשב שלי. הישארו מעודכנים, אני אגיע לשם!

שלב 1: דרישות מוקדמות

תנאים מוקדמים
תנאים מוקדמים

חומרה: צד Arduino: Arduino - אני משתמש בקרשן Arduino Uno R2 - חנות האלקטרוניקה המקומית שלך, או המטבח אם אתה רוצה מארז הרכבה לוחית אותנטית - השתמשתי במארז פלסטיק ישן עם מכסה שקוף רכיבים: LED אינפרא אדום - הנדסתי אחד משלט רחוק שבור (תודה לילדים!) מקלט אינפרא אדום - קיבלתי את שלי מטרנזיסטור מאריך עיניים קסם - השתמשתי במנגנון BC547 - השתמשתי בנגד משתנה של 1.5k אוהם המיועד לחוטי מגשר של לוח קרשים - קיבלתי את שלי מסליל כבל RJ45 בעל ליבה מוצקה צד המחשב: מחשב לשימוש כשרת USB מוביל לתוכנת Arduino: תוכנת Arduino - מספריית arduino.cc irremote - מאת https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (תודה קן, עבודה מצוינת!) שרת אינטרנט של Apache עם PHP מותקן - apache.org כתובת IP פנימית - שלי היא 192.168.0.9 תמונה של השלט הרחוק שלך - גוגל או תמונה שצולמה במצלמה שלך. שמרתי את שלי ברזולוציה של 200x600

שלב 2: בניית הלוח

בניית הלוח
בניית הלוח

מומלץ מאוד להשתמש בלוח לחם עבור ארדואינו. הרכבתי את הארדואינו ואת לוח הלחם באותו מארז וחיברתי את כל הסיכות שבהן אני משתמש באופן קבוע ישירות ללוח הלחם לצמיתות. סיכות ארדואינו המשמשות לפרויקט זה: 5v, פינים דיגיטליים קרקעיים 3, 11 (סיכה 3 שולטת בנורית ה- IR, סיכה 11 מתחברת למקלט ה- IR)

שלב 3: סכמטי

סכמטי
סכמטי

סכמטי זה פשוט מאוד, 4 רכיבים ו -6 חוטים. חיבורי LED IR: חבר אחד מרגלי הנגד לסיכה הדיגיטלית של Arduino 3 חבר את הרגל השנייה של הנגד לפין הבסיס של הטרנזיסטור (הרגל האמצעית במקרה שלי) חבר את פולט הטרנזיסטור לקרקע חבר את האספן של הטרנזיסטור לרגל השלילית של ה- LED (רגל קצרה, צד שטוח של ה- LED) חבר את הרגל החיובית (רגל ארוכה, צד מעוקל) של ה- LED לחיבורי מקלט IR 5 פינים (תצטרך למצוא את הסיכה עבור מקלט ה- IR הספציפי שלך): סיכת GND לקרס פין VS אל פין VO 5v לסיכה דיגיטלית של Arduino 11

שלב 4: הוסף את ספריית Irremote לתוכנת Arduino

הוסף את ספריית Irremote לתוכנת Arduino
הוסף את ספריית Irremote לתוכנת Arduino

irremote היא ספרייה נהדרת שנכתבה על ידי קן שירוף וזמינה מהבלוג שלו בכתובת https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html הורד את הספרייה מ https:// arcfn.com/files/IRremote.zip והתקן אותו כמו כל ספרייה אחרת עבור arduino. הבלוג שלו מכיל מידע מועיל על הספרייה וכיצד להתקין אותה.

שלב 5: רשום את הקודים מהשלט הרחוק שלך

הנה תחילת החלק המשעמם (אך הבלתי נמנע): לחיצה על כל כפתור בשלט הרחוק, שמירת מחרוזת הפלט ומיפוי השלט הרחוק הווירטואלי. אתה רק צריך לעשות את זה פעם אחת, צפוי לקחת בערך 20 דקות בערך. הפעל עורך טקסט כדי לשמור את הפלט שלך. צור מסמך חדש והקלד כל כפתור בשלט הרחוק שלך, אחד בכל שורה: הפעלה למטה שמאלה ימינה.. וכו 'הפעל את ה- IDE של Arduino ולחץ על "קבצים-> דוגמאות-> IR-remote-> IRrecvDump" והעלה אותו ל- הארדואינו שלך. דוגמה זו תשליך את הקודים המרוחקים ליציאה הטורית. הפעל את צג היציאה הטורית ולחץ על מקש בשלט הרחוק. תראה מחרוזת שמופיעה בחלון הצג הטורי: "מפוענח *: * (* ביטים)". העתק שורה זו ושמור אותה במסמך שלך בשורה המתאימה. חזור על הפעולה עד שתשמור את כל המפתחות שלך בקובץ הטקסט. אני יודע כמה כיף זה, עשיתי את זה פעמיים עד כה: P כעת עלינו לחפש קצת ולהחליף בקובץ הטקסט: חפש את "מפוענח" החלף ב- "חפש": 0x "החלף ב- "," חפש "(" החלף ב "," חפש "סיביות)" החלף ב "" אז עבור שורה כגון: NEC מפוענח: 0x000110 (15 סיביות) כעת אמורה להיות לנו שורה שאומרת: 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 שלך

העלה את קוד השלט רחוק ל- Arduino שלך
העלה את קוד השלט רחוק ל- Arduino שלך

צור סקיצה חדשה והדבק לתוכה את הקוד הבא:/ * * WebRemote * יש לחבר נורית IR לסיכה של Arduino PWM 3. * גרסה 0.1 יולי, 2009 * קוד זה זכויות יוצרים גרגורי פנטון, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote Library copyright 2009 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); החזר obj; } בוליאני הסתיים = שקר; char inData [64]; // גודל לפי אינדקס בתים מתאים = 0; #define EOP "\ n" IRsend irsend; הגדרת void () {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 (); אם (אינדקס == 0) {pch = ""; } אם (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {ended = true; אינדקס = 0; לשבור; } אחרת {אם (אינדקס <64) // גודל מערך {pch += inChar; אינדקס ++; }}} אם (הסתיים) {// לנתח את הנתונים ב- inData כאן … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // דלג על ',' או '' // אני מצביע כעת על התחלה של hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j מצביע כעת על ',' או '' אחרי hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == מחרוזת ("0X")) sTemp = sTemp.substring (2); עבור (i = 0; i <sTemp.length (); i ++) {k = sTemp ; אם (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; אם (k> = '0' && k <= '9') sHex += (k - '0'); אחרת אם (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); אם (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } 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) {סידורי << pch << EOP << "סוג קוד:" << sType << "Hex:"; Serial.print (sHex, HEX); סידור << "ביטים:" << 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); } אחרת אם (sType.equals (מחרוזת ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } אחרת אם (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } אחרת אם (sType.equals (String (""))) {טורי << "עיכוב" << EOP; עיכוב (450); } עיכוב (30); }}

שלב 8: התחבר לשרת האינטרנט מהמחשב שלך

התחבר לשרת האינטרנט מהמחשב שלך
התחבר לשרת האינטרנט מהמחשב שלך

.. או טלפון או אנדרואיד או אייפד או כל דבר אחר: עבור אל כתובת ה- IP של שרת האינטרנט/remote.php בדפדפן שלך בשבילי הכתובת היא https://192.168.0.9/remote.php אבל שלך ללא ספק תהיה שונה. אם הכל עובד אתה אמור לראות תמונה של השלט הרחוק שלך עם לחצנים שאפשר ללחוץ עליהם.

שלב 9: שלב אופציונלי: ערוך את קובץ המארחים שלך כך שיהיה קל יותר לשימוש

שלב אופציונלי: ערוך את קובץ המארחים שלך כך שיהיה קל יותר לשימוש
שלב אופציונלי: ערוך את קובץ המארחים שלך כך שיהיה קל יותר לשימוש

שלב שעשיתי היה לערוך את קובץ המארחים שלי (/etc/hosts ב- linux, C: / Windows / System32 / Drivers / etc / hosts ב- windows). שים לב שניתן לערוך קובץ זה רק בשורת פקודה ניהולית (חלונות) או על ידי su (linux) הוסף את השורה ip.add.re.ss החלף מרחוק ip.add.re.ss עם כתובת ה- IP של השרת ושמור את הקובץ. יהיה עליך לעשות זאת בכל מכשיר שתרצה לגשת לדף האינטרנט עם השם הקצר. עכשיו אתה יכול לגשת לשלט עם https://remote/remote.php זהו ההוראה הנכונה הראשונה שלי, היו עדינים והודיעו לי אם יש בעיות כדי שאוכל לתקן אותן.

מוּמלָץ: