Съдържание:

Нагревател за роса Raspberry Pi за камера за цялото небе: 7 стъпки
Нагревател за роса Raspberry Pi за камера за цялото небе: 7 стъпки

Видео: Нагревател за роса Raspberry Pi за камера за цялото небе: 7 стъпки

Видео: Нагревател за роса Raspberry Pi за камера за цялото небе: 7 стъпки
Видео: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Юли
Anonim
Нагревател за роса Raspberry Pi за камера за цялото небе
Нагревател за роса Raspberry Pi за камера за цялото небе

[Вижте стъпка 7 за промяна в използваното реле]

Това е ъпгрейд на камера за всички небеса, която създадох след отличното ръководство на Томас Якин (Безжична камера за цялото небе) Често срещан проблем, който възниква при камерите на небето (и телескопите също) е, че росата ще се кондензира върху купола на камерата, когато стане по-студено при нощ, която затъмнява гледката към нощното небе. Решението е да се добави нагревател за роса, който ще загрее купола над точката на оросяване или температурата, при която водата ще се кондензира върху купола.

Често срещан начин да направите това е да пуснете ток през няколко резистора, който след това ще се нагрее и да го използвате като източник на топлина. В този случай, тъй като камерата вече има Raspberry Pi, исках да използвам това за управление на резисторната верига чрез реле, като ги включвам и изключвам, ако е необходимо, за да поддържам определена температура на купола над точката на оросяване. В купола за контрол се намира температурен сензор. Реших да извадя местни метеорологични данни за температурата и влажността от Националната метеорологична служба за необходимата информация за точката на оросяване, вместо да добавя друг сензор и се нуждая от проникване в корпуса на камерата, който може да изтече.

Raspberry Pi има GPIO заглавка, която позволява на платките за разширение да контролират физически устройства, но самият IO не е проектиран да се справи с тока, който изисква резисторна захранваща верига. Така че са необходими допълнителни компоненти. Планирам да използвам реле за изолиране на захранващата верига, така че е необходима IC релейна драйверна връзка за взаимодействие с Pi. Имам нужда и от температурен сензор за отчитане на температурата вътре в купола, така че е необходим аналогово -цифров преобразувател (ADC), за да може Pi да отчете температурата. Тези компоненти се предлагат поотделно, но можете също да закупите „шапка“за Pi, която съдържа тези устройства на дъска, която просто се включва в GPIO на Pi.

Отидох с Pimoroni Explorer pHAT, който има цял диапазон от I/O, но за моите цели той има четири аналогови входа в диапазона 0-5V и четири цифрови изхода, подходящи за задвижване на релета.

За сензора за куполна температура използвах TMP36, който ми хареса, защото има просто линейно уравнение за извличане на температурата от отчитането на напрежението. Използвам термистори и RTD в работата си, но те са нелинейни и следователно са по-сложни за изпълнение от нулата.

Използвах комплекта Perma Proto Bonnet Mini на Adafruit като платка за запояване на релето, клемния блок и друго окабеляване, което е хубаво, тъй като е оразмерено за Pi и има схема, свързана с това, което предлага Pi.

Това са основните неща. В крайна сметка получих почти всичко от Digikey, тъй като те предлагат частите на Adafruit в допълнение към всички нормални части на веригата, така че улеснява получаването на всичко наведнъж. Ето линк към количка за пазаруване с всички части, които поръчах:

www.digikey.com/short/z7c88f

Той включва няколко макари тел за джъмперните проводници, ако вече имате такива, не ви трябват.

Консумативи

  • Pimoroni Explorer pHAT
  • TMP36 температурен сензор
  • 150 ома 2W резистори
  • 1A 5VDC SPDT реле
  • Завийте клемен блок
  • Платка
  • Тел
  • разстояния между платките
  • спойка и поялник

Списък на частите на digikey:

www.digikey.com/short/z7c88f

Стъпка 1: Бележки за електрическата теория

Важно е да се гарантира, че използваните компоненти са с подходящ размер, за да се справят със захранването и тока, които ще видят, в противен случай може да имате преждевременна повреда или дори пожар!

Основните компоненти, за които трябва да се притеснявате в този случай, са текущата оценка на контактите на релето и мощността на резисторите.

Тъй като единственото натоварване в нашата захранваща верига са резисторите, можем просто да изчислим общото съпротивление, да го поставим в закона на Ом и да изчислим тока в нашата верига.

Общо съпротивление на паралелни резистори: 1/R_T = 1/R_1 +1/R_2 +1/R_3 +1/R_N

Ако отделните съпротивления са равни, може да се намали до: R_T = R/N. Така че за четири равни резистора е R_T = R/4.

Използвам четири 150 Ω резистора, така че общото ми съпротивление през четирите от тях е (150 Ω) /4=37,5 Ω.

Законът на Ом е просто напрежение = ток X съпротивление (V = I × R). Можем да пренаредим това, за да определим тока, за да получим I = V/R. Ако включим нашето напрежение от нашето захранване и нашето съпротивление, получаваме I = (12 V)/(37,5 Ω) = 0,32 A. Това означава най -малкото, че нашето реле трябва да бъде оценено на 0,32 A. Така че релето 1A, което използваме, е над 3 пъти размера, който е необходим, което е достатъчно.

За резисторите трябва да определим количеството мощност, преминаващо през всеки от тях. Уравнението на мощността се предлага в няколко форми (чрез заместване със закона на Ом), но най -удобното за нас е P = E^2/R. За нашия индивидуален резистор това става P = (12V)^2/150Ω = 0,96 W. Така че ще искаме поне 1 ватов резистор, но 2 вата ще ни дадат допълнителен фактор на безопасност.

Общата мощност на веригата ще бъде само 4 x 0,96 W или 3,84 W (Можете също да поставите общото съпротивление в уравнението на мощността и да получите същия резултат).

Записвам всичко това, така че в случай, че искате да се генерира повече енергия (повече топлина), можете да стартирате вашите числа и да изчислите необходимите резистори, тяхната оценка и рейтинга на необходимото реле.

Първоначално се опитах да пусна веригата с 5 волта от захранващата шина на Raspberry Pi, но генерираната мощност на резистор е само P = (5V)^2/150Ω = 0,166 W, за общо 0,66 W, което не беше t достатъчно, за да генерира повече от няколко градуса повишаване на температурата.

Стъпка 2: Стъпка 1: Запояване

Стъпка 1: Запояване
Стъпка 1: Запояване
Стъпка 1: Запояване
Стъпка 1: Запояване
Стъпка 1: Запояване
Стъпка 1: Запояване

Добре, стига с списъци с части и теория, нека да преминем към дизайна на веригата и запояването!

Начертал съм веригата на Proto-Bonnet по два различни начина, веднъж като схема на окабеляване и веднъж като визуално представяне на платката. Има и маркирана снимка на платката на Pimoroni Explorer pHAT, показваща окабеляването, което преминава между нея и прото-капака.

На Explorer pHAT 40 -пиновият хедър, който се доставя с него, трябва да бъде запоен към платката, това е връзката между него и Raspberry Pi. Той идва с терминална заглавка за I/O, но не го използвах, а просто запоявах проводници директно към платката. Proto-Bonnet също включва връзки за заглавката, но в този случай не се използва.

Температурният сензор е свързан директно към платката Explorer pHAT с помощта на проводници, за да се компенсира разликата между местоположението на Raspberry Pi и вътрешността на купола на камерата, където се намира.

Винтовият клемен блок и контролното реле са двата компонента, които са запоени към платката Proto-Bonnet, като в схемата са обозначени с T1, T2, T3 (за трите винтови клеми) и CR1 за релето.

Резисторите са запоени към проводници, които също преминават от Raspberry Pi към Camera Dome, те се свързват към Proto-Bonnet чрез винтовите клеми на T1 и T3. Забравих да направя снимка на монтажа, преди да инсталирам камерата на покрива си, но се опитах да разпределя резисторите равномерно около купола, като само два проводника се връщат към прото-капака. Влезте в купола през отвори на противоположните страни на тръбата, като температурният сензор влиза през трети отвор, равномерно разположен между два от резисторите близо до ръба на купола.

Стъпка 3: Стъпка 2: Монтаж

Стъпка 2: Монтаж
Стъпка 2: Монтаж

След като всичко е споено заедно, можете да го инсталирате на вашата камера за цялото небе. Монтирайте Explorer pHAT на Rasperry Pi, като го натиснете върху 40-пиновия хедър, а след това Proto-Bonnet се монтира в непосредствена близост до него върху Pi, като се използват някои стойки. Друг вариант е да се използват стойки отгоре на Explorer, но тъй като използвах корпуса на ABS Pipe, това направи Pi твърде голям, за да пасне повече.

Насочете температурния сензор нагоре към корпуса до неговото място и монтирайте и резисторния сноп. След това свържете кабелния сноп към клемния блок на пра-платката.

Към програмирането!

Стъпка 4: Стъпка 3: Зареждане на PHAT библиотеката на Explorer и тестово програмиране

Преди да можем да използваме Explorer pHAT, трябва да заредим библиотеката за него от Pimoroni, за да може Pi да комуникира с него.

На вашия Raspberry Pi отворете терминала и въведете:

curl https://get.pimoroni.com/explorerhat | баш

Въведете „y“или „n“, за да завършите инсталацията.

След това ще искаме да стартираме проста програма за тестване на входовете и изходите, за да сме сигурни, че окабеляването ни е правилно. Приложеният DewHeater_TestProg.py е скрипт на python, който показва температурата и включва и изключва релето на всеки две секунди.

време за импортиране

импортирайте изследовател това забавяне = 2, докато True: T1 = explorerhat.analog.one.read () tempC = ((T1*1000) -500)/10 tempF = tempC*1.8 +32 печат ('{0: 5.3f} волта, {1: 5.3f} degC, {2: 5.2f} deg F'.формат (кръг (T1, 3), кръг (tempC, 3), кръг (tempF, 3))) V1 = explorerhat.output.two. on () print ('Relay on') time.sleep (забавяне) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (забавяне)

Можете да отворите файла на вашия малинов Pi (моят се отвори в Thonny, но има и много други редактори на Python) и след това да го стартирате и той трябва да започне да показва температурата и ще чуете натискане и изключване на релето! Ако не, направете проверка на кабелите и веригите си.

Стъпка 5: Стъпка 4: Зареждане на програмирането на нагревателя за роса

Ето пълното програмиране на нагревателя за роса. Той прави няколко неща:

  • Изтегля текущата външна температура и точка на оросяване от дадено местоположение на Националната метеорологична служба на всеки пет минути. Ако не получи данни, той запазва предишните температури и опитва отново след още пет минути.

    • NWS иска информацията за контакт да бъде включена в заявките за API, в случай че има проблеми с искането, те знаят към кого да се свържат. Това е в ред 40 от програмирането, моля заменете „[email protected]“със собствен имейл адрес.
    • Ще трябва да отидете на weather.gov и да потърсите прогноза за вашия район, за да получите идентификационния номер на гарата, която е най -близката метеорологична станция в NWS. Идентификационният номер на станцията е в () след името на местоположението. Въведете това в ред 17 от програмирането. В момента показва KPDX или Портланд, Орегон.
    • Ако сте извън САЩ, има друга възможност да използвате данни от OpenWeatherMap.org. Не съм го пробвал сам, но можете да разгледате този пример тук: Reading-JSON-With-Raspberry-Pi
  • Обърнете внимание, че температурите от NWS и от температурния сензор са в градуси по Целзий, както и тези за камерата ASI, така че за последователност ги запазих всички Centrigrade, вместо да конвертирам във Фаренхайт, с което съм по -свикнал.
  • След това той отчита температурата от сензора на купола и ако е по -малко от 10 градуса над точката на оросяване, тогава включва релето. Ако е по -голямо от 10,5 градуса над точката на оросяване, то изключва релето. Можете да промените тези настройки, ако желаете.
  • Веднъж в минута той регистрира текущите стойности за температурите, точката на оросяване и състоянието на релето в.csv файл, за да можете да видите как се справя с времето.

#Raspberry Pi програма за управление на нагревателя за роса

#Dec 2019 #Brian Plett #Използва Pimoroni Explorer pHAT, температурен сензор и реле #за управление на резисторна верига като нагревател на роса за камера за цялото небе #Издърпва външната температура на въздуха и точката на оросяване от уебсайта на NWS #поддържа вътрешна температура 10 градуса над точката на роса време за импортиране импортиране дата -време заявки за импортиране импортиране csv внос os импорт explorer </b> #ID на станцията е най -близката метеорологична станция в NWS. Отидете на weather.gov и потърсете forcast за вашия район, #station ID е в () след името на местоположението. settings = {'station_ID': 'KPDX',} #Alternate URL за информация за времето #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & единици = {3}"

#Weather URL за извличане на данни

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

#закъснение за управление на релето, секунди

ControlDelay = 2 A = 0 B = 0, докато True: #date за използване в лог име на файл datestr = datetime.datetime.now (). Strftime ("%Y%m%d") #дата и време за използване за всеки ред данни localtime = datetime.datetime.now (). strftime ("%Y/%m/%d%H:%M") #CSV пътека към файла = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' докато B == 0: опитайте: #Пул температура и точка на оросяване от NWS на всеки 60 секунди final_url = BASE_URL.format (настройки ["station_ID"]) weather_data = requests.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["свойства"] ["температура"] ["стойност"] dewRaw = weather_data.json () ["свойства"] ["точка на оросяване"] ["стойност"] #диагностичен печат за отпечатване на данни за сурова температура (oatRaw, dewRaw) OAT = кръг (oatRaw, 3) Роса = кръгла (dewRaw, 3) с изключение на: A = 0 B = 1 прекъсване A = 0 B = 1 прекъсване, ако A <300: A = A + Control Забавяне в противен случай: B = 0 #Прочетете необработеното напрежение от Raspberry Pi Explorer PHat и преобразувайте в температура 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 () #диагностичен печат, показващ температури, точки на оросяване и състояние на изхода на релето ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. Формат (кръг (OAT, 3), кръг (Dew, 3), кръг (tempC, 3), explorerhat.output.two.read ())) #10 секунди след преобръщането на минутата, запишете данни в CSV файл, ако A == 10: ако os.path.isfile (path.format (datestr)): print (path.format (datestr)) с отворен (path.format (datestr), "a") като 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'] с отворен (path.format (datestr), "w ") като csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (имена на полета) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Запазих това в нова папка под папката allsky, наречена DewHeaterLogs.

Опитайте да изпълните това за малко, за да сте сигурни, че всичко изглежда добре, преди да преминете към изпълнението му като скрипт.

Стъпка 6: Стъпка 5: Стартиране на скрипт при стартиране

За да стартирам скрипта Dew Heater веднага след стартирането на Raspberry Pi, следвах инструкциите тук:

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

За скрипта Launcher създадох това:

#!/bin/sh

# launcher.sh # отидете в началната директория, след това в тази директория, след това изпълнете скрипта на python, след това се върнете у дома cd/cd home/pi/allsky/DewHeaterLogs спите 90 sudo python DewHeater_Web.py & cd/

След като това е направено, трябва да сте готови. Насладете се на камера без роса!

Стъпка 7: Актуализиране на декември 2020 г

Около половината от миналата година нагревателят ми за роса спря да работи, така че деактивирах кода, докато не го погледна. Най -накрая имах известно време през зимната ваканция и установих, че релето, което използвах, показва високо съпротивление на контактите си по време на работа, вероятно от претоварване.

Затова го актуализирах с реле с по -висок рейтинг, едно с 5А контакт, а не с 1А контакт. Също така е по -скоро реле за захранване, отколкото сигнално реле, така че се надявам да помогне. Това е TE PCH-105D2H, 000. Добавих и няколко винтови клеми за Explorer pHAT, за да мога лесно да изключвам нагревателя и температурния сензор, ако е необходимо. И трите са в тази количка за пазаруване по -долу:

Количка за пазаруване Digikey

Имайте предвид, че щифтовете за това реле са различни от предишното, така че мястото, където се свързвате, е малко по -различно, но трябва да е ясно. Полярността няма значение за бобината, FYI.

Препоръчано: