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

سخان ندى Raspberry Pi للكاميرا All-sky: 7 خطوات
سخان ندى Raspberry Pi للكاميرا All-sky: 7 خطوات

فيديو: سخان ندى Raspberry Pi للكاميرا All-sky: 7 خطوات

فيديو: سخان ندى Raspberry Pi للكاميرا All-sky: 7 خطوات
فيديو: У йогуртового разбойника выбило днище...UWU ► 4 Прохождение God of War (HD Collection, PS3) 2024, يوليو
Anonim
سخان ندى Raspberry Pi لكاميرا All-sky
سخان ندى Raspberry Pi لكاميرا All-sky

[انظر إلى الخطوة 7 لمعرفة التغيير الذي تم إجراؤه على الترحيل المستخدم]

هذه ترقية لكاميرا السماء بالكامل التي قمت بإنشائها باتباع دليل Thomas Jaquin الممتاز (Wireless All Sky Camera) مشكلة شائعة تحدث لكاميرات السماء (والتلسكوبات أيضًا) هي أن الندى سيتكثف على قبة الكاميرا عندما يصبح أكثر برودة في الليل الذي يحجب منظر سماء الليل. الحل هو إضافة سخان ندى يقوم بتسخين القبة لتكون أعلى من نقطة التكثف ، أو درجة الحرارة التي يتكثف عندها الماء على القبة.

الطريقة الشائعة للقيام بذلك هي تمرير التيار عبر عدة مقاومات ، والتي ستسخن بعد ذلك ، واستخدامها كمصدر للحرارة. في هذه الحالة ، نظرًا لأن الكاميرا تحتوي بالفعل على Raspberry Pi ، فقد أردت استخدام ذلك للتحكم في دائرة المقاوم عبر مرحل ، وتشغيلها وإيقافها حسب الحاجة للحفاظ على درجة حرارة قبة معينة أعلى من نقطة الندى. يوجد مستشعر درجة الحرارة في القبة للتحكم. قررت سحب بيانات درجة حرارة الطقس المحلية والرطوبة من National Weather Service للحصول على معلومات نقطة الندى المطلوبة ، بدلاً من إضافة مستشعر آخر ، وأحتاج إلى اختراق في غلاف الكاميرا الخاص بي الذي يمكن أن يتسرب.

يحتوي Raspberry Pi على رأس GPIO الذي يسمح للوحات التوسعة بالتحكم في الأجهزة المادية ، ولكن IO نفسه ليس مصممًا للتعامل مع متطلبات دائرة طاقة المقاومة الحالية. لذلك هناك حاجة إلى مكونات إضافية. أخطط لاستخدام مرحل لعزل دائرة الطاقة ، لذا يلزم وجود برنامج تشغيل IC للتفاعل مع Pi. أحتاج أيضًا إلى مستشعر درجة الحرارة لقراءة درجة الحرارة داخل القبة ، لذا يلزم وجود محول تناظري إلى رقمي (ADC) حتى يتمكن Pi من قراءة درجة الحرارة. تتوفر هذه المكونات بشكل فردي ، ولكن يمكنك أيضًا شراء "قبعة" لـ Pi تحتوي على هذه الأجهزة على لوحة يتم توصيلها فقط بـ GPIO الخاص بـ Pi.

ذهبت مع Pimoroni Explorer pHAT ، الذي يحتوي على مجموعة كاملة من الإدخال / الإخراج ، ولكن لأغراضي ، فإنه يحتوي على أربعة مدخلات تناظرية تتراوح بين 0-5 فولت ، وأربعة مخرجات رقمية مناسبة لقيادة المرحلات.

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

لقد استخدمت مجموعة Perma Proto Bonnet Mini من Adafruit كلوحة دائرة لحام المرحل والكتلة الطرفية والأسلاك الأخرى ، وهو أمر رائع لأنه بحجم Pi ، ولديه دوائر ذات صلة بما يقدمه Pi.

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

www.digikey.com/short/z7c88f

يتضمن بضع بكرات من الأسلاك لأسلاك العبور ، إذا كان لديك بالفعل بعضها ، فلن تحتاج إليها.

اللوازم

  • Pimoroni Explorer pHAT
  • مستشعر درجة الحرارة TMP36
  • مقاومات 150 أوم 2 وات
  • 1A 5VDC SPDT التقوية
  • كتلة طرفية المسمار
  • لوحة دائرة كهربائية
  • الأسلاك
  • مواجهات لوحة الدائرة
  • جندى ولحام الحديد

قائمة الأجزاء على digikey:

www.digikey.com/short/z7c88f

الخطوة 1: ملاحظات النظرية الكهربائية

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

المكونات الرئيسية التي يجب القلق بشأنها في هذه الحالة هي التصنيف الحالي لجهات اتصال الترحيل ، وتصنيف طاقة المقاومات.

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

المقاومة الإجمالية للمقاومات المتوازية: 1 / R_T = 1 / R_1 + 1 / R_2 + 1 / R_3 + 1 / R_N

إذا كانت المقاومة الفردية متساوية ، فيمكن تقليلها إلى: R_T = R / N. لذلك ، بالنسبة لأربعة مقاومات متساوية ، يكون R_T = R / 4.

أنا أستخدم أربعة مقاومات 150 أوم ، لذا فإن مقاومتي الإجمالية من خلال الأربعة منهم هي (150 أوم) /4=37.5 أوم.

قانون أوم هو مجرد الجهد = المقاومة الحالية X (V = I × R). يمكننا إعادة ترتيب ذلك لتحديد التيار للحصول على I = V / R. إذا قمنا بتوصيل جهدنا من مصدر الطاقة ومقاومتنا ، فسنحصل على I = (12 V) / (37.5 Ω) = 0.32 A. وهذا يعني على الأقل ، أن المرحل يجب أن يتم تقييمه عند 0.32 A. مرحل 1A الذي نستخدمه يزيد عن 3 أضعاف الحجم المطلوب ، وهو كثير.

بالنسبة للمقاومات ، نحتاج إلى تحديد مقدار القوة التي تمر عبر كل منها. تأتي معادلة القوة في عدة أشكال (من خلال الاستبدال بقانون أوم) ، ولكن الأمر الأكثر ملاءمة لنا هو P = E ^ 2 / R. بالنسبة للمقاوم الفردي الخاص بنا ، يصبح هذا P = (12V) ^ 2 / 150Ω = 0.96 W. لذلك سنريد مقاومة 1 وات على الأقل ، لكن 2 وات ستعطينا عامل أمان إضافي.

ستكون القوة الإجمالية للدائرة 4 × 0.96 وات فقط ، أو 3.84 وات (يمكنك أيضًا وضع المقاومة الكلية في معادلة القدرة والحصول على نفس النتيجة).

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

لقد حاولت في البداية تشغيل الدائرة بجهد 5 فولت من سكة الطاقة Raspberry Pi ، لكن الطاقة المولدة لكل مقاوم هي فقط P = (5V) ^ 2 / 150Ω = 0.166 W ، بإجمالي 0.66 W ، والتي لم تكن ' يكفي لتوليد أكثر من درجتين من ارتفاع درجة الحرارة.

الخطوة 2: الخطوة 1: اللحام

الخطوة 1: اللحام
الخطوة 1: اللحام
الخطوة 1: اللحام
الخطوة 1: اللحام
الخطوة 1: اللحام
الخطوة 1: اللحام

حسنًا ، ما يكفي من قوائم الأجزاء والنظرية ، دعنا نصل إلى تصميم الدوائر واللحام!

لقد قمت برسم الدائرة على Proto-Bonnet بطريقتين مختلفتين ، مرة كمخطط توصيل ، ومرة أخرى كتمثيل مرئي للوحة. هناك أيضًا صورة مميزة للوحة Pimoroni Explorer pHAT ، تُظهر الأسلاك التي تربط بينها وبين Proto-Bonnet.

في Explorer pHAT ، يجب أن يتم لحام رأس 40 دبوس الذي يأتي معه باللوحة ، وهذا هو الاتصال بينه وبين Raspberry Pi. يأتي مع رأس طرفي للإدخال / الإخراج ، لكنني لم أستخدمه ، بدلاً من ذلك فقط أسلاك ملحومة مباشرة باللوحة. يشتمل Proto-Bonnet أيضًا على اتصالات للرأس ، لكن لا يتم استخدامه في هذه الحالة.

يتم توصيل مستشعر درجة الحرارة مباشرة بلوحة Explorer pHAT باستخدام الأسلاك لتعويض الفرق بين موقع Raspberry Pi وداخل قبة الكاميرا حيث توجد.

كتلة طرف المسمار ومرحل التحكم هما المكونان اللذان تم لحامهما بلوحة Proto-Bonnet ، في التخطيطي يتم تسميتهما T1 و T2 و T3 (للمحطات اللولبية الثلاثة) و CR1 للتتابع.

المقاومات ملحومة بالخيوط التي تنتقل أيضًا من Raspberry Pi إلى Camera Dome ، وتتصل بـ Proto-Bonnet عبر المحطات اللولبية في T1 و T3. لقد نسيت التقاط صورة للتجميع قبل أن أقوم بتثبيت الكاميرا مرة أخرى على سقفي ، لكنني حاولت أن أفرد المقاومات بالتساوي حول القبة ، مع عودة سلكين فقط إلى Proto-Bonnet. دخول القبة من خلال ثقوب على جانبي الأنبوب ، مع دخول مستشعر درجة الحرارة عبر فتحة ثالثة ، متباعدة بالتساوي بين اثنين من المقاومات بالقرب من حافة القبة.

الخطوة 3: الخطوة 2: التجميع

الخطوة 2: التجميع
الخطوة 2: التجميع

بمجرد أن يتم لحام كل شيء معًا ، يمكنك تثبيته على الكاميرا التي تعمل في السماء بالكامل. قم بتركيب Explorer pHAT على Rasperry Pi ، وادفعه على رأس 40 دبوس ، ثم يتم تثبيت Proto-Bonnet بجواره أعلى Pi باستخدام بعض المواجهات. هناك خيار آخر يتمثل في استخدام المواجهات في الجزء العلوي من المستكشف ، ولكن نظرًا لأنني كنت أستخدم حاوية ABS ، فقد جعلت Pi أكبر من أن تلائم أي شيء آخر.

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

إلى البرمجة!

الخطوة 4: الخطوة 3: تحميل Explorer PHAT Library ، واختبار البرمجة

قبل أن نتمكن من استخدام Explorer pHAT ، نحتاج إلى تحميل المكتبة له من Pimoroni حتى يتمكن Pi من التواصل معها.

على Raspberry Pi الخاص بك ، افتح Terminal وأدخل:

حليقة https://get.pimoroni.com/explorerhat | سحق

اكتب "y" أو "n" بالشكل المناسب لإنهاء التثبيت.

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

وقت الاستيراد

تأخير مستكشف الاستيراد = 2 بينما صحيح: T1 = explorerhat.analog.one.read () tempC = ((T1 * 1000) -500) / 10 tempF = tempC * 1.8 +32 print ('{0: 5.3f} volts، {1: 5.3f} degC، {2: 5.2f} deg F'.format (round (T1، 3)، round (tempC، 3)، round (tempF، 3))) V1 = explorerhat.output.two. on () print ("Relay on") time.sleep (delay) V1 = explorerhat.output.two.off () print ("Relay off") time.sleep (delay)

يمكنك فتح الملف على Raspberry Pi الخاص بك ، (تم فتحه في Thonny من حسابي ، ولكن هناك الكثير من برامج تحرير Python الأخرى الموجودة هناك أيضًا) ، ثم تشغيله ، ويجب أن يبدأ في إظهار درجة الحرارة ، وستسمع تتابع النقر فوق وإيقاف! إذا لم يكن كذلك ، فقم ببعض التحقق من الأسلاك والدوائر الخاصة بك.

الخطوة 5: الخطوة 4: تحميل برمجة سخان الندى

هنا برمجة سخان الندى الكامل. يقوم بعدة أشياء:

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

    • تطلب NWS إدراج معلومات الاتصال في طلبات واجهة برمجة التطبيقات ، في حالة وجود مشكلات في الطلب ، فإنهم يعرفون من يجب الاتصال به. هذا في السطر 40 من البرمجة ، يرجى استبدال "[email protected]" بعنوان بريدك الإلكتروني الخاص.
    • ستحتاج إلى الذهاب إلى weather.gov والبحث عن توقعات الطقس لمنطقتك ، للحصول على معرف المحطة ، وهي أقرب محطة طقس في NWS. معرف المحطة موجود في () بعد اسم الموقع. أدخل هذا في السطر 17 من البرمجة. يعرض حاليًا KPDX ، أو بورتلاند ، أوريغون.
    • إذا كنت خارج الولايات المتحدة الأمريكية ، فهناك احتمال آخر باستخدام البيانات من OpenWeatherMap.org. لم أجربها بنفسي ، لكن يمكنك إلقاء نظرة على هذا المثال هنا: Reading-JSON-With-Raspberry-Pi
  • لاحظ أن درجات الحرارة من NWS ومن مستشعر درجة الحرارة هي بالدرجات المئوية ، كما هو الحال بالنسبة لكاميرا ASI ، لذلك من أجل الاتساق ، احتفظت بها جميعًا Centrigrade بدلاً من التحويل إلى فهرنهايت ، وهو ما اعتدت عليه أكثر.
  • بعد ذلك ، يقرأ درجة الحرارة من مستشعر القبة ، وإذا كانت أقل من 10 درجات فوق نقطة الندى ، فإنه يقوم بتشغيل التتابع. إذا كان أعلى من 10.5 درجة فوق نقطة الندى ، فإنه يقوم بإيقاف تشغيل التتابع. يمكنك تغيير هذه الإعدادات إذا رغبت في ذلك.
  • مرة واحدة في الدقيقة ، يقوم بتسجيل القيم الحالية لدرجات الحرارة ، ونقطة الندى ، وحالة الترحيل في ملف.csv حتى تتمكن من معرفة كيفية عملها بمرور الوقت.

#Raspberry Pi برنامج التحكم في سخان الندى

#Dec 2019 #Brian Plett #Uses Pimoroni Explorer pHAT ، ومستشعر درجة الحرارة ، وترحيل # للتحكم في دائرة المقاوم كمسخن ندى لكاميرا تغطي السماء بالكامل # يسحب درجة حرارة الهواء الخارجية ونقطة الندى من موقع NWS على الويب # يحافظ على درجة الحرارة الداخلية 10 درجات أعلى من وقت استيراد نقطة الندى ، وطلبات الاستيراد ، والوقت ، واستيراد csv ، واستيراد نظام التشغيل ، واستيراد نظام التشغيل ، Explorerhat #Station ID هو أقرب محطة طقس في NWS. انتقل إلى weather.gov وابحث عن توقع لمنطقتك ، # معرف المحطة موجود في () بعد اسم الموقع. الإعدادات = {'station_ID': 'KPDX'،} #Alternate URL لمعلومات الطقس #BASE_URL = "https://api.openweathermap.org/data/2.5/weather؟appid={0}&zip={1} ، { 2} & الوحدات = {3}"

#Weather URL لاسترداد البيانات

BASE_URL = "https://api.weather.gov/stations/{0}/observations/latest"

# تأخير للتحكم في الترحيل ، ثوانٍ

ControlDelay = 2 A = 0 B = 0 بينما True: #date للاستخدام في تاريخ اسم ملف السجل r = datetime.datetime.now (). strftime ("٪ Y٪ m٪ d") #date & time to use لكل صف بيانات localtime = datetime.datetime.now (). strftime ("٪ Y /٪ m /٪ d٪ H:٪ M") #CSV file path path = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' بينما B == 0: جرب: # سحب درجة الحرارة ونقطة الندى من NWS كل 60 ثانية final_url = BASE_URL.format (الإعدادات ["station_ID"]) weather_data = request.get (final_url ، timeout = 5 ، headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["الخصائص"] ["temperature"] ["value"] dewRaw = weather_data.json () ["الخصائص"] ["dewpoint"] ["value"] # الطباعة التشخيصية لطباعة بيانات درجة الحرارة الخام (oatRaw، dewRaw) OAT = round (oatRaw، 3) Dew = round (dewRaw، 3) باستثناء: A = 0 B = 1 break A = 0 B = 1 فاصل إذا كان A <300: A = A + ControlDelay else: B = 0 # قراءة الجهد الخام من Raspberry Pi Explorer PHat وتحويله إلى درجة الحرارة T1 = explorerhat.analog.one.read () tempC = ((T1 * 1 000) -500) / 10 #tempF = tempC * 1.8 +32 if (tempC Dew + 10.5): V1 = explorerhat.output.two.off () #diagnostic print تظهر درجات الحرارة ونقاط التكثف وطباعة حالة الإخراج ('{ 0: 5.2f} degC ، {1: 5.2f} degC ، {2: 5.2f} deg C {3: 5.0f} '. تنسيق (دائري (OAT ، 3) ، دائري (ندى ، 3) ، دائري (درجة الحرارة) ، 3)، explorerhat.output.two.read ())) # 10 ثوانٍ بعد مرور الدقائق ، اكتب البيانات إلى ملف CSV إذا كان A == 10: if os.path.isfile (path.format (datestr)): print (path.format (datestr)) مع open (path.format (datestr)، "a") مثل csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow ([localtime، OAT، Dew، tempC، explorerhat. output.two.read ()]) else: fieldnames = ['date'، 'Outdoor Air Temp'، 'Dewpoint'، 'Dome Temp'، 'Relay State'] مع فتح (path.format (datestr)، "w ") كـ csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (fieldnames) txtwrite.writerow ([localtime، OAT، Dew، tempC، explorerhat.output.two.read ()]) time.sleep (ControlDelay)

لقد حفظت هذا في مجلد جديد ضمن مجلد allsky المسمى DewHeaterLogs.

حاول تشغيل هذا قليلاً للتأكد من أن كل شيء يبدو جيدًا ، قبل الانتقال إلى تشغيله كبرنامج نصي.

الخطوة 6: الخطوة 5: تشغيل البرنامج النصي عند بدء التشغيل

لتشغيل البرنامج النصي Dew Heater بمجرد بدء Raspberry Pi ، اتبعت التعليمات هنا:

www.instructables.com/id/Raspberry-Pi-Laun…

بالنسبة إلى برنامج Launcher النصي ، قمت بإنشاء هذا:

#! / بن / ش

# launcher.sh # انتقل إلى الدليل الرئيسي ، ثم إلى هذا الدليل ، ثم نفذ سكربت بايثون ، ثم عُد إلى المنزل cd / cd home / pi / allsky / DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

بمجرد الانتهاء من ذلك ، يجب أن تكون على ما يرام. استمتع بكاميرا خالية من الندى!

الخطوة السابعة: تحديث ديسمبر 2020

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

لذلك قمت بتحديثه باستخدام مرحل ذي تصنيف أعلى ، واحد به جهة اتصال 5A بدلاً من جهة اتصال 1A. كما أنه عبارة عن مرحل طاقة وليس تتابع إشارة ، لذلك آمل أن يساعد. إنه TE PCH-105D2H ، 000. لقد أضفت أيضًا بعض الأطراف اللولبية لـ Explorer pHAT ، لذلك يمكنني بسهولة فصل السخان ومستشعر درجة الحرارة حسب الحاجة. كل هؤلاء الثلاثة في عربة التسوق هذه أدناه:

عربة التسوق Digikey

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

موصى به: