Daftar Isi:

Raspberry Pi Dew Heater untuk Kamera All-sky: 7 Langkah
Raspberry Pi Dew Heater untuk Kamera All-sky: 7 Langkah

Video: Raspberry Pi Dew Heater untuk Kamera All-sky: 7 Langkah

Video: Raspberry Pi Dew Heater untuk Kamera All-sky: 7 Langkah
Video: [Old Version] All Sky Camera - Part 1 (Raspberry Pi 4) [New Video Link In Description] 2024, Juli
Anonim
Raspberry Pi Dew Heater untuk Kamera All-sky
Raspberry Pi Dew Heater untuk Kamera All-sky

[Lihat Langkah 7 untuk perubahan pada relai yang digunakan]

Ini adalah peningkatan ke kamera langit-langit yang saya buat mengikuti panduan luar biasa Thomas Jaquin (Kamera Langit Semua Nirkabel) Masalah umum yang terjadi pada kamera langit (dan juga teleskop) adalah embun akan mengembun di kubah kamera karena semakin dingin di malam, yang mengaburkan pemandangan langit malam. Solusinya adalah dengan menambahkan dew heater yang akan memanaskan kubah hingga berada di atas titik embun, atau suhu di mana air akan mengembun pada kubah.

Cara umum untuk melakukannya adalah dengan mengalirkan arus melalui beberapa resistor, yang kemudian akan memanas, dan menggunakannya sebagai sumber panas. Dalam hal ini, karena kamera sudah memiliki Raspberry Pi, saya ingin menggunakannya untuk mengontrol rangkaian resistor melalui relai, menyalakan dan mematikannya sesuai kebutuhan untuk mempertahankan suhu kubah tertentu di atas titik embun. Sebuah sensor suhu terletak di kubah untuk kontrol. Saya memutuskan untuk menarik data suhu & kelembaban cuaca lokal dari Layanan Cuaca Nasional untuk informasi titik embun yang diperlukan, daripada menambahkan sensor lain, dan membutuhkan penetrasi ke dalam rumah kamera saya yang dapat bocor.

Raspberry Pi memiliki header GPIO yang memungkinkan papan ekspansi untuk mengontrol perangkat fisik, tetapi IO itu sendiri tidak dirancang untuk menangani arus yang dibutuhkan oleh rangkaian daya resistor. Sehingga diperlukan komponen tambahan. Saya berencana menggunakan relai untuk mengisolasi rangkaian daya, jadi IC driver relai diperlukan untuk berinteraksi dengan Pi. Saya juga membutuhkan sensor suhu untuk membaca suhu di dalam kubah, sehingga diperlukan konverter analog ke digital (ADC) agar Pi dapat membaca suhu. Komponen-komponen ini tersedia secara terpisah, tetapi Anda juga dapat membeli 'topi' untuk Pi yang berisi perangkat ini di papan yang hanya dihubungkan ke GPIO Pi.

Saya menggunakan Pimoroni Explorer pHAT, yang memiliki seluruh rentang I/O, tetapi untuk tujuan saya, ia memiliki empat input analog berkisar 0-5V, dan empat output digital yang cocok untuk menggerakkan relai.

Untuk sensor suhu kubah, saya menggunakan TMP36, yang saya suka karena memiliki persamaan linier sederhana untuk menurunkan suhu dari pembacaan tegangan. Saya menggunakan termistor dan RTD di pekerjaan saya, tetapi mereka tidak linier dan karenanya lebih rumit untuk diterapkan dari awal.

Saya menggunakan kit Perma Proto Bonnet Mini Adafruit sebagai papan sirkuit untuk menyolder relai, blok terminal, dan kabel lainnya, yang bagus karena ukurannya untuk Pi, dan memiliki sirkuit yang relevan dengan apa yang ditawarkan Pi.

Itu adalah hal-hal utama. Saya akhirnya mendapatkan hampir semua dari Digikey, karena mereka menyediakan suku cadang Adafruit di samping semua suku cadang sirkuit normal, sehingga memudahkan untuk mendapatkan semuanya sekaligus. Berikut ini tautan ke keranjang belanja dengan semua suku cadang yang saya pesan:

www.digikey.com/short/z7c88f

Ini termasuk beberapa gulungan kawat untuk kabel jumper, jika Anda sudah memilikinya, Anda tidak membutuhkannya.

Perlengkapan

  • Pimoroni Explorer pHAT
  • Sensor suhu TMP36
  • 150 Ohm 2W resistor
  • 1A 5VDC SPDT Relay
  • Blok terminal sekrup
  • Papan sirkuit
  • Kabel
  • kebuntuan papan sirkuit
  • solder & besi solder

Daftar bagian di digikey:

www.digikey.com/short/z7c88f

Langkah 1: Catatan Teori Listrik

Penting untuk memastikan komponen yang digunakan berukuran tepat untuk menangani daya dan arus yang akan mereka lihat, jika tidak, Anda dapat mengalami kegagalan dini, atau bahkan kebakaran!

Komponen utama yang perlu dikhawatirkan dalam hal ini adalah peringkat arus kontak relai, dan peringkat daya resistor.

Karena satu-satunya beban di rangkaian daya kami adalah resistor, kami hanya dapat menghitung resistansi total, memasukkannya ke dalam hukum Ohm, dan menghitung arus di rangkaian kami.

Resistansi Total resistor paralel: 1/R_T =1/R_1 +1/R_2 +1/R_3 +1/R_N

Jika resistansi individu sama, dapat dikurangi menjadi: R_T=R/N. Jadi untuk empat resistor yang sama itu R_T = R/4.

Saya menggunakan empat resistor 150, jadi hambatan total saya melalui keempatnya adalah (150)/4=37,5.

Hukum Ohm hanya Tegangan = Arus X Resistansi (V=I×R). Kita dapat mengatur ulang itu untuk menentukan arus untuk mendapatkan I=V/R. Jika kita mencolokkan tegangan dari catu daya dan resistansi kita, kita mendapatkan I=(12 V)/(37,5)= 0,32 A. Jadi itu berarti minimal, relai kita perlu diberi nilai 0,32 A. Jadi relay 1A yang kami gunakan lebih dari 3 kali ukuran yang dibutuhkan, yang banyak.

Untuk resistor, kita perlu menentukan jumlah daya yang melalui masing-masing resistor. Persamaan daya datang dalam beberapa bentuk (melalui substitusi dengan hukum Ohm), tetapi yang paling nyaman bagi kita adalah P=E^2/R. Untuk resistor individu kita, ini menjadi P=(12V)^2/150Ω=0,96 W. Jadi kita akan menginginkan setidaknya resistor 1 watt, tetapi 2 watt akan memberi kita faktor keamanan ekstra.

Daya total rangkaian hanya akan menjadi 4 x 0,96 W, atau 3,84 W (Anda juga dapat memasukkan hambatan total ke dalam persamaan daya dan mendapatkan hasil yang sama).

Saya menulis semua ini, jadi jika Anda ingin lebih banyak daya yang dihasilkan (lebih banyak panas), Anda dapat menjalankan nomor Anda, dan menghitung resistor yang dibutuhkan, peringkatnya, dan peringkat relai yang dibutuhkan.

Awalnya saya mencoba menjalankan rangkaian dengan 5 volt dari power rail Raspberry Pi, tetapi daya yang dihasilkan per resistor hanya P=(5V)^2/150Ω=0,166 W, dengan total 0,66 W, yang tidak ' t cukup untuk menghasilkan lebih dari beberapa derajat kenaikan suhu.

Langkah 2: Langkah 1: Solder

Langkah 1: Menyolder
Langkah 1: Menyolder
Langkah 1: Menyolder
Langkah 1: Menyolder
Langkah 1: Menyolder
Langkah 1: Menyolder

Oke, cukup daftar bagian dan teorinya, mari kita ke desain sirkuit dan menyolder!

Saya telah menggambar sirkuit pada Proto-Bonnet dengan dua cara berbeda, sekali sebagai skema pengkabelan, dan sekali sebagai representasi visual papan. Ada juga foto papan pHAT Pimoroni Explorer yang di-mark-up, menunjukkan kabel yang menghubungkannya dan Proto-Bonnet.

Pada Explorer pHAT, header 40 pin yang menyertainya perlu disolder ke papan, ini adalah koneksi antara itu dan Raspberry Pi. Muncul dengan header terminal untuk I/O, tetapi saya tidak menggunakannya, melainkan hanya menyolder kabel langsung ke papan. Proto-Bonnet juga menyertakan koneksi untuk header, tetapi tidak digunakan dalam kasus ini.

Sensor suhu dihubungkan langsung ke papan Explorer pHAT menggunakan kabel untuk membuat perbedaan antara lokasi Raspberry Pi dan bagian dalam Camera Dome di mana ia berada.

Blok Terminal Sekrup dan Relai Kontrol adalah dua komponen yang disolder ke papan Proto-Bonnet, dalam skema diberi label T1, T2, T3 (untuk tiga terminal sekrup), dan CR1 untuk relai.

Resistor disolder ke lead yang juga pergi dari Raspberry Pi ke Camera Dome, mereka terhubung ke Proto-Bonnet melalui terminal sekrup di T1 dan T3. Saya lupa mengambil foto rakitan sebelum memasang kamera kembali di atap saya, tetapi saya mencoba memisahkan resistor secara merata di sekitar kubah, dengan hanya dua kabel yang kembali ke Proto-Bonnet. Masuk ke kubah melalui lubang di sisi berlawanan dari pipa, dengan sensor suhu masuk melalui lubang ketiga, dengan jarak yang sama antara dua resistor di dekat tepi kubah.

Langkah 3: Langkah 2: Perakitan

Langkah 2: Perakitan
Langkah 2: Perakitan

Setelah semuanya disolder bersama, Anda dapat menginstalnya di kamera all-sky Anda. Pasang Explorer pHAT pada Rasperry Pi, dorong ke header 40 pin, dan kemudian Proto-Bonnet dipasang berdekatan dengannya di atas Pi menggunakan beberapa kebuntuan. Pilihan lain akan menggunakan kebuntuan di atas Explorer, tetapi karena saya menggunakan penutup Pipa ABS, itu membuat Pi terlalu besar untuk muat lagi.

Arahkan sensor suhu ke atas enklosur ke lokasinya, dan pasang juga harnes resistor. Kemudian hubungkan harness ke blok terminal pada proto-board.

Ke pemrograman!

Langkah 4: Langkah 3: Memuat Perpustakaan PHAT Explorer, dan Uji Pemrograman

Sebelum kita dapat menggunakan Explorer pHAT, kita perlu memuat perpustakaan untuk itu dari Pimoroni sehingga Pi dapat berkomunikasi dengannya.

Di Raspberry Pi Anda, buka terminal dan masukkan:

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

Ketik 'y' atau 'n' yang sesuai untuk menyelesaikan instalasi.

Selanjutnya, kita ingin menjalankan program sederhana untuk menguji input dan output, untuk memastikan kabel kita sudah benar. DewHeater_TestProg.py terlampir adalah skrip python yang menampilkan suhu, dan menghidupkan dan mematikan relai setiap dua detik.

waktu impor

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(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)

Anda dapat membuka file di raspberry Pi Anda, (di milik saya dibuka di Thonny, tetapi ada banyak editor Python lain di luar sana juga), dan kemudian menjalankannya, dan itu akan mulai menunjukkan suhu, dan Anda akan mendengar relay mengklik dan mematikan! Jika tidak, lakukan pemeriksaan kabel dan sirkuit Anda.

Langkah 5: Langkah 4: Memuat Pemrograman Dew Heater

Berikut adalah program pemanas embun penuh. Ia melakukan beberapa hal:

  • Menarik suhu dan titik embun luar ruangan saat ini dari lokasi Layanan Cuaca Nasional yang diberikan setiap lima menit. Jika tidak mendapatkan data, itu akan mempertahankan suhu sebelumnya dan mencoba lagi dalam lima menit.

    • NWS meminta agar informasi kontak disertakan dalam permintaan API, jika ada masalah dengan permintaan, mereka tahu siapa yang harus dihubungi. Ini adalah baris 40 dari pemrograman, silakan ganti '[email protected]' dengan alamat email Anda sendiri.
    • Anda harus pergi ke weather.gov dan mencari ramalan untuk wilayah Anda, untuk mendapatkan ID Stasiun, yang merupakan stasiun cuaca terdekat di NWS. ID stasiun ada di () setelah nama lokasi. Masukkan ini di baris 17 dari pemrograman. Saat ini menunjukkan KPDX, atau Portland, Oregon.
    • Jika Anda berada di luar AS, ada kemungkinan lain menggunakan data dari OpenWeatherMap.org. Saya belum mencobanya sendiri, tetapi Anda dapat melihat contoh ini di sini: Membaca-JSON-Dengan-Raspberry-Pi
  • Perhatikan bahwa suhu dari NWS dan dari sensor suhu dalam derajat Celcius, seperti halnya untuk kamera ASI, jadi untuk konsistensi, saya menyimpan semuanya dalam Celcius daripada mengonversi ke Fahrenheit, yang lebih sering saya gunakan..
  • Selanjutnya, ia membaca suhu dari sensor kubah, dan jika kurang dari 10 derajat di atas titik embun, maka relai dihidupkan. Jika lebih besar dari 10,5 derajat di atas titik embun, relai akan mati. Anda dapat mengubah pengaturan ini jika diinginkan.
  • Sekali satu menit, ia mencatat nilai saat ini untuk suhu, titik embun, dan status relai ke file.csv sehingga Anda dapat melihat bagaimana kinerjanya dari waktu ke waktu.

#Program kontrol Pemanas Embun Raspberry Pi

#Dec 2019 #Brian Plett #Menggunakan Pimoroni Explorer pHAT, sensor suhu, dan relai #untuk mengontrol rangkaian resistor sebagai pemanas embun untuk kamera all-sky #Menarik suhu udara luar dan titik embun dari situs web NWS #menjaga suhu internal 10 derajat di atas titik embun waktu impor tanggal impor waktu impor permintaan impor csv impor os impor explorerhat #Station ID adalah stasiun cuaca terdekat di NWS. Buka weather.gov dan cari ramalan untuk area Anda, #station ID ada di () setelah nama lokasi. settings = { 'station_ID':'KPDX', } #URL alternatif untuk informasi cuaca #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2}&unit={3}"

#Weather URL untuk mengambil data

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

#delay untuk kontrol relai, detik

ControlDelay = 2 A=0 B=0 while True: #date untuk digunakan di log nama file datestr = datetime.datetime.now().strftime("%Y%m%d") #date & time to use untuk setiap baris data localtime = datetime.datetime.now().strftime("%Y/%m/%d %H:%M") #CSV jalur file path = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' sementara B == 0: coba: #Tarik suhu dan titik embun dari NWS setiap 60 detik final_url = BASE_URL.format(settings["station_ID"]) weather_data = request.get(final_url, timeout= 5, headers = {'User-agent ': 'Raspberry Pi 3+ Kamera Allsky [email protected]'}) oatRaw = weather_data.json()["properties"]["temperature"]["value"] dewRaw = weather_data.json()["properties"]["titik embun"]["nilai"] #cetakan diagnostik untuk data suhu mentah cetak(oatRaw, dewRaw) OAT = bulat(oatRaw, 3) Embun = bulat(dewRaw, 3) kecuali: A = 0 B = 1 break A = 0 B = 1 break jika A < 300: A = A + ControlDelay else: B = 0 #Baca tegangan mentah dari Raspberry Pi Explorer PHat dan ubah ke suhu 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 menunjukkan suhu, titik embun, dan status keluaran relai print(' { 0:5.2f} degC, {1:5.2f} degC, {2:5.2f} deg C {3:5.0f}'.format(round(OAT, 3), round(Dew, 3), round(tempC, 3), explorerhat.output.two.read())) #10 detik setelah menit bergulir, tulis data ke file CSV jika A ==10: if os.path.isfile(path.format(datestr)): print(path.format(datestr)) dengan open(path.format(datestr), "a") sebagai 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'] dengan open(path.format(datestr), "w ") sebagai csvfile: txtwrite = csv.writer(csvfile) txtwrite.writerow(fieldnames) txtwrite.writerow([localtime, OAT, Dew, tempC, explorerhat.output.two.read()]) time.sleep(ControlDelay)

Saya menyimpan ini di folder baru di bawah folder allsky bernama DewHeaterLogs.

Coba jalankan ini sebentar untuk memastikan semuanya terlihat baik, sebelum melanjutkan untuk menjalankannya sebagai skrip.

Langkah 6: Langkah 5: Menjalankan Script saat Startup

Untuk menjalankan skrip Dew Heater segera setelah Raspberry Pi dijalankan, saya mengikuti instruksi di sini:

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

Untuk skrip Launcher, saya membuat ini:

#!/bin/sh

# launcher.sh # arahkan ke direktori home, lalu ke direktori ini, lalu jalankan skrip python, lalu kembali ke home cd / cd home/pi/allsky/DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

Setelah ini selesai, Anda harus baik-baik saja. Nikmati memiliki kamera bebas embun!

Langkah 7: Perbarui Des 2020

Sekitar setengah jalan tahun lalu, pemanas embun saya berhenti bekerja, jadi saya menonaktifkan kode sampai saya bisa melihatnya. Akhirnya punya waktu selama liburan musim dingin, dan menemukan bahwa relai yang saya gunakan menunjukkan resistensi yang tinggi di seluruh kontaknya saat beroperasi, mungkin karena kelebihan beban.

Jadi saya memperbaruinya dengan relai berperingkat lebih tinggi, satu dengan kontak 5A daripada kontak 1A. Juga ini adalah relai daya daripada relai sinyal, jadi saya harap ini membantu. Ini adalah TE PCH-105D2H, 000. Saya juga menambahkan beberapa terminal sekrup untuk Explorer pHAT, sehingga saya dapat dengan mudah melepaskan pemanas dan sensor suhu sesuai kebutuhan. Ketiganya ada di keranjang belanja di bawah ini:

Keranjang belanja Digikey

Ketahuilah bahwa pin untuk relai ini berbeda dari yang sebelumnya, jadi tempat Anda menyambungkan sedikit berbeda, tetapi harus langsung. Polaritas tidak masalah untuk koil, FYI.

Direkomendasikan: