Мазмуну:

Асмандагы камера үчүн Raspberry Pi шүүдүрүм жылыткычы: 7 кадам
Асмандагы камера үчүн Raspberry Pi шүүдүрүм жылыткычы: 7 кадам

Video: Асмандагы камера үчүн Raspberry Pi шүүдүрүм жылыткычы: 7 кадам

Video: Асмандагы камера үчүн Raspberry Pi шүүдүрүм жылыткычы: 7 кадам
Video: BTT - Manta E3EZ - CB1 with EMMc install 2024, Ноябрь
Anonim
Асман камерасы үчүн Raspberry Pi шүүдүрүм жылыткычы
Асман камерасы үчүн Raspberry Pi шүүдүрүм жылыткычы

[Колдонулган релени өзгөртүү үчүн 7 -кадамды караңыз]

Бул Томас Жакиндин эң сонун көрсөтмөсүнө ылайык курулган асмандагы камеранын жаңыртылышы (Зымсыз Бардык Асман Камерасы) Асман камераларында (жана телескоптордо да) пайда болгон жалпы көйгөй-бул суук түшкөндө камеранын куполунда шүүдүрүм пайда болот. түн, асмандын көрүнүшүн караңгылатат. Чечим - күмбөздү шүүдүрүм чекитинен жогору жылытуучу шүүдүрүм жылыткычты же суу куполдо конденсацияланган температураны кошуу.

Муну жасоонун жалпы жолу - бир нече резистор аркылуу токту иштетүү, ал кийин ысыйт жана аны жылуулук булагы катары колдонуу. Бул учурда, камерада Raspberry Pi бар болгондуктан, мен муну шүүдүрүм чекитинин үстүндөгү белгилүү бир куполдун температурасын кармап туруу үчүн керек болгондо, аларды реле аркылуу резистордун схемасын көзөмөлдөө үчүн колдонгум келген. Күмбөздө көзөмөлдөө үчүн температура сенсору жайгашкан. Мен башка сенсорду кошпой, керектүү шүүдүрүм чекитинин маалыматы үчүн Улуттук Аба ырайы кызматынан жергиликтүү аба ырайынын температурасы жана нымдуулук маалыматын алууну чечтим жана камерамдын корпусуна агып кетиши керек.

Raspberry Pi физикалык түзмөктөрдү көзөмөлдөө үчүн кеңейтүү такталарына мүмкүндүк берген GPIO аталышына ээ, бирок IO өзү резистордун электр схемасынын талаптарын аткаруу үчүн иштелип чыккан эмес. Ошентип, кошумча компоненттер керек. Мен электр чынжырын обочолонтуу үчүн релени колдонууну пландап жатам, андыктан Пи менен иштөө үчүн IC релелик айдоочу керек. Мага ошондой эле куполдун ичиндеги температураны окуу үчүн температура сенсору керек, андыктан Pi температураны окуй алышы үчүн санариптик конвертерге (ADC) аналог керек. Бул компоненттер жекече жеткиликтүү, бирок сиз Pi үчүн GPOго туташкан тактада бул түзмөктөрдү камтыган Pi үчүн "шляпа" сатып алсаңыз болот.

Мен Pimoroni Explorer pHAT менен бардым, ал бардык I/O диапазонуна ээ, бирок менин максатым үчүн ал 0-5V диапазонундагы 4 аналогдук киришке жана реле айдоого ылайыктуу төрт санариптик чыгууга ээ.

Куполдун температурасы сенсору үчүн мен TMP36ны колдондум, анткени ал чыңалуу көрсөткүчүнөн температураны алуу үчүн жөнөкөй сызыктуу теңдемеге ээ. Мен жумушумда термисторлорду жана РТДдерди колдоном, бирок алар сызыктуу эмес, демек нөлдөн баштап ишке ашыруу татаалыраак.

Мен Adafruit's Perma Proto Bonnet Mini комплектин реле, терминал блогу жана башка зымдарды туташтыруу үчүн схема катары колдондум, бул Pi үчүн чоңдугу жакшы, жана Pi сунуштаган схемаларга тиешелүү.

Бул негизги нерселер. Мен Digikeyден баардыгын алууну аяктадым, анткени алар Adafruitтин бөлүктөрүн кадимки чынжыр бөлүктөрүнөн тышкары камдап коюшкан, ошондуктан бардыгын дароо алуу оңой. Бул жерде мен заказ кылган бардык бөлүктөрү бар соода арабасына шилтеме:

www.digikey.com/short/z7c88f

Ага секирүүчү зымдар үчүн бир нече оролгон зымдар кирет, эгер сизде мурунтан эле бар болсо, анын кереги жок.

Жабдуулар

  • Pimoroni Explorer pHAT
  • TMP36 температура сенсору
  • 150 Ohm 2W каршылыгы
  • 1A 5VDC SPDT релеси
  • Бурамалуу терминал блогу
  • Circuit board
  • Зым
  • райондук такталар
  • ширетүүчү & ширетүүчү темир

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 А. биз колдонуп жаткан 1А реле керектүү өлчөмдөн 3 эсе көп, бул көп.

Резисторлор үчүн биз ар биринен өтүүчү кубаттуулукту аныкташыбыз керек. Күч теңдемеси бир нече формада болот (Ом мыйзамы менен алмаштыруу жолу менен), бирок биз үчүн эң ыңгайлуусу P = E^2/R. Жеке резисторубуз үчүн бул P = (12V)^2/150Ω = 0.96 W. болуп калат, ошондуктан биз жок дегенде 1 ватт резисторду каалайбыз, бирок 2 ватт бизге кошумча коопсуздук факторун берет.

Райондун жалпы күчү 4 х 0,96 Вт же 3,84 Вт болмокчу (Сиз дагы жалпы каршылыкты кубаттуулук теңдемесине салып, ошол эле натыйжаны ала аласыз).

Мен мунун баарын жазып жатам, ошондуктан сиз көбүрөөк энергия өндүрүүнү кааласаңыз (көбүрөөк жылуулук), сиз өзүңүздүн номерлериңизди иштетип, керектүү резисторлорду, алардын рейтингин жана керектүү реленин рейтингин эсептей аласыз.

Мен башында Raspberry Pi электр темир жолунан 5 вольт менен схеманы иштетүүгө аракет кылдым, бирок бир резисторго өндүрүлгөн кубат P = (5V)^2/150Ω = 0.166 Вт, бардыгы болуп 0.66 Вт, температуранын бир нече градуска көтөрүлүшүнө жетиштүү.

2 -кадам: 1 -кадам: Лайкоо

1 -кадам: ширетүү
1 -кадам: ширетүү
1 -кадам: ширетүү
1 -кадам: ширетүү
1 -кадам: ширетүү
1 -кадам: ширетүү

Макул, тетиктердин тизмеси жана теориясы жетиштүү, келгиле, схеманын дизайнына жана ширетүүгө өтөлү!

Мен Proto-Bonnetтеги схеманы эки башка жол менен тарттым, бирөө зымдардын схемасы катары, бирде тактанын визуалдык көрүнүшү катары. Ошондой эле Pimoroni Explorer pHAT тактасынын белгиленген сүрөтү бар, аны менен Proto-Bonnetтин ортосундагы зымдарды көрсөтөт.

Explorer pHATта, аны менен кошо келген 40 пин башы тактага ширетилиши керек, бул аны менен Raspberry Pi ортосундагы байланыш. Бул I/O үчүн терминалдык баш менен келет, бирок мен аны колдонгон жокмун, тескерисинче, зымдарды тактага такай ширетишти. Proto-Bonnet ошондой эле баш үчүн байланыштарды камтыйт, бирок бул учурда колдонулбайт.

Температура сенсору Raspberry Pi менен Камера Куполунун ичиндеги айырманы аныктоо үчүн зымдарды колдонуп Explorer pHAT тактасына түз өткөрүлөт.

Screw терминалынын блогу жана башкаруу релеси-бул Proto-Bonnet тактасына кошулган эки компонент, схемада алар T1, T2, T3 (үч бурамалуу терминал үчүн) жана CR1 деп белгиленген.

Резисторлор Raspberry Piден Камера куполуна чейин жетелейт, алар T1 жана T3 бурамалуу терминалдары аркылуу Proto-Bonnetке туташат. Камераны үйүмдүн чатырына кайра орнотконго чейин, чогулуштун сүрөтүн тартууну унутуп койгом, бирок резисторлорду күмбөздүн тегерегине тегиз бөлүп салууга аракет кылдым, болгону эки зым Proto-Bonnetке кайтып келди. Күмбөгө түтүктүн карама -каршы жагындагы тешиктер аркылуу кирет, температура сенсору үчүнчү тешик аркылуу кирет, куполдун четине жакын эки резистордун ортосунда бирдей жайгашат.

3 -кадам: 2 -кадам: Ассамблея

2 -кадам: Ассамблея
2 -кадам: Ассамблея

Баары чогуу ширетилгенден кийин, аны асмандагы камераңызга орното аласыз. Explorer pHATти Rasperry Piге орнотуп, аны 40 пин башына түртүп коюңуз, андан кийин Proto-Bonnet кээ бир карама-каршылыктарды колдонуп, Пинин үстүнө жанаша орнотулат. Дагы бир вариант Explorerдин үстүндөгү тирешүүлөрдү колдонот, бирок мен ABS Pipe корпусун колдонуп жүргөндүктөн, ал Пиди чоңураак кылып койгондой кылып койду.

