Sisällysluettelo:

Raspberry Pi Dew -lämmitin all-sky-kameraan: 7 vaihetta
Raspberry Pi Dew -lämmitin all-sky-kameraan: 7 vaihetta

Video: Raspberry Pi Dew -lämmitin all-sky-kameraan: 7 vaihetta

Video: Raspberry Pi Dew -lämmitin all-sky-kameraan: 7 vaihetta
Video: AllSky Camera - Sony Vegas test 2024, Marraskuu
Anonim
Raspberry Pi -kastelämmitin all-sky-kameraan
Raspberry Pi -kastelämmitin all-sky-kameraan

[Katso vaiheesta 7 muutos käytettyyn releeseen]

Tämä on päivitys kaikenkattavaan kameraan, jonka rakensin Thomas Jaquinin erinomaisen oppaan (Langaton kaikki taivaskamera) mukaisesti. Yleinen ongelma, joka ilmenee taivaankameroissa (ja myös teleskoopeissa) on, että kameran kupulle tiivistyy kaste, kun se kylmenee yö, joka peittää näkymän yötaivaalle. Ratkaisu on lisätä kastelämmitin, joka lämmittää kupolin kastepisteen yläpuolelle tai lämpötilaan, jossa vesi tiivistyy kupolille.

Yleinen tapa tehdä tämä on johtaa virta useiden vastuksien läpi, jotka sitten kuumenevat, ja käyttää sitä lämmönlähteenä. Tässä tapauksessa, koska kamerassa on jo Raspberry Pi, halusin käyttää sitä ohjaamaan vastuspiiriä releen kautta kytkemällä ne päälle ja pois tarpeen mukaan tietyn kupolin lämpötilan ylläpitämiseksi kastepisteen yläpuolella. Kupolissa on lämpötila -anturi ohjausta varten. Päätin hakea paikalliset sää- ja kosteustiedot National Weather Servicestä tarvittavien kastepistetietojen sijasta lisätäkseni toisen anturin, ja tarvitsen tunkeutumisen kameran koteloon, joka voi vuotaa.

Raspberry Pi -laitteessa on GPIO -otsikko, jonka avulla laajennuskortit voivat ohjata fyysisiä laitteita, mutta itse IO: ta ei ole suunniteltu kestämään vastuksen virtapiirin vaatimia virtauksia. Joten lisäkomponentteja tarvitaan. Aion käyttää relettä virtapiirin eristämiseen, joten releohjaimen IC tarvitaan liittymään Pi: hen. Tarvitsen myös lämpötila -anturin kupolin sisälämpötilan lukemiseen, joten tarvitaan analogia -digitaalimuunnin (ADC), jotta Pi voi lukea lämpötilan. Nämä komponentit ovat saatavana yksittäin, mutta voit myös ostaa Pi: lle "hatun", joka sisältää nämä laitteet piirilevylle, joka liitetään vain Pi: n GPIO -laitteeseen.

Kävin Pimoroni Explorer pHAT: n kanssa, jossa on laaja valikoima I/O-laitteita, mutta tarkoituksessani siinä on neljä analogista tuloa, joiden vaihteluväli oli 0-5 V, ja neljä digitaalista lähtöä, jotka sopivat ajoreleille.

Kupolilämpötila -anturille käytin TMP36: ta, josta pidin, koska sillä on yksinkertainen lineaarinen yhtälö lämpötilan johtamiseksi jännitteen lukemasta. Käytän työssäni termistoreita ja RTD-laitteita, mutta ne ovat epälineaarisia ja siksi niitä on vaikeampi toteuttaa alusta alkaen.

Käytin Adafruitin Perma Proto Bonnet Mini -sarjaa piirilevynä juottamaan releen, riviliittimen ja muut johdot, mikä on mukavaa, koska se on mitoitettu Pi: lle, ja siinä on piirit, jotka liittyvät Pi: n tarjontaan.

Nämä ovat tärkeimmät asiat. Päädyin saamaan suurimman osan Digikeysta, koska ne varastavat Adafruitin osia kaikkien normaalien piiriosien lisäksi, joten on helppoa saada kaikki kerralla. Tässä linkki ostoskoriin, jossa on kaikki tilaamani osat:

www.digikey.com/short/z7c88f

Se sisältää pari lankakelaa hyppyjohtimille, jos sinulla on jo niitä, et tarvitse sitä.

Tarvikkeet

  • Pimoroni Explorer pHAT
  • TMP36 -lämpötila -anturi
  • 150 ohmin 2W vastukset
  • 1A 5VDC SPDT -rele
  • Ruuviliitin
  • Piirilevy
  • Johto
  • piirilevyn pysäytykset
  • juote ja juotin

Digikeyn osaluettelo:

www.digikey.com/short/z7c88f

Vaihe 1: Sähköteoriaa koskevia huomautuksia

On tärkeää varmistaa, että käytetyt komponentit on mitoitettu oikein käsittelemään näkemäänsä virtaa ja virtaa, muuten saatat saada ennenaikaisen vian tai jopa tulipalon!

Pääkomponentit, joista tässä tapauksessa on syytä huolestua, ovat relekoskettimien nykyinen luokitus ja vastuksen teholuokka.

Koska virtapiirimme ainoa kuorma on vastukset, voimme vain laskea kokonaisresistanssin, laittaa sen Ohmin lakiin ja laskea piirimme virran.

Rinnakkaisvastuksien kokonaisvastus: 1/R_T = 1/R_1 +1/R_2 +1/R_3 +1/R_N

Jos yksittäiset vastukset ovat yhtä suuret, se voidaan pienentää arvoon: R_T = R/N. Joten neljällä yhtä suurella vastuksella se on R_T = R/4.

Käytän neljää 150 Ω: n vastusta, joten kokonaisresistanssini niiden neljän kautta on (150 Ω)/4=37,5 Ω.

Ohmin laki on vain jännite = virta X vastus (V = I × R). Voimme järjestää sen uudelleen määrittääksesi virran saamaan I = V/R. Jos liitämme jännitteemme virtalähteestämme ja vastuksestamme, saamme I = (12 V)/(37,5 Ω) = 0,32 A. Se tarkoittaa, että vähintään releemme tulee olla 0,32 A. käyttämämme 1A -rele on yli 3 kertaa tarvittavan kokoinen, mikä riittää.

Vastuksille meidän on määritettävä kunkin tehon läpi kulkeva tehomäärä. Tehoyhtälö tulee useissa muodoissa (korvaamalla Ohmin lailla), mutta meille sopivin on P = E^2/R. Yksittäisen vastuksemme osalta tästä tulee P = (12V)^2/150Ω = 0,96 W. Joten haluamme vähintään 1 watin vastuksen, mutta 2 watin antaa meille ylimääräisen turvallisuustekijän.

Piirin kokonaisteho olisi vain 4 x 0,96 W tai 3,84 W (Voit myös laittaa kokonaisresistanssin tehoyhtälöön ja saada saman tuloksen).

Kirjoitan kaiken tämän ulos, joten jos haluat lisää tehoa (enemmän lämpöä), voit käyttää numeroita ja laskea tarvittavat vastukset, niiden luokituksen ja tarvittavan releen luokituksen.

Yritin aluksi käyttää piiriä 5 voltilla Raspberry Pi -virtakiskosta, mutta vastusta kohden tuotettu teho on vain P = (5V)^2/150Ω = 0,166 W, yhteensä 0,66 W, mikä ei ollut t riittää tuottamaan yli pari astetta lämpötilan nousua.

Vaihe 2: Vaihe 1: Juotos

Vaihe 1: Juotos
Vaihe 1: Juotos
Vaihe 1: Juotos
Vaihe 1: Juotos
Vaihe 1: Juotos
Vaihe 1: Juotos

Okei, tarpeeksi osaluetteloita ja teoriaa, siirrytään piirisuunnitteluun ja juottamiseen!

Olen piirtänyt piirin Proto-Bonnetiin kahdella eri tavalla, kerran kytkentäkaaviona ja kerran piirilevyn visuaalisena esityksenä. Siellä on myös merkitty valokuva Pimoroni Explorer pHAT -levystä, jossa näkyy johdotus sen ja Proto-Bonnetin välillä.

Explorer pHAT: n mukana toimitettu 40 -nastainen otsikko on juotettava levylle, tämä on yhteys sen ja Raspberry Pi: n välillä. Sen mukana tulee I/O -liitin, mutta en käyttänyt sitä, vaan juotin vain johdot suoraan levylle. Proto-Bonnet sisältää myös otsikon liitännät, mutta sitä ei käytetä tässä tapauksessa.

Lämpötila -anturi on kytketty suoraan Explorer pHAT -levyyn käyttämällä johtoja, jotta saadaan aikaan ero Raspberry Pi: n sijainnin ja kameran kupolin sisäpuolen välillä.

Ruuviliitinlohko ja ohjausrele ovat kaksi osaa, jotka on juotettu Proto-Bonnet-korttiin, kaaviossa ne on merkitty T1, T2, T3 (kolmelle ruuviliittimelle) ja CR1 releelle.

Vastukset on juotettu johtimiin, jotka myös kulkevat Raspberry Pi: stä kameran kupoliin, ja ne yhdistetään Proto-konepelliin ruuviliittimien kautta kohdissa T1 ja T3. Unohdin ottaa valokuvan kokoonpanosta, ennen kuin asensin kameran takaisin katolleni, mutta yritin sijoittaa vastukset tasaisesti kupolin ympärille, vain kaksi johtoa takaisin Proto-konepellille. Astu kupliin putken vastakkaisilla puolilla olevien reikien kautta, ja lämpötila -anturi tulee kolmannen reiän kautta, joka on tasaisesti sijoitettu kahden vastuksen väliin lähellä kupolin reunaa.

Vaihe 3: Vaihe 2: Kokoonpano

Vaihe 2: Kokoonpano
Vaihe 2: Kokoonpano

Kun se on juotettu yhteen, voit asentaa sen koko taivaan kameraan. Asenna Explorer pHAT Rasperry Pi -laitteeseen työntämällä se 40-nastaisen otsikon päälle, ja sitten Proto-Bonnet asennetaan sen viereen Pi: n päälle käyttämällä joitakin rajoituksia. Toinen vaihtoehto olisi käyttää pysäytyksiä Explorerin päällä, mutta koska käytin ABS -putkikoteloa, se teki Pi: stä liian suuren mahtuakseen enää.

Ohjaa lämpötila -anturi koteloon ylöspäin ja asenna myös vastuksen johtosarja. Kytke sitten johtosarja proto-kortin riviliittimeen.

Ohjelmoinnin pariin!

Vaihe 4: Vaihe 3: Explorer PHAT -kirjaston lataaminen ja testausohjelmointi

Ennen kuin voimme käyttää Explorer pHAT -laitetta, meidän on ladattava sen kirjasto Pimoronilta, jotta Pi voi kommunikoida sen kanssa.

Avaa pääte Raspberry Pi -laitteellasi ja kirjoita:

curl https://get.pimoroni.com/explorerhat | lyödä

Viimeistele asennus kirjoittamalla 'y' tai 'n' tarpeen mukaan.

Seuraavaksi haluamme suorittaa yksinkertaisen ohjelman tulojen ja lähtöjen testaamiseksi varmistaaksemme, että johdotus on oikein. Liitteenä oleva DewHeater_TestProg.py on python -skripti, joka näyttää lämpötilan ja kytkee releen päälle ja pois kahden sekunnin välein.

tuonnin aika

tuo explorerhat delay = 2 kun totta: T1 = explorerhat.analog.one.read () tempC = ((T1*1000) -500)/10 tempF = tempC*1.8 +32 print ('{0: 5.3f} volttia, {1: 5.3f} degC, {2: 5.2f} ° F '. Muoto (pyöreä (T1, 3), pyöreä (tempC, 3), pyöreä (tempF, 3))) V1 = explorerhat.output.two. on () print ('Relay on') time.sleep (delay) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (delay)

Voit avata tiedoston Raspberry Pi -laitteellasi (omallani se avattiin Thonnyssä, mutta siellä on myös paljon muita Python -editoria) ja sitten suorittaa se, ja sen pitäisi alkaa näyttää lämpötilaa, ja kuulet rele napsauttamalla ja sammuttamalla! Jos ei, tarkista johdot ja piirit.

Vaihe 5: Vaihe 4: Kastelolämmittimen ohjelmoinnin lataaminen

Tässä on täydellinen kastelämmittimen ohjelmointi. Se tekee useita asioita:

  • Poistaa nykyisen ulkolämpötilan ja kastepisteen tietystä National Weather Service -paikasta viiden minuutin välein. Jos se ei saa tietoja, se säilyttää aiemmat lämpötilat ja yrittää uudelleen seuraavan viiden minuutin kuluttua.

    • NWS pyytää, että yhteystiedot sisällytetään sovellusliittymäpyyntöihin. Jos pyynnössä ilmenee ongelmia, he tietävät, keneen ottaa yhteyttä. Tämä on ohjelmoinnin rivillä 40, korvaa '[email protected]' omaan sähköpostiosoitteeseesi.
    • Sinun on siirryttävä osoitteeseen weather.gov ja etsittävä alueellesi ennuste saadaksesi aseman tunnuksen, joka on NWS: n lähin sääasema. Aseman tunnus on () sijainnin nimen jälkeen. Kirjoita tämä ohjelmoinnin riville 17. Tällä hetkellä se näyttää KPDX, tai Portland, Oregon.
    • Jos olet Yhdysvaltojen ulkopuolella, on toinen mahdollisuus käyttää OpenWeatherMap.org -sivuston tietoja. En ole kokeillut sitä itse, mutta voit katsoa tätä esimerkkiä täältä: Reading-JSON-With-Raspberry-Pi
  • Huomaa, että NWS: n ja lämpötila -anturin lämpötilat ovat celsiusasteina, kuten ASI -kamerankin, joten johdonmukaisuuden vuoksi pidin ne kaikki Centrigraden sijaan muuntamisen Fahrenheit -asteiksi, mihin olen enemmän tottunut.
  • Seuraavaksi se lukee kupolianturin lämpötilan ja jos se on alle 10 astetta kastepisteen yläpuolella, se kytkee releen päälle. Jos se on yli 10,5 astetta kastepisteen yläpuolella, se sammuttaa releen. Voit halutessasi muuttaa näitä asetuksia.
  • Kerran minuutissa se kirjaa lämpötilan, kastepisteen ja releen tilan nykyiset arvot.csv -tiedostoon, jotta näet, miten se toimii ajan mittaan.

#Raspberry Pi Dew Heater -ohjausohjelma

#Joulukuu 2019 #Brian Plett #Käyttää Pimoroni Explorer pHAT: a, lämpötila-anturia ja relettä #ohjaamaan vastuspiiriä kastelämmittimeksi kaikenkattavassa kamerassa #Vedä ulkoilman lämpötilaa ja kastepistettä NWS-verkkosivustolta #pitää sisäistä lämpötilaa 10 astetta kastepisteen yläpuolella tuonti aika tuonti päivämäärän tuontipyynnöt tuonti csv tuonti tuonti tutkimusmatkailija #Station ID on lähin sääasema Länsi -Länsi -Suomessa. Siirry osoitteeseen weather.gov ja etsi alueesi sääennuste, #aseman tunnus on () sijainnin nimen jälkeen. settings = {'station_ID': 'KPDX',} #Vaihtoehtoinen säätietojen URL -osoite #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & yksiköt = {3}"

#Sää URL -osoite tietojen hakuun

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

#viive releohjaukselle, sekuntia

ControlDelay = 2 A = 0 B = 0, kun taas True: #päivämäärä, jota käytetään lokitiedoston nimessä datestr = datetime.datetime.now (). Strftime ("%Y%m%d") #päivämäärä ja kullekin tietoriville käytettävä aika localtime = datetime.datetime.now (). strftime ("%Y/%m/%d%H:%M") #CSV -tiedostopolku = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' kun taas B == 0: kokeile: #Vedä lämpötila ja kastepiste NWS: stä 60 sekunnin välein final_url = BASE_URL.format (settings ["station_ID"]) weather_data = request.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["ominaisuudet"] ["lämpötila"] ["arvo"] dewRaw = weather_data.json () ["ominaisuudet"] ["kastepiste"] ["arvo"] #diagnostinen tulostus raakalämpötilatulosteelle (oatRaw, dewRaw) OAT = pyöreä (oatRaw, 3) Kaste = pyöreä (dewRaw, 3) paitsi: A = 0 B = 1 tauko A = 0 B = 1 tauko, jos A <300: A = A + ControlDelay else: B = 0 #Lue Raspberry Pi Explorer PHatin raakajännite ja muuta lämpötila T1 = explorerhat.analog.one.read () tempC = ((T1 *1 000) -500)/10 #tempF = tempC*1,8 +32, jos (tempC Dew + 10,5): V1 = explorerhat.output.two.off () #diagnostinen tulostus, joka näyttää lämpötilat, kastepisteet ja relelähdön tilan tulostuksen ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. (Pyöreä (OAT, 3), pyöreä (kaste, 3), pyöreä (tempC), 3), explorerhat.output.two.read ())) #10 sekuntia minuutin siirtymisen jälkeen, kirjoita tiedot CSV -tiedostoon, jos A == 10: jos os.path.isfile (path.format (datestr)): tulosta (polku.formaatti (datestr)) ja avoin (polku.muoto (datestr), "a") csv -tiedostona: txtwrite = csv.writer (csvfile) txtwrite.writerow ([paikallinen aika, OAT, Dew, tempC, explorerhat. output.two.read ()]) else: fieldnames = ['päivämäärä', 'Ulkoilman lämpötila', 'Kastepiste', 'Dome Temp', 'Relay State'] ja avoin (path.format (datestr), "w ") kuten csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (kentänimet) txtwrite.writerow ([paikallinen aika, OAT, kaste, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Tallensin tämän uuteen kansioon allsky -kansion alle nimeltä DewHeaterLogs.

Yritä suorittaa tämä hetki varmistaaksesi, että kaikki näyttää hyvältä, ennen kuin jatkat sen käyttämistä komentosarjana.

Vaihe 6: Vaihe 5: Skriptin suorittaminen käynnistyksen yhteydessä

Suorittaakseni Dew Heater -skriptin heti, kun Raspberry Pi käynnistyy, seurasin tässä annettuja ohjeita:

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

Käynnistysohjelmaa varten olen luonut tämän:

#!/bin/sh

# launcher.sh # siirry kotihakemistoon, sitten tähän hakemistoon, suorita python -skripti ja palaa sitten takaisin kotiin cd/cd home/pi/allsky/DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd/

Kun tämä on tehty, sinun pitäisi olla hyvä mennä. Nauti kasteettomasta kamerasta!

Vaihe 7: Päivitä joulukuu 2020

Noin viime vuoden puolivälissä kastelämmittimeni lakkasi toimimasta, joten poistin koodin käytöstä, kunnes pystyin katsomaan sitä. Sain vihdoin aikaa talvilomalla ja huomasin, että käyttämäni rele osoitti suurta vastusta kontakteissaan käytön aikana, luultavasti ylikuormituksesta.

Joten päivitin sen korkeammalla nimellisreleellä, jolla oli 5A kosketin 1A kontaktin sijasta. Lisäksi se on virtalähde eikä signaalirele, joten toivon, että se auttaa. Se on TE PCH-105D2H, 000. Lisäsin myös joitain ruuviliittimiä Explorer pHAT: lle, jotta voisin helposti irrottaa lämmittimen ja lämpötila-anturin tarvittaessa. Kaikki nämä kolme ovat tässä ostoskorissa alla:

Digikey ostoskori

Huomaa, että tämän releen nastat ovat erilaisia kuin edellinen, joten johdotuspaikka on hieman erilainen, mutta sen pitäisi olla suoraviivaista. Napaisuudella ei ole merkitystä kelalle, FYI.

Suositeltava: