الإعلانات

هل سبق لك أن أردت العودة إلى المنزل لاستقبال شخصي؟ مع راسبيري باي وبعض المكونات البسيطة ، يمكنك ذلك! في هذا المشروع البسيط ، سنستخدم مفتاحًا من القصب لتشغيل نغمة الموضوع عند فتح الباب. سنستخدم Raspberry Pi كجهاز تحكم هنا ، على الرغم من أنه يمكنك استخدام أي جهاز تقريبًا متحكم آخر وحدات التحكم الدقيقة 5 دولارات: Arduino ، Raspberry Pi Zero ، أو NodeMCU؟كان من المعتاد أنه إذا كنت ترغب في الحصول على جهاز كمبيوتر ، فسيتعين عليك إعادة ترتيب منزلك لدفع ثمن ذلك. الآن ، يمكنك الحصول على واحد لـ Abraham Lincoln. اقرأ أكثر لهذا المشروع باستخدام نفس الدائرة. هذا عرض توضيحي.

سوف تحتاج

من المحتمل أن تمتلك بالفعل جميع الأجزاء التي تحتاج إليها لإجراء ذلك باستثناء مفتاح القصب ، والذي يبلغ حوالي 2 إلى 3 دولارات ، أو يمكنك الحصول على حزمة من 5 مقابل ما يزيد قليلاً عن 8 دولارات هنا.

  • راسبيري باي (أي نموذج سيعمل لهذا الغرض).
  • 1 × 220 أوم المقاوم.
  • 1 × 1 أوم أوم المقاوم.
  • 3 × 10 كيلو أوم مقاومة.
  • 1 × مفتاح القصب المغناطيسي.
  • 1 × LED.
  • 2 × زر ضغط.
  • اللوح.
  • كابلات التوصيل.
  • مكبر صوت الكمبيوتر أو ما شابه.

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

instagram viewer

هذا المشروع ، في حين أنه في الغالب من أجل المتعة ، يغطي أساسيات العديد من التطبيقات في أتمتة المنزل DIY دليل أتمتة المنزل مع Raspberry Pi و Arduinoإن سوق التشغيل الآلي للمنزل مليء بأنظمة استهلاكية باهظة الثمن ، غير متوافقة مع بعضها البعض ومكلفة للتثبيت. إذا كان لديك Raspberry Pi و Arduino ، يمكنك تحقيق نفس الشيء في ... اقرأ أكثر و أيضا DIY أمن الوطن تبحث عن حل نظام أمن الوطن DIY؟ جرب واحدة من هذهفي عصر التكنولوجيا الرقمية والأجهزة المتصلة دائمًا ، يجب أن يتجاوز إعداد نظام أمان منزلي فن وضع صندوق على شكل منبه على الحائط. اقرأ أكثر

ابدء

لنبدأ بجعل دائرتنا. تأكد من أن Pi الخاص بك غير مزود بالطاقة ، وقم بإعداد دائرتك على النحو التالي:

فريتزينج المقر المشروح

يتم توصيل LED بالطرف 7 على pi. يتم إرفاق مفتاحي زر الضغط بالدبابيس 11 و 13 ، ويتصل مفتاح القصب بالطرف 15. قوتنا تذهب إلى pin 1 (3v3) و pin 6 (Gnd).

رسم تخطيطي

تأكد من التحقق من أن كل شيء في المكان الصحيح تمامًا.

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

تثبيت القصب التبديل

قم بتوصيل مخرج مقبس 3.5 مم من Pi بنظام السماعات الخاص بك. بمجرد وضع كل شيء معًا ، يجب أن يبدو شيئًا مثل هذا:

الإعداد كله صحيح

لاحظ أن اللوح المستخدم هنا لديه قضبان كهربائية في الاتجاه الآخر إلى مخطط Fritzing أعلاه.

الآن قم بتشغيل Pi ، وقم بالوصول إليه باستخدام SSH حتى نتمكن من الوصول إلى المحطة. إذا لم تكن متأكدًا من كيفية القيام بذلك ، هذا الدليل إعداد Raspberry Pi للاستخدام بدون رأس مع SSHيمكن لـ Raspberry Pi قبول أوامر SSH عند الاتصال بشبكة محلية (إما عن طريق Ethernet أو Wi-Fi) ، مما يتيح لك إعدادها بسهولة. فوائد SSH تتجاوز إزعاج الفحص اليومي ... اقرأ أكثر يستطيع مساعدتك. إذا كنت تستخدم Raspberry Pi مع شاشة وماوس ولوحة مفاتيح ، فتخط هذه الخطوة وافتح الوحدة الطرفية.

قبل البدء ، يجدر التحقق مما إذا كنت محدثًا. نوع sudo apt-get update في المحطة.

الآن يمكننا الانتقال إلى جعل Pi تتحدث إلى دائرتنا.

اختبار الإعداد لدينا

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

إذا لم تكن قد قمت بالبرمجة في Python من قبل وكنت تشعر بالرهبة قليلاً ، فهناك مجموعة من مواقع رائعة أفضل 5 مواقع لتعلم برمجة Pythonهل تريد تعلم برمجة Python؟ فيما يلي أفضل الطرق لتعلم Python على الإنترنت ، والعديد منها مجاني تمامًا. اقرأ أكثر يمكن أن تساعدك على البدء.

في الوحدة الطرفية ، قم بإنشاء برنامج نصي جديد:

نانو test.py

بمجرد الفتح ، أضف هذا الرمز إلى الملف ، واضغط على Ctrl-C للخروج ، بعد حوار الحفظ:

# تمت كتابة هذا الرمز لمقال على شبكة الاتصالات العالمية. MakeUseOf.com بواسطة إيان باكلي. استيراد RPi. GPIO مثل GPIO. وقت الاستيراد. GPIO.setwarnings (خطأ) GPIO.setmode (GPIO.BOARD) GPIO.setup (7، GPIO.OUT) GPIO.setup (11، GPIO.IN) GPIO.setup (13، GPIO.IN) GPIO.setup (15، GPIO.IN) بينما True: GPIO.output (7، GPIO.HIGH) if (GPIO.input (11) == 1): print ("Button on GPIO 11") time.sleep (1 ) إذا (GPIO.input (13) == 1): وقت الطباعة ("Button on GPIO 13") time.sleep (1) if (GPIO.input (15) == 1): وقت الطباعة ("Button on GPIO 15") .Sleep (1) GPIO.cleanup ()

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

مفاتيح

تشغيل البرنامج:

بيثون test.py

من المفترض أن ترى ضوء LED مرتفعًا ، وتقريرًا إلى الشاشة عند الضغط على الزرين وسحب المغناطيس بعيدًا عن مفتاح القصب. إذا لم تتلق تعليقات عند الضغط على الأزرار ، فتحقق من دائرتك مرة أخرى وتأكد من توصيل كل شيء كما ينبغي. عند الانتهاء من الاختبار ، اضغط على CTRL-C لوقف البرنامج.

اختبار

الآن يمكننا وضع برنامج بسيط لضبط وتشغيل وإعادة تعيين مستشعر الباب. سنستعرض الرمز في أجزاء وسنشرح بإيجاز ما يفعله كل جزء ، على الرغم من أنك إذا كنت ترغب في رؤية الرمز الكامل قم بالتمرير لأسفل لرؤيته مقدمًا بالكامل.

نحتاج إلى البدء باستيراد بعض الوحدات:

استيراد ربي. GPIO مثل GPIO. استيراد pygame.mixer. وقت الاستيراد. 

سنستخدم Pygame وحدة لتشغيل موسيقانا. يأتي بشكل قياسي مع Raspbian Jessie ، وهو مكتبة رائعة لكل ما تحتاجه لصنع ألعاب Python وغيرها الكثير مشاريع مذهلة كيفية بناء بوت التوت التوت بيTwitter هو أكبر مستودع في العالم للرسائل القصيرة من أشخاص ليس لديهم ما يقولونه - والآن يمكنك أنت أيضًا المساهمة في هذا المشروع الملحمي باستخدام روبوت Twitter آلي ، مدعوم من توت العليق... اقرأ أكثر .

سنستخدم متغير يسمى نشيط لتحديد ما إذا كان نظامنا نشطًا أم لا. دعنا نحدد بعض الوظائف التي ستقوم بذلك لنا:

def activeSetup (): global active active = 0 print ("Current Not Active") def activeState (): global active if active == 1: active = 0 طباعة GPIO.output (7 ، GPIO.LOW) ("حاليًا غير نشطة") تنشط == 0: طباعة ("التنشيط في 10 ثوانٍ") لـ x في النطاق (0،10): GPIO.output (7، GPIO.HIGH) time.sleep (0.5) GPIO.output (7، GPIO.LOW) time.sleep (0.5) active = 1 GPIO.output (7، GPIO.HIGH) print ("حاليًا نشط ") آخر: العودة. 

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

تتحقق الوظيفة الثانية عند استدعاء ما إذا كان النظام نشطًا (أو نشط == 1). إذا كان كذلك ، فإنه يضبط النظام على غير نشط (نشط == 0) ، وإيقاف تشغيل LED ، والطباعة على وحدة التحكم. إذا لم يكن الأمر كذلك ، فإنه يمنحك عدًا تنازليًا لمدة 10 ثوانٍ لمغادرة الغرفة التي يومض فيها مؤشر LED ، قبل الاستمرار في العمل لإظهار أن النظام نشط.

الآن يمكننا تحديد الوظيفة التي ستشاهد مفتاح مغناطيس القصب لدينا:

def watchDoor (): اللعب العام = خطأ أثناء الصواب: إذا كان نشطًا == 1 و GPIO.input (15) == 1 واللعب == خطأ: لعب = صواب pygame.mixer.music.play () إذا GPIO.input (13) == 1: طباعة ("الضغط على زر الإيقاف: إنهاء") فاصل pygame.mixer.music.stop () إذا GPIO.input (11) == 1: timeState () time.sleep (0.5)

نقوم بإنشاء متغير آخر هنا يسمى تلعب - هذا ببساطة لإيقاف البرنامج الذي يحاول بدء اللعب بشكل متكرر عند تشغيل المفتاح.

داخل حلقة while ، أول بيان إذا بدأ الموسيقى (التي ليس لدينا أي منها حتى الآن ، ولكن لا داعي للقلق ، إنها قادمة). يسمح فقط بتشغيل الموسيقى إذا كان النظام نشطًا ، ومفتاح تبديل القصب مفتوحًا ، ولا يتم تشغيله بالفعل.

البيان الثاني هو لزر الخروج لدينا. إذا تم الضغط على هذا الزر ، تتوقف الموسيقى ويخرج البرنامج.

والثالثة إذا كانت للتبديل ما إذا كان النظام نشط أم لا. ال وقت النوم الوظيفة هنا هي منع قراءة الأزرار المتعددة عند الضغط عليه.

حان الوقت الآن لإعداد دبابيس Pi.

GPIO.setmode (GPIO.BOARD) GPIO.setup (7، GPIO.OUT، الأولي = GPIO.LOW) GPIO.setup (11، GPIO.IN) GPIO.setup (13، GPIO.IN) GPIO.setup (15، GPIO.IN)

إذا أجريت أي تجربة مع Pi قبل أن يكون هذا مألوفًا لك. ال الأولي = GPIO.LOW تؤدي الوسيطة في إعداد رقم التعريف الشخصي 7 إلى انخفاضها بمجرد تهيئتها.

الآن يمكننا استدعاء وظيفتنا التي ستجعل النظام غير نشط عند بدء تشغيل البرنامج.

activeSetup ()

موسيقى المايسترو!

عند هذه النقطة ، يجب أن نبدأ في التفكير في الموسيقى لتشغيلها. يمكنك اختيار أي ملف موسيقي تريده ، لكننا سنختار شيئًا متاحًا للجميع الآن. إذا كنت تشاهد YouTube ، فربما تكون على دراية بموسيقى Kevin MacLeod. يتيح تحميل لحن رائع دعا له "مايسترو أعور". هذا ، إلى جانب الكثير من الموسيقى على موقعه ، مرخص بموجب Creative Commons ، وهناك العديد من الأسباب الجيدة ما هو المشاع الإبداعي والاستخدام غير التجاري؟ما هو المشاع الإبداعي؟ ماذا يعني "الاستخدام غير التجاري"؟ تعرف على تراخيص المشاع الإبداعي وكيفية عملها. اقرأ أكثر لاستخدام المحتوى مع هذه التراخيص لمشاريعك.

wget

بالعودة إلى الكود الخاص بنا ، نحتاج إلى تشغيل خلاط Pygame وتحميل اللحن.

pygame.mixer.init (44100 ، -16،2،1024) pygame.mixer.music.set_volume (1.0) name = "Maestro.mp3 أعور" pygame.mixer.music.load (الاسم) طباعة ("مسار محمل -" + str (name))

يبدأ السطر الأول من هذه الكتلة Pygame خلاط. الوسيطة الأخيرة في الأقواس هي المخزن المؤقت الذي يتحكم في الكمون الذي يتم تشغيل الصوت فيه. إذا واجهت تشغيلًا متقطعًا لاحقًا عند تشغيل الموسيقى ، فحاول زيادة هذا الرقم إلى 4096. الإعدادات لأنها تعمل دون أي مشكلة على Pi 3.

إذا قمت بتنزيل ملف الموسيقى الخاص بك في دليل مختلف إلى door.py البرنامج ، ستحتاج إلى توفير المسار الكامل داخل الأقواس عند تحديد متغير الاسم.

الآن كل ما تبقى للقيام به هو إعداد حلقة تنتظر منا إما أن نعد البرنامج نشطًا أو نخرجه.

بينما True: if (GPIO.input (13) == 1): print ("Stop button pressed: Exiting") pygame.mixer.music.stop () استراحة (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()

هذا بينما تنتظر الحلقة إدخالًا من أيٍّ من الزرّين ، وتوقف الحالة أو تغيّرها لتصبح نشطة وفقًا لذلك. إذا أصبحت حالة النشط 1 ، فإن watchDoor الوظيفة التي حددناها سابقًا يتم استدعاؤها وفي المرة القادمة التي يفتح فيها الباب نغمة لدينا. نتصل أيضا GPIO.cleanup () لإعادة ضبط دبابيسنا عند الخروج ، وهي ممارسة جيدة عمومًا لجميع البرمجة على Raspberry Pi.

هذا كل ما نحتاج إلى القيام به لتشغيل هذا المشروع وتشغيله ، إليك الشفرة بالكامل:

استيراد RPi. GPIO مثل GPIO. استيراد pygame.mixer. وقت الاستيراد def activeSetup (): global active active = 0 print ("Current Not Active") def activeState (): global active if if active == 1: active = 0 GPIO.output (7، GPIO.LOW) print ("حاليًا ليس نشط ") elif active == 0: طباعة (" التنشيط في 10 ثوانٍ ") لـ x في النطاق (0،10): GPIO.output (7، GPIO.HIGH) time.sleep (0.5) GPIO.output (7، GPIO.LOW time.sleep (0.5) active = 1 GPIO.output (7 ، GPIO.HIGH) طباعة ("نشط حاليًا") أخرى: عودة def watchDoor (): اللعب العالمي = خطأ أثناء True: إذا كان نشطًا == 1 و GPIO.input (15) == 1 واللعب == خطأ: لعب = صحيح pygame.mixer.music.play () إذا GPIO.input (13) == 1: طباعة ("الضغط على زر الإيقاف: إنهاء") فاصل pygame.mixer.music.stop () إذا GPIO.input (11) == 1: activeState () time.sleep (0.5) GPIO.setmode (GPIO.BOARD) GPIO.setup (7، GPIO.OUT، الأولي = GPIO.LOW) GPIO.setup (11، GPIO.IN) GPIO.setup (13، GPIO.IN) GPIO.setup (15، GPIO.IN) activeSetup () pygame.mixer.init (44100، -16،2،1024) pygame.mixer.music.set_volume (1.0) name = "Maestro.mp3 أعور" pygame.mixer.music.load (الاسم) print ("Loaded track -" + str (name)) بينما True: if (GPIO.input (13) == 1): print ("Button button pressed: Exiting") كسر pygame.mixer.music.stop () إذا (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()

إذا قمت بالتمرير هنا للحصول على الرمز الكامل على الفور ، ضع في اعتبارك أنك ستظل بحاجة إلى تنزيل الموسيقى على Pi الخاص بك حتى تعمل!

الآن يجب أن يكون لديك نغمة وظيفية ترحيب المنزل تعمل! اربط مفتاح القصب ببابك وجربه. الرقص المحرج اختياري لكن يوصى به.

يغطي هذا المشروع أساسيات العديد من أشكال المراقبة المنزلية والأمن والأتمتة ، ونأمل أن يكون ممتعاً أيضًا!

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

أضواء التتابع

هل ستقوم بتصميم رسالة ترحيب منزلية خاصة بك؟ هل تم ابتكارك بمفاتيح من القصب في منزلك بطرق أخرى؟ إذا كان الأمر كذلك ، فاترك تعليقًا عما تخطط له أو قمت به بالفعل في قسم التعليقات أدناه!

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