Агуулгын хүснэгт:

Бүх тэнгэрийн камерын Raspberry Pi шүүдэр халаагч: 7 алхам
Бүх тэнгэрийн камерын Raspberry Pi шүүдэр халаагч: 7 алхам

Видео: Бүх тэнгэрийн камерын Raspberry Pi шүүдэр халаагч: 7 алхам

Видео: Бүх тэнгэрийн камерын Raspberry Pi шүүдэр халаагч: 7 алхам
Видео: ПОЧЕМУ Я ЖДУ L4D3 2024, Долдугаар сарын
Anonim
Бүх тэнгэрийн камерт зориулсан Raspberry Pi шүүдэр халаагч
Бүх тэнгэрийн камерт зориулсан Raspberry Pi шүүдэр халаагч

[Ашигласан релений өөрчлөлтийг 7 -р алхамаас харна уу]

Энэ бол Томас Жакиний маш сайн гарын авлагын дагуу бүтээсэн бүх тэнгэрийн камерын шинэчлэлт юм (Утасгүй бүх тэнгэрийн камер) Тэнгэрийн камеруудад (мөн дурангаар ч гэсэн) тохиолддог нийтлэг асуудал бол хүйтрэх тусам камерын бөмбөг дээр шүүдэр хуримтлагддаг явдал юм. шөнийн тэнгэрийн үзэмжийг далдлах шөнө. Асуудлын шийдэл бол шүүдэр халаах шүхэр халаагчийг нэмж, шүүдэр цэгээс дээгүүр халаах эсвэл бөмбөг дээрх ус конденсацлах температур юм.

Үүнийг хийх нийтлэг арга бол гүйдлийг хэд хэдэн резистороор дамжуулж, дараа нь халааж, дулааны эх үүсвэр болгон ашиглах явдал юм. Энэ тохиолдолд камер нь Raspberry Pi -тэй тул үүнийг ашиглан шүүдэр цэгээс дээш тодорхой бөмбөгөр температурыг хадгалахын тулд шаардлагатай бол асаах, унтраах замаар эсэргүүцлийн хэлхээг реле ашиглан удирдахыг хүссэн юм. Хяналтын зориулалттай бөмбөгөрт температур мэдрэгч байрладаг. Би өөр мэдрэгч нэмж оруулахын оронд шаардлагатай шүүдэр цэгийн мэдээллийг авахын тулд орон нутгийн цаг агаарын температур, чийгшлийн мэдээллийг Үндэсний цаг уурын албанаас авахаар шийдсэн бөгөөд камерынхаа гэрт нэвчих шаардлагатай байна.

Raspberry Pi нь GPIO толгойтой бөгөөд өргөтгөх самбарыг физик төхөөрөмжийг удирдах боломжийг олгодог боловч IO нь одоогийн эсэргүүцлийн цахилгаан хэлхээний шаардлагыг хангахад зориулагдаагүй болно. Тиймээс нэмэлт бүрэлдэхүүн хэсгүүд шаардлагатай болно. Би цахилгаан хэлхээг тусгаарлахын тулд реле ашиглахаар төлөвлөж байгаа тул Pi -тэй ажиллахын тулд реле драйвер IC шаардлагатай болно. Домбоны доторх температурыг уншихын тулд надад температур мэдрэгч хэрэгтэй тул дижитал хөрвүүлэгч (ADC) хэрэгтэй тул Pi температурыг уншиж чадна. Эдгээр бүрэлдэхүүн хэсгүүдийг дангаар нь худалдаж авах боломжтой, гэхдээ та эдгээр төхөөрөмжүүдийг агуулсан Pi -д зориулсан "малгай" худалдаж авах боломжтой бөгөөд энэ нь Pi -ийн GPIO -д залгагддаг.

Би Pimoroni Explorer pHAT-тэй явсан бөгөөд энэ нь бүх төрлийн оролт/гаралттай боловч миний хувьд 0-5V хооронд 4 аналог оролт, реле жолоодоход тохиромжтой дөрвөн дижитал гаралттай.

Dome температур мэдрэгчийн хувьд би TMP36 -ийг ашигласан бөгөөд энэ нь хүчдэлийн уншилтаас температурыг олж авах энгийн шугаман тэгшитгэлтэй тул надад таалагдсан. Би ажил дээрээ термистор ба RTD ашигладаг боловч тэдгээр нь шугаман бус байдаг тул эхнээс нь хэрэгжүүлэхэд илүү төвөгтэй байдаг.

Би Adafruit -ийн Perma Proto Bonnet Mini иж бүрдлийг реле, терминал блок болон бусад утсыг гагнахад зориулагдсан.

Эдгээр нь гол зүйлүүд юм. Би Digikey -аас ихэнх зүйлийг авч чадсан, учир нь тэд ердийн хэлхээний бүх хэсгүүдээс гадна Adafruit -ийн эд ангиудыг нөөцөлдөг тул бүгдийг нэг дор авахад хялбар болгодог. Энд миний захиалсан бүх эд анги бүхий худалдааны тэрэгний линк байна:

www.digikey.com/short/z7c88f

Үүнд холбогч утаснуудад зориулсан хэд хэдэн дамар утас багтсан болно, хэрэв танд аль хэдийн байгаа бол танд хэрэггүй болно.

Хангамж

  • Pimoroni Explorer pHAT
  • TMP36 температур мэдрэгч
  • 150 Ом 2W эсэргүүцэл
  • 1А 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 А байх ёстой. бидний ашиглаж буй 1А реле нь шаардлагатай хэмжээнээс 3 дахин их байгаа нь хангалттай юм.

Резисторуудын хувьд бид тус бүрээр дамжих хүчийг тодорхойлох хэрэгтэй. Эрчим хүчний тэгшитгэл нь хэд хэдэн хэлбэрээр ирдэг (Омын хуулиар орлуулах замаар), гэхдээ бидэнд хамгийн тохиромжтой зүйл бол P = E^2/R юм. Хувь хүний эсэргүүцлийн хувьд энэ нь P = (12V)^2/150Ω = 0.96 Вт болно. Тиймээс бид дор хаяж 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 хавтангийн өөр хоорондоо холбосон утсыг харуулсан гэрэл зураг бас бий.

Explorer pHAT дээр 40 зүү толгойг самбар дээр гагнах шаардлагатай бөгөөд энэ нь Raspberry Pi -ийн хоорондох холбоо юм. Энэ нь I/O -ийн терминал толгойтой ирдэг, гэхдээ би үүнийг ашиглаагүй, харин утсыг шууд самбар дээр гагнах болно. Proto-Bonnet нь толгойн холболтыг агуулдаг боловч энэ тохиолдолд ашигладаггүй.

Температур мэдрэгчийг Raspberry Pi -ийн байршил ба камерын бөмбөгөр дотор талын ялгааг арилгахын тулд утас ашиглан pHAT хавтанг Explorer руу шууд холбодог.

Шураг терминалын блок ба хяналтын реле нь Proto-Bonnet самбар дээр гагнагдсан хоёр бүрэлдэхүүн хэсэг бөгөөд схемд T1, T2, T3 (гурван шураг терминалын хувьд), релений хувьд CR1 гэж тэмдэглэгдсэн болно.

Резисторууд нь Raspberry Pi-аас Камерын бөмбөгөр рүү хөтлөгддөг бөгөөд тэдгээр нь T1 ба T3-ийн шураг терминалуудаар дамжуулан Proto-Bonnet-тэй холбогддог. Камерыг дээвэр дээрээ суурилуулахаасаа өмнө угсралтын зургийг авахаа мартсан боловч хоёр бөмбөгийг Прото-Боннет руу буцаж ирэхэд резисторуудыг бөмбөгөр тойруулан тэгшхэн гаргахыг хичээсэн. Домбоны хоолойн эсрэг талын нүхээр дамжин орох бөгөөд температур мэдрэгч нь бөмбөгний ирмэгийн ойролцоо хоёр эсэргүүцэгчийн хооронд жигд зайтай гурав дахь нүхээр ордог.

Алхам 3: Алхам 2: Чуулган

Алхам 2: угсрах
Алхам 2: угсрах

Бүгдийг хамт гагнаж дууссаны дараа та бүх тэнгэрийн камер дээрээ суулгаж болно. Explorer pHAT-ийг Rasperry Pi дээр байрлуулж, 40 зүү толгой дээр дарж, дараа нь Proto-Bonnet-ийг хажуугийн хажууд Pi-ийн орой дээр байрлуулж, зарим зогсолтыг ашиглана. Өөр нэг сонголт бол Explorer -ийн орой дээр зогсолт хийх явдал юм, гэхдээ би ABS хоолойн хаалтыг ашиглаж байсан тул энэ нь Pi -г хэт том болгож, өөр хэмжээтэй тохирохгүй болгосон.

Температур мэдрэгчийг хашаа руу байрлуулж, эсэргүүцлийн бэхэлгээг суулгана уу. Дараа нь бэхэлгээг самбар дээрх терминал блок руу утсаар холбоно.

Програмчлал руу орцгооё!

Алхам 4: Алхам 3: Explorer PHAT номын санг ачаалах, тест програмчлал

Explorer pHAT -ийг ашиглахаасаа өмнө бид Пиморонигоос номын санг ачаалах хэрэгтэй бөгөөд ингэснээр Pi түүнтэй холбогдох боломжтой болно.

Raspberry Pi дээрээ терминалыг нээгээд дараахийг оруулна уу.

буржгар https://get.pimoroni.com/explorerhat | bash

Суулгалтыг дуусгахын тулд зохих ёсоор 'y' эсвэл 'n' гэж бичнэ үү.

Дараа нь бид утаснууд зөв эсэхийг шалгахын тулд оролт, гаралтыг шалгах энгийн програмыг ажиллуулахыг хүсч байна. Хавсаргасан DewHeater_TestProg.py нь температурыг харуулдаг питон скрипт бөгөөд релеийг хоёр секунд тутамд асааж, унтраана.

импортлох хугацаа

import explorerhat delay = 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} градус 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 (саатал)

Та өөрийн бөөрөлзгөнө Pi дээрх файлыг нээж болно (миний дээр Thonny -д нээгдсэн боловч Python -ийн бусад олон редакторууд бас байдаг), дараа нь ажиллуулаад температурыг харуулж эхлэх болно, та үүнийг сонсох болно. реле дарж унтраана уу! Үгүй бол утас болон хэлхээнийхээ байдлыг шалгаж үзээрэй.

Алхам 5: Алхам 4: Шүүдэр халаагчийн програм хангамжийг ачаалах

Энд шүүдэр халаагчийн бүрэн програмчлал байна. Энэ нь хэд хэдэн зүйлийг хийдэг:

  • Үндэсний цаг уурын үйлчилгээний тодорхой байршилаас одоогийн гаднах температур, шүүдэр цэгийг таван минут тутамд татаж авдаг. Хэрэв энэ нь мэдээлэл авахгүй бол өмнөх температурыг хадгалж, дахин таван минутын дараа дахин оролдоно.

    • NWS нь холбоо барих мэдээллийг API хүсэлтэд оруулахыг хүсч байгаа бөгөөд хэрэв хүсэлтэй холбоотой асуудал гарвал тэд хэнтэй холбоо барихаа мэддэг. Энэ нь програмчлалын 40 -р мөрөнд байгаа бөгөөд '[email protected]' хаягийг өөрийн имэйл хаягаар оруулна уу.
    • NWS -ийн хамгийн ойрын цаг уурын станц болох станцын ID -г авахын тулд та weather.gov хаягаар орж, тухайн бүс нутгийнхаа урьдчилсан мэдээг хайх хэрэгтэй болно. Станцын ID нь байршлын нэрний ард () байна. Үүнийг програмчлалын 17 -р мөрөнд оруулна уу. Одоогоор энэ нь KPDX буюу Орегоны Портландыг харуулж байна.
    • Хэрэв та АНУ -аас гадуур байгаа бол OpenWeatherMap.org -ийн өгөгдлийг ашиглах өөр боломж бий. Би өөрөө үүнийг туршиж үзээгүй, гэхдээ та энэ жишээг эндээс харж болно: Унших-JSON-Бөөрөлзгөнө-Пи
  • NWS ба температур мэдрэгчийн температур нь ASI камертай адил градусаар хэмжигддэг тул тууштай байхын тулд би Фаренгейт рүү хөрвүүлэхийн оронд бүгдийг нь хадгалж үлдээсэн..
  • Дараа нь энэ нь бөмбөг мэдрэгчээс температурыг уншдаг бөгөөд хэрэв шүүдэр цэгээс дээш 10 градусаас доош байвал реле асдаг. Хэрэв шүүдэр цэгээс 10.5 хэмээс дээш байвал реле унтрах болно. Хэрэв та хүсвэл эдгээр тохиргоог өөрчилж болно.
  • Энэ нь минутанд нэг удаа температур, шүүдэр цэг, буухиа байдлын одоогийн утгыг.csv файлд бүртгэдэг бөгөөд энэ нь цаг хугацааны явцад хэрхэн яаж байгааг харах боломжтой болно.

#Raspberry Pi шүүдэр халаагчийн хяналтын програм

#2019 оны 12-р сар шүүдэр цэгийн импортын хугацаанаас дээш градус импортлох datetime импортын хүсэлт импорт csv импорт os импорт судлаач #Station ID нь NWS -ийн хамгийн ойр цаг уурын станц юм. Weather.gov руу ороод өөрийн бүс нутгийн урьдчилсан мэдээг хайж олоорой, #станцын ID нь байршлын нэрний ард () хэсэгт байна. 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: #файлын нэрэнд ашиглах огноо 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' while B == 0: try: #60 секунд тутамд NWS-ээс температур, шүүдэр цэгийг ав ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["шинж чанар"] ["температур"] ["утга"] dewRaw = цаг агаарын_data.json () ["шинж чанар"] ["шүүдэр цэг"] ["утга"] Түүхий температурын өгөгдөл хэвлэх оношлогооны хэвлэх (oatRaw, dewRaw) OAT = дугуй (oatRaw, 3) Шүүдэр = дугуй (шүүдэр түүхий, 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 () температур, шүүдэр цэг, реле гаралтын төлөвийн хэвлэмэл байдлыг харуулсан #оношлогооны хэвлэх ('{ 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 секундын дараа A == 10 бол CSV файлд өгөгдөл бичнэ үү: хэрэв os.path.isfile (path.format (datestr))): хэвлэх (path.format (datestr)) нээлттэй (path.format (datestr), "a") хэлбэрээр csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat. output.two.read ()]) өөр: талбарын нэр = ['огноо', 'Гадна агаарын температур', 'Шүүдэр цэг', 'Dome Темп', 'Реле байдал'] нээлттэй (path.format (datestr)), "w ") csvfile байдлаар: txtwrite = csv.writer (csvfile) txtwrite.writerow (талбарын нэр) txtwrite.writerow ([орон нутгийн цаг, OAT, шүүдэр, tempC, explorerhat.output.two.read ()]) цаг. унтах (ControlDelay)

Би үүнийг DewHeaterLogs нэртэй allsky хавтасны доор шинэ хавтсанд хадгалсан.

Үүнийг скрипт болгон ажиллуулахаасаа өмнө бүх зүйл сайхан харагдахын тулд үүнийг бага зэрэг ажиллуулж үзээрэй.

Алхам 6: Алхам 5: Эхлэх үед скрипт ажиллуулах

Raspberry Pi ажиллаж эхэлмэгц шүүдэр халаагчийн скриптийг ажиллуулахын тулд би дараах зааврыг дагасан болно.

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

Launcher скриптийн хувьд би үүнийг үүсгэсэн.

#!/бин/ш

# launcher.sh # гэрийн лавлах руу очоод дараа нь энэ лавлах руу очоод дараа нь python скриптийг ажиллуулаад дараа нь home cd/cd home/pi/allsky/DewHeaterLogs 90 sudo python DewHeater_Web.py & cd/

Үүнийг хийсний дараа та явах хэрэгтэй байна. Шүүдэргүй камертай болоорой!

Алхам 7: 2020 оны 12 -р сарын шинэчлэлт

Өнгөрсөн жилийн хагас орчимд миний шүүдэр халаагч ажиллахаа больсон тул кодыг нь харах хүртэл идэвхгүй болгосон. Эцэст нь өвлийн амралтаар хэсэг хугацаа өнгөрч, миний ашигласан реле хэт ачаалал өгөхгүй байж магадгүй юм.

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

Digikey худалдааны тэрэг

Энэ буухиа тээглүүр нь өмнөхөөсөө өөр байдаг тул утас холбох газар нь арай өөр боловч шууд байх ёстой гэдгийг анхаарна уу. Туйлшрал нь ороомогт хамаагүй, FYI.

Зөвлөмж болгож буй: