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

בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)
בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)

וִידֵאוֹ: בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)

וִידֵאוֹ: בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)
וִידֵאוֹ: Raspberry Pi 4B במארז Argon ONE M.2 עם SSD 128 GB, הרכבת שרת עבור Home Assistant 2024, נוֹבֶמבֶּר
Anonim
בית חכם של פטל פטל
בית חכם של פטל פטל

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

תיכננתי אפליקציית שרת הפועלת על פטל פטל. זהו פרויקט קוד פתוח מבוסס ג'אווה המאפשר לך להגדיר את הדירה שלך ולחבר מספר לקוחות ו'יחידות ניתנות לשליטה '. אני מציג פתרון המטפל במתגי אספקת חשמל rc, מנגן מוזיקה ווידאו ב- Raspberry Pi, מציג את הסטטוס במראה חכמה וניתן לשלוט בו על ידי אפליקציית אנדרואיד ושתי אפליקציות חלוקי נחל. המקור מתארח ב- github

שלב 1: דברים שאתה צריך

דברים שאתה צריך
דברים שאתה צריך

כדי להגדיר את הבית החכם, אתה צריך את ה'מרכיבים 'הבאים:

  • פטל פי לפחות דגם 2 B
  • שולח 433 מגה-הרץ, משהו כזה
  • 3 כבלי מגשר המחברים בין ה- Raspberry Pi לבין השולח
  • כמה שקעי בקרת רדיו במהירות 433 מגה -הרץ
  • סמארטפון אנדרואיד להפעלת אפליקציית הלקוח

בנוסף, אתה יכול להרחיב את הבית החכם עם עוד לקוחות ויחידות אופציונליות כאלה

  • שעון חכם של חלוקי נחל
  • Mirror Smart, ראה פרויקט זה
  • רצועת LED נשלטת על 433 מגה-הרץ, ראה

שלב 2: הכינו את Raspberry Pi למשך 433 מגה -הרץ

הכינו את Raspberry Pi עבור 433 MHz
הכינו את Raspberry Pi עבור 433 MHz
הכינו את Raspberry Pi עבור 433 MHz
הכינו את Raspberry Pi עבור 433 MHz

בשלבים הבאים אתה צריך גישה לשורת הפקודה ב- Raspberry Pi. כדי לקבל את הגישה אתה יכול לקרוא את

חבר את שולח 433 מגהרץ עם ה- Raspberry Pi כפי שמוצג בתמונה למעלה

  • GND (שולח) 6 GND (raspi)
  • VCC (שולח) 2 +5V (raspi)
  • DATA (שולח) 11 GPIO 17 (raspi)

אנא חבר גם אנטנה בגודל 17 ס מ לסיכת ה- ANT (שולח). זה מגביר את האות באופן משמעותי.

מכיוון שאנו זקוקים לספריות ממאגרי git אחרים, עלינו להתקין git

sudo apt-get install git-core -y

כדי להגדיר את ה- Raspberry Pi לתקשורת של 433 מגה -הרץ אנו זקוקים לספריית Pi החיווט לטיפול טוב יותר ב- GPIO.

שיבוט git git: //git.drogon.net/wiringPi

cd wiringPi./build

אז אנחנו צריכים ספרייה שמיישמת בדרך כלל פרוטוקולי אספקת חשמל rc.

שיבוט git git: //github.com/dabastynator/rcswitch-pi.git

תקליטור rcswitch-pi הפוך cp לשלוח/usr/bin/

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

בהגדרת הבית החכם שלי יש לי גם רצועת LED rc המתוארת על ידי ההוראות הבאות: https://www.instructables.com/id/RC-controlled-LED… כדי להגדיר צבעים לרצועת LED זו, עליך להפעיל קובץ שליחה נוסף המאפשר לך לשלוח כל ערך שלם (זה מקודד את הצבע).

לכן, ריכז את ה- sendInt.cpp במאגר rcswitch-pi והעבר אותו אל/usr/bin/sendInt.

sudo g ++ sendInt.cpp -o/usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch -pi -lwiringPi

עכשיו אתה אמור להיות מסוגל לשלוח פקודות rc עם שתי ההפעלות/usr/bin/send ו/usr/bin/sendInt

שלב 3: הגדרת שרת הבית החכם

קודם כל עליך להתקין מספר חבילות. אפליקציית הבית החכם מבוססת ג'אווה ופועלת היטב עם openjdk-11. אני לא בטוח לגבי סביבות זמן ריצה אחרות של java. ה- mplayer הוא נגן מוזיקה שורת פקודה מינימליסטי. ה- omxplayer משתמש בגרפיקת Raspberry Pi לקידוד וידאו, ולכן יש להשתמש בזה לסרטונים. דרושה נמלת התוכנית לבניית אפליקציית java.

sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y

הגדרת ספריות עבור קובץ ה- jar ועבור יומנים.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Logs

הגדר את סקריפט ההתחלה כדי להפעיל את היישום באופן אוטומטי בעת האתחול. לכן העתק את סקריפט הבית החכם המצורף לספרייה /etc/init.d/ יצרתי גם סקריפט ב-/usr/bin/שמפנה פקודות לסקריפט המצורף, אז אני פשוט נכנס לבית חכם לקונסולה כדי לבצע פקודות..

sudo cp smart-home /etc/init.d/smart-home

sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#!/bin/bash'>/usr/bin/smart -home" sudo sh -c "echo '/etc/init. d/smart-home / $ 1 '>>/usr/bin/smart-home "sudo chmod +x/usr/bin/smart-home sudo update-rc.d ברירות מחדל של בית חכם

עכשיו הגיע הזמן לבדוק את המאגר ולבנות את האפליקציה. אם אינך רוצה לאסוף אותו בעצמך, תוכל פשוט להוריד את smarthome.jar המצורף ולהעביר אותו אל/opt/neo/

git clone [email protected]: dabastynator/SmartHome.git

נמלה -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

נסה להפעיל את הבית החכם ולבדוק את קובץ היומן. כדי לקבל גישה ל- GPIO, יש להפעיל את היישום על ידי sudo.

sudo smart home start

חתולי יומנים/smarthome.log

אתה אמור לראות את הודעת השגיאה קובץ התצורה אינו קיים שמפנה אותנו לשלב הבא. המאגר מכיל תוכנת readme המסבירה את קובץ התצורה. אתה יכול לראות את זה מעובד יפה ב github:

העתק את ה- XML הזה אל /home/pi/controlcenter.xml, ולאחר מכן הגדר את המיקום של שרת המדיה שלך ושנה את התוכן לפי הצורך. לאחר שסיימת את התצורה והפעלת מחדש את הבית החכם (הפעלה מחדש של הבית החכם של sudo) אתה אמור לראות את התוכן הבא ב- smarthome.log

24.05-08: 26 מידע מרחוק מאת de.neo.smarthome.cronjob. CronJob@15aeb7ab: תזמון עבודת cron

24.05-08: 26 מידע מרחוק על ידי [trigger.light]: המתן 79391760 ms לביצוע 24.05-08: 26 מידע RMI על ידי הוספת מטפל אינטרנט (5061/ledstrip) 24.05-08: 26 מידע RMI על ידי הוספת מטפל אינטרנט (5061 /פעולה) 24.05-08: 26 מידע RMI על ידי הוספת מטפל אינטרנט (5061/mediaserver) 24.05-08: 26 מידע RMI על ידי הוספת מטפל אינטרנט (5061/switch) 5061/controlcenter) 24.05-08: 26 RMI מידע על ידי Start Webserver עם 5 מטפלים (localhost: 5061) 24.05-08: 26 מידע מרחוק על ידי Controlcenter: הוסף 1. יחידת בקרה: MyUnit (xyz) …

שרת האינטרנט פועל כעת:-)

שלב 4: הגדרת לקוחות

התקנת לקוחות
התקנת לקוחות
התקנת לקוחות
התקנת לקוחות
התקנת לקוחות
התקנת לקוחות

לקוח אנדרואיד חכם

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

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

לקוח Smartwatch Pebble

המקור לשני לקוחות חלוקי הנחל מתארח ב- github. אפליקציה אחת מציגה את קובץ המוסיקה הנוכחי: https://github.com/dabastynator/PebbleRemoteMusic… זה גם מאפשר לך להשהות/לנגן ולהגדיל/להוריד את עוצמת הקול.

האפליקציה השנייה מפעילה שלוש פעולות: https://github.com/dabastynator/PebbleControl שמות הטריגר הם: mobile.come_home mobile.leaving ו- mobile.go_to_bed. אם אתה מגדיר כללי אירועים עבור ההדק הזה בתצורת xml שלך אתה מפעיל אותם על ידי השעון שלך.

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

לקוח Garmin של שעון חכם

יש גם לקוח זמין עבור שעוני החכם של Garmin. האפליקציה זמינה בחנות האפליקציות של garmin connect וניתן להתקין אותה כאן:

apps.garmin.com/en-US/apps/c745527d-f2af-4…

לקוח Smart Mirror

כבר יצרתי מדריך המסביר כיצד ליצור את המראה החכמה, עיין ב https://www.instructables.com/id/Smart-Mirror-by-R…. קוד המקור מתארח גם ב- github: https:// github.com/dabastynator/SmartMirror. התוכנה של Smart Mirror קוראת את התצורה מהקובץ smart_config.js שאינו חלק ממאגר git. התוכן של קובץ התצורה צריך להיראות כמו רישום זה:

var mOpenWeatherKey = 'your-open-wheather-key';

var mSecurity = 'your-security-token';

עליך גם להתאים את שתי השורות הראשונות של הקובץ smart_mirror.js כדי לציין את כתובת ה- IP של שרת הבית החכם ואת המיקום כדי לקבל את מזג האוויר הנכון.

יותר לקוחות

יישום השרת הוא שרת אינטרנט פשוט. זה מאפשר לך להפעיל פעולות מכל לקוח שאתה רוצה באמצעות שיחות אינטרנט פשוטות. בסרטון ההדגמה אני מציג את משימת האפליקציות לאנדרואיד בשילוב עם AutoVoice. זה מאפשר לי להפעיל אירועים באמצעות פקודות קוליות פשוטות. לדוגמה "בסדר גוגל, זמן לישון" יכול לעורר mobile.go_to_bed. אבל אתה יכול גם לבצע שיחות אינטרנט למשל מ- IFTTT. מה דעתך על פס LED מהבהב צהוב להודעת דוא"ל?

אתה יכול לבקש מהשרת שיחות אינטרנט אפשריות כמו קישורים הבאים (החלף ip, יציאה ואסימון לפי התצורה שלך)

localhost: 5061/controlcenter/api? token = secu…

localhost: 5061/action/api? token = security-to …

localhost: 5061/mediaserver/api? token = securi …

localhost: 5061/switch/api? token = security-to …

localhost: 5061/ledstrip/api? token = security- …

שלב 5: מסקנה

עדיין יש כמה תכונות ליישם: מכיוון שהשרת מספק רק אינטרנט פשוט API לקוחות עושים הרבה סקרים. כדי לצמצם את הסקרים אני רוצה שילוב MQTT להודעות טובות יותר. כמו כן ספקי כוח wifi צריכים לבצע ביצועים אמינים יותר מספקי כוח rc מכיוון ש- rc היא רק תקשורת חד כיוונית.

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

מוּמלָץ: