Índice:

Aquecedor Raspberry Pi Dew para câmera All-sky: 7 etapas
Aquecedor Raspberry Pi Dew para câmera All-sky: 7 etapas

Vídeo: Aquecedor Raspberry Pi Dew para câmera All-sky: 7 etapas

Vídeo: Aquecedor Raspberry Pi Dew para câmera All-sky: 7 etapas
Vídeo: How to build your own All Sky Camera 2024, Julho
Anonim
Aquecedor Raspberry Pi Dew para câmera All-sky
Aquecedor Raspberry Pi Dew para câmera All-sky

[Veja a Etapa 7 para uma mudança no relé usado]

Esta é uma atualização para uma câmera all-sky que construí seguindo o excelente guia de Thomas Jaquin (Wireless All Sky Camera). noite, o que obscurece a visão do céu noturno. A solução é adicionar um aquecedor de orvalho que vai aquecer a cúpula para ficar acima do ponto de orvalho, ou a temperatura na qual a água se condensará na cúpula.

Uma maneira comum de fazer isso é passar corrente por vários resistores, que então aquecerão, e usar isso como fonte de calor. Nesse caso, como a câmera já tem um Raspberry Pi, eu queria usá-lo para controlar o circuito do resistor por meio de um relé, ligando e desligando conforme necessário para manter uma certa temperatura do domo acima do ponto de orvalho. Um sensor de temperatura está localizado na cúpula para controle. Decidi obter dados locais de temperatura e umidade do tempo do Serviço Nacional de Meteorologia para as informações de ponto de orvalho necessárias, em vez de adicionar outro sensor e precisar de uma penetração na caixa da câmera que pode vazar.

O Raspberry Pi tem um cabeçalho GPIO que permite que as placas de expansão controlem dispositivos físicos, mas o IO em si não foi projetado para lidar com a corrente que um circuito de alimentação do resistor exige. Portanto, são necessários componentes adicionais. Estou planejando usar um relé para isolar o circuito de alimentação, portanto, um IC do driver do relé é necessário para fazer a interface com o Pi. Eu também preciso de um sensor de temperatura para ler a temperatura dentro da cúpula, então um conversor analógico para digital (ADC) é necessário para que o Pi possa ler a temperatura. Esses componentes estão disponíveis individualmente, mas você também pode comprar um 'chapéu' para o Pi que contém esses dispositivos em uma placa que se conecta apenas ao GPIO do Pi.

Eu escolhi o Pimoroni Explorer pHAT, que tem toda uma gama de E / S, mas para os meus propósitos, tem quatro entradas analógicas de 0-5V e quatro saídas digitais adequadas para relés de acionamento.

Para o sensor de temperatura de cúpula, usei um TMP36, que gostei porque tem uma equação linear simples para derivar a temperatura da leitura de tensão. Eu uso termistores e RTDs no meu trabalho, mas eles não são lineares e, portanto, são mais complicados de implementar do zero.

Usei o kit Perma Proto Bonnet Mini da Adafruit como placa de circuito para soldar o relé, o bloco de terminais e outras fiações, o que é bom, pois é dimensionado para o Pi e tem circuitos relevantes para o que o Pi oferece.

Essas são as coisas principais. Acabei pegando quase tudo da Digikey, já que eles estocam as peças do Adafruit além de todas as peças do circuito normal, então fica mais fácil conseguir tudo de uma vez. Aqui está um link para um carrinho de compras com todas as peças que encomendei:

www.digikey.com/short/z7c88f

Inclui alguns carretéis de fio para os fios de jumper, se você já tiver alguns, não precisará deles.

Suprimentos

  • Pimoroni Explorer pHAT
  • Sensor de temperatura TMP36
  • Resistores de 150 Ohm 2W
  • Relé 1A 5VDC SPDT
  • Bloco de terminais de parafuso
  • Placa de circuito
  • Arame
  • impasses da placa de circuito
  • solda e ferro de solda

Lista de peças no digikey:

www.digikey.com/short/z7c88f

Etapa 1: Notas de Teoria Elétrica

É importante garantir que os componentes usados tenham o tamanho adequado para lidar com a energia e a corrente que verão, caso contrário, você pode ter uma falha prematura ou até mesmo um incêndio!

Os principais componentes com que se preocupar neste caso são a corrente nominal dos contatos do relé e a potência nominal dos resistores.

Uma vez que a única carga em nosso circuito de força são os resistores, podemos simplesmente calcular a resistência total, colocá-la na lei de Ohm e calcular a corrente em nosso circuito.

Resistência total dos resistores paralelos: 1 / R_T = 1 / R_1 + 1 / R_2 + 1 / R_3 + 1 / R_N

Se as resistências individuais forem iguais, pode ser reduzido para: R_T = R / N. Portanto, para quatro resistores iguais é R_T = R / 4.

Estou usando quatro resistores de 150 Ω, então minha resistência total através dos quatro é (150 Ω) /4=37,5 Ω.

A lei de Ohm é apenas Tensão = Corrente X Resistência (V = I × R). Podemos reorganizar isso para determinar a corrente para obter I = V / R. Se conectarmos nossa tensão de nossa fonte de alimentação e nossa resistência, obtemos I = (12 V) / (37,5 Ω) = 0,32 A. Isso significa que, no mínimo, nosso relé precisaria ser avaliado em 0,32 A. Então o relé 1A que estamos usando tem mais de 3 vezes o tamanho necessário, o que é bastante.

Para os resistores, precisamos determinar a quantidade de energia que passa por cada um. A equação de potência vem em várias formas (por meio da substituição pela lei de Ohm), mas o que é mais conveniente para nós é P = E ^ 2 / R. Para nosso resistor individual, isso se torna P = (12V) ^ 2 / 150Ω = 0,96 W. Portanto, vamos querer pelo menos um resistor de 1 watt, mas um 2 watt nos dará um fator extra de segurança.

A potência total do circuito seria apenas 4 x 0,96 W, ou 3,84 W (você também pode colocar a resistência total na equação de potência e obter o mesmo resultado).

Eu escrevo tudo isso, então, caso você queira que mais energia seja gerada (mais calor), você pode executar seus números e calcular os resistores necessários, sua classificação e a classificação do relé necessário.

Eu tentei inicialmente executar o circuito com os 5 volts do barramento de força Raspberry Pi, mas a potência gerada por resistor é apenas P = (5V) ^ 2 / 150Ω = 0,166 W, para um total de 0,66 W, que não era t o suficiente para gerar mais do que alguns graus de aumento de temperatura.

Etapa 2: Etapa 1: Solda

Etapa 1: Solda
Etapa 1: Solda
Etapa 1: Solda
Etapa 1: Solda
Etapa 1: Solda
Etapa 1: Solda

Ok, chega de listas de peças e teoria, vamos ao projeto do circuito e soldagem!

Desenhei o circuito no Proto-Bonnet de duas maneiras diferentes, uma como esquema de fiação e outra como representação visual da placa. Há também uma foto marcada da placa de pHAT do Pimoroni Explorer, mostrando a fiação que vai entre ela e o Proto-Bonnet.

No Explorer pHAT, o conector de 40 pinos que vem com ele precisa ser soldado à placa, essa é a conexão entre ele e o Raspberry Pi. Ele vem com um conector de terminal para E / S, mas eu não o usei, em vez disso apenas soldou os fios diretamente na placa. O Proto-Bonnet também inclui conexões para o cabeçalho, mas não é usado neste caso.

O sensor de temperatura é conectado diretamente à placa de pHAT do Explorer usando fios para fazer a diferença entre a localização do Raspberry Pi e o interior da cúpula da câmera onde ele está localizado.

O bloco de terminais de parafuso e o relé de controle são os dois componentes que são soldados à placa do proto-boné, no esquema eles são identificados como T1, T2, T3 (para os três terminais de parafuso) e CR1 para o relé.

Os resistores são soldados a fios que também vão do Raspberry Pi à cúpula da câmera, eles se conectam ao proto-boné através dos terminais de parafuso em T1 e T3. Esqueci de tirar uma foto da montagem antes de instalar a câmera de volta no meu telhado, mas tentei espaçar os resistores uniformemente ao redor da cúpula, com apenas dois fios voltando para o Proto-Bonnet. Eles entram na cúpula através de orifícios em lados opostos do tubo, com o sensor de temperatura entrando por um terceiro orifício, uniformemente espaçado entre dois dos resistores próximos à borda da cúpula.

Etapa 3: Etapa 2: Montagem

Etapa 2: Montagem
Etapa 2: Montagem

Assim que estiver tudo soldado, você pode instalá-lo em sua câmera all-sky. Monte o Explorer pHAT no Rasperry Pi, empurrando-o para o cabeçalho de 40 pinos e, em seguida, o Proto-Bonnet é montado adjacente a ele no topo do Pi usando alguns espaçadores. Outra opção seria usar espaçadores em cima do Explorer, mas como eu estava usando o invólucro ABS Pipe, ele tornou o Pi grande demais para caber mais.

Passe o sensor de temperatura pelo gabinete até o local e instale o chicote do resistor também. Em seguida, conecte o chicote ao bloco de terminais na protoplaca.

Vamos para a programação!

Etapa 4: Etapa 3: Carregar a biblioteca Explorer PHAT e testar a programação

Antes de podermos usar o Explorer pHAT, precisamos carregar a biblioteca do Pimoroni para que o Pi possa se comunicar com ele.

No seu Raspberry Pi, abra o terminal e digite:

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

Digite 'y' ou 'n' conforme apropriado para finalizar a instalação.

A seguir, queremos executar um programa simples para testar as entradas e saídas, para garantir que nossa fiação esteja correta. O DewHeater_TestProg.py anexado é um script python que exibe a temperatura e liga e desliga o relé a cada dois segundos.

tempo de importação

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} volts, {1: 5.3f} degC, {2: 5.2f} deg F'.format (redondo (T1, 3), redondo (tempC, 3), redondo (tempF, 3))) V1 = explorerhat.output.two. on () print ('Relay on') time.sleep (delay) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (delay)

Você pode abrir o arquivo em seu Raspberry Pi (no meu ele foi aberto em Thonny, mas há muitos outros editores Python por aí também) e, em seguida, executá-lo, e ele deve começar a mostrar a temperatura, e você ouvirá o relé clicando em ligar e desligar! Caso contrário, faça algumas verificações na fiação e nos circuitos.

Etapa 5: Etapa 4: Carregando a programação do aquecedor de orvalho

Aqui está a programação completa do aquecedor de orvalho. Ele faz várias coisas:

  • Obtém a temperatura externa atual e o ponto de orvalho de um determinado local do Serviço Meteorológico Nacional a cada cinco minutos. Se não obtiver dados, ele mantém as temperaturas anteriores e tenta novamente em mais cinco minutos.

    • O NWS solicita que as informações de contato sejam incluídas nas solicitações de API, caso haja problemas com a solicitação, eles sabem com quem entrar em contato. Isso está na linha 40 da programação, substitua '[email protected]' pelo seu próprio endereço de e-mail.
    • Terá de ir a weather.gov e procurar uma previsão para a sua área, para obter o ID da Estação, que é a estação meteorológica mais próxima no NWS. O ID da estação está entre () após o nome do local. Insira isso na linha 17 da programação. Atualmente mostra KPDX, ou Portland, Oregon.
    • Se você estiver fora dos EUA, existe outra possibilidade de usar dados do OpenWeatherMap.org. Eu não tentei sozinho, mas você pode ver este exemplo aqui: Reading-JSON-With-Raspberry-Pi
  • Observe que as temperaturas do NWS e do sensor de temperatura estão em graus centígrados, assim como as da câmera ASI, então, para consistência, mantive todas elas centrígradas em vez de converter para Fahrenheit, que é o que estou mais acostumado.
  • Em seguida, ele lê a temperatura do sensor de cúpula e, se estiver menos de 10 graus acima do ponto de orvalho, liga o relé. Se estiver mais de 10,5 graus acima do ponto de orvalho, ele desliga o relé. Você pode alterar essas configurações, se desejar.
  • Uma vez por minuto, ele registra os valores atuais de temperaturas, ponto de orvalho e status de retransmissão em um arquivo.csv para que você possa ver como ele se sai ao longo do tempo.

#Raspberry Pi Programa de controle do aquecedor de orvalho

# Dezembro de 2019 #Brian Plett # Usa Pimoroni Explorer pHAT, um sensor de temperatura e um relé # para controlar um circuito de resistor como um aquecedor de orvalho para uma câmera panorâmica # Puxa a temperatura do ar externo e o ponto de orvalho do site do NWS # mantém a temperatura interna 10 graus acima do ponto de orvalho tempo de importação importação datetime solicitações de importação import csv import os import explorerhat #Station ID é a estação meteorológica mais próxima no NWS. Vá para weather.gov e procure forcast para sua área, #station ID está entre () após o nome do local. settings = {'station_ID': 'KPDX',} # URL alternativo para informações meteorológicas #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & unidades = {3}"

#Weather URL para recuperar dados

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

# atraso para controle de relé, segundos

ControlDelay = 2 A = 0 B = 0 enquanto True: #date para usar no nome do arquivo de log datestr = datetime.datetime.now (). Strftime ("% Y% m% d") #data e hora para usar para cada linha de dados localtime = datetime.datetime.now (). strftime ("% Y /% m /% d% H:% M") #CSV file path path = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' enquanto B == 0: try: #Pull temperatura e ponto de orvalho do NWS a cada 60 segundos final_url = BASE_URL.format (settings ["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"] ["temperature"] ["value"] dewRaw = weather_data.json () ["properties"] ["ponto de orvalho"] ["valor"] # impressão diagnóstica para impressão de dados brutos de temperatura (oatRaw, dewRaw) OAT = redondo (oatRaw, 3) Dew = redondo (dewRaw, 3) exceto: A = 0 B = 1 intervalo A = 0 B = 1 quebra se A <300: A = A + ControlDelay else: B = 0 #Leia a tensão bruta do Raspberry Pi Explorer PHat e converta para 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 () #diagnostic print mostrando temperaturas, pontos de orvalho e impressão do estado de saída do relé ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. Formato (redondo (OAT, 3), redondo (Orvalho, 3), redondo (tempC, 3), explorerhat.output.two.read ())) # 10 segundos após o minuto passar, gravar dados em um arquivo CSV se A == 10: se os.path.isfile (path.format (datestr)): print (path.format (datestr)) com open (path.format (datestr), "a") como 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'] com aberto (path.format (datestr), "w ") como csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (fieldnames) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Salvei isso em uma nova pasta na pasta allsky chamada DewHeaterLogs.

Tente executá-lo um pouco para garantir que tudo esteja certo, antes de prosseguir para executá-lo como um script.

Etapa 6: Etapa 5: Executar o script na inicialização

Para executar o script Dew Heater assim que o Raspberry Pi for inicializado, segui as instruções aqui:

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

Para o script do Launcher, criei este:

#! / bin / sh

# launcher.sh # navegue para o diretório inicial, depois para este diretório, execute o script python e volte para a página inicial cd / cd home / pi / allsky / DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

Uma vez feito isso, você deve estar pronto para ir. Desfrute de uma câmera livre de orvalho!

Etapa 7: atualização de dezembro de 2020

Na metade do ano passado, meu aquecedor de orvalho parou de funcionar, então desativei o código até poder dar uma olhada nele. Finalmente tive algum tempo durante as férias de inverno e descobri que o relé que usei estava apresentando uma alta resistência em seus contatos durante a operação, provavelmente por estar sobrecarregado.

Então, eu o atualizei com um relé de classificação mais alta, um com contato 5A em vez de contato 1A. Além disso, é um relé de energia em vez de um relé de sinal, então espero que ajude. É um TE PCH-105D2H, 000. Também adicionei alguns terminais de parafuso para o Explorer pHAT, para poder desconectar facilmente o aquecedor e o sensor de temperatura conforme necessário. Todos os 3 estão neste carrinho de compras abaixo:

Carrinho de compras digikey

Esteja ciente de que os pinos para este relé são diferentes do anterior, então onde você conecta é um pouco diferente, mas deve ser direto. A polaridade não importa para a bobina, FYI.

Recomendado: