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

محطة الطقس Raspberry Pi Internet Weather: 5 خطوات (بالصور)
محطة الطقس Raspberry Pi Internet Weather: 5 خطوات (بالصور)

فيديو: محطة الطقس Raspberry Pi Internet Weather: 5 خطوات (بالصور)

فيديو: محطة الطقس Raspberry Pi Internet Weather: 5 خطوات (بالصور)
فيديو: Raspberry Pi Pico W LESSON 32: Mobile Weather Station Project 2024, يوليو
Anonim
محطة الطقس Raspberry Pi Internet
محطة الطقس Raspberry Pi Internet
محطة الطقس Raspberry Pi Internet
محطة الطقس Raspberry Pi Internet

*** تحديث ***

لقد أصبح هذا Instructable قديمًا. لم تعد خدمات الطقس لبيانات الطقس ، المستخدمة في Instructable هذا ، تعمل. ومع ذلك ، هناك مشروع بديل يقوم بنفس الشيء في الأساس (فقط أفضل - كان هذا Instructable دائمًا مجرد اختراق). إذن هذا هو الرابط الذي تريد اتباعه:

https://piweatherrock.technicalissues.us/

شكرًا جزيلاً لك ، اذهب إلى Gene Liverman في PiWeatherRock لتولي المسؤولية عن هذا المشروع.

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

استمتعت عائلتنا (حسنًا ، أنا في الغالب) بوجود جهاز iPad الخاص بالعائلة على طاولة المطبخ ، عندما لا يكون قيد الاستخدام ، يعرض بهدوء الظروف الجوية الخارجية الحالية. ومع ذلك ، من الصعب تحميل وتفريغ جهاز iPad داخل وخارج علبة Arcade cradle case. بالإضافة إلى ذلك ، عندما أذهب لإلقاء نظرة على الطقس ، اكتشفت أن شخصًا ما قد أخذ شاشة iPad / الطقس. ما نحتاجه هو شاشة عرض دائمة مضادة للسطح لن يمررها الأطفال مثل iPad.

الخطوة 1: Gen 1 - the Lunchbox Pi Weather Station

الجيل 1 - محطة الطقس Lunchbox Pi
الجيل 1 - محطة الطقس Lunchbox Pi
الجيل 1 - محطة الطقس Lunchbox Pi
الجيل 1 - محطة الطقس Lunchbox Pi

كانت فكرتي الأولى هي استخدام عرض فيديو مركب صغير. التقطت تلك الموجودة في الصورة على موقع Ebay مقابل 22 دولارًا أمريكيًا - ما عليك سوى البحث عن "شاشة عرض السيارة الخلفية TFT LCD مقاس 4.3 بوصة". تبلغ دقة الشاشة 656 × 416 بكسل مما يجعل عرض الكثير من المعلومات المفيدة تحديًا! تتطلب الشاشة 12 فولت تيار مستمر كجهد إمداد. يحتاج Raspberry Pi ، بالطبع ، إلى 5Vdc كجهد إمداد. لحل هذه المشكلة ، اشتريت شاحن سيارة USB رخيصًا من أمازون. لحوالي 6 دولارات ، وجدت مبدل سيارة 5Vdc بواسطة 2 Amp. لذلك ، يحتوي صندوق الغداء على مصدر طاقة خارجي للجدار بجهد 12 فولت. يعمل 12Vdc على تشغيل الشاشة مباشرة. يذهب 12Vdc أيضًا إلى شاحن السيارة USB الذي يخفض الجهد إلى 5Vdc منظم. كإختراق أخير ، قمت بلحام زوج من الأسلاك مباشرة بين شاحن السيارة و Raspberry Pi - ليست أفضل فكرة لدي.

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

الخطوة الثانية: الجيل الثاني - شاشة HDMI + حقيبة أركيد زجاج شبكي مقطوع بالليزر

الجيل 2 - شاشة HDMI + حافظة أركيد زجاج شبكي مقطوع بالليزر
الجيل 2 - شاشة HDMI + حافظة أركيد زجاج شبكي مقطوع بالليزر
الجيل الثاني - شاشة HDMI + حافظة أركيد زجاج شبكي مقطوع بالليزر
الجيل الثاني - شاشة HDMI + حافظة أركيد زجاج شبكي مقطوع بالليزر
الجيل الثاني - شاشة HDMI + حافظة أركيد زجاج شبكي مقطوع بالليزر
الجيل الثاني - شاشة HDMI + حافظة أركيد زجاج شبكي مقطوع بالليزر

مرة أخرى على موقع eBay ، وجدت شاشة عرض مفتوحة HDMI ذات إطار مفتوح بسعر 54 دولارًا بدقة 800 × 600. بحكم التعريف ، أي إطار مفتوح يحتاج إلى إطار ليتم تركيبه فيه. نظرًا لأن جاذبية صندوق الغداء قد انقضت لفترة طويلة ، فقد حان الوقت لبعض قطع الأكريليك بالليزر. مساحة القرصنة المحلية الخاصة بي i3Detroit لديها قاطع لطيف بقدرة 150 واط يمكنه صنع اللحم المفروم من الأكريليك 4.5 مم.

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

تتطلب شاشة HDMI أيضًا تغذية بقدرة 12 فولت تيار مستمر. لذلك ، استخدمت نفس الحيلة لاستخدام شاحن سيارة USB مرة أخرى. هذه المرة ، مع ذلك ، قمت بتقطيع كبل USB قديم بحيث لم تكن الأسلاك الملحومة على Pi مطلوبة.

إذا كان أي شخص مهتمًا بقضية arcade ، فانشر تعليقًا أدناه وسأقوم بتحميل ملفات DXF. أو الملفات موجودة على موقع الويب الخاص بي في ph-elec.com.

الخطوة 3: إعداد Pi

إعداد Pi
إعداد Pi

إن إعداد Raspberry Pi جديد مع البرنامج المطلوب ليس بهذه الصعوبة. تمت كتابة جميع البرامج بلغة Python مع وحدة Python مضافة واحدة فقط. تسمى وحدة Python الإضافية "pywapi". هنا رابط حيث يمكنك تنزيل الوحدة. تسهل هذه الوحدة الحصول على الطقس في الوقت الفعلي من Yahoo أو Weather.com أو NOAA.

أول الأشياء أولاً ، إليك قائمة تحقق لإعداد Raspberry Pi الخام:

  1. قم بتنزيل أحدث إصدار من Raspbian (Debian Wheezy). قم بفك الضغط للحصول على ملف.img.
  2. اكتب على بطاقة SD باستخدام "dd bs = 4M if = 2014-09-09-wheezy-raspbian.img of = / dev / sdb"
  3. يستغرق الأمر dd حوالي خمس دقائق. عند الانتهاء ، قم بتشغيل "sync" لغسل الأنابيب.
  4. قم بتثبيت بطاقة SD في Pi وأعد التشغيل. تأكد من وجود اتصال Ethernet بـ Pi.
  5. باستخدام صفحة "الأجهزة المتصلة" على جهاز التوجيه ، ابحث عن عنوان IP الخاص بـ Pi الجديد.
  6. تسجيل الدخول إلى Pi باستخدام "ssh [email protected]. ؟؟؟" أين ؟؟؟ هو رقم IP من أعلاه. ستكون كلمة المرور "توت العليق".
  7. في Pi ، استخدم الأمر "raspi-config" لإعداد الإعدادات الافتراضية.

    1. قم بتشغيل التمهيد التلقائي في واجهة المستخدم الرسومية.
    2. اضبط اسم المضيف على شيء مثل "MyPi".
  8. قم بتثبيت VNC على Pi باستخدام "sudo apt-get install tightvncserver".

    قم بتشغيل "tightvncserver" الذي يحدد كلمة المرور

  9. مرة أخرى على مربع Linux الكبير ، استخدم "Remote Desktop" لعرض سطح مكتب Pi GUI.

    1. اضبط البروتوكول على "VNC" ورقم IP على "192.168.1.؟؟؟:1". لاحظ ": 1" في نهاية رقم IP.
    2. اضغط على زر الاتصال وقم بتوفير كلمة مرور VNC.
    3. البنغو ، سطح المكتب البعيد GUI Pi!

      يؤدي هذا إلى حفظ سحب الشاشة ولوحة المفاتيح والماوس للاتصال بـ Pi الجديد

    4. على سطح المكتب ، قم بتشغيل أيقونة إعداد WiFi. قم بإعداد Pi / USB WiFi الجديد للاتصال بالشبكة.
    5. أغلق اتصال VNC - لقد انتهينا الآن من أجهزة سطح المكتب البعيدة.
  10. مرة أخرى في نافذة ssh ، أعد تشغيل Pi باستخدام "sudo reboot". افصل كابل Ethernet لأن WiFi قيد الإعداد الآن.
  11. مرة أخرى على جهاز التوجيه المنزلي ، ابحث عن رقم IP الجديد الذي يستخدمه Pi مع WiFi.
  12. باستخدام ssh ، قم بتسجيل الدخول مرة أخرى باستخدام رقم IP الجديد. هذه المرة سيكون الاتصال عبر شبكة WiFi.
  13. باستخدام مدير الملفات على Linux ، اتصل بـ Pi باستخدام أمر "connect to server".

    عنوان الخادم هو "sftp: //192.168.1. ؟؟؟ / home / pi"

  14. اكتمل الإعداد الأساسي.

بعد ذلك ، يجب تنزيل pywapi وتثبيته. مرة أخرى ، هذا ليس صعبًا جدًا بالخطوات التالية:

  1. قم بتنزيل الأحدث من هنا. استخرج الأرشيف إلى دليل جديد.
  2. باستخدام File Manger ، انسخ الدليل إلى الدليل الرئيسي Pi.
  3. باستخدام ssh ، قم بما يلي على Pi:

    1. قرص بيوابي - 0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py install
  4. منتهي.

تحديث ، لقد نسيت ذكر شيئين آخرين:

  1. على Pi ، قم بتشغيل الأمر التالي:

    1. sudo apt-get install avahi-daemon. تحميل برنامج sudo apt-get install avahi-daemon

      هذا يسمح بالاتصال بـ Pi بالاسم. لذلك ، على جهاز الكمبيوتر الرئيسي الخاص بك ، يمكنك الاتصال كـ "ssh [email protected]" بدلاً من استخدام أرقام IP. مع وجود العديد من Pi على الشبكة ، من السهل الخلط بينها ما لم يتم الاستدلال عليها بالاسم

    2. sudo raspi-config

      1. ابحث عن الخيار الرابع المسمى "خيارات التدويل" وقم بتشغيله وقم بتعيين المنطقة الزمنية الخاصة بك.
      2. مع تعيين المنطقة الزمنية و ntpd (البرنامج الخفي لبروتوكول وقت الشبكة) ، سيعرض Pi دائمًا الوقت الصحيح في غضون بضعة أجزاء من الثانية! سوف تحبه.
  2. حسنًا ، انتهينا الآن مرة أخرى.

الخطوة 4: كود المصدر

مصدر الرمز
مصدر الرمز

تستند جميع الكود المصدري لعرض الطقس الصغير هذا إلى Python و PyGame و Pywapi. جميع البرامج مفتوحة المصدر / مجانية.

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

لتشغيل الكود المصدري الخاص بي ، فقط قم بفك ضغط المرفق ونسخ الدليل بالكامل على Pi باستخدام File Manage. بمجرد النسخ ، ابدأ الكود باستخدام أوامر ssh التالية:

  1. cd الطقس
  2. سودو بيثون weather.py

الأمر sudo مطلوب حتى تتمكن Python من التحكم في / قراءة دبابيس GPIO. ربما هناك طريقة ما للتغلب على هذا التقييد لكنه بعيد المنال.

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

  1. باستخدام ssh ، قم بتشغيل "sudo vi /etc/rc.local"
  2. قبل السطر الأخير ، الذي يقول "خروج 0" ، أضف ما يلي إلى الأسطر.

    1. مؤتمر نزع السلاح / الوطن / بي / الطقس
    2. sudo بيثون weather.py &> err.log

سيبدأ هذا تلقائيًا تطبيق الطقس على Pi بعد إعادة التشغيل. إذا كنت تريد إيقاف تشغيل هذا لاحقًا ، فما عليك سوى استخدام ssh لتحرير الملف وإضافة حرف التعليق "#" أمام كلا السطرين وإعادة التشغيل.

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

زوجان من الأشياء الأخرى التي يجب ملاحظتها حول الكود الخاص بي. مدفونًا هناك ستلاحظ بعض الرموز للتحدث إلى جهاز X10. كانت هذه محاولتي للتحكم في مصابيح العمود الخارجي الموجودة على العنوان A3. أردت ببساطة تشغيل المصابيح عند الغسق وإيقافها عند الفجر. يبدو سهلاً بما يكفي واعتقدت أنني نجحت. باستخدام دونجل USB-to-RS232 على Pi ، قمت بتوصيل وحدة CM11A X10. CM11A هي وحدة ماكرو قديمة X10. يحتوي CM11A أيضًا على منفذ RS232 يسمح بالتحكم في ناقل X10. يبدو أنه لا تزال هناك بعض الأخطاء لأن مصابيح عمود المصباح لا تتلقى الرسالة!

وتجدر الإشارة أيضًا إلى وجود فجوة مفتوحة لطيفة على الشاشة الأكبر على طول الجانب الأيمن من الشاشة. خطتي هي إضافة بعض مصابيح الحالة في تلك المنطقة. أنا ألعب مع بعض أجهزة الراديو IEEE802.15.4 وسوف تظهر مخرجاتها يومًا ما في تلك المنطقة المفتوحة.

للحصول على أحدث وأكبر التحديثات ، يرجى زيارة موقع الويب الخاص بي في ph-elec.com.

حسنًا ، اسمحوا لي أن أعرف في قسم التعليقات أدناه أي أسئلة قد تكون لديكم.

شكرا جيم.

أوه ، ولا تنس أن تصوت لي! شكرا لك مرة أخرى.

راجع للشغل: يوجد دائمًا المزيد من المعلومات على موقع الويب الخاص بي: www.ph-elec.com

الخطوة 5: تحديث المقاييس

مرفق إصدار جديد يسمح بعرض إما متري أو إمبراطوري.

أتمنى أن يساعدك هذا،

جيم

موصى به: