Sommario:

Riscaldatore di rugiada Raspberry Pi per fotocamera All-sky: 7 passaggi
Riscaldatore di rugiada Raspberry Pi per fotocamera All-sky: 7 passaggi

Video: Riscaldatore di rugiada Raspberry Pi per fotocamera All-sky: 7 passaggi

Video: Riscaldatore di rugiada Raspberry Pi per fotocamera All-sky: 7 passaggi
Video: Астрофотография от $100 до $10 000 2024, Dicembre
Anonim
Riscaldatore di rugiada Raspberry Pi per telecamera All-sky
Riscaldatore di rugiada Raspberry Pi per telecamera All-sky

[Guarda il passaggio 7 per una modifica al relè utilizzato]

Questo è un aggiornamento di una telecamera all-sky che ho costruito seguendo l'eccellente guida di Thomas Jaquin (Wireless All Sky Camera) Un problema comune che si verifica con le telecamere del cielo (e anche con i telescopi) è che la rugiada si condensa sulla cupola della telecamera quando diventa più fredda a notte, che oscura la vista del cielo notturno. La soluzione è aggiungere un riscaldatore di rugiada che riscalderà la cupola per essere al di sopra del punto di rugiada, o la temperatura alla quale l'acqua si condenserà sulla cupola.

Un modo comune per farlo è far passare la corrente attraverso diversi resistori, che poi si surriscaldano e li usano come fonte di calore. In questo caso, poiché la fotocamera ha già un Raspberry Pi, ho voluto usarlo per controllare il circuito del resistore tramite un relè, accendendoli e spegnendoli secondo necessità per mantenere una certa temperatura della cupola al di sopra del punto di rugiada. Un sensore di temperatura si trova nella cupola per il controllo. Ho deciso di estrarre i dati di temperatura e umidità meteorologici locali dal Servizio meteorologico nazionale per le informazioni sul punto di rugiada richieste, piuttosto che aggiungere un altro sensore e ho bisogno di una penetrazione nell'alloggiamento della mia fotocamera che potrebbe perdere.

Il Raspberry Pi ha un'intestazione GPIO che consente alle schede di espansione di controllare i dispositivi fisici, ma l'IO stesso non è progettato per gestire la corrente richiesta da un circuito di alimentazione del resistore. Quindi sono necessari componenti aggiuntivi. Sto progettando di utilizzare un relè per isolare il circuito di alimentazione, quindi è necessario un circuito integrato del driver del relè per interfacciarsi con il Pi. Ho anche bisogno di un sensore di temperatura per leggere la temperatura all'interno della cupola, quindi è necessario un convertitore analogico-digitale (ADC) in modo che il Pi possa leggere la temperatura. Questi componenti sono disponibili singolarmente, ma puoi anche acquistare un "cappello" per il Pi che contiene questi dispositivi su una scheda che si collega semplicemente al GPIO del Pi.

Sono andato con il Pimoroni Explorer pHAT, che ha un'intera gamma di I/O, ma per i miei scopi ha quattro ingressi analogici con range 0-5V e quattro uscite digitali adatte per pilotare relè.

Per il sensore di temperatura della cupola, ho usato un TMP36, che mi è piaciuto perché ha una semplice equazione lineare per ricavare la temperatura dalla lettura della tensione. Uso termistori e RTD nel mio lavoro, ma sono non lineari e quindi sono più complicati da implementare da zero.

Ho usato il kit Perma Proto Bonnet Mini di Adafruit come circuito stampato per saldare il relè, la morsettiera e altri cablaggi, il che è bello in quanto è dimensionato per il Pi e ha circuiti pertinenti a ciò che offre il Pi.

Queste sono le cose principali. Ho finito per ottenere quasi tutto da Digikey, poiché immagazzinano le parti di Adafruit oltre a tutte le normali parti del circuito, quindi è semplice ottenere tutto in una volta. Ecco un link a un carrello con tutte le parti che ho ordinato:

www.digikey.com/short/z7c88f

Include un paio di bobine di filo per i cavi dei ponticelli, se ne hai già alcuni, non ti servono.

Forniture

  • Pimoroni Explorer pHAT
  • Sensore di temperatura TMP36
  • Resistenze 150 Ohm 2W
  • Relè SPDT 1A 5VDC
  • Morsettiera a vite
  • Scheda di circuito
  • Filo
  • distanziatori del circuito stampato
  • saldatore e saldatore

Elenco delle parti su Digikey:

www.digikey.com/short/z7c88f

Passaggio 1: note di teoria elettrica

È importante assicurarsi che i componenti utilizzati siano adeguatamente dimensionati per gestire la potenza e la corrente che vedranno, altrimenti potresti avere un guasto prematuro o addirittura un incendio!

I componenti principali di cui preoccuparsi in questo caso sono la corrente nominale dei contatti del relè e la potenza nominale dei resistori.

Poiché l'unico carico nel nostro circuito di alimentazione sono i resistori, possiamo semplicemente calcolare la resistenza totale, inserirla nella legge di Ohm e calcolare la corrente nel nostro circuito.

Resistenza totale dei resistori in parallelo: 1/R_T =1/R_1 +1/R_2 +1/R_3 +1/R_N

Se le singole resistenze sono uguali, può essere ridotta a: R_T=R/N. Quindi per quattro resistori uguali è R_T=R/4.

Sto usando quattro resistori da 150, quindi la mia resistenza totale attraverso i quattro è (150 Ω)/4=37,5 Ω.

La legge di Ohm è solo Tensione = Corrente X Resistenza (V=I×R). Possiamo riorganizzarlo per determinare la corrente per ottenere I=V/R. Se colleghiamo la nostra tensione dal nostro alimentatore e la nostra resistenza, otteniamo I=(12 V)/(37,5 Ω)= 0,32 A. Quindi ciò significa che come minimo, il nostro relè dovrebbe essere valutato a 0,32 A. Quindi il relè da 1A che stiamo utilizzando è oltre 3 volte la dimensione necessaria, il che è abbondante.

Per i resistori, dobbiamo determinare la quantità di energia che passa attraverso ciascuno di essi. L'equazione della potenza è disponibile in diverse forme (tramite sostituzione con la legge di Ohm), ma ciò che è più conveniente per noi è P=E^2/R. Per il nostro resistore individuale, questo diventa P=(12V)^2/150Ω=0.96 W. Quindi vorremo almeno un resistore da 1 watt, ma un 2 watt ci darà un ulteriore fattore di sicurezza.

La potenza totale del circuito sarebbe solo 4 x 0,96 W o 3,84 W (puoi anche inserire la resistenza totale nell'equazione della potenza e ottenere lo stesso risultato).

Scrivo tutto questo, quindi nel caso in cui desideri che venga generata più potenza (più calore), puoi eseguire i tuoi numeri e calcolare i resistori necessari, la loro valutazione e la valutazione del relè necessaria.

Inizialmente ho provato a far funzionare il circuito con i 5 volt dalla linea di alimentazione Raspberry Pi, ma la potenza generata per resistore è solo P=(5V)^2/150Ω=0.166 W, per un totale di 0,66 W, che non era t abbastanza per generare più di un paio di gradi di aumento della temperatura.

Passaggio 2: Passaggio 1: Saldatura

Passaggio 1: saldatura
Passaggio 1: saldatura
Passaggio 1: saldatura
Passaggio 1: saldatura
Passaggio 1: saldatura
Passaggio 1: saldatura

Ok, basta con gli elenchi delle parti e la teoria, passiamo alla progettazione del circuito e alla saldatura!

Ho disegnato il circuito sul Proto-Bonnet in due modi diversi, una volta come schema elettrico e una volta come rappresentazione visiva della scheda. C'è anche una foto segnata della scheda pHAT Pimoroni Explorer, che mostra il cablaggio che va tra essa e il Proto-Bonnet.

Sull'Explorer pHAT, l'intestazione a 40 pin fornita con essa deve essere saldata alla scheda, questa è la connessione tra essa e il Raspberry Pi. Viene fornito con un'intestazione terminale per l'I/O, ma non l'ho usato, ho solo saldato i fili direttamente alla scheda. Il Proto-Bonnet include anche le connessioni per l'intestazione, ma in questo caso non viene utilizzato.

Il sensore di temperatura è cablato direttamente alla scheda Explorer pHAT utilizzando fili per compensare la differenza tra la posizione del Raspberry Pi e l'interno della Camera Dome in cui si trova.

La morsettiera a vite e il relè di controllo sono i due componenti che sono saldati alla scheda Proto-Bonnet, nello schema sono etichettati T1, T2, T3 (per i tre terminali a vite) e CR1 per il relè.

I resistori sono saldati a cavi che vanno anche dal Raspberry Pi alla Camera Dome, si collegano al Proto-Bonnet tramite i terminali a vite a T1 e T3. Ho dimenticato di scattare una foto dell'assemblaggio prima di reinstallare la telecamera sul tetto, ma ho provato a distanziare uniformemente i resistori attorno alla cupola, con solo due fili che tornano al Proto-Bonnet. Entrano nella cupola attraverso i fori sui lati opposti del tubo, con il sensore di temperatura che entra attraverso un terzo foro, equidistantemente distanziato tra due dei resistori vicino al bordo della cupola.

Passaggio 3: Passaggio 2: assemblaggio

Passaggio 2: assemblaggio
Passaggio 2: assemblaggio

Una volta che è tutto saldato insieme, puoi installarlo sulla tua fotocamera all-sky. Montare l'Explorer pHAT sul Rasperry Pi, spingendolo sull'intestazione a 40 pin, quindi il Proto-Bonnet è montato adiacente ad esso sopra il Pi utilizzando alcuni distanziatori. Un'altra opzione sarebbe quella di utilizzare i distanziatori sopra l'Explorer, ma poiché stavo usando l'involucro del tubo ABS, rendeva il Pi troppo grande per adattarsi di più.

Instradare il sensore di temperatura nella custodia fino alla sua posizione e installare anche il cablaggio del resistore. Quindi cablare il cablaggio alla morsettiera sulla scheda proto.

Avanti con la programmazione!

Passaggio 4: Passaggio 3: caricamento della libreria PHAT di Explorer e programmazione del test

Prima di poter utilizzare Explorer pHAT, dobbiamo caricare la libreria per esso da Pimoroni in modo che il Pi possa comunicare con esso.

Sul tuo Raspberry Pi, apri il terminale e inserisci:

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

Digitare "y" o "n" a seconda dei casi per completare l'installazione.

Successivamente, vorremo eseguire un semplice programma per testare gli ingressi e le uscite, per assicurarci che il nostro cablaggio sia corretto. Il DewHeater_TestProg.py allegato è uno script Python che visualizza la temperatura e accende e spegne il relè ogni due secondi.

tempo di importazione

import explorerhat delay = 2 while 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(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)

Puoi aprire il file sul tuo Raspberry Pi, (sul mio si è aperto in Thonny, ma ci sono anche molti altri editor Python là fuori), e poi eseguirlo, e dovrebbe iniziare a mostrare la temperatura, e sentirai il relè che si accende e si spegne! In caso contrario, controlla il cablaggio e i circuiti.

Passaggio 5: Passaggio 4: caricamento della programmazione del riscaldatore di rugiada

Ecco la programmazione completa del riscaldatore di rugiada. Fa diverse cose:

  • Estrae la temperatura esterna e il punto di rugiada correnti da una determinata posizione del Servizio meteorologico nazionale ogni cinque minuti. Se non riceve dati, mantiene le temperature precedenti e riprova tra altri cinque minuti.

    • Il NWS richiede che le informazioni di contatto siano incluse nelle richieste API, in caso di problemi con la richiesta, sanno chi contattare. Questo è nella riga 40 della programmazione, sostituisci "[email protected]" con il tuo indirizzo email.
    • Dovrai andare su weather.gov e cercare una previsione per la tua zona, per ottenere l'ID della stazione, che è la stazione meteorologica più vicina al NWS. L'ID della stazione è tra () dopo il nome della posizione. Immettere questo nella riga 17 della programmazione. Attualmente mostra KPDX, o Portland, Oregon.
    • Se sei al di fuori degli Stati Uniti, esiste un'altra possibilità di utilizzare i dati di OpenWeatherMap.org. Non l'ho provato da solo, ma puoi guardare questo esempio qui: Reading-JSON-With-Raspberry-Pi
  • Nota che le temperature dal NWS e dal sensore di temperatura sono in gradi centigradi, così come quelle per la fotocamera ASI, quindi per coerenza, le ho mantenute tutte centrigrade anziché convertirle in Fahrenheit, che è ciò a cui sono più abituato.
  • Successivamente, legge la temperatura dal sensore a cupola e, se è inferiore a 10 gradi sopra il punto di rugiada, attiva il relè. Se è maggiore di 10,5 gradi sopra il punto di rugiada, spegne il relè. Se lo desideri, puoi modificare queste impostazioni.
  • Una volta al minuto, registra i valori correnti per le temperature, il punto di rugiada e lo stato del relè in un file.csv in modo che tu possa vedere come funziona nel tempo.

#Programma di controllo del riscaldatore di rugiada Raspberry Pi

#Dic 2019 #Brian Plett #Utilizza Pimoroni Explorer pHAT, un sensore di temperatura e un relè #per controllare un circuito di resistori come riscaldatore di rugiada per una telecamera all-sky #Estrae la temperatura dell'aria esterna e il punto di rugiada dal sito web NWS #mantiene la temperatura interna 10 gradi sopra il punto di rugiada ora di importazione data di importazione ora di importazione richieste di importazione di csv di importazione di os di importazione di esplorazione di #Station ID è la stazione meteorologica più vicina al NWS. Vai su weather.gov e cerca le previsioni per la tua zona, #station ID è tra () dopo il nome della località. settings = { 'station_ID':'KPDX', } #URL alternativo per le informazioni meteo #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2}&unità={3}"

#URL meteo per recuperare i dati

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

#ritardo per comando relè, secondi

ControlDelay = 2 A=0 B=0 while True: #date da utilizzare nel nome del file di registro datestr = datetime.datetime.now().strftime("%Y%m%d") #data e ora da utilizzare per ogni riga di dati localtime = datetime.datetime.now().strftime("%Y/%m/%d %H:%M") #percorso file CSV = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' while B == 0: try: #Pull temperature e dewpoint da NWS ogni 60 secondi 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()["properties"]["temperature"]["value"] dewRaw = weather_data.json()["properties"]["punto di rugiada"]["valore"] #stampa diagnostica per dati di temperatura grezzi print(oatRaw, dewRaw) OAT = round(oatRaw, 3) Dew = round(dewRaw, 3) tranne: A = 0 B = 1 break A = 0 B = 1 interruzione se A < 300: A = A + ControlDelay altrimenti: B = 0 #Leggi la tensione grezza da Raspberry Pi Explorer PHat e converti in temperatura 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() #stampa diagnostica che mostra temperature, punti di rugiada e stato dell'uscita relè print(' { 0:5.2f} gradiC, {1:5.2f} gradiC, {2:5.2f} gradi C {3:5.0f}'.format(round(OAT, 3), round(Dew, 3), round(tempC, 3), explorerhat.output.two.read())) #10 secondi dopo il passaggio del minuto, scrivi i dati in un file CSV se A ==10: se os.path.isfile(path.format(datestr)): print(path.format(datestr)) with 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 ") come csvfile: txtwrite = csv.writer(csvfile) txtwrite.writerow(fieldnames) txtwrite.writerow([localtime, OAT, Dew, tempC, explorerhat.output.two.read()]) time.sleep(ControlDelay)

L'ho salvato in una nuova cartella nella cartella allsky chiamata DewHeaterLogs.

Prova a eseguirlo per un po' per assicurarti che tutto sia a posto, prima di passare all'esecuzione come script.

Passaggio 6: Passaggio 5: esecuzione dello script all'avvio

Per eseguire lo script Dew Heater non appena il Raspberry Pi si avvia, ho seguito le istruzioni qui:

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

Per lo script Launcher, ho creato questo:

#!/bin/sh

# launcher.sh # vai alla directory home, quindi a questa directory, quindi esegui lo script python, quindi torna a casa cd / cd home/pi/allsky/DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

Una volta fatto questo, dovresti essere a posto. Divertiti ad avere una fotocamera senza rugiada!

Passaggio 7: aggiornamento di dicembre 2020

Circa a metà dell'anno scorso, il mio riscaldatore di condensa ha smesso di funzionare, quindi ho disabilitato il codice fino a quando non ho potuto dargli un'occhiata. Alla fine ho trascorso un po' di tempo durante la pausa invernale e ho scoperto che il relè che ho usato mostrava un'elevata resistenza attraverso i suoi contatti durante il funzionamento, probabilmente a causa del sovraccarico.

Quindi l'ho aggiornato con un relè di valore più alto, uno con un contatto da 5A anziché un contatto da 1A. Inoltre è un relè di potenza piuttosto che un relè di segnale, quindi spero che aiuti. È un TE PCH-105D2H, 000. Ho anche aggiunto alcuni terminali a vite per l'Explorer pHAT, così ho potuto facilmente scollegare il riscaldatore e il sensore di temperatura, se necessario. Tutti e 3 sono nel carrello qui sotto:

Carrello della spesa Digikey

Tieni presente che i pin di questo relè sono diversi dal precedente, quindi il punto in cui si collega è leggermente diverso, ma dovrebbe essere semplice. La polarità non ha importanza per la bobina, FYI.

Consigliato: