Mündəricat:

Bütün səma Kamera üçün Raspberry Pi Dew Heater: 7 Addım
Bütün səma Kamera üçün Raspberry Pi Dew Heater: 7 Addım

Video: Bütün səma Kamera üçün Raspberry Pi Dew Heater: 7 Addım

Video: Bütün səma Kamera üçün Raspberry Pi Dew Heater: 7 Addım
Video: АРГЕНТИНСКИЕ АЛЬФАХОРЫ Какой Альфахор лучше всех? 😋 2024, Iyul
Anonim
Bütün Göy Kamera üçün Raspberry Pi Dew Heater
Bütün Göy Kamera üçün Raspberry Pi Dew Heater

[İstifadə olunan röleyi dəyişdirmək üçün 7 -ci addıma baxın]

Bu, Thomas Jaquin-in əla bələdçisindən (Wireless All Sky Camera) sonra qurduğum səma kamerasına bir yüksəlişdir. Göy kameralarında (və teleskoplarda da) yaranan ümumi bir problem, günəşin soyuduqca kamera günbəzində yoğunlaşmasıdır. Gecə səmasının görünüşünü qaraldan gecə. Çözüm, günbəzin çiy nöqtəsindən yuxarı qalxmasını təmin edəcək bir çiy qızdırıcısı və ya suyun günbəzdə kondensasiya ediləcəyi temperaturu əlavə etməkdir.

Bunun ümumi yolu, bir neçə rezistor vasitəsilə cərəyanı keçməkdir ki, bu da sonra qızdırılacaq və onu istilik mənbəyi kimi istifadə etməlidir. Bu vəziyyətdə, kamerada artıq bir Raspberry Pi olduğu üçün, bunu istifadə edərək, çiy nöqtəsindən yuxarı müəyyən bir günbəz temperaturunu qorumaq üçün lazım olduqda onları açaraq söndürərək rezistor dövrəsini bir röle vasitəsilə idarə etmək istədim. Nəzarət etmək üçün günbəzdə bir temperatur sensoru yerləşdirilmişdir. Yerli hava istiliyi və rütubət məlumatlarını başqa bir sensor əlavə etmək əvəzinə, lazım olan çiy nöqtəsi məlumatları üçün Milli Hava Xidmətindən götürmək qərarına gəldim və kameramın içərisinə sızacaq bir sızma lazımdır.

Raspberry Pi, genişləndirmə lövhələrinin fiziki cihazları idarə etməsinə imkan verən bir GPIO başlığına malikdir, lakin IO -nun özü cərəyan müqavimət gücünün tələb etdiyi dövrəni idarə etmək üçün nəzərdə tutulmamışdır. Buna görə əlavə komponentlərə ehtiyac var. Güc dövrəsini təcrid etmək üçün bir röle istifadə etməyi planlaşdırıram, buna görə Pi ilə əlaqə qurmaq üçün IC rölesi sürücüsü lazımdır. Günbəzin içindəki istiliyi oxumaq üçün bir temperatur sensörünə ehtiyacım var, buna görə Pi -nin istiliyi oxuya bilməsi üçün rəqəmsal çeviriciyə (ADC) ehtiyac var. Bu komponentlər ayrı -ayrılıqda mövcuddur, ancaq bu cihazları Pi -nin GPIO -ya daxil olan bir lövhədə olan Pi üçün 'şapka' da satın ala bilərsiniz.

Bütün G/Ç aralığına malik olan Pimoroni Explorer pHAT ilə getdim, amma məqsədlərim üçün 0-5V aralığında dörd analoq girişi və röleyi idarə etmək üçün uyğun dörd rəqəmsal çıxışı var.

Günbəz temperaturu sensoru üçün TMP36 istifadə etdim, çünki istiliyi gərginlik göstəricisindən əldə etmək üçün sadə xətti tənliyə malikdir. İşimdə termistorlar və RTD-lərdən istifadə edirəm, lakin xətti deyillər və buna görə də sıfırdan tətbiq etmək daha çətindir.

Adafruit -in Perma Proto Bonnet Mini dəstini, röleyi, terminal blokunu və digər naqilləri lehimləmək üçün elektron lövhə olaraq istifadə etdim, bu da Pi üçün ölçüsü gözəl və Pi -nin təklif etdiyi ilə əlaqəli sxemlərə malikdir.

Əsas şeylər bunlardır. Adafruit -in bütün normal dövrə hissələrinə əlavə olaraq ehtiyat hissələri saxladıqları üçün Digikey -dən hər şeyi əldə etdim. Sifariş verdiyim bütün hissələri olan bir alış -veriş səbətinin bağlantısı budur:

www.digikey.com/short/z7c88f

Tullanan tellər üçün bir neçə tel bobini daxildir, əgər onsuz da varsa, buna ehtiyacınız yoxdur.

Təchizat

  • Pimoroni Explorer pHAT
  • TMP36 temperatur sensoru
  • 150 Ohm 2W rezistorlar
  • 1A 5VDC SPDT Rölesi
  • Vida terminal bloku
  • Dövrə lövhəsi
  • Tel
  • dövrə lövhəsinin kəsilməsi
  • lehim və lehimləmə dəmiri

Digikey -də hissələr siyahısı:

www.digikey.com/short/z7c88f

Addım 1: Elektrik nəzəriyyəsi qeydləri

İstifadə olunan komponentlərin görəcəkləri gücü və cərəyanı idarə edə biləcək ölçüdə olmasını təmin etmək vacibdir, əks halda vaxtından əvvəl uğursuzluq və hətta yanğın ola bilər!

Bu vəziyyətdə narahat olmaq lazım olan əsas komponentlər, röle kontaktlarının cari reytinqi və rezistorların güc dərəcəsidir.

Güc dövrəmizdəki yeganə yük rezistorlar olduğundan, yalnız ümumi müqaviməti hesablaya, Ohm qanununa daxil edə və dövrəmizdəki cərəyanı hesablaya bilərik.

Paralel rezistorların ümumi müqaviməti: 1/R_T = 1/R_1 +1/R_2 +1/R_3 +1/R_N

Fərdi müqavimətlər bərabərdirsə, onu aşağı salmaq olar: R_T = R/N. Beləliklə, dörd bərabər müqavimət üçün R_T = R/4 -dir.

Dörd 150 Ω rezistordan istifadə edirəm, buna görə də dördünün ümumi müqavimətim (150 Ω) /4=37.5 is -dir.

Ohm qanunu yalnız Gerilim = Cari X Müqavimətidir (V = I × R). I = V/R almaq üçün cərəyanı təyin etmək üçün bunu yenidən təşkil edə bilərik. Gərginliyimizi enerji mənbəyimizdən və müqavimətimizdən bağlasaq, I = (12 V)/(37.5 Ω) = 0.32 A. alırıq. Bu o deməkdir ki, ən azından röleimizin 0.32 A səviyyəsində qiymətləndirilməsi lazımdır. istifadə etdiyimiz 1A rölesi, lazım olan ölçüdən 3 dəfə çoxdur, bu da çoxdur.

Rezistorlar üçün hər birindən keçən gücün miqdarını təyin etməliyik. Güc tənliyi bir neçə formada gəlir (Ohm qanunu ilə əvəz etməklə), amma bizim üçün ən əlverişli olan P = E^2/R -dir. Fərdi müqavimətçimiz üçün bu P = (12V)^2/150Ω = 0.96 W olur. Buna görə də ən az 1 vat müqavimət istəyəcəyik, ancaq 2 vat bizə əlavə təhlükəsizlik faktoru verəcək.

Dövrənin ümumi gücü yalnız 4 x 0,96 W və ya 3,84 W olacaqdır (Ümumi müqaviməti güc tənliyinə qoyub eyni nəticəni əldə edə bilərsiniz).

Bütün bunları yazıram, buna görə də daha çox güc (daha çox istilik) istehsal etmək istəsəniz, nömrələrinizi işlədə və lazım olan rezistorları, onların reytinqini və lazım olan rölin reytinqini hesablaya bilərsiniz.

Mən əvvəlcə Raspberry Pi elektrik dəmir yolundan 5 volt ilə dövrə çəkməyə çalışdım, amma hər bir müqavimət üçün istehsal olunan güc yalnız P = (5V)^2/150Ω = 0.166 Vt, cəmi 0,66 Vt temperaturun bir neçə dərəcədən çox artması üçün kifayətdir.

Adım 2: Adım 1: Lehimləmə

Addım 1: Lehimləmə
Addım 1: Lehimləmə
Addım 1: Lehimləmə
Addım 1: Lehimləmə
Addım 1: Lehimləmə
Addım 1: Lehimləmə

Tamam, kifayət qədər hissə siyahısı və nəzəriyyə, dövrənin dizaynına və lehiminə keçək!

Mən Proto-Bonnet-in sxemini iki fərqli şəkildə çəkdim, bir dəfə kabellərin sxematik olaraq, bir də lövhənin əyani təsviri kimi. Pimoroni Explorer pHAT lövhəsinin, Proto-Bonnet ilə arasına keçən telləri göstərən, qeyd olunmuş bir fotoşəkili də var.

Explorer pHAT -da, onunla birlikdə gələn 40 pin başlığının lövhəyə lehimlənməsi lazımdır, bu onunla Raspberry Pi arasındakı əlaqədir. G/Ç üçün terminal başlığı ilə gəlir, amma mən istifadə etməmişəm, sadəcə telləri birbaşa lövhəyə lehimləmişəm. Proto-Bonnet, başlıq üçün bağlantıları da ehtiva edir, lakin bu halda istifadə edilmir.

Temperatur sensoru, Raspberry Pi -nin yeri ilə Kamera Günbəzinin içərisi arasındakı fərqi düzəltmək üçün tellərdən istifadə edərək Explorer pHAT lövhəsinə birbaşa bağlanır.

Vida Terminal bloku və idarəetmə rölesi, Proto-Bonnet lövhəsinə lehimlənən iki komponentdir, sxematik olaraq T1, T2, T3 (üç vintli terminal üçün) və röle üçün CR1 olaraq etiketlənmişdir.

Rezistorlar, Raspberry Pi-dən Kamera Günbəzinə qədər gedən tellərə lehimlənir, Proto-Bonnetə T1 və T3 vida terminalları vasitəsi ilə qoşulurlar. Kameranı damıma qoymadan əvvəl montajın şəklini çəkməyi unutmuşdum, ancaq günbəzin ətrafındakı rezistorları bərabər şəkildə boşaltmağa çalışdım, yalnız iki tel Proto-Bonnetə qayıdırdı. Günbəz borunun əks tərəflərindəki deliklər vasitəsilə daxil olur, temperatur sensoru günbəzin kənarına yaxın olan iki rezistor arasında bərabər şəkildə üçüncü bir çuxurdan daxil olur.

Adım 3: Adım 2: Montaj

Addım 2: Quraşdırma
Addım 2: Quraşdırma

Hamısı birlikdə lehimləndikdən sonra, bütün göy kameranıza quraşdıra bilərsiniz. Explorer pHAT-ı Rasperry Pi-yə 40 pin başlığına itələyin və sonra Proto-Bonnet bəzi dayanıqlıqlardan istifadə edərək Pi-nin yanına bitişik şəkildə quraşdırılır. Başqa bir seçim, Explorer -in üstündəki qarşıdurmalardan istifadə etmək olardı, amma ABS Boru korpusundan istifadə etdiyim üçün, Pi -ni artıq sığmayacaq qədər böyük etdi.

İstilik sensörünü korpusun yerləşdiyi yerə aparın və rezistor kəmərini də quraşdırın. Sonra qoşqu proto lövhənin terminal blokuna bağlayın.

Proqramlaşdırmaya keçək!

Addım 4: Addım 3: Explorer PHAT Kitabxanasının yüklənməsi və Test Proqramlaşdırması

Explorer pHAT -ı istifadə etməzdən əvvəl, kitabxananı Pimoroni -dən yükləməliyik ki, Pi onunla əlaqə saxlasın.

Raspberry Pi -də terminalı açın və daxil edin:

əymək https://get.pimoroni.com/explorerhat | bash

Quraşdırmanı başa çatdırmaq üçün uyğun olaraq 'y' və ya 'n' yazın.

Sonra, kabellərimizin düzgün olduğundan əmin olmaq üçün giriş və çıxışları yoxlamaq üçün sadə bir proqram işə salmaq istəyəcəyik. Əlavə edilmiş DewHeater_TestProg.py, temperaturu göstərən və röleyi hər iki saniyədə bir açan və söndürən bir python skriptidir.

idxal vaxtı

import explorerhat gecikməsi = 2 Doğru olarkən: T1 = explorerhat.analog.one.read () tempC = ((T1*1000) -500)/10 tempF = tempC*1.8 +32 çap ('{0: 5.3f} volt, {1: 5.3f} degC, {2: 5.2f} dərəcə F'.formatı (yuvarlaq (T1, 3), yuvarlaq (tempC, 3), yuvarlaq (tempF, 3))) V1 = explorerhat.output.two. on () print ('Relay on') time.sleep (delay) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (delay)

Dosyanı moruq Pi -də aça bilərsiniz (mənimki Thonny -də açıldı, amma orada başqa Python redaktorları da çoxdur) və sonra işə salın və temperaturu göstərməyə başlamalısınız, düyməni basaraq söndürün! Əks təqdirdə, kabellərinizi və dövrələrinizi yoxlayın.

Addım 5: Adım 4: Çiylik qızdırıcısının proqramlaşdırılması yüklənir

Budur, şehli qızdırıcının tam proqramı. Bir neçə şeyi edir:

  • Hər beş dəqiqədə bir Milli Hava Xidməti yerindən mövcud açıq hava istiliyini və çiy nöqtəsini çəkir. Məlumat almırsa, əvvəlki temperaturları saxlayır və başqa beş dəqiqədə yenidən cəhd edir.

    • NWS, əlaqə məlumatlarının API sorğularına daxil edilməsini tələb edir, sorğu ilə bağlı problemlər yaranarsa, kimə müraciət etməli olduqlarını bilirlər. Bu proqramlaşdırmanın 40 -cı sətirindədir, zəhmət olmasa '[email protected]' ünvanını öz e -poçt ünvanınızla əvəz edin.
    • NWS -də ən yaxın hava stansiyası olan Station ID -ni əldə etmək üçün weather.gov saytına daxil olmalı və bölgəniz üçün bir proqnoz axtarmalısınız. Stansiya ID yeri adından sonra () -dədir. Bunu proqramlaşdırmanın 17 -ci sətrinə daxil edin. Hal -hazırda KPDX və ya Portland, Oregon əyalətini göstərir.
    • ABŞ -dan kənarda olsanız, OpenWeatherMap.org -un məlumatlarından istifadə etmək üçün başqa bir imkan var. Özüm sınamamışam, ancaq bu nümunəyə buradan baxa bilərsiniz: Oxuma-JSON-Raspberry-Pi ilə
  • Diqqət yetirin ki, NWS -dən və temperatur sensöründən gələn temperaturlar ASI kameralarında olduğu kimi santigrat dərəcədir, buna görə də ardıcıllıq üçün daha çox alışdığım Fahrenheit -ə çevrilməkdənsə hamısını Centrigrade -də saxladım..
  • Sonra, günbəz sensorundan temperaturu oxuyur və çiy nöqtəsindən 10 dərəcədən aşağıdırsa, röleyi işə salır. Çiy nöqtəsindən 10.5 dərəcədən yuxarı olarsa, röleyi söndürür. İstəyirsinizsə bu parametrləri dəyişə bilərsiniz.
  • Dəqiqədə bir dəfə, temperatur, çiy nöqtəsi və röle vəziyyəti üçün cari dəyərləri bir.csv faylına daxil edir, beləliklə zamanla necə olduğunu görə bilərsiniz.

#Raspberry Pi Dew Heater nəzarət proqramı

#Dec 2019 #Brian Plett #bir göy kamerası üçün bir çiy qızdırıcısı olaraq bir rezistor dövrəsini idarə etmək üçün Pimoroni Explorer pHAT, temperatur sensoru və röleyi istifadə edir #NWS veb saytından hava istiliyini və çiy nöqtəsini çəkir #daxili temperaturu 10 saxlayır çiy nöqtəsi idxal vaxtından yuxarı idxal datetime idxal istəkləri idxal csv idxal os idxal explorerhat #Station ID NWS -də ən yaxın hava stansiyasıdır. Weather.gov saytına daxil olun və bölgəniz üçün əvvəlcədən məlumat axtarın, #stansiya ID yeri adından sonra () -dədir. settings = {'station_ID': 'KPDX',} #Hava məlumatları üçün alternativ URL #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} və ədəd = {3}"

#Məlumatların geri qaytarılması üçün hava URL

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

Röle kontrolü üçün #gecikmə, saniyə

ControlDelay = 2 A = 0 B = 0 Doğru olarkən: #fayl tarixi adında istifadə etmək üçün datestr = datetime.datetime.now (). Strftime ("%Y%m%d") #tarix və hər bir məlumat satırı üçün istifadə vaxtı. localtime = datetime.datetime.now (). strftime ("%Y/%m/%d%H:%M") #CSV fayl yolu yolu = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' while B == 0: cəhd edin: #Hər 60 saniyədə NWS-dən temperatur və çiy nöqtəsini çəkin final_url = BASE_URL.format (parametrlər ["station_ID"]) weather_data = taleplər.get (final_url, zaman aşımı = 5, başlıqlar = {'İstifadəçi agenti) ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["xassələr"] ["temperatur"] ["dəyər"] dewRaw = hava_data.json () ["xüsusiyyətlər"] ["çiy nöqtəsi"] ["dəyər"] #temperatur diaqnozu çap məlumatlarının çapı üçün (oatRaw, dewRaw) OAT = yuvarlaq (yulaflı, 3) Çiy = yuvarlaq (dewRaw, 3) istisna olmaqla: A = 0 B = 1 fasilə A = 0 B = 1 fasilə A <300: A = A + ControlDelay başqa: B = 0 #Raspberry Pi Explorer PHat -dan xam gərginliyi oxuyun və temperaturu 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 () #diagnostik çap, temperaturları, çiy nöqtələrini və röle çıxış vəziyyətinin çapını göstərir ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} dərəcə C {3: 5.0f} 'formatında (yuvarlaq (OAT, 3), yuvarlaq (Çiy, 3), yuvarlaq (tempC, 3), explorerhat.output.two.read ())) Dəqiqə yuvarlandıqdan 10 saniyə sonra, A == 10 olduqda CSV faylına məlumat yazın: əgər os.path.isfile (path.format (datestr)): csvfile olaraq open (path.format (datestr), "a") ilə yazdır (path.format (datestr)): txtwrite = csv.writer (csvfile) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat. output.two.read ()]) başqa: alan adları = ['tarix', 'Açıq Hava İstiliyi', 'Çiy nöqtəsi', 'Qübbə İstiliyi', 'Röle Vəziyyəti'] açıq olan (yol.formatı (datestr), "w ") csvfile olaraq: txtwrite = csv.writer (csvfile) txtwrite.writerow (sahə adları) txtwrite.writerow ([yerli vaxt, OAT, Çiy, tempC, explorerhat.output.two.read ()]) vaxt.yuxu (ControlDelay)

Bunu DewHeaterLogs adlı allsky qovluğunun altında yeni bir qovluqda saxladım.

Ssenari olaraq işə başlamazdan əvvəl hər şeyin yaxşı göründüyündən əmin olmaq üçün bunu bir qədər çalışın.

Addım 6: Addım 5: Başlanğıcda Skriptin Çalışması

Raspberry Pi işə düşən kimi Dew Heater skriptini işə salmaq üçün buradakı təlimatları izlədim:

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

Başlatıcı skripti üçün bunu yaratdım:

#!/bin/sh

# launcher.sh # ana qovluğa, sonra bu qovluğa gedin, sonra python skriptini icra edin, sonra evə qayıdın cd/cd home/pi/allsky/DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd/

Bunu etdikdən sonra getmək üçün yaxşı olmalısan. Çiysiz kameraya sahib olun!

Addım 7: Dekabr 2020 -ni yeniləyin

Təxminən keçən ilin yarısında çiy qızdırıcım işləməyini dayandırdı, buna görə də koda baxana qədər onu deaktiv etdim. Nəhayət, qış fasiləsində bir az vaxt keçirdim və istifadə etdiyim rölin, ehtimal ki, həddindən artıq yüklənmədən işləyərkən kontaktları arasında yüksək müqavimət göstərdiyini gördüm.

Buna görə də 1A kontaktı yox, 5A kontaktı olan daha yüksək reytinqli röley ilə yenilədim. Həm də bir siqnal rölesi deyil, güc rölesidir, buna görə ümid edirəm kömək edir. Bu TE PCH-105D2H, 000. Explorer Explorer pHAT üçün bir neçə vintli terminal da əlavə etdim, buna görə də lazım olduqda qızdırıcını və temperatur sensorunu asanlıqla ayıra bilərdim. Bunların 3 -ü də bu alış -veriş səbətindədir:

Digikey alış -veriş səbəti

Unutmayın ki, bu rölin pinləri əvvəlkisindən fərqlidir, buna görə tel bağladığınız yer bir qədər fərqlidir, lakin sadə olmalıdır. Qütbün bobin üçün heç bir əhəmiyyəti yoxdur, FYI.

Tövsiyə: