Mục lục:

Máy làm nóng sương Raspberry Pi cho Máy ảnh bầu trời: 7 bước
Máy làm nóng sương Raspberry Pi cho Máy ảnh bầu trời: 7 bước

Video: Máy làm nóng sương Raspberry Pi cho Máy ảnh bầu trời: 7 bước

Video: Máy làm nóng sương Raspberry Pi cho Máy ảnh bầu trời: 7 bước
Video: Bị ô tô tông nguy kịch vì chạy xe đạp lạng lách, đánh võng giữa ngã tư 2024, Tháng bảy
Anonim
Máy sưởi sương Raspberry Pi cho Máy ảnh bầu trời
Máy sưởi sương Raspberry Pi cho Máy ảnh bầu trời

[Xem Bước 7 để biết sự thay đổi đối với rơ le được sử dụng]

Đây là bản nâng cấp cho máy ảnh bầu trời mà tôi đã chế tạo theo hướng dẫn tuyệt vời của Thomas Jaquin (Máy ảnh bầu trời không dây) Một vấn đề phổ biến xảy ra với máy ảnh bầu trời (và cả kính thiên văn) là sương sẽ ngưng tụ trên vòm máy ảnh khi trời lạnh hơn ở ban đêm, che khuất tầm nhìn của bầu trời đêm. Giải pháp là thêm một máy sưởi sương sẽ làm nóng mái vòm cao hơn điểm sương, hoặc nhiệt độ mà nước sẽ ngưng tụ trên mái vòm.

Một cách phổ biến để làm điều này là chạy dòng điện qua một số điện trở, sau đó sẽ nóng lên và sử dụng nó làm nguồn nhiệt. Trong trường hợp này, vì máy ảnh đã có Raspberry Pi, tôi muốn sử dụng nó để điều khiển mạch điện trở thông qua rơ le, bật và tắt chúng khi cần thiết để duy trì nhiệt độ vòm nhất định trên điểm sương. Một cảm biến nhiệt độ được đặt trong mái vòm để điều khiển. Tôi quyết định lấy dữ liệu nhiệt độ và độ ẩm thời tiết địa phương từ Dịch vụ thời tiết quốc gia để biết thông tin điểm sương cần thiết, thay vì thêm một cảm biến khác và cần thâm nhập vào vỏ máy ảnh có thể bị rò rỉ của tôi.

Raspberry Pi có một tiêu đề GPIO cho phép các bảng mở rộng để điều khiển các thiết bị vật lý, nhưng bản thân IO không được thiết kế để xử lý dòng điện mà một mạch nguồn điện trở yêu cầu. Vì vậy, các thành phần bổ sung là cần thiết. Tôi đang định sử dụng một rơ le để cách ly mạch nguồn, vì vậy cần có một IC điều khiển rơ le để giao tiếp với Pi. Tôi cũng cần một cảm biến nhiệt độ để đọc nhiệt độ bên trong mái vòm, vì vậy cần một bộ chuyển đổi tương tự sang kỹ thuật số (ADC) để Pi có thể đọc nhiệt độ. Các thành phần này có sẵn riêng lẻ, nhưng bạn cũng có thể mua 'mũ' cho Pi có chứa các thiết bị này trên bảng chỉ cần cắm vào GPIO của Pi.

Tôi đã sử dụng Pimoroni Explorer pHAT, có toàn bộ phạm vi I / O, nhưng theo mục đích của tôi, nó có bốn đầu vào tương tự dao động 0-5V và bốn đầu ra kỹ thuật số phù hợp cho rơ le điều khiển.

Đối với cảm biến nhiệt độ mái vòm, tôi đã sử dụng TMP36, cái mà tôi thích vì nó có một phương trình tuyến tính đơn giản để tính nhiệt độ từ việc đọc điện áp. Tôi sử dụng nhiệt điện trở và RTD trong công việc của mình, nhưng chúng không tuyến tính và do đó phức tạp hơn để thực hiện từ đầu.

Tôi đã sử dụng bộ kit Perma Proto Bonnet Mini của Adafruit làm bảng mạch để hàn rơ le, khối thiết bị đầu cuối và hệ thống dây điện khác, rất đẹp vì nó có kích thước phù hợp với Pi và có mạch điện phù hợp với những gì Pi cung cấp.

Đó là những điều chính. Cuối cùng, tôi đã nhận được hầu hết mọi thứ từ Digikey, vì họ cung cấp các bộ phận của Adafruit bên cạnh tất cả các bộ phận mạch thông thường, vì vậy, thật đơn giản để có được mọi thứ cùng một lúc. Đây là một liên kết đến một giỏ hàng với tất cả các bộ phận tôi đã đặt hàng:

www.digikey.com/short/z7c88f

Nó bao gồm một vài cuộn dây cho dây nhảy, nếu bạn đã có một số, bạn không cần nó.

Quân nhu

  • Pimoroni Explorer pHAT
  • Cảm biến nhiệt độ TMP36
  • Điện trở 150 Ohm 2W
  • 1A 5VDC SPDT Relay
  • Khối thiết bị đầu cuối trục vít
  • Bảng mạch
  • Dây điện
  • lỗi bảng mạch
  • hàn & mỏ hàn

Danh sách các bộ phận trên digikey:

www.digikey.com/short/z7c88f

Bước 1: Ghi chú lý thuyết điện

Điều quan trọng là đảm bảo các thành phần được sử dụng có kích thước phù hợp để xử lý nguồn điện và dòng điện mà chúng sẽ nhìn thấy, nếu không bạn có thể bị hỏng sớm hoặc thậm chí là cháy!

Các thành phần chính cần lo lắng trong trường hợp này là định mức hiện tại của các tiếp điểm rơle và định mức công suất của các điện trở.

Vì tải duy nhất trong mạch nguồn của chúng tôi là điện trở, chúng tôi chỉ có thể tính toán tổng trở, đưa nó vào định luật Ohm và tính dòng điện trong mạch của chúng tôi.

Tổng trở của các điện trở song song: 1 / R_T = 1 / R_1 + 1 / R_2 + 1 / R_3 + 1 / R_N

Nếu các điện trở riêng lẻ bằng nhau, nó có thể giảm xuống: R_T = R / N. Vì vậy, đối với bốn điện trở bằng nhau thì R_T = R / 4.

Tôi đang sử dụng bốn điện trở 150 Ω, vì vậy tổng điện trở của tôi qua bốn điện trở đó là (150 Ω) /4=37,5 Ω.

Định luật Ohm chỉ là Điện áp = Điện trở X hiện tại (V = I × R). Chúng ta có thể sắp xếp lại điều đó để xác định dòng điện để có được I = V / R. Nếu chúng ta cắm điện áp từ nguồn điện và điện trở của chúng ta, chúng ta nhận được I = (12 V) / (37,5 Ω) = 0,32 A. Vì vậy, điều đó có nghĩa là ở mức tối thiểu, rơ le của chúng ta cần có định mức là 0,32 A. Vì vậy rơ le 1A mà chúng tôi đang sử dụng có kích thước gấp 3 lần kích thước cần thiết, quá nhiều.

Đối với các điện trở, chúng ta cần xác định lượng điện đi qua mỗi điện trở. Phương trình lũy thừa có nhiều dạng (thông qua việc thay thế bằng định luật Ohm), nhưng điều thuận tiện nhất cho chúng ta là P = E ^ 2 / R. Đối với điện trở riêng lẻ của chúng ta, giá trị này trở thành P = (12V) ^ 2 / 150Ω = 0,96 W. Vì vậy, chúng ta sẽ muốn có ít nhất một điện trở 1 watt, nhưng 2 watt sẽ cung cấp cho chúng ta hệ số an toàn bổ sung.

Tổng công suất của mạch sẽ chỉ là 4 x 0,96 W hoặc 3,84 W (Bạn cũng có thể đặt tổng điện trở vào phương trình công suất và nhận được kết quả tương tự).

Tôi viết tất cả những điều này ra, vì vậy trong trường hợp bạn muốn tạo ra nhiều điện hơn (nhiều nhiệt hơn), bạn có thể chạy các con số của mình và tính toán các điện trở cần thiết, định mức của chúng và định mức của rơ le cần thiết.

Ban đầu tôi đã cố gắng chạy mạch với 5 volt từ thanh ray điện Raspberry Pi, nhưng công suất tạo ra trên mỗi điện trở chỉ là P = (5V) ^ 2 / 150Ω = 0,166 W, tổng cộng là 0,66 W, không phải là ' t đủ để tạo ra nhiệt độ tăng hơn một vài độ.

Bước 2: Bước 1: Hàn

Bước 1: Hàn
Bước 1: Hàn
Bước 1: Hàn
Bước 1: Hàn
Bước 1: Hàn
Bước 1: Hàn

Được rồi, đủ danh sách bộ phận và lý thuyết, chúng ta hãy bắt đầu thiết kế mạch và hàn!

Tôi đã vẽ mạch trên Proto-Bonnet theo hai cách khác nhau, một lần là sơ đồ đấu dây và một lần là biểu diễn trực quan của bảng. Ngoài ra còn có một bức ảnh được đánh dấu của bảng Pimoroni Explorer pHAT, cho thấy hệ thống dây dẫn giữa nó và Proto-Bonnet.

Trên Explorer pHAT, đầu cắm 40 pin đi kèm với nó cần được hàn vào bo mạch, đây là kết nối giữa nó và Raspberry Pi. Nó đi kèm với một tiêu đề đầu cuối cho I / O, nhưng tôi đã không sử dụng nó, thay vào đó chỉ hàn dây trực tiếp vào bo mạch. Proto-Bonnet cũng bao gồm các kết nối cho tiêu đề, nhưng nó không được sử dụng trong trường hợp này.

Cảm biến nhiệt độ được kết nối trực tiếp với bo mạch Explorer pHAT bằng dây để tạo ra sự khác biệt giữa vị trí của Raspberry Pi và bên trong của Camera Dome nơi đặt nó.

Khối Đầu cuối vít và Rơle điều khiển là hai thành phần được hàn vào bo mạch Proto-Bonnet, trong sơ đồ chúng được gắn nhãn T1, T2, T3 (cho ba đầu cuối vít) và CR1 cho rơ le.

Các điện trở được hàn vào các dây dẫn cũng đi từ Raspberry Pi đến Camera Dome, chúng kết nối với Proto-Bonnet thông qua các đầu nối vít ở T1 và T3. Tôi đã quên chụp ảnh cụm lắp ráp trước khi lắp máy ảnh trở lại mái nhà của mình, nhưng tôi đã cố gắng bố trí các điện trở đều xung quanh mái vòm, chỉ với hai dây nối trở lại Proto-Bonnet. Đi vào mái vòm thông qua các lỗ ở hai bên đối diện của ống, với cảm biến nhiệt độ đi vào qua lỗ thứ ba, cách đều giữa hai trong số các điện trở gần mép của mái vòm.

Bước 3: Bước 2: Lắp ráp

Bước 2: Lắp ráp
Bước 2: Lắp ráp

Sau khi tất cả được hàn lại với nhau, bạn có thể cài đặt nó trên máy ảnh bầu trời của mình. Gắn Explorer pHAT trên Rasperry Pi, đẩy nó lên đầu cắm 40 chân, và sau đó Proto-Bonnet được gắn liền kề với nó trên đầu Pi bằng một số chế độ chờ. Một lựa chọn khác là sử dụng các thiết bị chờ trên đầu Explorer, nhưng vì tôi đang sử dụng vỏ bọc ABS Pipe, nó làm cho Pi quá lớn để có thể vừa vặn.

Hướng cảm biến nhiệt độ lên vỏ đến vị trí của nó và lắp cả dây điện trở. Sau đó, nối dây nịt vào khối thiết bị đầu cuối trên bảng proto.

Tiếp tục lập trình!

Bước 4: Bước 3: Tải Thư viện Explorer PHAT và Lập trình thử nghiệm

Trước khi có thể sử dụng Explorer pHAT, chúng ta cần tải thư viện cho nó từ Pimoroni để Pi có thể giao tiếp với nó.

Trên Raspberry Pi của bạn, mở thiết bị đầu cuối và nhập:

curl https://get.pimoroni.com/explorerhat | bấu víu

Nhập 'y' hoặc 'n' nếu thích hợp để kết thúc quá trình cài đặt.

Tiếp theo, chúng tôi sẽ muốn chạy một chương trình đơn giản để kiểm tra các đầu vào và đầu ra, để đảm bảo hệ thống dây của chúng tôi là chính xác. DewHeater_TestProg.py đính kèm là một tập lệnh python hiển thị nhiệt độ và bật và tắt rơle sau mỗi hai giây.

thời gian nhập khẩu

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

Bạn có thể mở tệp trên raspberry Pi của mình, (trên của tôi nó được mở bằng Thonny, nhưng cũng có rất nhiều trình chỉnh sửa Python khác ngoài đó), sau đó chạy nó và nó sẽ bắt đầu hiển thị nhiệt độ và bạn sẽ nghe thấy chuyển tiếp nhấp vào và tắt! Nếu không, hãy kiểm tra hệ thống dây điện và mạch điện của bạn.

Bước 5: Bước 4: Tải lập trình máy sưởi sương

Đây là chương trình làm nóng sương đầy đủ. Nó thực hiện một số điều:

  • Kéo nhiệt độ ngoài trời hiện tại và điểm sương từ một vị trí Dịch vụ Thời tiết Quốc gia nhất định năm phút một lần. Nếu nó không nhận được dữ liệu, nó sẽ giữ nhiệt độ trước đó và thử lại sau năm phút nữa.

    • NWS yêu cầu thông tin liên hệ được đưa vào các yêu cầu API, trong trường hợp có vấn đề với yêu cầu, họ biết phải liên hệ với ai. Đây là dòng 40 của chương trình, vui lòng thay thế '[email protected]' bằng địa chỉ email của riêng bạn.
    • Bạn sẽ cần phải truy cập vào weather.gov và tra cứu dự báo cho khu vực của mình, để lấy ID Trạm, là trạm thời tiết gần nhất tại NWS. ID trạm nằm trong () sau tên vị trí. Nhập điều này vào dòng 17 của chương trình. Hiện tại, nó hiển thị KPDX, hoặc Portland, Oregon.
    • Nếu bạn ở bên ngoài Hoa Kỳ, có một khả năng khác là sử dụng dữ liệu từ OpenWeatherMap.org. Tôi chưa tự mình thử, nhưng bạn có thể xem ví dụ này ở đây: Reading-JSON-With-Raspberry-Pi
  • Lưu ý rằng nhiệt độ từ NWS và từ cảm biến nhiệt độ là độ C..
  • Tiếp theo, nó đọc nhiệt độ từ cảm biến mái vòm và nếu nó thấp hơn 10 độ so với điểm sương, thì nó sẽ bật rơ le. Nếu nó lớn hơn 10,5 độ so với điểm sương, nó sẽ tắt rơ le. Bạn có thể thay đổi các cài đặt này nếu muốn.
  • Mỗi phút một lần, nó ghi lại các giá trị hiện tại cho nhiệt độ, điểm sương và trạng thái chuyển tiếp vào tệp.csv để bạn có thể xem nó hoạt động như thế nào theo thời gian.

#Raspberry Pi Dew Heater chương trình điều khiển máy sưởi

#Dec 2019 #Brian Plett # Sử dụng Pimoroni Explorer pHAT, cảm biến nhiệt độ và rơ le # để điều khiển mạch điện trở làm bộ sưởi sương cho máy ảnh bầu trời # Giảm nhiệt độ không khí bên ngoài và điểm sương từ trang web NWS # giữ nhiệt độ bên trong 10 độ trên điểm sương trên thời gian nhập thời gian nhập ngày giờ nhập yêu cầu nhập csv import os import explorerhat #Station ID là trạm thời tiết gần nhất tại NWS. Truy cập weather.gov và tìm kiếm forcast cho khu vực của bạn, # trạm ID nằm trong () sau tên vị trí. settings = {'station_ID': 'KPDX',} #Alternate URL cho thông tin thời tiết #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & đơn vị = {3}"

#Weather URL để truy xuất dữ liệu

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

#delay để điều khiển rơ le, giây

ControlDelay = 2 A = 0 B = 0 while True: #date to use in log filename datestr = datetime.datetime.now (). Strftime ("% Y% m% d") # ngày & thời gian sử dụng cho mỗi hàng dữ liệu localtime = datetime.datetime.now (). strftime ("% Y /% m /% d% H:% M") #CSV file path path = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' while B == 0: try: #Pull nhiệt độ và điểm sương từ NWS cứ sau 60 giây final_url = BASE_URL.format (settings ["station_ID"]) weather_data = request.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) Yến mạch = weather_data.json () ["property"] ["nhiệt độ"] ["value"] dewRaw = weather_data.json () ["properties"] ["dewpoint"] ["value"] #diagnostic print để in dữ liệu nhiệt độ thô (yến mạch, dewRaw) OAT = round (Yến mạch, 3) Dew = round (dewRaw, 3) ngoại trừ: A = 0 B = 1 break A = 0 B = 1 break nếu A <300: A = A + ControlDelay else: B = 0 #Đọc điện áp thô từ Raspberry Pi Explorer PHat và chuyển đổi thành nhiệt độ 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 hiển thị nhiệt độ, điểm sương và in trạng thái đầu ra chuyển tiếp ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. Định dạng (round (OAT, 3), round (Dew, 3), round (tempC, 3), explorerhat.output.two.read ())) # 10 giây sau khi phút trôi qua, ghi dữ liệu vào tệp CSV nếu A == 10: if os.path.isfile (path.format (datestr)): print (path.format (datestr)) with open (path.format (datestr), "a") as 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'] với open (path.format (datestr), "w ") dưới dạng csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (fieldnames) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Tôi đã lưu nó vào một thư mục mới trong thư mục allsky có tên là DewHeaterLogs.

Hãy thử chạy nó một chút để đảm bảo mọi thứ đều ổn, trước khi chuyển sang chạy nó dưới dạng tập lệnh.

Bước 6: Bước 5: Chạy Script khi khởi động

Để chạy tập lệnh Dew Heater ngay khi Raspberry Pi khởi động, tôi đã làm theo hướng dẫn tại đây:

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

Đối với tập lệnh Trình khởi chạy, tôi đã tạo cái này:

#! / bin / sh

# launcher.sh # điều hướng đến thư mục chính, sau đó đến thư mục này, sau đó thực thi tập lệnh python, sau đó quay lại trang chủ cd / cd home / pi / allsky / DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

Một khi điều này được thực hiện, bạn nên tốt để đi. Thích có một chiếc máy ảnh không đọng sương!

Bước 7: Cập nhật tháng 12 năm 2020

Khoảng nửa năm ngoái, máy sưởi sương của tôi ngừng hoạt động, vì vậy tôi đã tắt mã cho đến khi tôi có thể xem lại nó. Cuối cùng đã có một thời gian trong kỳ nghỉ đông, và nhận thấy rằng rơ le tôi sử dụng đang có điện trở cao trên các tiếp điểm của nó khi đang hoạt động, có thể là do bị quá tải.

Vì vậy, tôi đã cập nhật nó với một rơ le được đánh giá cao hơn, một rơ le có tiếp điểm 5A thay vì tiếp điểm 1A. Ngoài ra, nó là một rơ le điện chứ không phải là một rơ le tín hiệu, vì vậy tôi hy vọng nó sẽ hữu ích. Đó là TE PCH-105D2H, 000. Tôi cũng đã thêm một số đầu nối vít cho Explorer pHAT, vì vậy tôi có thể dễ dàng ngắt kết nối bộ sưởi và cảm biến nhiệt độ khi cần. Cả 3 đều có trong giỏ hàng này dưới đây:

Giỏ hàng Digikey

Lưu ý rằng các chân của rơ le này khác với chân trước, vì vậy nơi bạn đấu dây sẽ hơi khác một chút, nhưng phải thẳng hàng. Cực tính không quan trọng đối với cuộn dây, FYI.

Đề xuất: