Kazalo:

Grelec za roso Raspberry Pi za kamero za celotno nebo: 7 korakov
Grelec za roso Raspberry Pi za kamero za celotno nebo: 7 korakov

Video: Grelec za roso Raspberry Pi za kamero za celotno nebo: 7 korakov

Video: Grelec za roso Raspberry Pi za kamero za celotno nebo: 7 korakov
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Grelec za roso Raspberry Pi za kamero za celotno nebo
Grelec za roso Raspberry Pi za kamero za celotno nebo

[Oglejte si korak 7 za spremembo uporabljenega releja]

To je nadgradnja na kamero za vse nebo, ki sem jo zgradil po odličnem vodniku Thomasa Jaquina (brezžična kamera za vse nebo). noč, ki zakriva pogled na nočno nebo. Rešitev je v tem, da dodate grelnik rose, ki bo segreval kupolo nad rosiščem, oziroma temperaturo, pri kateri se bo voda kondenzirala na kupoli.

Običajen način za to je pretok toka skozi več uporov, ki se nato segrejejo, in to uporabite kot vir toplote. V tem primeru, ker ima fotoaparat že Raspberry Pi, sem to želel uporabiti za krmiljenje upora vezja preko releja, ki jih po potrebi vklapljam in izklapljam za vzdrževanje določene temperature kupole nad rosiščem. Za nadzor je v kupoli nameščen temperaturni senzor. Odločil sem se, da bom za podatke o rosišču pobral lokalne vremenske podatke o temperaturi in vlažnosti, namesto da dodam še en senzor, in potrebujem vdor v ohišje fotoaparata, ki bi lahko uhajal.

Raspberry Pi ima glavo GPIO, ki omogoča razširitvene plošče za krmiljenje fizičnih naprav, vendar sam IO ni zasnovan za prenašanje toka, ki ga potrebuje vezje upora upora. Zato so potrebne dodatne komponente. Nameravam uporabiti rele za izolacijo napajalnega tokokroga, zato je za vmesnik s Pi potreben relejski gonilnik IC. Za odčitavanje temperature v kupoli potrebujem tudi temperaturni senzor, zato je potreben analogno -digitalni pretvornik (ADC), da lahko Pi odčita temperaturo. Te komponente so na voljo posamično, lahko pa kupite tudi "klobuk" za Pi, ki vsebuje te naprave na plošči, ki se samo priključi na GPIO Pi.

Šel sem s Pimoronijevim raziskovalcem pHAT, ki ima celo vrsto V/I, vendar ima za moje namene štiri analogne vhode v razponu 0-5V in štiri digitalne izhode, primerne za pogon relejev.

Za senzor kupolaste temperature sem uporabil TMP36, ki mi je bil všeč, ker ima preprosto linearno enačbo za izvajanje temperature iz odčitavanja napetosti. Pri svojem delu uporabljam termistorje in RTD-je, vendar so nelinearni in jih je zato bolj zapleteno izvesti iz nič.

Uporabil sem Adafruitov komplet Perma Proto Bonnet Mini kot vezje za spajkanje releja, priključnega bloka in druge napeljave, kar je lepo, saj je velikosti za Pi in ima vezja, ki ustrezajo temu, kar ponuja Pi.

To so glavne stvari. Na koncu sem od Digikeyja dobil skoraj vse, saj poleg vseh običajnih delov vezja imajo na zalogi tudi dele Adafruit, zato je preprosto dobiti vse naenkrat. Tukaj je povezava do nakupovalnega vozička z vsemi deli, ki sem jih naročil:

www.digikey.com/short/z7c88f

Vključuje nekaj kolutov žice za mostične žice, če jih že imate, jih ne potrebujete.

Zaloge

  • Pimoroni Explorer pHAT
  • Senzor temperature TMP36
  • 150 Ohm 2W upori
  • 1A 5VDC rele SPDT
  • Vijačni priključni blok
  • Vezje
  • Žica
  • izklopi vezja
  • spajkalnik in spajkalnik

Seznam delov na digikey:

www.digikey.com/short/z7c88f

1. korak: Opombe o teoriji električne energije

Pomembno je zagotoviti, da so uporabljene komponente ustrezne velikosti, da prenesejo moč in tok, ki ga bodo videli, sicer lahko pride do prezgodnje okvare ali celo do požara!

Glavne komponente, ki jih morate v tem primeru skrbeti, so trenutna ocena kontaktov releja in moč uporov.

Ker je edina obremenitev v našem močnostnem vezju upori, lahko samo izračunamo celoten upor, to uvrstimo v Ohmov zakon in izračunamo tok v našem vezju.

Skupna upornost vzporednih uporov: 1/R_T = 1/R_1 +1/R_2 +1/R_3 +1/R_N

Če so posamezni upori enaki, se lahko zmanjša na: R_T = R/N. Torej za štiri enake upore je R_T = R/4.

Uporabljam štiri 150 Ω upori, zato je moj skupni upor skozi vse štiri (150 Ω) /4=37,5 Ω.

Ohmov zakon je samo napetost = tok X upor (V = I × R). To lahko preuredimo, da določimo tok, da dobimo I = V/R. Če priklopimo napetost iz napajalnika in upora, dobimo I = (12 V)/(37,5 Ω) = 0,32 A. Torej to pomeni, da bi moral biti naš rele najmanj ocenjen na 0,32 A. Torej rele 1A, ki ga uporabljamo, je več kot 3 -krat večji od potrebne velikosti, kar je dovolj.

Za upore moramo določiti količino moči, ki gre skozi vsakega od njih. Enačba moči je v več oblikah (z zamenjavo z Ohmovim zakonom), vendar je za nas najbolj primerno P = E^2/R. Za naš posamezni upor to postane P = (12V)^2/150Ω = 0,96 W. Tako bomo želeli vsaj 1 vatni upor, vendar nam bo 2 vata dodaten faktor varnosti.

Skupna moč vezja bi bila le 4 x 0,96 W ali 3,84 W (Skupni upor lahko vnesete tudi v enačbo moči in dobite enak rezultat).

Vse to zapišem, zato v primeru, da želite ustvariti več energije (več toplote), lahko zaženete svoje številke in izračunate potrebne upore, njihovo oceno in oceno potrebnega releja.

Sprva sem poskušal zagnati vezje s 5 volti iz napajalne tirnice Raspberry Pi, vendar je moč, ustvarjena na upor, le P = (5V)^2/150Ω = 0,166 W, skupaj 0,66 W, kar ni bilo t dovolj, da ustvari več kot nekaj stopinj dviga temperature.

2. korak: 1. korak: spajkanje

1. korak: Spajkanje
1. korak: Spajkanje
1. korak: Spajkanje
1. korak: Spajkanje
1. korak: Spajkanje
1. korak: Spajkanje

V redu, dovolj seznamov delov in teorije, pojdimo na zasnovo vezja in spajkanje!

Na proto-pokrov motorja sem narisal vezje na dva različna načina, enkrat kot shemo ožičenja in enkrat kot vizualno predstavitev plošče. Obstaja tudi označena fotografija plošče PATRONI Explorer pHAT, ki prikazuje ožičenje, ki gre med njo in Proto-pokrovčkom.

Na Explorerju pHAT je treba 40 -polno glavo, ki je priložena, spajkati na ploščo, to je povezava med njo in Raspberry Pi. Na voljo je s priključno glavo za V/I, vendar je nisem uporabil, ampak sem le spajal žice neposredno na ploščo. Proto-pokrov motorja vključuje tudi povezave za glavo, vendar se v tem primeru ne uporablja.

Senzor temperature je priključen neposredno na ploščo Explorer pHAT z žicami, da se naredi razlika med lokacijo Raspberry Pi in notranjostjo kamere, kjer se nahaja.

Vijačni priključni blok in krmilni rele sta dve komponenti, ki sta spajkani na ploščo Proto-Bonnet, na shemi sta označeni T1, T2, T3 (za tri vijačne sponke) in CR1 za rele.

Upori so spajkani na kable, ki gredo tudi od Raspberry Pi do Camera Dome, na proto-pokrov se povežejo preko vijačnih sponk na T1 in T3. Pozabil sem posneti fotografijo sklopa, preden sem kamero namestil nazaj na streho, vendar sem poskušal enakomerno razporediti upore okoli kupole, pri čemer sta se samo dve žici vrnili v Proto-pokrov motorja. V kupolo vstopite skozi luknje na nasprotnih straneh cevi, temperaturni senzor pa vstopi skozi tretjo luknjo, enakomerno razporejeno med dvema uporoma blizu roba kupole.

3. korak: 2. korak: Montaža

2. korak: Montaža
2. korak: Montaža

Ko je vse skupaj spajano, ga lahko namestite na kamero za celotno nebo. Namestite raziskovalca pHAT na Rasperry Pi in ga potisnite na 40-polno glavo, nato pa Proto-pokrov pritrdite poleg njega na vrh Pi z uporabo nekaj odmikov. Druga možnost bi bila uporaba izklopov na vrhu Explorerja, a ker sem uporabljal ohišje cevi ABS, je bil Pi prevelik, da bi se lahko več prilegal.

Temperaturni senzor napeljite navzgor po ohišju na njegovo mesto in namestite tudi uporni pas. Nato priključite kabelski snop na priključni blok na proto plošči.

Gremo k programiranju!

4. korak: 3. korak: Nalaganje knjižnice Explorer PHAT in preskusno programiranje

Preden lahko uporabimo raziskovalca pHAT, moramo zanj naložiti knjižnico iz Pimoronija, da lahko Pi komunicira z njim.

Na napravi Raspberry Pi odprite terminal in vnesite:

curl https://get.pimoroni.com/explorerhat | bash

Za dokončanje namestitve vnesite 'y' ali 'n'.

Nato bomo želeli zagnati preprost program za testiranje vhodov in izhodov, da zagotovimo pravilno ožičenje. Priloženi DewHeater_TestProg.py je python skript, ki prikazuje temperaturo in vsaki dve sekundi vklopi in izklopi rele.

čas uvoza

uvoz raziskovalecka zakasnitev = 2, medtem ko je True: T1 = explorerhat.analog.one.read () tempC = ((T1*1000) -500)/10 tempF = tempC*1,8 +32 tiskanje ('{0: 5.3f} voltov, {1: 5.3f} degC, {2: 5.2f} deg F'.format (okrogel (T1, 3), okrogel (tempC, 3), okrogel (tempF, 3))) V1 = explorerhat.output.two. on () print ('Rele vklopljen') time.sleep (zakasnitev) V1 = explorerhat.output.two.off () print ('Relay off') čas.sleep (zakasnitev)

Datoteko lahko odprete na svojem maline Pi (pri meni se je odprla v Thonnyju, vendar je tam tudi veliko drugih urejevalnikov Python), nato pa jo zaženete in začela bi prikazovati temperaturo. klikanje in izklop releja! Če ne, preverite ožičenje in vezja.

5. korak: 4. korak: Nalaganje programiranja grelnika rose

Tu je popolno programiranje grelnika rose. Dela več stvari:

  • Vsakih pet minut potegne trenutno zunanjo temperaturo in rosišče z določene lokacije nacionalne vremenske službe. Če ne dobi podatkov, ohrani prejšnje temperature in poskusi znova čez pet minut.

    • NWS zahteva, da se kontaktni podatki vključijo v zahteve API, v primeru težav z zahtevo, vedo, na koga se obrniti. To je v vrstici 40 programiranja. Prosimo, zamenjajte '[email protected]' z vašim e -poštnim naslovom.
    • Boste morali obiskati weather.gov in poiskati napoved za vaše območje, da dobite ID postaje, ki je najbližja vremenska postaja na NWS. ID postaje je v () za imenom lokacije. To vnesite v 17. vrstico programiranja. Trenutno prikazuje KPDX ali Portland, Oregon.
    • Če ste zunaj ZDA, obstaja druga možnost uporabe podatkov iz OpenWeatherMap.org. Nisem poskusil sam, vendar si lahko ogledate ta primer tukaj: Reading-JSON-With-Raspberry-Pi
  • Upoštevajte, da so temperature iz NWS in iz temperaturnega senzorja v stopinjah Celzija, prav tako tudi za kamero ASI, zato sem jih zaradi doslednosti vse ohranil kot Centrigrade, namesto da bi jih pretvoril v Fahrenheit, česar sem bolj vajen..
  • Nato odčita temperaturo s senzorja kupole in če je manj kot 10 stopinj nad rosiščem, vklopi rele. Če je višja od 10,5 stopinj nad rosiščem, rele izklopi. Te nastavitve lahko po želji spremenite.
  • Enkrat na minuto zabeleži trenutne vrednosti temperatur, rosišča in stanja releja v datoteko.csv, tako da lahko vidite, kako to deluje skozi čas.

#Raspberry Pi program za ogrevanje rosišča

#Dec 2019 #Brian Plett #Uporablja Pimoroni Explorer pHAT, temperaturni senzor in rele #za krmiljenje upora upora kot grelnik rose za kamero za vse nebo #Izvleče zunanjo temperaturo zraka in rosišče s spletnega mesta NWS #vzdržuje notranjo temperaturo 10 stopinj nad točko rosišča čas uvoza uvoz datum -čas zahteve za uvoz uvoz csv uvoz os uvoz explorerhat #ID postaje je najbližja vremenska postaja na NWS. Pojdite na weather.gov in poiščite forcast za vaše območje, ID postaje #station je v () za imenom lokacije. settings = {'station_ID': 'KPDX',} #Alternate URL for weather information #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & enote = {3}"

#Weather URL za odvzem podatkov

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

#zakasnitev za upravljanje releja, sekunde

ControlDelay = 2 A = 0 B = 0, medtem ko je True: #date za uporabo v dnevniku ime datoteke datestr = datetime.datetime.now (). Strftime ("%Y%m%d") #datum in čas za vsako podatkovno vrstico localtime = datetime.datetime.now (). strftime ("%Y/%m/%d%H:%M") #Pot do datoteke datoteke CSV = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' medtem ko je B == 0: poskusite: #Temperatura vlečenja in točka rosišča iz NWS vsakih 60 sekund final_url = BASE_URL.format (nastavitve ["station_ID"]) weather_data = requests.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["lastnosti"] ["temperatura"] ["vrednost"] dewRaw = weather_data.json () ["lastnosti"] ["točka rosišča"] ["vrednost"] #diagnostični tisk za izpis podatkov o surovi temperaturi (oatRaw, dewRaw) OAT = okrogel (oatRaw, 3) Rosa = okrogla (rosa Rova, 3) razen: A = 0 B = 1 prelom A = 0 B = 1 prelom, če je A <300: A = A + Control Zakasnite drugače: B = 0 #Preberite surovo napetost iz Raspberry Pi Explorer PHat in pretvorite v temperaturo T1 = explorerhat.analog.one.read () tempC = ((T1 *1 000) -500)/10 #tempF = tempC*1,8 +32 if (tempC Rosa + 10,5): V1 = explorerhat.output.two.off () #diagnostični tisk, ki prikazuje temperature, točke rosišča in izpis stanja izhoda releja ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} stopinja C {3: 5.0f} '. Format (okrogel (OAT, 3), okrogel (Rosa, 3), okrogel (tempC, 3), explorerhat.output.two.read ())) #10 sekund po preteku minute zapišite podatke v datoteko CSV, če je A == 10: če os.path.isfile (path.format (datestr)): print (path.format (datestr)) z odprto (path.format (datestr), "a") kot csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat. output.two.read ()]) else: fieldnames = ['date', 'Outdoor Air Temp', 'Rowpoint', 'Dome Temp', 'Relay State'] z odprto (path.format (datestr), "w ") kot csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (imena polj) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

To sem shranil v novo mapo pod mapo allsky, imenovano DewHeaterLogs.

Poskusite to zagnati nekaj časa, da zagotovite, da je vse v redu, preden nadaljujete z izvajanjem kot skript.

Korak 6: Korak 5: Zagon skripta ob zagonu

Za zagon skripta grelnika rose takoj po zagonu Raspberry Pi sem sledil naslednjim navodilom:

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

Za skript zaganjalnika sem ustvaril tole:

#!/bin/sh

# launcher.sh # pomaknite se v domači imenik, nato v ta imenik, nato izvedite python script, nato pa nazaj domov cd/cd home/pi/allsky/DewHeaterLogs spi 90 sudo python DewHeater_Web.py & cd/

Ko to storite, bi morali biti pripravljeni. Uživajte v fotoaparatu brez rosenja!

7. korak: Posodobite decembra 2020

Približno na polovici lanskega leta mi je grelec za roso prenehal delovati, zato sem kodo onemogočil, dokler je nisem mogel pogledati. Končno sem imel nekaj časa v zimskem premoru in ugotovil, da je rele, ki sem ga uporabil, med obratovanjem pokazal visoko upornost med svojimi stiki, verjetno zaradi preobremenitve.

Zato sem ga posodobil z relejem z višjo oceno, s kontaktom 5A in ne kontaktom 1A. Prav tako je to napajalni rele in ne signalni rele, zato upam, da pomaga. To je TE PCH-105D2H, 000. Dodal sem tudi nekaj vijačnih sponk za Explorer pHAT, tako da sem lahko po potrebi enostavno odklopil grelec in temperaturni senzor. Vse 3 so v spodnji košarici:

Nakupovalni voziček Digikey

Zavedajte se, da so zatiči tega releja drugačni od prejšnjega, zato je pri priključitvi nekoliko drugačen, vendar mora biti preprost. Polarnost za tuljavo ni pomembna, FYI.

Priporočena: