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



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

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

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





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

ماذا احتاج؟

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



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

الإعلانات

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

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

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

تثبيت ملف LedBorg

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

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

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

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

الإعلانات

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

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

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

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

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

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

uname -r

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

الإعلانات

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

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

mkdir ~ / إعداد ليدبورج
cd ~ / إعداد ليدبورج
wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
قم بفك ضغط setup.zip
chmod + x install.sh
./install.sh

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

انطلق وانقر على أيقونة LedBorg لتشغيل غلاف واجهة المستخدم الرسومية. سيتم التعامل مع واجهة منتقي الألوان كما يلي:

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

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

الإعلانات

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

هنا في قسم الوضع التجريبي ، يمكنك أيضًا تحويل LedBorg الخاص بك إلى المؤشر الأول من بين العديد من المؤشرات. من خلال تحديد وحدة المعالجة المركزية في قسم الألوان ، سيبدأ مؤشر LED في التغيير من الأخضر إلى الأصفر إلى الأحمر للإشارة إلى الحمل على معالج ARM الخاص بـ Raspberry Pi. نقترح تغيير السرعة إلى 'إبطاء' أثناء وجودك بها - يتم تحديث مؤشر LED بسرعة كبيرة ويجعل مؤشر وحدة المعالجة المركزية يشتت الانتباه بدلاً من أن يكون مفيدًا.

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

echo '000' > /dev/ledborg

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

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

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

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

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

الإعلانات

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

بمجرد حصولك على مفتاح API الخاص بك ، قم بزيارة Weather Underground وابحث عن المدينة التي تريد مراقبتها. في حالتنا سنقوم بمراقبة سان فرانسيسكو ، كاليفورنيا. عنوان URL لصفحة توقعات San Fransisco هو:

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

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

http://api.wunderground.com/api/Your API KEY / Forecast / q / STATE / CITY.json

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

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

from urllib2 import urlopen
import 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 المراد اختباره
# استجابة LED.

# فرقعة = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED
# for any chance of rain above 20%. You can adjust
# the value in 'if pop > 20:' as you wish.

if pop > 20:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('002')
del LedBorg
print ('Rain!')
else:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('000')
del LedBorg
print ('No rain!')

الإعلانات

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

ثعبان wunderground.py

إذا قمت بإدخال مفتاح API الخاص بك ورموز الولاية / المدينة الخاصة بك بشكل صحيح ، فيجب أن تتراجع عن الرد الذي يبدو كما يلي:

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

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

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

تكوين LedBorg الخاص بك كمؤشر Gmail

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

الإعلانات

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

sudo easy_install feedparser

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

import feedparser

# Enter your Gmail username
# and password. Don't include
# the @gmail.com portion of
# your username.

username = 'username'
password = 'password'

mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])

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

# بريد = 0

if mail > 0 :
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('020')
del LedBorg
print ('Mail!')
else:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('000')
del LedBorg
print ('No mail!')

احفظ البرنامج النصي باسم gmailcheck.py. افتح الجهاز واكتب الأمر التالي:

python gmailcheck.py

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

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

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

الإعلانات

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

إنشاء وظيفة Cron لتشغيل البرنامج النصي الخاص بك

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

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

صدى 000> / ديف / ليدبورج

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

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

سودو كرونتاب -e

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

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

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

الإعلانات

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

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

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

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


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

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

اقرأ التالي صورة الملف الشخصي لجيسون فيتزباتريك جايسون فيتزباتريك
جيسون فيتزباتريك هو رئيس تحرير موقع LifeSavvy ، الموقع الشقيق لـ How-To Geek والذي يركز على الاختراقات والنصائح والحيل في الحياة. لديه أكثر من عشر سنوات من الخبرة في النشر وألف آلاف المقالات في Review Geek و How-To Geek و Lifehacker. عمل جايسون كمحرر عطلة نهاية الأسبوع في Lifehacker قبل أن ينضم إلى How-To Geek.
اقرأ السيرة الذاتية الكاملة

مقالات مثيرة للاهتمام