Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Hinweise zur elektrischen Theorie
- Schritt 2: Schritt 1: Löten
- Schritt 3: Schritt 2: Montage
- Schritt 4: Schritt 3: Laden der Explorer-PHAT-Bibliothek und Testprogrammierung
- Schritt 5: Schritt 4: Laden der Tauheizungsprogrammierung
- Schritt 6: Schritt 5: Ausführen des Skripts beim Start
- Schritt 7: Update Dezember 2020
Video: Raspberry Pi Tauheizung für All-Sky-Kamera - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
[Siehe Schritt 7 für eine Änderung des verwendeten Relais]
Dies ist ein Upgrade zu einer All-Sky-Kamera, die ich nach Thomas Jaquins ausgezeichnetem Leitfaden (Wireless All Sky Camera) gebaut habe Nacht, die den Blick auf den Nachthimmel verstellt. Die Lösung besteht darin, eine Tauheizung hinzuzufügen, die die Kuppel auf über den Taupunkt oder die Temperatur erhitzt, bei der Wasser auf der Kuppel kondensiert.
Ein üblicher Weg, dies zu tun, besteht darin, Strom durch mehrere Widerstände zu leiten, die sich dann erhitzen, und diese als Wärmequelle zu verwenden. Da die Kamera in diesem Fall bereits über einen Raspberry Pi verfügt, wollte ich diesen verwenden, um die Widerstandsschaltung über ein Relais zu steuern und sie nach Bedarf ein- und auszuschalten, um eine bestimmte Domtemperatur über dem Taupunkt zu halten. Zur Kontrolle befindet sich in der Kuppel ein Temperatursensor. Ich beschloss, lokale Wettertemperatur- und Luftfeuchtigkeitsdaten vom National Weather Service für die erforderlichen Taupunktinformationen abzurufen, anstatt einen weiteren Sensor hinzuzufügen, und benötige ein Eindringen in mein Kameragehäuse, das auslaufen könnte.
Der Raspberry Pi verfügt über einen GPIO-Header, der es Erweiterungsplatinen ermöglicht, physische Geräte zu steuern, aber der IO selbst ist nicht dafür ausgelegt, den Strom zu verarbeiten, den ein Widerstandsstromkreis erfordert. Es werden also zusätzliche Komponenten benötigt. Ich plane, ein Relais zu verwenden, um den Stromkreis zu isolieren, daher wird ein Relaistreiber-IC benötigt, um mit dem Pi verbunden zu werden. Ich benötige auch einen Temperatursensor, um die Temperatur in der Kuppel abzulesen, daher wird ein Analog-Digital-Wandler (ADC) benötigt, damit der Pi die Temperatur lesen kann. Diese Komponenten sind einzeln erhältlich, aber Sie können auch einen "Hut" für den Pi kaufen, der diese Geräte auf einer Platine enthält, die einfach in den GPIO des Pi gesteckt wird.
Ich habe mich für den Pimoroni Explorer pHAT entschieden, der über eine ganze Reihe von E / A verfügt, aber für meine Zwecke hat er vier analoge Eingänge im Bereich von 0-5 V und vier digitale Ausgänge, die zum Ansteuern von Relais geeignet sind.
Für den Kuppeltemperatursensor habe ich einen TMP36 verwendet, der mir gefallen hat, weil er eine einfache lineare Gleichung hat, um die Temperatur aus dem Spannungsmesswert abzuleiten. Ich verwende Thermistoren und RTDs bei meiner Arbeit, aber sie sind nicht linear und daher von Grund auf komplizierter zu implementieren.
Ich habe das Perma Proto Bonnet Mini-Kit von Adafruit als Platine verwendet, um das Relais, den Klemmenblock und andere Verdrahtungen anzulöten, was schön ist, da es für den Pi dimensioniert ist und eine Schaltung enthält, die für das, was der Pi bietet, relevant ist.
Das sind die wichtigsten Dinge. Am Ende habe ich fast alles von Digikey bekommen, da sie neben allen normalen Schaltungsteilen auch die Teile von Adafruit auf Lager haben, so dass es einfach ist, alles auf einmal zu bekommen. Hier ist ein Link zu einem Warenkorb mit allen von mir bestellten Teilen:
www.digikey.com/short/z7c88f
Es enthält ein paar Drahtspulen für die Überbrückungsdrähte, wenn Sie bereits welche haben, brauchen Sie sie nicht.
Lieferungen
- Pimoroni Explorer pHAT
- TMP36 Temperatursensor
- 150 Ohm 2W Widerstände
- 1A 5VDC SPDT-Relais
- Schraubklemmenblock
- Leiterplatte
- Kabel
- Leiterplattenabstandshalter
- Löten & Lötkolben
Teileliste auf digikey:
www.digikey.com/short/z7c88f
Schritt 1: Hinweise zur elektrischen Theorie
Es ist wichtig, sicherzustellen, dass die verwendeten Komponenten die richtige Größe haben, um die Leistung und den Strom zu bewältigen, die sie sehen, andernfalls kann es zu einem vorzeitigen Ausfall oder sogar zu einem Brand kommen!
Die wichtigsten Komponenten, über die Sie sich in diesem Fall Gedanken machen müssen, sind der Nennstrom der Relaiskontakte und die Nennleistung der Widerstände.
Da die einzige Last in unserem Stromkreis die Widerstände sind, können wir einfach den Gesamtwiderstand berechnen, in das Ohmsche Gesetz umwandeln und den Strom in unserem Stromkreis berechnen.
Gesamtwiderstand der Parallelwiderstände: 1/R_T =1/R_1 +1/R_2 +1/R_3 +1/R_N
Bei gleichen Einzelwiderständen kann er reduziert werden auf: R_T=R/N. Für vier gleiche Widerstände ist es also R_T=R/4.
Ich verwende vier 150--Widerstände, daher beträgt mein Gesamtwiderstand durch die vier (150 Ω) / 4 = 37,5 Ω.
Das Ohmsche Gesetz ist nur Spannung = Strom x Widerstand (V = I × R). Wir können das neu anordnen, um den Strom zu bestimmen, um I = V / R zu erhalten. Wenn wir unsere Spannung von unserem Netzteil und unseren Widerstand anschließen, erhalten wir I = (12 V) / (37,5 Ω) = 0,32 A. Das bedeutet also, dass unser Relais mindestens mit 0,32 A bewertet werden muss Das 1A-Relais, das wir verwenden, ist mehr als dreimal so groß wie die benötigte Größe, was viel ist.
Für die Widerstände müssen wir die Strommenge bestimmen, die durch jeden einzelnen fließt. Die Potenzgleichung gibt es in verschiedenen Formen (durch Substitution mit dem Ohmschen Gesetz), aber am bequemsten für uns ist P=E^2/R. Für unseren individuellen Widerstand wird dies zu P = (12 V) ^ 2 / 150 Ω = 0,96 W. Wir wollen also mindestens einen 1-Watt-Widerstand, aber 2 Watt geben uns einen zusätzlichen Sicherheitsfaktor.
Die Gesamtleistung der Schaltung beträgt nur 4 x 0,96 W oder 3,84 W (Sie können auch den Gesamtwiderstand in die Leistungsgleichung einsetzen und das gleiche Ergebnis erhalten).
Ich schreibe all dies auf. Falls Sie also mehr Strom erzeugen möchten (mehr Wärme), können Sie Ihre Zahlen ausführen und die benötigten Widerstände, ihre Nennleistung und die Nennleistung des benötigten Relais berechnen.
Ich habe anfangs versucht, die Schaltung mit den 5 Volt von der Raspberry Pi-Stromschiene zu betreiben, aber die pro Widerstand erzeugte Leistung beträgt nur P = (5 V) ^ 2 / 150 Ω = 0,166 W, also insgesamt 0,66 W, was nicht der Fall war. t genug, um einen Temperaturanstieg von mehr als ein paar Grad zu erzeugen.
Schritt 2: Schritt 1: Löten
Okay, genug von Stücklisten und Theorie, kommen wir zum Schaltungsdesign und zum Löten!
Ich habe die Schaltung auf der Proto-Bonnet auf zwei verschiedene Arten gezeichnet, einmal als Schaltplan und einmal als visuelle Darstellung der Platine. Es gibt auch ein markiertes Foto des Pimoroni Explorer pHAT-Boards, das die Verkabelung zwischen ihm und der Proto-Bonnet zeigt.
Beim Explorer pHAT muss der mitgelieferte 40-Pin-Header an die Platine gelötet werden, dies ist die Verbindung zwischen ihm und dem Raspberry Pi. Es kommt mit einem Klemmenkopf für die E / A, aber ich habe ihn nicht verwendet, sondern nur Drähte direkt an die Platine gelötet. Die Proto-Bonnet enthält auch Anschlüsse für den Header, wird aber in diesem Fall nicht verwendet.
Der Temperatursensor ist direkt mit der Explorer pHAT-Platine verbunden, indem Drähte verwendet werden, um den Unterschied zwischen der Position des Raspberry Pi und dem Inneren des Camera Dome, in dem er sich befindet, auszugleichen.
Der Schraubklemmenblock und das Steuerrelais sind die beiden Komponenten, die auf die Proto-Bonnet-Platine gelötet sind, im Schaltplan sind sie mit T1, T2, T3 (für die drei Schraubklemmen) und CR1 für das Relais bezeichnet.
Die Widerstände werden an Leitungen gelötet, die auch vom Raspberry Pi zum Camera Dome führen, sie werden über die Schraubklemmen an T1 und T3 mit der Proto-Bonnet verbunden. Ich habe vergessen, ein Foto von der Montage zu machen, bevor ich die Kamera wieder auf meinem Dach installiert habe, aber ich habe versucht, die Widerstände gleichmäßig um die Kuppel herum zu verteilen, wobei nur zwei Drähte zur Proto-Bonnet zurückkommen. Sie treten in die Kuppel durch Löcher auf gegenüberliegenden Seiten des Rohres ein, wobei der Temperatursensor durch ein drittes Loch eintritt, das gleichmäßig zwischen zwei der Widerstände nahe der Kante der Kuppel beabstandet ist.
Schritt 3: Schritt 2: Montage
Sobald alles zusammengelötet ist, können Sie es auf Ihrer All-Sky-Kamera installieren. Montieren Sie den Explorer pHAT auf dem Rasperry Pi, schieben Sie ihn auf den 40-Pin-Header, und dann wird die Proto-Bonnet mit einigen Abstandshaltern daneben auf dem Pi montiert. Eine andere Option wäre, Abstandshalter auf dem Explorer zu verwenden, aber da ich das ABS-Rohrgehäuse verwendet habe, wurde der Pi zu groß, um mehr zu passen.
Verlegen Sie den Temperatursensor das Gehäuse hinauf zu seiner Position und installieren Sie auch den Widerstandskabelbaum. Verdrahten Sie dann den Kabelbaum mit dem Klemmenblock auf der Proto-Platine.
Auf zur Programmierung!
Schritt 4: Schritt 3: Laden der Explorer-PHAT-Bibliothek und Testprogrammierung
Bevor wir den Explorer pHAT verwenden können, müssen wir die Bibliothek dafür von Pimoroni laden, damit der Pi mit ihm kommunizieren kann.
Öffnen Sie auf Ihrem Raspberry Pi das Terminal und geben Sie ein:
Locken https://get.pimoroni.com/explorerhat | bash
Geben Sie 'y' oder 'n' je nach Bedarf ein, um die Installation abzuschließen.
Als nächstes wollen wir ein einfaches Programm ausführen, um die Ein- und Ausgänge zu testen, um sicherzustellen, dass unsere Verdrahtung korrekt ist. Die angehängte DewHeater_TestProg.py ist ein Python-Skript, das die Temperatur anzeigt und das Relais alle zwei Sekunden ein- und ausschaltet.
Importzeit
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('Relais an') time.sleep(delay) V1 = explorerhat.output.two.off() print('Relay off') time.sleep(delay)
Sie können die Datei auf Ihrem Raspberry Pi öffnen (auf meinem wurde sie in Thonny geöffnet, aber es gibt auch viele andere Python-Editoren) und dann ausführen, und sie sollte die Temperatur anzeigen, und Sie werden das hören Relais an und aus! Wenn nicht, überprüfen Sie Ihre Verkabelung und Stromkreise.
Schritt 5: Schritt 4: Laden der Tauheizungsprogrammierung
Hier ist die vollständige Programmierung der Tauheizung. Es macht mehrere Dinge:
-
Ruft alle fünf Minuten die aktuelle Außentemperatur und den Taupunkt von einem bestimmten Standort des National Weather Service ab. Wenn es keine Daten erhält, behält es die vorherigen Temperaturen bei und versucht es in weiteren fünf Minuten erneut.
- Die NWS fordert, dass Kontaktinformationen in die API-Anfragen aufgenommen werden, falls es Probleme mit der Anfrage gibt, wissen sie, an wen sie sich wenden müssen. Dies steht in Zeile 40 der Programmierung, bitte ersetzen Sie '[email protected]' durch Ihre eigene E-Mail-Adresse.
- Sie müssen zu weather.gov gehen und eine Wettervorhersage für Ihre Region suchen, um die Stations-ID zu erhalten, die die nächste Wetterstation bei der NWS ist. Die Stations-ID steht in () nach dem Ortsnamen. Tragen Sie diese in Zeile 17 der Programmierung ein. Derzeit wird KPDX oder Portland, Oregon angezeigt.
- Wenn Sie sich außerhalb der USA befinden, besteht eine weitere Möglichkeit, Daten von OpenWeatherMap.org zu verwenden. Ich habe es selbst nicht ausprobiert, aber Sie können sich dieses Beispiel hier ansehen: Reading-JSON-With-Raspberry-Pi
- Beachten Sie, dass die Temperaturen vom NWS und vom Temperatursensor in Grad Celsius angegeben sind, ebenso wie die für die ASI-Kamera. Aus Gründen der Konsistenz habe ich sie alle Celsius belassen, anstatt in Fahrenheit umzurechnen, was ich eher gewohnt bin.
- Als nächstes liest es die Temperatur vom Kuppelsensor ab, und wenn sie weniger als 10 Grad über dem Taupunkt liegt, schaltet es das Relais ein. Wenn es mehr als 10,5 Grad über dem Taupunkt liegt, schaltet es das Relais aus. Sie können diese Einstellungen bei Bedarf ändern.
- Einmal pro Minute protokolliert es die aktuellen Werte für Temperaturen, Taupunkt und Relaisstatus in einer.csv-Datei, damit Sie sehen können, wie es sich im Laufe der Zeit verhält.
#Raspberry Pi Dew Heater Steuerprogramm
#Dec 2019 #Brian Plett #Verwendet Pimoroni Explorer pHAT, einen Temperatursensor und ein Relais #um eine Widerstandsschaltung als Tauheizung für eine All-Sky-Kamera zu steuern #Zieht die Außenlufttemperatur und den Taupunkt von der NWS-Website #hält die Innentemperatur bei 10 Grad über Taupunkt Import Zeit Import DatumZeit Import Anfragen Import csv Import os Import explorerhat #Station ID ist die nächste Wetterstation am NWS. Gehen Sie zu weather.gov und suchen Sie nach der Vorhersage für Ihre Region. #Stations-ID ist in () nach dem Ortsnamen. settings = { 'station_ID':'KPDX', } #Alternative URL für Wetterinformationen #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2}&Einheiten={3}"
#Wetter-URL zum Abrufen von Daten
BASE_URL = "https://api.weather.gov/stations/{0}/observations/latest"
#Verzögerung für Relaissteuerung, Sekunden
ControlDelay = 2 A=0 B=0 während True: #Datum, das im Protokolldateinamen verwendet werden soll datestr = datetime.datetime.now().strftime("%Y%m%d") #Datum und Uhrzeit für jede Datenzeile localtime = datetime.datetime.now().strftime("%Y/%m/%d %H:%M") #CSV-Dateipfadpfad = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' while B == 0: try: #Pull Temperatur und Taupunkt alle 60 Sekunden aus NWS 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]'}) oatRaw = weather_data.json()["properties"]["temperature"]["value"] dewRaw = weather_data.json()["properties"]["taupunkt"]["wert"] #diagnostic print for raw temperature data print(oatRaw, dewRaw) OAT = round(oatRaw, 3) Dew = round(dewRaw, 3) außer: A = 0 B = 1 break A = 0 B = 1 Pause wenn A < 300: A = A + ControlDelay sonst: B = 0 #Rohspannung vom Raspberry Pi Explorer PHat lesen und in Temperatur umwandeln 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 zeigt Temperaturen, Taupunkte und Relaisausgangszustand 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 Sekunden nach Ablauf der Minute, Daten in eine CSV-Datei schreiben, wenn A ==10: if os.path.isfile(path.format(datestr)): print(path.format(datestr)) mit open(path.format(datestr), "a") als 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 ") als csvfile: txtwrite = csv.writer(csvfile) txtwrite.writerow(fieldnames) txtwrite.writerow([localtime, OAT, Dew, tempC, explorerhat.output.two.read()]) time.sleep(ControlDelay)
Ich habe dies in einem neuen Ordner unter dem allsky-Ordner namens DewHeaterLogs gespeichert.
Versuchen Sie, dies eine Weile auszuführen, um sicherzustellen, dass alles gut aussieht, bevor Sie es als Skript ausführen.
Schritt 6: Schritt 5: Ausführen des Skripts beim Start
Um das Dew Heater-Skript auszuführen, sobald der Raspberry Pi startet, habe ich die Anweisungen hier befolgt:
www.instructables.com/id/Raspberry-Pi-Laun…
Für das Launcher-Skript habe ich Folgendes erstellt:
#!/bin/sh
# launcher.sh # zum Home-Verzeichnis navigieren, dann zu diesem Verzeichnis, dann Python-Skript ausführen, dann zurück nach Hause cd / cd home/pi/allsky/DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /
Sobald dies erledigt ist, sollte es losgehen. Genießen Sie eine taufreie Kamera!
Schritt 7: Update Dezember 2020
Ungefähr zur Hälfte des letzten Jahres funktionierte mein Tauheizer nicht mehr, also habe ich den Code deaktiviert, bis ich ihn mir ansehen konnte. Hatte endlich etwas Zeit über die Winterpause und stellte fest, dass das von mir verwendete Relais während des Betriebs einen hohen Widerstand an seinen Kontakten zeigte, wahrscheinlich durch Überlastung.
Also habe ich es mit einem höher bewerteten Relais aktualisiert, eines mit einem 5A-Kontakt anstelle eines 1A-Kontakts. Außerdem ist es eher ein Leistungsrelais als ein Signalrelais, also hoffe ich, dass es hilft. Es ist ein TE PCH-105D2H, 000. Ich habe auch einige Schraubklemmen für den Explorer pHAT hinzugefügt, damit ich die Heizung und den Temperatursensor bei Bedarf leicht trennen konnte. Alle 3 davon befinden sich in diesem Warenkorb unten:
Digikey-Warenkorb
Beachten Sie, dass sich die Pins für dieses Relais von denen des vorherigen unterscheiden, so dass die Verdrahtung etwas anders ist, aber unkompliziert sein sollte. Die Polarität spielt für die Spule keine Rolle, FYI.
Empfohlen:
Anleitung für Raspberry Pi Gaming Emulator: 7 Schritte
Raspberry Pi Gaming Emulator Anleitung: Jeder liebt es zu spielen. Auch wenn wir ernsthafte Arbeit leisten. Und das ist natürlich, denn jeder verdient Ruhe, Freizeit oder Freizeit. Und natürlich können wir uns kaum weigern, unser Lieblingsspiel gespielt zu haben. Ich erinnere mich an die Zeit, als ein Typ
Anfängerleitfaden für Raspberry Pi: 6 Schritte (mit Bildern)
Anfängerleitfaden für Raspberry Pi: Ich arbeite seit geraumer Zeit mit Arduino. Es ist einfach, billig und erledigt die Arbeit. Aber in letzter Zeit tendiere ich mehr zu IoT-Projekten. Also begann ich mit dem ESP-Entwicklungsboard und es funktionierte perfekt. Aber jetzt möchte ich in Richtung
Hutschienenhalterung für Raspberry Pi 4: 7 Schritte
Hutschienenhalterung für Raspberry Pi 4: Manchmal ist es sinnvoll, Ihr Raspberry Pi 4 basiertes Projekt dauerhaft in einem Schaltschrank zu montieren - zum Beispiel in der Hausautomation oder industriellen Anwendungen. In solchen Fällen hilft Ihnen unser RasPiBox Gehäuse-Set für Raspberry Pi A+, 3B+ und 4B
Tox & Toxygen für den Raspberry Pi 3: 5 Schritte
Tox & Toxygen für den Raspberry Pi 3: In dieser Anleitung erfahren Sie, wie Sie Toxygen auf Raspberry Pi 3 installieren und verwenden. Aber zuerst sprechen wir über Tox.Tox ist eine verschlüsselte Art zu sprechen und laut seiner Website "A New Kind" von Instant Messaging. Ob Konzerne oder Regierungen
Was mit all diesen AOL-CDs zu tun ist – wikiHow
Was mit all diesen AOL-CDs zu tun ist: Ich wollte etwas mit Plastik-CDs machen, außer sie der Deponie hinzuzufügen - Meine Lösung bestand darin, sie zu verwenden, um geometrische 3D-Konstruktionen zu erstellen. Ich beschreibe hier, wie ich mit 12 CDs ein Dodekaeder gebaut habe. Ich habe auch ein 32-CD-beschnittenes Ikosaeder gebaut, 1