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

Raspberry Pi HomeLab ומי הבית: 11 שלבים
Raspberry Pi HomeLab ומי הבית: 11 שלבים

וִידֵאוֹ: Raspberry Pi HomeLab ומי הבית: 11 שלבים

וִידֵאוֹ: Raspberry Pi HomeLab ומי הבית: 11 שלבים
וִידֵאוֹ: OpenSSH for Windows: The IT Admin's Key to Remote Management 2024, יולי
Anonim
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית
Raspberry Pi HomeLab ומיהו הבית

זהו הבלתי ניתן להשמדה הראשון שלי, אך להוראה זו יש שני מטושטשים.

faze one: מקימה פאי לעבודה כמעבדה ביתית לעבודה IOT עבור צוות מפתחי סטודנטים.

faze two: שימוש במערכת לפיתוח, על ידי יישום הדגמה באמצעות פרויקט מי הבית שלנו.

בסוף זה יהיה לך פאי חסר ראש נגיש מרחוק, שיכול לשמש אנשים לתכנת ולעבוד מרחוק על מכשירי IOT.

עכשיו אני כן מזהיר כי על ידי פתיחת ה- pi שלך לציבור ללא אבטחה מתאימה אתה אכן פותח את עצמך בפני הסיכון שתתקוף את הרשת הביתית שלך.

נעבור על ההתמודדות הראשונה בשלבים הבאים, אך זהו קישור למידע על המועדון שלנו ועל פרויקט מי הבית.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

פרויקט מיהו הבית עושה את הפעולות הבאות: מפעיל סקריפט פייתון הבודק את כתובות ה- mac של התקנים המחוברים לרשת שלך. הוא משתמש ב- Nmap לשם כך. הוא מריץ את הכתובות האלה כנגד רשימת כתובות ואם הכתובת המופיעה קיימת היא שולחת צ'ארמה לארדואינו באמצעות תקשורת טורית. הארדואינו שולט ברצועת LED וכאשר הוא מקבל חריטה יש לו צבע משויך למכשיר זה והוא מדליק את נוריות הלד עבור אותו אדם על סמך נוכחותו.

החטיבות שלנו מתמקמות

sites.google.com/view/valencia-robotics

sites.google.com/view/valencia-robotics/cl…

אתר המועדונים שלנו

sites.google.com/view/valenciatechclub

תסריט ה- Python סופק על ידי: ג'ונתן דה לה קרוז

www.linkedin.com/in/jonathandelacruz96/

התסריט של Arduino וההתנהלות וההתקנה של המעבדה הביתית נעשתה על ידי: דילן פול

www.linkedin.com/in/dylan-poll-4a324a1a2/

אני דילן סקר, אני הנשיא הנוכחי של מועדון הטכנולוגיה של המכללה שלנו ואני גם מוביל המערכות המשובצות.

אספקה

פי

ארדואינו

לוח לחם

חוטי מגשר

מצלמת רשת

רצועת LED RGB הניתנת להתייחסות בנפרד

ספק כוח לפאי שלך, מקלדת עכבר, מחשב לביצוע ההגדרה הראשונית.

שלב 1: הורדה והתקנת קבצי התקנה ראשוניים

הורד והתקן מרק (חלונות)

www.putty.org

הורד את rufus והתקן

rufus.ie

הורד באסטר מלא raspbian ותוכנה מומלצת (.zip)

www.raspberrypi.org/downloads/raspbian/

חלץ את התוכן ב.zip זה יהיה [קובץ התמונה] שלך.

קח כרטיס micro sd, והשתמש במזח או מיקרו ssd להתקן usb וחבר אותו למחשב שלך בפורמט כרטיס sd שלך

שלב 2: חלק שני: התקן את Raspbian באמצעות Rufus

חלק שני: התקן את Raspbian באמצעות Rufus
חלק שני: התקן את Raspbian באמצעות Rufus

run rufus בחר את כרטיס ה- SD שלך בשדה הראשון בחר את קובץ התמונה raspbian עבור.iso/.img בחר start והמתן עד שהוא יסתיים.

שלב 3: חלק שלישי: חיבור ה- Pi

לאחר סיום, שלוף את כרטיס ה- sd, הכנס אותו לחריץ כרטיס ה- sd ב pi, הוא נמצא בתקע "התחתון" של כבל ה- HDMI אל ה pi תחילה, מאשר מקלדת ועכבר, וכבל החשמל האחרון. אם תחבר תחילה לחשמל, ייתכן שהוא לא ירשום את המסך/הטלוויזיה שלך.

שלב 4: חלק רביעי: הגדרת החשבון שלך

התחבר ל- pi! בצע את הגדרת ההפעלה הראשונה! אל תדלג על זה! בחר מקלדת אנגלית בארה"ב או שלא תמצא את סמל ה- @ שלך מאוחר יותר … אם לא סמל ה- @ שלך נמצא במקום בו אתה נמצא. היכנס ל- wifi ב- pi אל תעדכן עדיין. יש לי סיבה. הקש על מקש "מקלדת חלונות" "ועבור להעדפות, עבור לתצורת pi. עבור לכרטיסיית הממשקים.

אפשר VNC…. וכל השאר לא לאתחל.

שלב 5: חלק חמישי: הגדרת ה- Pi שלך כחסר ראש (הדבר הטוב ביותר אי פעם)

חלק חמישי: הגדרת ה- Pi שלך כחסר ראש (הדבר הטוב ביותר אי פעם)
חלק חמישי: הגדרת ה- Pi שלך כחסר ראש (הדבר הטוב ביותר אי פעם)

תראה בפינה השמאלית העליונה של המסך. תראה את הלוגו השחור והכחול של VNC. תפתח את זה. לחץ על כניסה, צור וחשבון. להוסיף את הפאי. בשולחן העבודה/המחשב הנייד פתח את חיפוש הדפדפן ב- Google VNC viewer להתקין הורדה. התחבר לחשבונך. בדוק את כתובת הדוא ל שלך בכדי לאשר את עצמך. התחבר ל- pi שלך (הקלד את סיסמת ה- pi בתפריט ההתחברות השני) אם הוא פועל כבה את ה- pi שלך. נתק את הפאי והכל. שים את הפי בפינה בחדר שלך והפעל אליו רק את כבל החשמל. אתה יכול להתחבר ל- pi באמצעות VNC viewer. כעת יש לך פאי ללא ראש. אתה יכול גם SSH אליו. (ראה מידע SSH בקטע דברים מגניבים)

שלב 6: חלק שישי: התקנת כל כלי הליבה לפיתוח על פי

חלק שישי: התקנת כל כלי הליבה לפיתוח על פי
חלק שישי: התקנת כל כלי הליבה לפיתוח על פי

באמצעות SSH או VNC (או אם החלטת לא להיות מגניב ולהגדיר אותו ללא ראש) בצע את הפעולות הבאות. מסוף פתוח (החלק הבא עשוי להימשך זמן מה …) הפעל פקודות אלה אחת אחת לאחר סיום כל אחת מהן.

sudo apt-get update; sudo apt-get שדרוג התקנת ffmpeg {sudo apt-get install ffmpeg

שלב 7: חלק שביעי: התקנת Adafruit WebIDE

חלק שביעי: התקנת WebIDE של Adafruit
חלק שביעי: התקנת WebIDE של Adafruit

סלסול https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh פתח דפדפן בשולחן העבודה הראשי שלך. הצבע את כתובת האתר של הדפדפן שלך אל "https://***.*.*.***: 8080" החלף את "*" בכתובת ה- IP המקומית של הפי שלך. צור שם משתמש ועבר. כעת יש לך את ההתקנה של adafruit webIDE.

שלב 8: חלק שמיני: עדכן Node-red ו- Node.js

update-nodejs-and-nodered הקוד הבא יגרום להפעלה ממוזנת בעת ההפעלה בדיוק כמו webIDE adafruit, זה חשוב אם אתה רוצה להתפתח על דברים אלה. sudo systemctl enable nodered.service הפעל מחדש את ה- Pi

שלב 9: חלק תשיעי: התקנת Arduino IDE

חלק תשיעי: התקנת Arduino IDE
חלק תשיעי: התקנת Arduino IDE

אתה יכול לעשות זאת באמצעות שורת הפקודה אבל … זו לא תהיה הגרסה המלאה.. כלומר, אינך יכול להשתמש בכלי הייבוא/חיפוש של הספרייה, כדי להתקין את הגירסה המלאה עליך להיכנס לאתר arduino ולהוריד את הגירסה לדגם ה- pi שלך. זה יהיה ARM32bit עבור pi3, קבל את המהדורה היציבה. מסוף פתוח. (החלף את ה- *עם פרטי השחרור) הפעל פקודות אלה.

www.arduino.cc/en/Main/Software

cd הורדות/tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.*/opt sudo /opt/arduino-1.*.*/install.sh

שלב 10: חלק עשר: Ffmpeg

חלק עשר: Ffmpeg
חלק עשר: Ffmpeg

1x מצלמת לוג'יטק

(הפריטים הבאים אינם כוללים את מה שאתה צריך כדי להריץ זרם 24/7) 1x קרש לחם פטל פאי שני דגם 3 ב (עם כרטיס SD) רצועת LED ניתנת להתייחסות בנפרד. חוט מגשר ארדואינו ננו מאפשר VNC viewer בשני הפי (ים)

העדפות pi, הפעל vnc צור חשבון עם VNC viewer חשוב: ב- pi שאתה מתכוון להשתמש בו כספסל עבודה ציבורי, עבור אל הגדרות שרת vnc, אפשרויות, כרטיסיית מומחים ועשה פסק זמן סרק: 0 שניות, הוא אמור לסגור Vnc הצופה אם הוא לא פעיל לאחר שעה, פעולה זו תמנע מהחלון שלך לסגור את אמצע התקנת vnc viewer ב- streamer pi במסוף.

sudo apt-get install vnc-java y

חבר את מצלמת הרשת שלך והתקן את מצלמת הרשת שלך.

sudo apt להתקין fswebcam

התקן ffmpeg sudo apt-get install ffmpeg y

כאן נכנסות לשחק הבחירות שלך. במסוף, הפעל סקריפט זה כדי לפתוח חלון בשולחן העבודה של הסטרימר pi שלך עבור מצלמת האינטרנט שלך.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay יאפשר לך לראות זאת בחלון בשם pi -cam, מצלמת הרשת שלו מראה לך במיקום dev/video0 וגודלו המקורי הוא 1920x1080. אני רק רוצה לראות את היבול = רוחב: גובה: topleft_X: topleft_Y ומסגרת מספר של 20 מספיקה לי. הקוד הבא יזרום לעווית.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -vf scale = 1280x720 -c: v h264 -g 24 -b: v 2M -preset ultrafast -c: aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

-f x11grab משמש לתפוס את המסך שלך. רזולוציית המסך שלי מוגדרת ל- 1280x1024 אני רוצה להציג זאת בפורמט וידאו של 1280x720 -vf.

2m = קצב העלאה של 2mgb. -f flv הוא לעצב את הווידאו ל-.flv כדי ש- twitch תוכל להשתמש בו.

עכשיו אתה יכול לתת לצוות שלך את אישורי ה- VNC שלך אל שולחן העבודה פי והם יכולים לראות את השינויים ברצועת ה- LED בשידור חי מרחוק. צעק לבחור הזה ~! הסרטון שלו עזר לי להתקדם, עדיין הייתי צריך להבין איך לצלם במצלמת הרשת שלי … ולגלות על ffmpeg X/

ארתור רידר https://www.youtube.com/embed/kb_5_9GkwZc הערה: אני לא האדם המושכל ביותר, זה פשוט מתאים לצרכים שלי, אם למישהו יש עצות בונה אני אשמח לשמוע אבל בבקשה אל תעשה זאת להיות מרושע אחד המסלולים האפשריים לקחת את זה רחוק יותר, יהיה להשתמש במכונאי הזה כדי להזרים את זה ולהשתמש ב pi אחר ובזרם הרחבה של כרום כדי להביא את הזרם הזה מאשר להאכיל את מצלמת הרשת לזה או בכל דרך אחרת. https://www.youtube.com/embed/kb_5_9GkwZc גם: אם אתה רוצה להוסיף אודיו, כפי שניתן לראות בסרטון YouTube של mans, אתה יכול להשתמש במחרוזת זו, לא רציתי שהבית שלי יוקלט ו נשלח לעווית, זה יושב בחדר שלי אז אני לא זורם שום שמע, זה גם עוזר להפחית את העומס על הפאי.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i default -af acompressor = threshold = 0.089: ratio = 9: attack = 200: release = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -preset ultrafast -c: aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

שלב 11:

תמונה
תמונה
תמונה
תמונה
תמונה
תמונה
תמונה
תמונה

עכשיו למקטע האחרון, יישום תקשורת טורית של arduino ו- pi עם פייתון.

--- מיהו הפרויקט הביתי --- הפרויקט משתמש בסקריפט פייתון המריץ nmap בטרמינל, מעתיק את התוכן של זה, מנתח את הטקסט שאיננו זקוקים לו ומשווה את כתובות ה- mac ברשת מול הרשומות המפורטות כתובות mac ואם יש התאמה אותו אדם נמצא בבית. כתובות ה- mac נמצאו על ידי ביצוע עבודת חקירה בנתב, אך הכלי nmap נותן לך מידע על המכשירים בקובץ הטקסט שנוצר על ידי הקוד. אם המשתמש נוכח, הוא שולח תו לארדואינו, והארדואינו ממתין עד לביצוע רשימת הבדיקות, ומדליק נוריות LED המתאימות לפרופילים הרשומים עבור כתובות ה- mac של ההתקנים הנוכחיים. אתה יכול להוסיף דברים אחרים, כמו שהבוטים של דיסקורד יפעילו פקודות על אנשים שמגיעים או הולכים עם אותו קוד על ידי שימוש במפעיל תת-התהליך כדי לבצע פקודות מסוף בתוך סקריפט הפיתון שלך. אז קודם נתקין nmap sudo apt-get להתקין nmap. בשלב הבא תרצה להוריד את הקבצים במועדוני Git-Hub שלנו.

github.com/ValenciaRobotics/embeddedclub

עבור קוד הפיתון, ההתקנה raspbian מגיעה עם כל מה שמשתמש בקוד זה, כך שלא תצטרך שום דבר נוסף מותקן. השתמשנו ביבוא מחדש, ייבוא תת -תהליך, זמן יבוא, ייבוא סדרתי חשוב לציין כי פייתון משתמש בחריץ להפרדת גושי קוד, לכן היה מודע לכך שאם תחליט לשנות את אופן כתיבת הקוד:) py מגיע עם thonny ide ועוד כמה אפשרויות, אני מוצא שהפעלת התסריט ב- thonny היא ממש קדימה, אם תלחץ על הקובץ ותנסה לבצע אותו, זה היה מציע או להניח שטוני הוא מה שרצית להשתמש בו. לפני שתפעיל את התוכנית, יהיה עליך לערוך את הדברים הבאים. שורה 14: הסמלים * משמשים למסכת פרטי הנתב שלי, יהיה עליך להחליף את זה ב- ip מקומי משלך. זה יהיה זהה למה שאתה משתמש בו כדי להתחבר לנתב שלך. שורות 28, 38, 48, 58: כולן משתמשות בסמל * כדי להסוות את כתובות ה- mac של המכשיר המופיעות מהרשת שלי, עליך לשנות אותן לכתובות ה- mac של המכשירים ברשת שלך כדי לזהות חיבורים. למה כתובות mac? מכיוון שבלי שמירת מיקומים למכשיר שלך, הם בטוח יישארו בעינם אלא אם כן מישהו מזייף. בעיות בקוד זה, הוא יזהה רק בזמן שהחיבור משתמש באופן פעיל באינטרנט, כך שאולי הוא לא מזוהה למרות שמשתמש קיים. בקוד הארדואינו, תרצה לשנות את הדברים הבאים. ראשית, תרצה להיכנס ללשונית הכלים, בחר במנהל הספריות, ולחפש "fastLED" ולהתקין את הספרייה עבור "fastLED". בשלב הבא תצטרך לטעון את קוד ה-ino "מי בבית" מדף github ולשנות את הדברים הבאים כרצונך. שורה 86: שנה את הצבעים בהתאם למה שאתה רוצה שהמשתמשים שלך יצרפו:)

// הפעל את מה שאתה צריך

אם (d == 1) {leds [0] = 0xdd8bff; // leds סגול [1] = 0xdd8bff;}

אם (l == 1) {leds [2] = CRGB:: ירוק; leds [3] = CRGB:: ירוק;}

אם (k == 1) {leds [4] = CRGB:: אדום; leds [5] = CRGB:: אדום; }

אם (j == 1) {leds [6] = CRGB:: כחול; leds [7] = CRGB:: כחול;}

FastLED.show (); עיכוב (30000); // המתנה של 10 שניות על מארז המתגים הסבר קצר כיצד להוסיף עוד משתמשים הוא כדלקמן

לולאת חלל () {

אם (Serial.available ()> 0) {

Serial.println ();

person = Serial.read ();

עיכוב (1000);

לעבור (אדם) {

case'D ': d = 1;

אדם = 'F';

ספירה = ספירה+1;

לשבור;

case'd ':

d = 0;

אדם = 'F';

ספירה = ספירה+1;

לשבור;

האות D גדולה היא התו שהתקבל מסקריפט הפיתון, כך שהוא יודע שהמשתמש נוכח מכיוון שהאות שהתקבלה היא D הגדולה, ולכן היא משנה את הערך של INTEGER d ל- 1, אם מדובר באותיות קטנות ממה שהוא יודע שהוא נעדרים ולכן ה- INTEGER מוגדר ל- 0. התנאי לתאורת נוריות בתסריט מלפני משתמש בהצהרה ש- IF d הוא 1 מאשר הוא ידליק את הלד, אך אם לא הוא הוביל נשאר כ"שחור "כלומר לא מואר. קוד זה משתמש בספרייה "fastLED" ויש הרבה תיעוד בנושא. שים לב שאם אתה משנה את התווים, מוסיף תווים או מסיר תווים יהיה עליך לשנות את סקריפט הפיתון כדי להחזיר גם את אלה ששינית אותם, יהיה עליך גם לשנות את המצב בלולאת הריק. if (count == 4) {holdup ();}} הספירה תצטרך לשקף את מספר המכשירים שאתה עוקב אחריהם. במקרה שלי הוא 4, אז הוא ממתין עד ש -4 מכשירים יוכרזו כנוכחים או נעדרים ואז הוא מעדכן את רצועת הלד. בקוד הפיתון, לשורות 31, 34, 41, 44, 51, 54, 61, 64 יש את השורה הבאה ser.write (b ' *') #שולח תווים יצוקים כבייט על פני סדרתי כאשר * הוא תו שהוא שולח לארדואינו. שנה זאת אם תשנה את הקוד בארדואינו או להיפך:)

שוב, כהצהרת סיום, אני רוצה לתת קרדיט לחבר שלי לקבוצה, ג'ון, הוא עשה עבודה מצוינת באיסוף הרפיון כשהיינו צריכים את זה.

סקריפט ה- Python סופק על ידי: ג'ונתן דה לה קרוז

התסריט של Arduino וההתנהלות וההתקנה של המעבדה הביתית נעשתה על ידי: דילן פול

www.linkedin.com/in/dylan-poll-4a324a1a2/

נקווה שנזכה לפחות בחולצת טריקו! אני אעדכן את זה עם פקודות מעטפת להורדה והתקנה אוטומטית של רוב זה, לאתר המועדונים שלנו יש למעשה סקריפטים של מעטפת להורדה לביצוע פעולות ffmpeg.

הפרויקט הזה לקח הרבה זמן, הקמתי את החטיבה הזו של המועדון מהיסוד כדי שאוכל לומר בגאווה שהרגע הזה מביא לי הרבה שמחה.:) תודה על זמנך, יש לנו פלטפורמת עבודה לפתח עכשיו במועדון שלי בגלל הפרויקט הזה.

מוּמלָץ: