الصفحة الرئيسية » howto » بناء مؤشر LED مع Raspberry Pi (للبريد الإلكتروني أو الطقس أو أي شيء)

    بناء مؤشر LED مع Raspberry Pi (للبريد الإلكتروني أو الطقس أو أي شيء)

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

    لماذا اريد ان افعل هذا?

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

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

    ماذا أحتاج?

    لمتابعة مع البرنامج التعليمي ستحتاج إلى بعض الأشياء. أولاً ، نفترض أنك قد اتبعت بالفعل برنامجنا التعليمي السابق: دليل HTG للبدء مع Raspberry Pi (وبالتالي لدينا الأساسيات المغطاة لتركيب Rasbian على جهاز Raspberry Pi).

    إذا كنت تبحث عن القيام بهذا المشروع على الميزانية ، يمكننا أن نقول بثقة أن أحدث طراز Raspberry Pi هو مبالغة كبيرة للوظيفة وننصحك بتفجير الغبار عن Raspberry Pi القديم الذي قمت بطرحه في خزانة أو التقاط رخيصة تستخدم واحدة قبالة موقع ئي باي أو ما شابه ذلك. الموازنة الحكيمة منذ فترة طويلة في تطعيم Raspberry Pi 1 Model A أو الموديل B المتخندق عن eBay مقابل 10-15 دولار هو مناسب تمامًا لهذا المشروع عبر شراء جيل جديد من 35 $ للجيل الحالي.

    بالإضافة إلى وجود وحدة Pi وظيفية مع Raspbian مثبت عليها ، ستحتاج إلى الأشياء التالية:

    • 1 وحدة LedBorg (~ $ 5.00 مع شحن $ 4 من المملكة المتحدة إلى الولايات المتحدة ، يعمل مع جميع نماذج Raspberry Pi).
    • 1 حالة Raspberry Pi Clear متوافق مع طراز Pi الخاص بك مثل هذه الحالة Raspberry Pi 1 Model B.

    ملحوظة: تعتبر حالة Clear / frosted Pi اختيارية تمامًا ، ولكن إذا كنت تستخدم حاليًا حالة غير شفافة ، فسيتم إخفاء مؤشر LED الخاص بك بالداخل. ستحتاج إما إلى قطع فتحة في قضيتك لإخراج الضوء أو استخدام كبل تمديد GPIO مع طقم كسر مثل هذا من شركة Adafruit Industries - لتوصيل شاشة LedBorg بـ Raspberry Pi. في حين أن استخدام كابل الاختراق يضيف حوالي 8 دولارات إلى حساب المشروع ، فإنه يوفر المزيد من الإمكانات لتخصيص المنتج النهائي بحيث يمكنك بسهولة وضع LED داخل الأشياء أو تحت شيء ترغب في إلقاء الضوء عليه.

    تثبيت LedBorg

    على الرغم من أنه يمكنك بالتأكيد بناء مؤشر LED بالكامل من الصفر (وسيقوم البحث عن محرك بحث بإحضار الكثير من الأشخاص الذين قاموا بذلك) ، فإن منظمة Piborg تنتج مثل هذه الوحدة المدمجة LED غير المكلفة ، LEDBorg ، التي لم نتمكن من استخدامها. لا تقاوم استخدامه كأساس لمشروع مؤشر LED Raspberry Pi.

    يعد تثبيت الوحدة أمرًا مبهجًا حيث إنه مصمم ليتناسب بشكل مباشر مع دبابيس GPIO على Pi. أولاً ، قم بإيقاف تشغيل Pi الخاص بك وافتح القضية.

    أهم جزء في عملية التثبيت هو أن تقوم بتوجيه الوحدة بحيث يكون رمز LedBorg أقرب إلى وحدة RCA على لوحة Raspberry Pi (وبالتالي فإن حافة LEDBorg تتسطح مع حواف لوح Pi مع التدريجي جزء من LedBorg معلقة على لوحة Pi وليس قبالة الحافة). انظر الصورة أعلاه.

    أثناء فتح لوحة Pi ، سيكون الوقت ممتازًا الآن لتغطية مؤشرات LED على اللوحة (بجانب منافذ USB) ، خاصة إذا كنت تستخدم حقيبة واضحة. لا تريد أن تكون مربكة لقراءة مؤشر LedBorg نظرًا لأن أضواء مؤشر الطاقة والشبكة مشرقة جدًا.

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

    وبمجرد الانتهاء من تثبيت برنامج LedBorg ، وقمت ، بشكل اختياري ، بتغطية مؤشرات LED الخاصة بشركة Pi's بشريط كهربائي ، فقد حان الوقت لإغلاق الغطاء مرة أخرى. قم بتمهيد (Pi) الخاص بك قبل الانتقال إلى المرحلة التالية من البرنامج التعليمي.

    تثبيت برنامج LedBorg

    يوفر PiBorg حزمة برامج رائعة لـ LedBorg تتضمن كلاً من متحكم واجهة المستخدم الرسومية وكذلك برامج التشغيل للوصول إلى برنامج LedBorg من سطر الأوامر.

    قبل البدء ، تحتاج إلى التأكد من أنك تستولي على الحزمة المناسبة لإصدار رسيبن الخاص بك ونسخة # مراجعة من لوحة Raspberry Pi الخاصة بك.

    إذا كان لوحة Raspberry Pi لا تحتوي على فتحات تصاعدية ، فهي مراجعة 1. إذا كان جهاز Raspberry Pi يحتوي على فتحات متزايدة (موجودة في منافذ USB وبين منفذ HDMI ومنفذ الطاقة) ، فحينئذٍ يكون Revision 2. تحتاج أيضًا إلى معرفة إصدار kernel من تثبيت Rasbian الخاص بك. افتح الطرفية وادخل الأمر التالي للتحقق:

    uname -r

    بمجرد حصولك على رقم المراجعة ورقم kernel ، يمكنك زيارة قسم "الحزم" هنا للاستيلاء على الرابط الخاص بحزمة العرض. في حالتنا نحن نستخدم لوحة Revision 1 مع نواة 3.6.11 حتى نتمكن من الاستيلاء على ملف raspbian-2013-02-09-rev1.zip.

    لتثبيت جميع الأشياء الجيدة ، نحتاج إلى فتح المحطة على Pi. ثم قم بإدخال الأوامر التالية لتثبيت حزمة LedBorg.

    ملحوظة: يجب أن تقوم باستبدال عنوان URL في الأمر الثالث بعنوان URL للحزمة الخاصة بتركيبة اللوحة / النواة.

    mkdir ~ / ledborg-setup
    cd ~ / ledborg-setup
    wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
    فك ضغط setup.zip
    chmod + x install.sh
    ./install.sh

    في هذه المرحلة لديك الآن مجمّع GUI لبرامج تشغيل LedBorg وبرامج التشغيل نفسها مثبتة. على سطح المكتب الخاص بك Raspbian سترى رمز لواجهة المستخدم الرسومية المجمع:

    المضي قدما وانقر على أيقونة LedBorg لإطلاق المجمع واجهة المستخدم الرسومية. سيتم التعامل مع واجهة منتقي الألوان على النحو التالي:

    الآن هو الوقت المثالي للتأكد من أن الوحدة النمطية وظيفية. اختر أي لون ، باستثناء الأسود ، لتجربته. سنقوم باختباره عن طريق اختيار بعض الألوان:

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

    في وضع العرض ، يمكنك التنقل بين جميع الألوان بسرعات مختلفة ، والتحقق من الإخراج العالي / المنخفض ، وبخلاف ذلك ، ضع وحدة LED من خلال الخطوات.

    هنا في قسم Demo Mode (الوضع التجريبي) ، يمكنك أيضًا تحويل جهاز LedBorg إلى أول مؤشرات عديدة. عن طريق اختيار وحدة المعالجة المركزية في قسم الألوان ، سيبدأ مؤشر LED في التغيير من اللون الأخضر إلى الأصفر إلى الأحمر للإشارة إلى الحمل على معالج ARM في Raspberry Pi. نقترح تغيير Speed ​​to Slow أثناء قيامك بتحديثها - Fast يقوم بتحديث LED بسرعة كبيرة ويجعل مؤشر CPU يشتت بدلاً من فائدة.

    بالإضافة إلى استخدام واجهة المستخدم الرسومية لتحديد الألوان ، يمكنك اختيار الألوان من الجهاز باستخدام قيم RGB. افتح الجهاز وأدخل الأمر التالي لإيقاف تشغيل الصمام:

    صدى "000"> / ديف / ledborg

    الطريقة التي يعالج بها LedBorg قيم RGB هي أن 0 يعني أن القناة مطفأة ، 1 تعني أن القناة نصف طاقة ، و 2 تعني أن القناة طاقة كاملة. لذلك على سبيل المثال 001 سيعين القناة الحمراء عند 0٪ والقناة الخضراء عند 0٪ والقناة الزرقاء بقوة 50٪.

    غيّر القيمة إلى 002 ويظل إخراج LED باللون الأزرق لكنه يصبح أكثر إشراقًا لأن القناة الزرقاء أصبحت الآن في مخرج 100٪. غيّر القيمة إلى 202 ودمج الأحمر والأزرق في الطاقة الكاملة لإنشاء لون أرجواني.

    الآن بعد أن عرفنا كيف نتعامل مع LED يدويًا ، دعونا ننظر في استخدام البرامج النصية لتحويل ضوء LED لدينا من ضوء بسيط إلى مؤشر فعلي.

    تكوين LedBorg كمؤشر المطر

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

    أولاً ، نحتاج إلى الحصول على مفتاح الوصول إلى واجهة برمجة التطبيقات لـ Weather Underground. للاستخدام الشخصي ومشاريع التطوير الصغيرة ، فإن واجهة برمجة التطبيقات مجانية. قم بزيارة صفحة الاشتراك في API للطقس هنا وقم بالتسجيل للحصول على مفتاح API.

    بعد الحصول على مفتاح واجهة برمجة التطبيقات ، انتقل إلى Weather Underground وابحث عن المدينة التي تريد مراقبتها. في حالتنا نحن ذاهبون لمراقبة سان فرانسيسكو ، كاليفورنيا. عنوان URL لصفحة توقعات سان فرانسيسكو هو:

    http://www.wunderground.com/US/CA/San_Francisco.html

    الجزء المهم لأغراضنا هو الجزء الأخير من عنوان URL: /CA/San_Francisco.html. سنستخدم ذلك لتعديل عنوان URL للتنبؤ لأداة واجهة برمجة التطبيقات. عنوان URL الأساسي هو:

    http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json

    يمكنك إنشاء توقعات لأي مدينة في الولايات المتحدة عن طريق إدخال مفتاح واجهة برمجة التطبيقات ورمز الولاية المكون من حرفين واسم المدينة من عنوان URL الذي تم سحبه من نتائج البحث عن Weather Underground.

    بمجرد أن يكون لديك عنوان URL API مع مفتاح واجهة برمجة التطبيقات (API) وإدخال الحالة / المدينة ، يمكنك بعد ذلك تحرير نص Python النصي التالي عن طريق إنشاء مستند نصي جديد على Pi الخاص بك باستخدام Leafpad ولصق التعليمة البرمجية التالية في:

    من urlib2 استيراد urlopen
    استيراد json

    req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json')
    parsed_json = json.load (req)
    pop = int (parsed_json ['forecast'] ['txt_forecast'] ['forecastday'] [0] ['pop'])

    # ما يلي هو قيمة التصحيح.
    # تحرير الخروج والتغيير
    # العدد الصحيح إلى 0-100 للاختبار
    # استجابة الصمام.

    # pop = 0

    طباعة "الفرصة الحالية للتهطال هي ." تنسيق (pop)

    # الإعداد الافتراضي هو تشغيل LED
    # للحصول على أي فرصة للمطر فوق 20 ٪. يمكنك ضبط
    # القيمة الموجودة في "if pop> 20:" as as wish.

    إذا كانت البوب> 20:
    LedBorg = open ('/ dev / ledborg'، 'w')
    LedBorg.write ( '002')
    ديل LedBorg
    طباعة ("مطر!")
    آخر:
    LedBorg = open ('/ dev / ledborg'، 'w')
    LedBorg.write ( '000')
    ديل LedBorg
    طباعة ("لا مطر!")

    احفظ الملف باسم wunderground.py في الدليل / home / pi /. افتح الطرفية واكتب في الأمر التالي:

    بيثون wunderground.py

    إذا كنت قد أدخلت مفتاح واجهة برمجة التطبيقات ورموز الولاية / المدينة بشكل صحيح ، فيجب أن يؤدي ذلك إلى ردة استجابة تبدو كالتالي:

    إذا تم توقع هطول الأمطار في منطقتك ، فيجب أن يظهر إخراج LedBorg مثل:

    الآن في انتظار يوم ممطر لاختبار البرنامج النصي بشكل صحيح سيكون مملا. إذا لم يكن هناك أي احتمال لحدوث أمطار في منطقتك اليوم وترغب في رؤية ضوء LED ، عدّل البرنامج النصي wunderground.py واستبدل قيمة العبور "pop = pop" في السطر 13 مع قيمة أكبر من 20 مثل 60 التي عادت توقعاتنا. ما عليك سوى تذكر تغيير الخط إلى "pop = pop" عند الانتهاء.

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

    تكوين LedBorg كمؤشر Gmail

    من لا يعجبه إصلاح الدوبامين الذي يأتي مع رؤية بريد إلكتروني جديد في صندوق الوارد الخاص به؟ في هذا الجزء من البرنامج التعليمي ، سنوضح لك كيفية استخدام برنامج LedBorg كمؤشر Gmail جديد. تمامًا مثل آخر مرة ، سنقوم بدمج إدخال خارجي (في هذه الحالة تغذية Atom بدلاً من واجهة برمجة التطبيقات) ونصًا بسيطًا لقيادة LED لدينا.

    نحتاج إلى توسيع وظائف تثبيت Python الخاص بنا قليلاً عن طريق تثبيت FeedParser ، وهي أداة قراءة تغذية لـ Python RSS / Atom. افتح الطرفية وأدخل الأمر التالي:

    sudo easy_install feedparser

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

    استيراد feedparser

    # أدخل اسم مستخدم Gmail الخاص بك
    # وكلمة المرور. لا تشمل
    # @ gmail.com جزء من
    # اسم المستخدم الخاص بك.

    اسم المستخدم = "اسم المستخدم"
    كلمة المرور = "كلمة المرور"

    mail = int (feedparser.parse ("https: //" + اسم المستخدم + ":" + كلمة المرور + "@ mail.google.com/gmail/feed/atom") ”"feed"]["fullcount"])

    # ما يلي هو قيمة التصحيح.
    # تحرير الخروج والتغيير
    # العدد الصحيح إلى 0 أو 1 للاختبار
    # استجابة الصمام.

    # mail = 0

    إذا كان البريد> 0:
    LedBorg = open ('/ dev / ledborg'، 'w')
    LedBorg.write ( '020')
    ديل LedBorg
    طباعة ('البريد!')
    آخر:
    LedBorg = open ('/ dev / ledborg'، 'w')
    LedBorg.write ( '000')
    ديل LedBorg
    طباعة ("لا يوجد بريد!")

    احفظ البرنامج النصي كـ gmailcheck.py. افتح الطرفية واكتب الأمر التالي:

    python gmailcheck.py

    إذا كان لديك بريد إلكتروني يجلس في البريد الوارد في Gmail ، سيتحول مؤشر LED إلى اللون الأخضر وستحصل على رد كالتالي:

    إذا كان لديك بريد في صندوق بريد Gmail الخاص بك ، فإن نظام LedBorg سيبدو كما يلي:

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

    انتقل إلى القسم التالي من البرنامج التعليمي لتعيين نص برمجي Gmail على جدول زمني.

    إعداد مهمة كرون لتشغيل البرنامج النصي الخاص بك

    الآن بعد أن أصبح لدينا نصين للتشغيل ، نحتاج إلى إعداد مهمة cron لتشغيلها طوال اليوم للحفاظ على مؤشر LED الحالي.

    أول شيء نريد القيام به هو إيقاف تشغيل مؤشر LED في حالة تشغيله حاليًا من تجاربنا السابقة. في نوع المحطة:

    صدى "000"> / dev / ledborg

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

    في نوع المحطة:

    سودو crontab -e

    سيؤدي ذلك إلى فتح جدول Raspbian cron في محرر نصوص Nano. استخدم مفاتيح الأسهم للتمرير لأسفل حتى القاع. هذا هو المكان الذي سنقوم فيه بإعداد مهمة كرون المتكررة لنصوص بايثون الخاصة بنا.

    إذا كنت تريد إعداد البرنامج النصي المطر ، أدخل السطر التالي في الجدول cron:

    * / 5 * * * * python /home/pi/wunderground.py

    اضغط على CTRL + X للخروج ؛ اختر نعم لحفظ والكتابة فوق جدول cron الموجود. تعيّن القيمة التي أدخلناها في جدول cron "* / 5 * * * *" النص البرمجي للتشغيل كل 5 دقائق إلى الأبد.

    كل 5 دقائق هي فترة زمنية رائعة للبرنامج النصي الذي يتحقق من المطر المتوقع - يمكنك حتى أن تجادل بأنه عدواني إلى حد ما - ولكن إذا كنت تحاول الاحتفاظ بالرسائل الإلكترونية الخاصة بك ، فستكون فترة طويلة جدًا للإشعار . إذا كنت تقوم بإعداد الجدول الزمني لبرنامج نصي الإعلام في Gmail ، أدخل السطر التالي في جدول cron:

    * / 1 * * * * python /home/pi/wunderground.py

    يشغّل هذا الإدخال gmailcheck.py النصي كل دقيقة لإعلام تحديث أكثر سرعة.


    هذا كل ما في الامر! يمكنك تجربة نصوص بايثون الخاصة بك عن طريق رفع بيانات if / else من خارجنا وتجربتها مع المتغيرات الجديدة. إذا كان بإمكانك العثور على مصدر إدخال للبيانات ، فيمكنك تحويله إلى متغير في متوسطات Python script-stock market ، وتعداد حبوب اللقاح ، وتويتر ، وإذا كان هناك API له ، فيمكنك تحويله إلى مؤشر LED محيطي.

    وأخيرًا ، أريد أن أشكر كل الموارد الرائعة التي اعتدت العمل عليها في هذا المشروع. لقد مر أكثر من عقد من الزمان منذ أن كنت أكتب بفعالية البرامج واستغرق بضع ضربات للحصول على الغبار والصدأ. ساعدني المساهمون في / r / LearnPython في التعرُض إلى ناتج واجهة برمجة التطبيقات لـ Weather Underground ، حيث درسنا كيفية تعامل Michael مع Mitch Tech مع خلاصة Gmail Atom التي أجرت تحليلًا لسهولة LedBorg ، ودراسة وحدات تعلم Python في Code Academy كانت طريقة رائعة لالتقاط البنية الأساسية وهيكل لغة لم أستخدمها من قبل.