Температура сенсорун корпуска чейин жеткирип, резистордун туткасын да орнотуңуз. Андан кийин, байлоону прото тактасындагы терминал блогуна зым менен жабыңыз.

Программалоого өт!

4 -кадам: 3 -кадам: Explorer PHAT китепканасын жүктөө жана тестирлөө программасы

PHAT Explorerди колдонуудан мурун, Пиморониден китепкананы Пиморониден жүктөп алышыбыз керек, ошондо Пи аны менен баарлаша алат.

Сиздин Raspberry Pi'де терминалды ачыңыз жана киргизиңиз:

тароо https://get.pimoroni.com/explorerhat | bash

Орнотууну аягына чыгаруу үчүн "y" же "n" териңиз.

Андан кийин, биз зымдарыбыздын туура болушун камсыз кылуу үчүн, кириштерди жана чыгууларды текшерүү үчүн жөнөкөй программаны иштеткибиз келет. Тиркелген DewHeater_TestProg.py - бул питон скрипти, ал температураны көрсөтөт жана релени эки секунд сайын күйгүзүп жана өчүрүп турат.

импорттоо убактысы

импорт explorerhat кечигүүсү = 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 (delay) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (delay)

Сиз файлды малина Пиңизде ача аласыз, (ал менин Тонниде ачылган, бирок ал жерде башка Python редакторлору дагы көп), анан аны иштетип көрүңүз, ал температураны көрсөтө баштайт, жана сиз басуу жана өчүрүү релеси! Болбосо, зымдарды жана микросхемаларды текшерип көрүңүз.

5 -кадам: 4 -кадам: Шүүдүрүм жылыткычын программалоо

Бул жерде толук шүүдүрүм жылыткыч программалоо. Ал бир нече нерсени аткарат:

  • Учурдагы сырткы температураны жана шүүдүрүм чекитин ар бир беш мүнөт сайын Улуттук Аба ырайы кызматынын жайгашкан жеринен тартып алат. Эгерде ал маалымат ала албаса, анда ал мурунку температураны сактап, дагы беш мүнөттөн кийин кайра аракет кылат.

    • NWS байланыш маалыматы API сурамдарына киргизилишин суранат, эгерде суроо менен көйгөйлөр пайда болсо, алар кимге кайрылууну билишет. Бул программалоонун 40 -сабында, '[email protected]'ду өзүнүн электрондук почта дареги менен алмаштырыңыз.
    • NWSтеги эң жакын аба ырайы бекети болгон Station ID алуу үчүн, weather.gov сайтына кирип, өзүңүздүн аймакка карата божомолду издешиңиз керек болот. Станциянын идентификатору () жайгашкан жердин аталышынан кийин. Муну программалоонун 17 -сабына киргизиңиз. Учурда ал KPDX же Портленд, Орегон штатын көрсөтөт.
    • Эгерде сиз АКШдан тышкары болсоңуз, OpenWeatherMap.org маалыматын колдонуунун дагы бир мүмкүнчүлүгү бар. Мен өзүм аракет кылган эмесмин, бирок бул мисалды бул жерден карасаңыз болот: Окуу-JSON-менен-Малина-Пи
  • NWSтен жана температура сенсорунан келген температуралар ASI камерадагыдай Центр градуста экенин эске алыңыз, ошондуктан ырааттуулук үчүн, мен Фаренгейтке айландыруунун ордуна, алардын баарын Центриградда сактап калдым, бул мен көбүрөөк көнүп калган нерсе..
  • Андан кийин, ал купол сенсорунан температураны окуйт жана эгер ал шүүдүрүм чекиттен 10 градустан төмөн болсо, анда релени күйгүзөт. Эгерде ал шүүдүрүм чекитинен 10,5 градустан жогору болсо, анда реле өчөт. Кааласаңыз, бул орнотууларды өзгөртө аласыз.
  • Мүнөтүнө бир жолу, ал температуранын, шүүдүрүм чекиттин жана реле статусунун учурдагы маанилерин.csv файлына жазат, андыктан анын убакыттын өтүшү менен кандайча аткарылып жатканын көрө аласыз.

#Малина Pi шүүдүрүм жылыткычын башкаруу программасы

#Дек 2019 #Брайан Плетт #Pimoroni Explorer pHAT, температура сенсорун жана релени #бүт асман камерасы үчүн шүүдүрүм жылыткыч катары каршылыктын схемасын башкаруу үчүн колдонот #NWS веб-сайтынан абанын температурасы менен шүүдүрүм чекитин #ички температураны 10 кармайт шүүдүрүм чекиттин импорт убактысынан импорттоо датасы боюнча импорттук сурамдарды импорттоо csv импорттоо импорт изилдөөчүсү #Station ID NWSтеги эң жакын аба ырайы бекети. Weather.gov дарегине кирип, аймагыңыз үчүн алдын ала издеңиз, #бекеттин идентификатору жайгашкан жердин аталышынан кийин () ичинде. settings = {'station_ID': 'KPDX',} #Аба ырайы маалыматы үчүн башка URL #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & бирдик = {3}"

Берилиштерди калыбына келтирүү үчүн #Аба ырайы 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: аракет кылыңыз: #60 секунд сайын NWSтен температураны жана шүүдүрүм чекитин чыгарыңыз final_url = BASE_URL.format (орнотуулар ["station_ID"]) weather_data = өтініштер.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["касиеттери"] ["температурасы"] ["балл"] dewRaw = аба ырайы_жылы () ["касиеттери"] ["шүүдүрүм чекити"] ["балл"] Чийки температура маалыматын басып чыгаруу үчүн #диагностикалык басып чыгаруу (oatRaw, dewRaw) OAT = тегерек (oatRaw, 3) Шүүдүр = тегерек (dewRaw, 3) тышкары: A = 0 B = 1 тыныгуу A = 0 B = 1 тыныгуу A <300: A = A + ControlDelay башка: 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 () #diagnostic басып чыгаруу температураларды, шүүдүрүм чекиттерди жана реле чыгаруу абалынын басылышын көрсөтөт ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} градус C {3: 5.0f} '. Формат (тегерек (OAT, 3), тегерек (Шүүдүрүм, 3), тегерек (tempC, 3), explorerhat.output.two.read ())) #10 секунддан кийин мүнөт оодарылгандан кийин, CSV файлына маалыматтарды жазыңыз, эгер A == 10: if os.path.isfile (path.format (datestr))): print (path.format (datestr)) with open (path.format (datestr), "a") with 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 ") csvfile катары: txtwrite = csv.writer (csvfile) txtwrite.writerow (талаа аттары) txtwrite.writerow ([жергиликтүү убакыт, OAT, шүүдүрүм, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Мен муну DewHeaterLogs деп аталган allsky папкасынын астындагы жаңы папкага сактап койдум.

Сценарий катары иштетүүдөн мурун, баары жакшы көрүнүшү үчүн муну бир аз иштетип көрүңүз.

6 -кадам: 5 -кадам: Баштоодо скриптти иштетүү

Raspberry Pi иштей баштаганда Dew Heater сценарийин иштетүү үчүн, мен бул жердеги көрсөтмөлөрдү аткардым:

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

Ишке киргизүүчү скрипт үчүн мен муну түздүм:

#!/bin/sh

# launcher.sh # үй каталогуна, андан кийин бул каталогго өтүңүз, андан кийин python скриптин аткарыңыз, андан кийин үйгө кайтыңыз CD/cd home/pi/allsky/DewHeaterLogs 90 sudo python DewHeater_Web.py & cd/

Бул бүткөндөн кийин, сиз барууга жакшы болушуңуз керек. Шүүдүрүмсүз камерадан ырахат алыңыз!

7 -кадам: Дек 2020 -ж. Жаңыртуу

Өткөн жылдын жарымында, менин шүүдүрүм жылыткычым иштебей калды, ошондуктан мен аны карап көргөнгө чейин кодду өчүрдүм. Акыры кышкы тыныгуудан бир аз убакыт өттү, жана мен колдонгон реле иштөө учурунда анын контактыларында жогорку каршылык көрсөткөнүн, балким, ашыкча жүктөлүп калганын көрдүм.

Ошентип, мен аны 1А контактка эмес, 5А контактка ээ болгон жогорку реле менен жаңырттым. Ошондой эле бул сигнал релеси эмес, күч релеси, ошондуктан мен жардам берет деп үмүттөнөм. Бул TE PCH-105D2H, 000. Мен Explorer pHAT үчүн кээ бир бурама терминалдарды коштум, андыктан керектүү учурда жылыткычты жана температура сенсорун оңой эле ажыратып коём. Булардын бардыгы тең төмөнкү соода арабасында:

Digikey соода арабасы

Бул эстафетанын төөнөгүчтөрүнүн мурункудан айырмаланып турганын билиңиз, андыктан сиз зым салчу жерден бир аз башкачараак, бирок түз болушу керек. Полярдыктын катушка мааниси жок, FYI.

Сунушталууда: