جدول المحتويات:

المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)
المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)

فيديو: المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)

فيديو: المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)
فيديو: Home Assistant - первые настройки, File Editor, Maria DB, HACS - октябрь 2023 2024, يوليو
Anonim
المنزل الذكي من Raspberry Pi
المنزل الذكي من Raspberry Pi

هناك بالفعل العديد من المنتجات التي تجعل شقتك أكثر ذكاءً ، ولكن معظمها حلول مملوكة. ولكن لماذا تحتاج إلى اتصال بالإنترنت لتبديل الضوء بهاتفك الذكي؟ كان هذا أحد الأسباب التي دفعتني إلى بناء حل المنزل الذكي الخاص بي.

لقد قمت ببرمجة تطبيق خادم يعمل على Raspberry Pi. هذا مشروع مفتوح المصدر يعتمد على جافا ويسمح لك بتهيئة شقتك وتوصيل العديد من العملاء و "الوحدات القابلة للتحكم". أعرض حلاً يتعامل مع مفاتيح إمداد الطاقة RC ، وتشغيل الموسيقى والفيديو على Raspberry Pi ، وإظهار الحالة على المرآة الذكية ويمكن التحكم فيها عن طريق تطبيق android واثنين من تطبيقات pebble. المصدر مستضاف على github

الخطوة 1: الأشياء التي تحتاجها

أشياء تحتاجها
أشياء تحتاجها

لإعداد المنزل الذكي ، تحتاج إلى "المكونات" التالية

  • Raspberry Pi نموذج 2 ب على الأقل
  • مرسل 433 ميغاهرتز ، شيء من هذا القبيل
  • 3 كبلات توصيل تربط بين Raspberry Pi والمرسل
  • بعض مقابس التحكم في الراديو بتردد 433 ميجاهرتز
  • هاتف ذكي يعمل بنظام Android لتشغيل تطبيق العميل

بالإضافة إلى ذلك ، يمكنك توسيع المنزل الذكي بمزيد من العملاء والوحدات الاختيارية مثل هذا

  • ساعة ذكية بيبل
  • Smart Mirror ، راجع هذا المشروع
  • شريط LED يتم التحكم فيه 433 ميجاهرتز ، راجع هذا

الخطوة 2: تحضير Raspberry Pi لـ 433 MHz

قم بإعداد 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)
  • البيانات (المرسل) 11 GPIO 17 (raspi)

يرجى أيضًا توصيل هوائي 17 سم بدبوس ANT (المرسل). هذا يزيد من إشارة كبيرة.

نظرًا لأننا نحتاج إلى بعض المكتبات من مستودعات git الأخرى ، فعلينا تثبيت git

سودو apt-get install git-core -y

لإعداد Raspberry Pi للاتصال 433 ميجاهرتز ، نحتاج إلى مكتبة الأسلاك Pi لتحسين التعامل مع GPIOs.

بوابة استنساخ git: //git.drogon.net/wiringPi

الأسلاك القرص المضغوط

ثم نحتاج إلى مكتبة تنفذ عادةً بروتوكولات مصدر طاقة RC.

بوابة استنساخ git: //github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi جعل cp send / usr / bin /

يتيح لك الملف التنفيذي "إرسال" إرسال رموز لتبديل معظم مصادر الطاقة المتاحة.

في إعداد Smart Home الخاص بي ، لدي أيضًا شريط RC LED موصوف في هذه التعليمات: https://www.instructables.com/id/RC-controlled-LED… لتعيين الألوان لشريط LED هذا ، تحتاج إلى ملف إرسال آخر قابل للتنفيذ يسمح لك لإرسال أي قيمة عدد صحيح (يشفر اللون).

لذلك ، قم بتجميع sendInt.cpp في rcswitch-pi repo وانقله إلى / 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: إعداد خادم المنزل الذكي

بادئ ذي بدء ، تحتاج إلى تثبيت عدة حزم. تطبيق Smart Home مبني على Java ويعمل بشكل جيد مع openjdk-11. لست متأكدًا من بيئات وقت تشغيل جافا الأخرى. يعد mplayer مشغل موسيقى بسطر أوامر بسيط. يستخدم omxplayer رسومات Raspberry Pi لتشفير الفيديو ، لذلك يجب استخدامه لمقاطع الفيديو. هناك حاجة إلى نملة البرنامج لبناء تطبيق جافا.

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

إعداد الدلائل لملف الجرة والسجلات.

sudo mkdir / opt / neo

sudo chown pi: pi / opt / neo mkdir / home / pi / السجلات

قم بتكوين البرنامج النصي لبدء تشغيل التطبيق تلقائيًا عند التمهيد. لذلك ، قم بنسخ البرنامج النصي للمنزل الذكي المرفق في الدليل /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

ant -f SmartHome / de.neo.smarthome.build / build.ant build_remote cp SmartHome / de.neo.smarthome.build / build / jar / * / opt / neo /

حاول بدء تشغيل المنزل الذكي وتحقق من ملف السجل. للوصول إلى GPIOs ، يجب بدء التطبيق عن طريق sudo.

sudo بدء المنزل الذكي

سجلات القط / smarthome.log

يجب أن ترى رسالة الخطأ ملف التكوين غير موجود والذي يوجهنا إلى الخطوة التالية. يحتوي المستودع على ملف تمهيدي يشرح ملف التكوين. يمكنك أن ترى هذا معروضًا بشكل جيد في جيثب:

