INHOUDSOPGAWE:

Framboos Pi douverwarmer vir hemelruimkamera: 7 stappe
Framboos Pi douverwarmer vir hemelruimkamera: 7 stappe

Video: Framboos Pi douverwarmer vir hemelruimkamera: 7 stappe

Video: Framboos Pi douverwarmer vir hemelruimkamera: 7 stappe
Video: BTT Manta M8P v2 - CM4 with Fluidd Pi 2024, Julie
Anonim
Framboos Pi douverwarmer vir hemelruimkamera
Framboos Pi douverwarmer vir hemelruimkamera

[Kyk na stap 7 vir 'n verandering in die gebruikte aflos]

Dit is 'n opgradering van 'n hemelruim-kamera wat ek gebou het volgens die uitstekende gids van Thomas Jaquin (Wireless All Sky Camera). 'N Algemene probleem wat by lugkameras voorkom (en ook teleskope) is dat dou op die kamerakoepel sal kondenseer namate dit kouer word nag, wat die uitsig op die naghemel verduister. Die oplossing is om 'n douverwarmer by te voeg wat die koepel verhit tot bo die dauwpunt, of die temperatuur waarteen water op die koepel sal kondenseer.

'N Algemene manier om dit te doen is om stroom deur verskeie weerstande te laat loop, wat dan verhit word en dit as die hittebron te gebruik. Aangesien die kamera in hierdie geval reeds 'n Raspberry Pi het, wou ek dit gebruik om die weerstandskring via 'n relais te beheer, om dit aan en af te skakel indien nodig om 'n sekere koepeltemperatuur bo die dauwpunt te handhaaf. 'N Temperatuursensor is in die koepel geleë vir beheer. Ek het besluit om die plaaslike weertemperatuur- en humiditeitsdata van die National Weather Service af te haal vir die nodige dauwpuntinligting, eerder as om nog 'n sensor by te voeg, en ek het 'n deurdringing in my kamerahuis nodig wat kan lek.

Die Raspberry Pi het 'n GPIO -kopstuk waarmee uitbreidingskaarte fisiese toestelle kan beheer, maar die IO self is nie ontwerp om die stroom wat 'n weerstandskragstroom vereis, te hanteer nie. Bykomende komponente is dus nodig. Ek is van plan om 'n relais te gebruik om die stroombaan te isoleer, dus is 'n relay driver IC nodig om met die Pi te koppel. Ek benodig ook 'n temperatuursensor om die temperatuur in die koepel te lees, dus is 'n analoog na digitale omskakelaar (ADC) nodig sodat die Pi die temperatuur kan lees. Hierdie komponente is afsonderlik beskikbaar, maar u kan ook 'n 'hoed' vir die Pi koop wat hierdie toestelle bevat op 'n bord wat net by die GPIO van die Pi aansluit.

Ek het gegaan met die Pimoroni Explorer pHAT, wat 'n hele reeks I/O het, maar vir my doeleindes het dit vier analoog insette wat wissel van 0-5V en vier digitale uitsette wat geskik is vir die bestuur van aflosse.

Vir die koepeltemperatuursensor het ek 'n TMP36 gebruik, waarvan ek gehou het omdat dit 'n eenvoudige lineêre vergelyking het om temperatuur uit die spanningslesing te verkry. Ek gebruik termistors en RTD's by my werk, maar dit is nie-lineêr en is dus meer ingewikkeld om van nuuts af te implementeer.

Ek gebruik die Perma Proto Bonnet Mini -stel van Adafruit as die printplaat om die relais, die aansluitblok en ander bedrading aan te soldeer, wat goed is, aangesien die grootte vir die Pi groot is, en 'n stroombaan het wat verband hou met wat die Pi bied.

Dit is die belangrikste dinge. Uiteindelik het ek alles by Digikey gekry, aangesien dit bykomend tot al die normale kringonderdele ook Adafruit se onderdele bevat, so dit maak dit maklik om alles tegelyk te kry. Hier is 'n skakel na 'n inkopiemandjie met al die onderdele wat ek bestel het:

www.digikey.com/short/z7c88f

Dit bevat 'n paar draadrolletjies vir die draaddrade, as u dit reeds het, het u dit nie nodig nie.

Voorrade

  • Pimoroni Explorer pHAT
  • TMP36 temperatuur sensor
  • 150 Ohm 2W weerstande
  • 1A 5VDC SPDT -aflos
  • Skroef terminale blok
  • Kringbord
  • Draad
  • afwykings op die bord
  • soldeer en soldeerbout

Onderdele lys op Digikey:

www.digikey.com/short/z7c88f

Stap 1: Aantekeninge oor elektriese teorie

Dit is belangrik om te verseker dat die gebruikte komponente die regte grootte het om die krag en stroom wat hulle sal sien, te hanteer, anders kan u voortydig misluk of selfs brand!

Die belangrikste komponente om in hierdie geval bekommerd te wees, is die huidige gradering van die afloskontakte en die kragwaarde van die weerstande.

Aangesien die enigste las in ons kragstroom die weerstande is, kan ons net die totale weerstand bereken, dit in Ohm se wet plaas en die stroom in ons stroombaan bereken.

Totale weerstand van parallelle weerstande: 1/R_T = 1/R_1 +1/R_2 +1/R_3 +1/R_N

As die individuele weerstande gelyk is, kan dit verminder word tot: R_T = R/N. Dus vir vier gelyke weerstande is dit R_T = R/4.

Ek gebruik vier 150 Ω weerstande, dus my totale weerstand deur die vier is (150 Ω)/4 = 37,5 Ω.

Ohm se wet is net Spanning = Stroom X Weerstand (V = I × R). Ons kan dit herrangskik om die stroom te bepaal om I = V/R te kry. As ons ons spanning van ons kragtoevoer en ons weerstand aansluit, kry ons I = (12 V)/(37,5 Ω) = 0,32 A. Dit beteken dus dat ons relais ten minste 0,32 A. die 1A -aflos wat ons gebruik, is meer as 3 keer die grootte wat benodig word, wat baie is.

Vir die weerstande moet ons die hoeveelheid krag deur elkeen bepaal. Die kragvergelyking kom in verskillende vorme voor (deur die wet van Ohm te vervang), maar wat die beste vir ons is, is P = E^2/R. Vir ons individuele weerstand word dit P = (12V)^2/150Ω = 0,96 W. Dus sal ons ten minste 'n 1 watt weerstand wil hê, maar 'n 2 watt gee ons 'n ekstra veiligheidsfaktor.

Die totale krag van die stroombaan sou net 4 x 0,96 W of 3,84 W wees (u kan ook die totale weerstand in die kragvergelyking plaas en dieselfde resultaat kry).

Ek skryf dit alles neer, so as u wil hê dat meer krag opgewek moet word (meer hitte), kan u u getalle uitvoer en die benodigde weerstande, hul gradering en die nominale relais bereken.

Ek het aanvanklik probeer om die stroombaan met die 5 volt van die Raspberry Pi -kragrail te laat loop, maar die krag wat per weerstand opgewek word, is net P = (5V)^2/150Ω = 0,166 W, in totaal van 0,66 W, wat nie was nie t genoeg om meer as 'n paar grade temperatuurstyging te genereer.

Stap 2: Stap 1: Soldeer

Stap 1: soldeer
Stap 1: soldeer
Stap 1: soldeer
Stap 1: soldeer
Stap 1: soldeer
Stap 1: soldeer

Goed, genoeg van onderdele en teorie, laat ons by die stroombaanontwerp en soldeer kom!

Ek het die kring op die Proto-Bonnet op twee verskillende maniere geteken, een keer as 'n bedradingskema en een keer as 'n visuele voorstelling van die bord. Daar is ook 'n gemerkte foto van die Pimoroni Explorer pHAT-bord wat die bedrading tussen dit en die Proto-motorkap aandui.

Op die Explorer pHAT moet die 40 -pen -kopstuk wat daarby kom, aan die bord gesoldeer word; dit is die verbinding tussen dit en die Framboos Pi. Dit het 'n terminale kop vir die I/O, maar ek het dit nie gebruik nie, maar net drade direk aan die bord gesoldeer. Die Proto-Bonnet bevat ook verbindings vir die kop, maar dit word nie in hierdie geval gebruik nie.

Die temperatuursensor word direk aan die Explorer pHAT -bord gekoppel deur gebruik te maak van drade om die verskil te maak tussen die ligging van die Framboos Pi en die binnekant van die Camera Dome waar dit geleë is.

Die skroefaansluitblok en die bedieningsrelais is die twee komponente wat aan die Proto-Bonnet-bord gesoldeer is, in die skema is dit T1, T2, T3 (vir die drie skroefklemme) en CR1 vir die relais.

Die weerstande word gesoldeer aan leidings wat ook van die Raspberry Pi na die Camera Dome gaan, dit verbind met die Proto-Bonnet via die skroefaansluitings by T1 en T3. Ek het vergeet om 'n foto van die vergadering te neem voordat ek die kamera terug op my dak geïnstalleer het, maar ek het probeer om die weerstande eweredig om die koepel te sprei, met net twee drade wat na die Proto-Bonnet teruggekeer het. Die ingang van die koepel kom deur gate aan weerskante van die pyp, met die temperatuursensor wat via 'n derde gat ingaan, eweredig tussen twee van die weerstande naby die rand van die koepel.

Stap 3: Stap 2: Montering

Stap 2: Montering
Stap 2: Montering

Sodra dit alles saamgesoldeer is, kan u dit op u all-sky-kamera installeer. Monteer die Explorer pHAT op die Rasperry Pi, druk dit op die 40-pins kop, en dan word die Proto-motorkap daaraan bo-op die Pi gemonteer met behulp van 'n paar afwykings. 'N Ander opsie sou wees om afwykings bo -op die Explorer te gebruik, maar aangesien ek die ABS -pypomhulsel gebruik het, het dit die Pi te groot gemaak om meer te pas.

Lei die temperatuursensor in die omhulsel na sy plek, en installeer ook die weerstandskabel. Draai dan die harnas na die aansluitblok op die protobord.

Op na die programmering!

Stap 4: Stap 3: Laai die Explorer PHAT -biblioteek en toetsprogrammering

Voordat ons die Explorer pHAT kan gebruik, moet ons die biblioteek daarvoor laai van Pimoroni sodat die Pi daarmee kan kommunikeer.

Open die terminale op u Raspberry Pi en voer in:

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

Tik 'y' of 'n 'soos toepaslik om die installasie te voltooi.

Vervolgens wil ons 'n eenvoudige program uitvoer om die insette en uitsette te toets om te verseker dat ons bedrading korrek is. Die aangehegte DewHeater_TestProg.py is 'n luislangskrif wat die temperatuur vertoon en die aflos elke twee sekondes aan en af skakel.

invoer tyd

invoer explorerhat vertraging = 2 terwyl True: T1 = explorerhat.analog.one.read () tempC = ((T1*1000) -500)/10 tempF = tempC*1.8 +32 print ('{0: 5.3f} volt, {1: 5.3f} degC, {2: 5.2f} deg F'.format (rond (T1, 3), rond (tempC, 3), rond (tempF, 3))) V1 = explorerhat.output.two. on () print ('Relay on') time.sleep (delay) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (delay)

U kan die lêer op u framboos Pi oopmaak (op myne is dit in Thonny oopgemaak, maar daar is ook baie ander Python -redakteurs) en dit dan laat loop, en dit moet die temperatuur begin wys, en u sal die relais klik op en af! Indien nie, moet u u bedrading en stroombane nagaan.

Stap 5: Stap 4: Laai die programmering van douverwarmer

Hier is die volledige douverwarmerprogrammering. Dit doen verskeie dinge:

  • Trek elke vyf minute die huidige buitetemperatuur en dauwpunt van 'n gegewe National Weather Service -ligging. As dit nie data kry nie, behou dit die vorige temperature en probeer dit weer oor vyf minute.

    • Die NWS versoek dat kontakinligting by die API -versoeke ingesluit word, as hulle probleme met die versoek het, weet hulle met wie hulle moet skakel. Dit is in reël 40 van die programmering; vervang die '[email protected]' deur u eie e -posadres.
    • U moet na weather.gov gaan en 'n voorspelling vir u omgewing opspoor om die stasie -ID te kry, die naaste weerstasie by die NWS. Die stasie -ID is in () agter die liggingnaam. Tik dit in reël 17 van die programmering. Tans wys dit KPDX, of Portland, Oregon.
    • As u buite die VSA is, is daar 'n ander moontlikheid om data van OpenWeatherMap.org te gebruik. Ek het dit self nie probeer nie, maar u kan na hierdie voorbeeld kyk hier: Reading-JSON-With-Raspberry-Pi
  • Let daarop dat die temperature van die NWS en van die temperatuursensor in grade Celsius is, net soos die vir die ASI -kamera, dus vir konsekwentheid het ek hulle almal op die sentrigrade gehou eerder as omskakel na Fahrenheit, waaraan ek meer gewoond is.
  • Vervolgens lees dit die temperatuur van die koepelsensor, en as dit minder as 10 grade bo die dauwpunt is, skakel dit die aflos aan. As dit meer as 10,5 grade bo die dauwpunt is, skakel dit die aflos af. U kan hierdie instellings verander indien nodig.
  • Een keer per minuut teken dit die huidige waardes vir temperature, dauwpunt en relaisstatus aan na 'n CSV -lêer, sodat u kan sien hoe dit mettertyd gaan.

#Raspberry Pi Dew Heater -beheerprogram

#Desember 2019 #Brian Plett #Gebruik Pimoroni Explorer pHAT, 'n temperatuursensor en 'n relais #om 'n weerstandskring te beheer as 'n douverwarmer vir 'n hemelruimkamera grade bo dauwpunt invoer tyd invoer datetime invoer versoeke invoer csv invoer os invoer verkenner dat #Station ID die naaste weerstasie by die NWS is. Gaan na weather.gov en soek die vooruitsig vir u omgewing, #stasie -ID is in () na die naam van die ligging. settings = {'station_ID': 'KPDX',} #Alternate URL for weather information #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & eenhede = {3}"

#Weer -URL om data terug te haal

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

#vertraging vir aflosbeheer, sekondes

ControlDelay = 2 A = 0 B = 0 terwyl True: #date om in die lêernaam te gebruik datestr = datetime.datetime.now (). Strftime ("%Y%m%d") #datum en tyd om te gebruik vir elke data ry localtime = datetime.datetime.now (). strftime ("%Y/%m/%d%H:%M") #CSV lêerpad pad = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' terwyl B == 0: probeer: #Trek temperatuur en dauwpunt van NWS elke 60 sekondes final_url = BASE_URL.format (instellings ["station_ID"]) weather_data = requests.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["properties"] ["temperatuur"] ["waarde"] dewRaw = weather_data.json () ["properties"] ["dauwpunt"] ["waarde"] #diagnostiese druk vir data -afdruk van rou temperatuur (oatRaw, dewRaw) OAT = rond (oatRaw, 3) Dauw = rond (dewRaw, 3) behalwe: A = 0 B = 1 onderbreking A = 0 B = 1 onderbreking as A <300: A = A + ControlVertraging anders: B = 0 #Lees rou spanning van Raspberry Pi Explorer PHat en skakel om na temperatuur T1 = explorerhat.analog.one.read () tempC = ((T1 *1 000) -500)/10 #tempF = tempC*1,8 +32 as (tempC dauw + 10,5): V1 = explorerhat.output.two.off () #diagnostiese druk wat temperature, dauwpunte en relay output state print ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. Formaat (rond (OAT, 3), rond (Dew, 3), rond (tempC, 3), explorerhat.output.two.read ())) #10 sekondes nadat die minuut oorgedra het, skryf data na 'n CSV -lêer as A == 10: as os.path.isfile (path.format (datestr)): print (path.format (datestr)) met open (path.format (datestr), "a") as 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'] with open (path.format (datestr), "w ") as csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (veldname) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Ek het dit in 'n nuwe gids onder die allsky -gids met die naam DewHeaterLogs gestoor.

Probeer dit 'n rukkie om seker te maak dat alles goed lyk, voordat u dit as 'n script begin voer.

Stap 6: Stap 5: Uitvoering van script by opstart

Om die Dew Heater -script uit te voer sodra die Raspberry Pi begin, volg ek die instruksies hier:

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

Vir die Launcher -script het ek dit geskep:

#!/bin/sh

# launcher.sh # navigeer na tuisgids, dan na hierdie gids, voer dan python -script uit, dan terug cd/cd home/pi/allsky/DewHeaterLogs slaap 90 sudo python DewHeater_Web.py & cd/

Sodra dit klaar is, moet u klaar wees. Geniet 'n douvrye kamera!

Stap 7: Dateer Des 2020 op

Ongeveer halfpad verlede jaar het my douverwarmer opgehou werk, so ek het die kode gedeaktiveer totdat ek daarna kon kyk. Uiteindelik het ek 'n rukkie gehad gedurende die wintervakansie, en ek het gevind dat die relais wat ek gebruik 'n hoë weerstand toon tydens sy werk, waarskynlik as gevolg van oorlading.

Dus het ek dit opgedateer met 'n hoër aflos, een met 'n 5A -kontak eerder as 1A -kontak. Dit is ook 'n kragrelais eerder as 'n seinrelais, so ek hoop dat dit help. Dit is 'n TE PCH-105D2H, 000. Ek het ook 'n paar skroefaansluitings vir die Explorer pHAT bygevoeg, sodat ek die verwarmer en temperatuursensor maklik kon ontkoppel indien nodig. Al drie hiervan is in hierdie winkelwagentjie hieronder:

Digikey inkopiemandjie

Hou in gedagte dat die penne vir hierdie relais anders is as die vorige, dus dit is 'n bietjie anders waar u na gaan, maar dit moet eenvoudig wees. Die polariteit maak nie saak vir die spoel nie, FYI.

Aanbeveel: