Tabla de contenido:

Calentador de rocío Raspberry Pi para cámara All-Sky: 7 pasos
Calentador de rocío Raspberry Pi para cámara All-Sky: 7 pasos

Video: Calentador de rocío Raspberry Pi para cámara All-Sky: 7 pasos

Video: Calentador de rocío Raspberry Pi para cámara All-Sky: 7 pasos
Video: Astrophotography from $100 to $10,000 2024, Noviembre
Anonim
Calentador de rocío Raspberry Pi para cámara All-Sky
Calentador de rocío Raspberry Pi para cámara All-Sky

[Consulte el paso 7 para ver un cambio en el relé utilizado]

Esta es una actualización de una cámara para todo el cielo que construí siguiendo la excelente guía de Thomas Jaquin (Cámara inalámbrica para todo el cielo). noche, que oscurece la vista del cielo nocturno. La solución es agregar un calentador de rocío que calentará el domo para que esté por encima del punto de rocío, o la temperatura a la que el agua se condensará en el domo.

Una forma común de hacer esto es pasar corriente a través de varias resistencias, que luego se calentarán y usarán eso como fuente de calor. En este caso, dado que la cámara ya tiene una Raspberry Pi, quería usarla para controlar el circuito de resistencia a través de un relé, encendiéndolos y apagándolos según sea necesario para mantener una cierta temperatura del domo por encima del punto de rocío. Un sensor de temperatura está ubicado en el domo para control. Decidí obtener datos de temperatura y humedad del clima local del Servicio Meteorológico Nacional para obtener la información del punto de rocío requerida, en lugar de agregar otro sensor, y necesito una penetración en la carcasa de mi cámara que podría tener fugas.

La Raspberry Pi tiene un encabezado GPIO que permite que las placas de expansión controlen dispositivos físicos, pero el IO en sí no está diseñado para manejar la corriente que demanda un circuito de potencia de resistencia. Entonces se necesitan componentes adicionales. Estoy planeando usar un relé para aislar el circuito de alimentación, por lo que se necesita un controlador de relé IC para interactuar con el Pi. También necesito un sensor de temperatura para leer la temperatura dentro del domo, por lo que se necesita un convertidor analógico a digital (ADC) para que el Pi pueda leer la temperatura. Estos componentes están disponibles individualmente, pero también puede comprar un 'sombrero' para el Pi que contiene estos dispositivos en una placa que simplemente se conecta al GPIO del Pi.

Fui con el Pimoroni Explorer pHAT, que tiene un rango completo de E / S, pero para mis propósitos, tiene cuatro entradas analógicas de 0-5 V y cuatro salidas digitales adecuadas para activar relés.

Para el sensor de temperatura del domo, utilicé un TMP36, que me gustó porque tiene una ecuación lineal simple para derivar la temperatura de la lectura de voltaje. Utilizo termistores y RTD en mi trabajo, pero no son lineales y, por lo tanto, son más complicados de implementar desde cero.

Utilicé el kit Perma Proto Bonnet Mini de Adafruit como placa de circuito para soldar el relé, el bloque de terminales y otro cableado, lo cual es bueno ya que tiene el tamaño del Pi y tiene circuitos relevantes para lo que ofrece el Pi.

Esas son las cosas principales. Terminé obteniendo casi todo de Digikey, ya que almacenan las partes de Adafruit además de todas las partes normales del circuito, por lo que es fácil obtener todo a la vez. Aquí hay un enlace a un carrito de compras con todas las piezas que ordené:

www.digikey.com/short/z7c88f

Incluye un par de carretes de alambre para los cables de puente, si ya tienes alguno, no lo necesitas.

Suministros

  • Pimoroni Explorer pHAT
  • Sensor de temperatura TMP36
  • Resistencias de 150 Ohm 2W
  • Relevador 1A 5VDC SPDT
  • Bloque de terminales de tornillo
  • Placa de circuito
  • Cable
  • separadores de la placa de circuito
  • soldador y soldador

Lista de piezas en digikey:

www.digikey.com/short/z7c88f

Paso 1: Notas de la teoría eléctrica

Es importante asegurarse de que los componentes utilizados tengan el tamaño adecuado para manejar la potencia y la corriente que verán, de lo contrario, podría tener una falla prematura o incluso un incendio.

Los principales componentes de los que preocuparse en este caso son la clasificación actual de los contactos del relé y la clasificación de potencia de las resistencias.

Dado que la única carga en nuestro circuito de potencia son las resistencias, podemos simplemente calcular la resistencia total, poner eso en la ley de Ohm y calcular la corriente en nuestro circuito.

Resistencia total de resistencias en paralelo: 1 / R_T = 1 / R_1 + 1 / R_2 + 1 / R_3 + 1 / R_N

Si las resistencias individuales son iguales, se puede reducir a: R_T = R / N. Entonces, para cuatro resistencias iguales, es R_T = R / 4.

Estoy usando cuatro resistencias de 150 Ω, por lo que mi resistencia total a través de las cuatro es (150 Ω) /4=37.5 Ω.

La ley de Ohm es simplemente Voltaje = Corriente X Resistencia (V = I × R). Podemos reorganizar eso para determinar la corriente para obtener I = V / R. Si conectamos nuestro voltaje de nuestra fuente de alimentación y nuestra resistencia, obtenemos I = (12 V) / (37.5 Ω) = 0.32 A. Eso significa que, como mínimo, nuestro relé debería tener una clasificación de 0.32 A. Entonces el relé 1A que estamos usando es más de 3 veces el tamaño necesario, lo cual es suficiente.

Para las resistencias, necesitamos determinar la cantidad de energía que pasa por cada una. La ecuación de potencia se presenta en varias formas (mediante sustitución con la ley de Ohm), pero lo que nos resulta más conveniente es P = E ^ 2 / R. Para nuestra resistencia individual, esto se convierte en P = (12V) ^ 2 / 150Ω = 0.96 W. Por lo tanto, querremos al menos una resistencia de 1 vatio, pero una de 2 vatios nos dará un factor de seguridad adicional.

La potencia total del circuito sería solo 4 x 0,96 W o 3,84 W (también puede poner la resistencia total en la ecuación de potencia y obtener el mismo resultado).

Escribo todo esto, por lo que en caso de que desee que se genere más energía (más calor), puede ejecutar sus números y calcular las resistencias necesarias, su clasificación y la clasificación del relé necesario.

Inicialmente intenté ejecutar el circuito con los 5 voltios del riel de alimentación Raspberry Pi, pero la potencia generada por resistencia es solo P = (5V) ^ 2 / 150Ω = 0.166 W, para un total de 0.66 W, que no era ' t suficiente para generar más de un par de grados de aumento de temperatura.

Paso 2: Paso 1: Soldar

Paso 1: soldadura
Paso 1: soldadura
Paso 1: soldadura
Paso 1: soldadura
Paso 1: soldadura
Paso 1: soldadura

De acuerdo, basta de listas de piezas y teoría, ¡vayamos al diseño del circuito y la soldadura!

Dibujé el circuito en el Proto-Bonnet de dos maneras diferentes, una vez como un esquema de cableado y otra como una representación visual de la placa. También hay una foto marcada de la placa Pimoroni Explorer pHAT, que muestra el cableado que va entre ella y el Proto-Bonnet.

En el Explorer pHAT, el cabezal de 40 pines que viene con él debe soldarse a la placa, esta es la conexión entre este y la Raspberry Pi. Viene con un encabezado de terminal para la E / S, pero no lo usé, en su lugar, solo soldé cables directamente a la placa. El Proto-Bonnet también incluye conexiones para el encabezado, pero no se usa en este caso.

El sensor de temperatura está conectado directamente a la placa Explorer pHAT utilizando cables para compensar la diferencia entre la ubicación de la Raspberry Pi y el interior de la cámara domo donde se encuentra.

El bloque de terminales de tornillo y el relé de control son los dos componentes que están soldados a la placa Proto-Bonnet, en el esquema están etiquetados como T1, T2, T3 (para los tres terminales de tornillo) y CR1 para el relé.

Las resistencias están soldadas a cables que también van desde la Raspberry Pi al Camera Dome, se conectan al Proto-Bonnet a través de los terminales de tornillo en T1 y T3. Olvidé tomar una foto del ensamblaje antes de instalar la cámara en mi techo, pero traté de espaciar las resistencias uniformemente alrededor del domo, con solo dos cables volviendo al Proto-Bonnet. Ingrese a la cúpula a través de orificios en lados opuestos de la tubería, con el sensor de temperatura ingresando a través de un tercer orificio, espaciados uniformemente entre dos de las resistencias cerca del borde de la cúpula.

Paso 3: Paso 2: Montaje

Paso 2: Montaje
Paso 2: Montaje

Una vez que esté todo soldado, puede instalarlo en su cámara todo cielo. Monte el Explorer pHAT en el Rasperry Pi, empujándolo sobre el cabezal de 40 pines, y luego el Proto-Bonnet se monta junto a él en la parte superior del Pi usando algunos separadores. Otra opción sería usar separadores en la parte superior del Explorer, pero como estaba usando el gabinete ABS Pipe, hizo que el Pi fuera demasiado grande para caber más.

Dirija el sensor de temperatura hacia arriba del gabinete hasta su ubicación e instale también el arnés de resistencia. Luego, conecte el arnés al bloque de terminales en el proto-tablero.

¡A la programación!

Paso 4: Paso 3: carga de la biblioteca Explorer PHAT y prueba la programación

Antes de que podamos usar el Explorer pHAT, necesitamos cargar la biblioteca desde Pimoroni para que el Pi pueda comunicarse con él.

En su Raspberry Pi, abra la terminal e ingrese:

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

Escriba 'y' o 'n' según corresponda para finalizar la instalación.

A continuación, queremos ejecutar un programa simple para probar las entradas y salidas, para asegurarnos de que nuestro cableado sea correcto. El DewHeater_TestProg.py adjunto es un script de Python que muestra la temperatura y enciende y apaga el relé cada dos segundos.

tiempo de importación

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} voltios, {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)

Puede abrir el archivo en su raspberry Pi (en el mío se abrió en Thonny, pero también hay muchos otros editores de Python), y luego ejecutarlo, y debería comenzar a mostrar la temperatura, y escuchará el relé haciendo clic en encendido y apagado! Si no es así, revise el cableado y los circuitos.

Paso 5: Paso 4: Carga de la programación del calentador de rocío

Aquí está la programación completa del calentador de rocío. Hace varias cosas:

  • Extrae la temperatura exterior actual y el punto de rocío de una ubicación determinada del Servicio Meteorológico Nacional cada cinco minutos. Si no obtiene datos, mantiene las temperaturas anteriores y vuelve a intentarlo en otros cinco minutos.

    • El NWS solicita que la información de contacto se incluya en las solicitudes de la API, en caso de que haya problemas con la solicitud, saben a quién contactar. Esto está en la línea 40 de la programación, reemplace '[email protected]' con su propia dirección de correo electrónico.
    • Deberá ir a weather.gov y buscar un pronóstico para su área, para obtener la identificación de la estación, que es la estación meteorológica más cercana en el NWS. El ID de la estación está entre () después del nombre de la ubicación. Ingrese esto en la línea 17 de la programación. Actualmente muestra KPDX, o Portland, Oregon.
    • Si se encuentra fuera de los EE. UU., Existe otra posibilidad utilizando datos de OpenWeatherMap.org. No lo he probado yo mismo, pero puedes ver este ejemplo aquí: Reading-JSON-With-Raspberry-Pi
  • Tenga en cuenta que las temperaturas del NWS y del sensor de temperatura están en grados centígrados, al igual que las de la cámara ASI, por lo que, por coherencia, las mantuve todas en Centrígrados en lugar de convertirlas a Fahrenheit, que es a lo que estoy más acostumbrado..
  • A continuación, lee la temperatura del sensor de domo y, si está a menos de 10 grados por encima del punto de rocío, enciende el relé. Si es superior a 10,5 grados por encima del punto de rocío, apaga el relé. Puede cambiar esta configuración si lo desea.
  • Una vez por minuto, registra los valores actuales de temperatura, punto de rocío y estado del relé en un archivo.csv para que pueda ver cómo funciona con el tiempo.

Programa de control del calentador de rocío #Raspberry Pi

#Dec 2019 #Brian Plett #Utiliza Pimoroni Explorer pHAT, un sensor de temperatura y un relé # para controlar un circuito de resistencia como calentador de rocío para una cámara todo-cielo #Toma la temperatura del aire exterior y el punto de rocío del sitio web de NWS # mantiene la temperatura interna 10 grados por encima del punto de rocío import time import datetime solicitudes de importación import csv import os import explorerhat #Station ID es la estación meteorológica más cercana en el NWS. Vaya a weather.gov y busque forcast para su área, # ID de estación está en () después del nombre de la ubicación. settings = {'station_ID': 'KPDX',} # URL alternativa para información meteorológica #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & unidades = {3}"

#Weather URL para recuperar datos

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

#delay for relay control, seconds

ControlDelay = 2 A = 0 B = 0 while True: #fecha para usar en el nombre de archivo de registro datetr = datetime.datetime.now (). Strftime ("% Y% m% d") #fecha y hora para usar para cada fila de datos localtime = datetime.datetime.now (). strftime ("% Y /% m /% d% H:% M") #CSV file path path = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' while B == 0: intente: # Extraiga la temperatura y el punto de rocío del NWS cada 60 segundos final_url = BASE_URL.format (settings ["station_ID"]) weather_data = request.get (final_url, timeout = 5, headers = {'User-agent ':' Cámara Raspberry Pi 3+ Allsky [email protected] '}) oatRaw = weather_data.json () ["propiedades"] ["temperatura"] ["valor"] dewRaw = weather_data.json () ["propiedades"] ["punto de rocío"] ["valor"] # impresión de diagnóstico para impresión de datos de temperatura sin procesar (oatRaw, dewRaw) OAT = round (oatRaw, 3) Dew = round (dewRaw, 3) excepto: A = 0 B = 1 descanso A = 0 B = 1 descanso si A <300: A = A + ControlDelay else: B = 0 # Lee el voltaje bruto de Raspberry Pi Explorer PHat y conviértelo a 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 () # impresión de diagnóstico que muestra temperaturas, puntos de rocío y estado de salida del relé print ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. Formato (redondo (OAT, 3), redondo (Rocío, 3), redondo (tempC, 3), explorerhat.output.two.read ())) # 10 segundos después de que pase el minuto, escriba los datos en un archivo CSV si A == 10: if os.path.isfile (path.format (datetr)): print (ruta.formato (datetr)) con open (ruta.formato (datetr), "a") como archivo csv: txtwrite = csv.writer (archivo csv) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat. output.two.read ()]) else: fieldnames = ['date', 'Outdoor Air Temp', 'Dewpoint', 'Dome Temp', 'Relay State'] con open (path.format (datetr), "w ") como csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (nombres de campo) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Guardé esto en una nueva carpeta en la carpeta allsky llamada DewHeaterLogs.

Intente ejecutar esto por un momento para asegurarse de que todo se vea bien, antes de pasar a ejecutarlo como un script.

Paso 6: Paso 5: Ejecutar el script al inicio

Para ejecutar el script Dew Heater tan pronto como se inicia Raspberry Pi, seguí las instrucciones aquí:

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

Para el script Launcher, creé esto:

#! / bin / sh

# launcher.sh # navegue al directorio de inicio, luego a este directorio, luego ejecute el script de Python, luego regrese a inicio cd / cd inicio / pi / allsky / DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

Una vez hecho esto, debería estar listo para comenzar. ¡Disfruta teniendo una cámara sin rocío!

Paso 7: Actualización de diciembre de 2020

Aproximadamente a la mitad del año pasado, mi calentador de rocío dejó de funcionar, así que desactivé el código hasta que pude echarle un vistazo. Finalmente tuve algo de tiempo durante las vacaciones de invierno y descubrí que el relé que usé mostraba una alta resistencia en sus contactos mientras estaba en funcionamiento, probablemente por estar sobrecargado.

Así que lo actualicé con un relé de mayor clasificación, uno con un contacto de 5A en lugar de un contacto de 1A. También es un relé de potencia en lugar de un relé de señal, por lo que espero que ayude. Es un TE PCH-105D2H, 000. También agregué algunos terminales de tornillo para el Explorer pHAT, para poder desconectar fácilmente el calentador y el sensor de temperatura según sea necesario. Los 3 se encuentran en este carrito de compras a continuación:

Carrito de compras Digikey

Tenga en cuenta que los pines de este relé son diferentes al anterior, por lo que el lugar al que se conecta es ligeramente diferente, pero debería ser sencillo. La polaridad no le importa a la bobina, FYI.

Recomendado: