مقالة محدثة: https://viktorkirilov.me/post/home-automation-raspberry-pi/
https://youtu.be/wh0OoLUTeM8
منذ أن كنت طفلاً، كنت شغوفًا بالآليات الإلكترونية والأنواع المختلفة. لقد قمت سابقًا بتنفيذ مشاريع صغيرة مختلفة باستخدام Arduino، مثل فرملة اليد لعجلة قيادة الألعاب، ومقياس سرعة الدوران LED المخصص لسيارتي (راجع موقع github repo الخاص بي)، ومصابيح LED التي يتم التحكم فيها صوتيًا وما إلى ذلك. لقد اشتريت مؤخرًا Raspberry PI 3 وفي ظل كل هذه الضجة حول إنترنت الأشياء، قررت أن أبدأ في أتمتة منزلي.
نظرًا لأنني على دراية تامة بجافا سكريبت ونظامها البيئي، فقد قررت إنشاء تطبيق الهاتف الخاص بي عبر react native
وتوصيله عبر websockets
بالواجهة الخلفية لـ NodeJS
. أنا أستخدم سجلات ImmutableJS من أجل اتساق بنية البيانات وأداء التطبيق. يتم إرسال البيانات بين العميل والخادم عبر سلاسل JSON، والتي يتم تحويلها إلى سجلات غير قابلة للتغيير، عند استلامها من كلا الجانبين. لقد قمت بفصل الوحدات المشتركة (بين العميل والخادم) إلى حزم npm محلية منفصلة - السجلات المنزلية والتكوين المنزلي. للتحكم في GPIO (دبابيس التوت)، استخدمت مكتبة pi-blaster
، جنبًا إلى جنب مع wiringPi
. نظرًا لأنني لم أتمكن من العثور على رموز لمكيف الهواء الخاص بي، فقد قمت بتسجيلها بنفسي وأضفتها إلى ملف تكوين lirc
. يتم استخدام Duckdns
cron كنظام أسماء النطاقات الديناميكي، لأن عنوان IP الخاص بي يتغير بشكل دوري ولن أضطر إلى إعادة ترجمة التطبيق بالكامل أو تغيير التكوين في كل مرة. يبث الخادم التغييرات إلى جميع المستخدمين المتصلين في الوقت الفعلي. يقع تطبيق الهاتف في مجلد /phone-app ، ويقع الخادم في /server . لماذا لا تلقي نظرة؟
Raspberry Pi 3
هي وحدة التحكم. يتم تشغيل الأجهزة عالية الطاقة، مثل شرائط LED، عبر 12V 5A power supply
(أرض مشتركة مع PI). يتم التحكم في التيار المتردد عبر LED بالأشعة تحت الحمراء 950 نانومتر. يتم توصيل نظام التدفئة عبر التتابع (تشغيل وإيقاف) ومؤازرة منظم الحرارة حيث كنت أتجنب التفكيك. يتم توصيل كل من شريط LED الأبيض وشريط RGB عبر الترانزستورات المنطقية IRLZ34N
إلى PI. يوجد أيضًا جهاز استقبال IR، فقط في حالة رغبتي في تسجيل أي شيء آخر. يتم قياس درجة الحرارة عن طريق جهاز استشعار درجة الحرارة DS18B20.
تبدو الأسلاك كما يلي:
أنا منفتح على كل أنواع الأفكار حول الوحدات المختلفة. إذا كانت لديك بعض الأفكار في ذهنك، سأكون ممتنًا إذا قمت بإضافتها في أداة تعقب المشكلات وتصنيفها على أنها Idea
.