انسخ ملف xml هذا إلى /home/pi/controlcenter.xml ، ثم اضبط موقع خادم الوسائط الخاص بك وقم بتغيير المحتوى حسب حاجتك إليه. بمجرد الانتهاء من التكوين وإعادة تشغيل المنزل الذكي (إعادة تشغيل sudo smart-home) ، يجب أن ترى المحتوى التالي في smarthome.log

24.05-08: 26 معلومات عن بُعد بواسطة de.neo.smarthome.cronjob. CronJob@15aeb7ab: جدولة وظيفة cron

24.05-08: 26 معلومات عن بُعد بواسطة [trigger.light]: انتظر 79391760 مللي ثانية للتنفيذ 24.05-08: 26 معلومات RMI عن طريق إضافة معالج ويب (5061 / شريط LED) 24.05-08: 26 معلومات RMI عن طريق إضافة معالج ويب (5061 / الإجراء) 24.05-08: 26 معلومات RMI عن طريق إضافة معالج ويب (5061 / mediaserver) 24.05-08: 26 معلومات RMI عن طريق إضافة معالج ويب (5061 / switch) 24.05-08: 26 معلومات RMI عن طريق إضافة معالج ويب (5061 / controlcenter) 24.05-08: 26 معلومات RMI عن طريق بدء خادم الويب مع معالج 5 (المضيف المحلي: 5061) 24.05-08: 26 معلومات عن بُعد بواسطة Controlcenter: إضافة 1. وحدة التحكم: MyUnit (xyz) …

يعمل خادم الويب الآن:-)

الخطوة 4: عملاء الإعداد

عملاء الإعداد
عملاء الإعداد
عملاء الإعداد
عملاء الإعداد
عملاء الإعداد
عملاء الإعداد

عميل Android للهواتف الذكية

يحتوي مستودع git لتطبيق المنزل الذكي أيضًا على المصدر الخاص بعميل android ، لذا يمكنك تجميعه بنفسك. لكني أرفقت ملف APK لهذه الخطوة ، مما يجعل الأمر أسهل. في المرة الأولى التي تبدأ فيها تشغيل التطبيق ، يطلب منك خادمًا ، كما في الصورة الأولى أعلاه. أدخل عنوان url الخاص بالخادم ورمز الأمان.

يجب أن يكون عليه. يمكنك الآن الوصول إلى الخادم والتحكم في شقتك وتشغيل الموسيقى ومشاهدة مقاطع الفيديو عن بُعد على Raspberry Pi. لاحظ أنه يمكنك إضافة عناصر واجهة مستخدم إلى شاشتك الرئيسية ، مما يجعل المفاتيح والتحكم في الموسيقى أكثر سهولة.

عميل Smartwatch Pebble

المصدر الخاص بالعميلين المرصوفين بالحصى مستضاف على جيثب. يعرض أحد التطبيقات ملف الموسيقى الجاري تشغيله: https://github.com/dabastynator/PebbleRemoteMusic… يتيح لك هذا أيضًا الإيقاف المؤقت / التشغيل ورفع / خفض مستوى الصوت.

يقوم التطبيق الثاني بتشغيل ثلاثة إجراءات: https://github.com/dabastynator/PebbleControl أسماء المشغلات هي: mobile.come_home mobile.leaving و mobile.go_to_bed. إذا قمت بتعريف قواعد الحدث لهذا المشغل في ملف التكوين الخاص بك ، فإنك تقوم بتشغيلها بواسطة ساعتك.

كلها مفتوحة المصدر ، لكنك لست بحاجة إلى تجميعها بنفسك ، لقد قمت أيضًا بإرفاق تطبيقات pebble. قم بتنزيل ملفات PBW بهاتفك الذكي ، يجب أن يقوم هاتفك بتثبيتها على ساعتك. تحتاج تطبيقات الحصاة إلى تكوينات للتحدث إلى الخادم. لقد أرفقت لقطة شاشة كيف تبدو إعداداتي.

عميل Smartwatch Garmin

هناك أيضًا عميل متاح لـ Garmin Smartwatches. التطبيق متاح في متجر تطبيقات 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 لخادم Smart Home والموقع للحصول على الطقس المناسب.

المزيد من العملاء

تطبيق الخادم هو خادم ويب بسيط. يمكّنك هذا من تشغيل الإجراءات من أي عميل تريده عن طريق مكالمات ويب بسيطة. في الفيديو التوضيحي ، أعرض أداة تطبيق android بالاشتراك مع AutoVoice. يتيح لي ذلك تشغيل الأحداث بأوامر صوتية بسيطة. على سبيل المثال ، يمكن أن تؤدي عبارة "ok google ، حان وقت النوم" إلى تشغيل 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: الخاتمة

لا تزال هناك بعض الميزات التي يجب تنفيذها: نظرًا لأن الخادم يوفر فقط واجهة ويب بسيطة ، يقوم عملاء واجهة برمجة تطبيقات الويب بالكثير من الاقتراع. لتقليل الاقتراع ، أريد تكامل MQTT لإعلام أفضل. يجب أيضًا أن تعمل مزودات طاقة wifi بشكل أكثر موثوقية من مزودات طاقة RC لأن التحكم عن بعد هو مجرد وسيلة اتصال ذات اتجاه واحد.

إنه يجعل الكثير من المرح في التطوير لهذا المشروع. ومن الرائع جدًا التحكم في الشقة بواسطة عدة أجهزة ، حتى لو تعطل اتصال الإنترنت.

موصى به: