Inhaltsverzeichnis:
- Schritt 3: JAWS: Software
- Schritt 4: Mehr Software…
- Schritt 5: Einige Screenshots…
- Schritt 6: Fertig?
Video: JAWS: Nur eine weitere Wetterstation - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Es ist ganz einfach, einen solchen JAWS zu machen.
Sie bekommen Ihre Sensoren, werfen sie auf Boards zusammen und beginnen, die Bibliotheken zu verwenden, die mit den Sensoren geliefert werden.
Beginnen wir mit der Einrichtung des Programms.
Da ich Niederländisch spreche (Muttersprachler), sind alle Daten und viele der Variablen, die ich verwende, auf Niederländisch. Jetzt haben Sie also die Chance, eine andere Sprache zu lernen…
Was wollen wir von JAWS?
Ganz einfach: Wir möchten einen Bildschirm sehen, der uns die aktuelle Uhrzeit, das Datum, die Ephemeriden (Sonne auf, Sonnenuntergang, Länge des Tages und den astronomischen Mittag) anzeigt.
Außerdem wäre es schön, die Innen- und Außentemperatur, die relative Luftfeuchtigkeit und den Taupunkt sowie den Luftdruck zu sehen.
Zur Vereinfachung verwende ich Celsius für die Temperatur und hPa (= mBar) für den Druck. Niemand muss also von Fahrenheit oder Pfund pro Quadratzoll zurückrechnen…
Zur Zeit sind nur diese Daten verfügbar…
In Zukunft werde ich Luftgeschwindigkeit, Windrichtung und Niederschlag hinzufügen.
Die Idee ist, dass ich eine Wetterhütte im Freien habe und alle Daten über 2,4 GHz an die Inneneinheit gesendet werden.
Schritt 3: JAWS: Software
Um zu unserer Software zu gelangen, können die meisten mit vorhandenen Bibliotheken gefunden werden.
In JAWS verwende ich die folgenden:
- SPI.h: Die Originalbibliothek von Arduino für das 4-Draht-Protokoll. Hier wird es für den TFT-Schild verwendet
- Adafruit_GFX.h und MCUfriend_kbv.h: beide für die Grafik und den Bildschirm verwendet. Diese machen es sehr einfach, Texte auf dem TFT-Bildschirm zu schreiben, Linien und Kästchen zu zeichnen.
- dht.h: für unsere DHTs: Diese Bibliothek kann für DHT11 (das blaue) und DHT22 verwendet werden.
- Wire.h: die Arduino-Bibliothek zur einfachen seriellen Kommunikation. Es wird für die Uhr und die SD-Karte verwendet.
- SD.h: Wieder ein Arduino-Original, um von der SD-Karte zu schreiben und zu lesen.
- TimeLord.h: Dieses hier verwende ich, um die Zeit zu messen, den Sonnenuntergang oder den Sonnenaufgang von jeder geografischen Position aus zu berechnen. Es stellt auch die Uhr für DST (Sommer- oder Winterzeit) ein.
Beginnen wir mit der Uhr.
Zum Auslesen einer Uhr benötigen Sie die Variablen, die Sie aus den verschiedenen Registern innerhalb des Uhrenmoduls erhalten. Wenn wir sie zu mehr als nur Zahlen machen, können wir die folgenden Zeilen verwenden:
const int DS1307 = 0x68;const char* days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* Monate = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 ", "12"};
n
Mit TimeLord erhalten wir dies als Daten für meine Stelle: (Lokeren, Belgien)
ZeitLord Lokeren; Einrichtung Lokeren. Position (51.096, 3.99); Längen-und Breitengrad
Lokeren. TimeZone(+1*60); GMT +1 = +1 x 60 Minuten
Lokeren. DstRules(3, 4, 10, 4, 60); DST vom 3. Monat, 4. Woche bis 10. Monat, 4. Woche, +60 Minuten
int jaar= Jahr +2000;
Byte sunRise= {0, 0, 12, Monatstag, Monat, Jahr}; Beginnen Sie mit der Berechnung jeden Tag ab 00 Stunden
Byte sunSet={0, 0, 12, monthday, month, year}; das gleiche wie oben
Byte maan={0, 0, 12, Monatstag, Monat, Jahr}; das gleiche wie oben
Schwimmphase;
Von hier aus werden die Berechnungen durchgeführt.
Phase = Lokeren. MoonPhase(maan);
Lokeren. SunRise(sunRise);
Lokeren. SunSet(sunSet);
Lokeren. DST(Sonnenaufgang);
Lokeren. DST(Sonnenuntergang);
int ZonOpUur=sunRise[tl_hour];
int ZonOpMin = sunRise[tl_minute];
int ZonOnUur = sunSet[tl_hour];
int ZonOnMin = sunSet[tl_minute];
Dies ist das Beispiel dafür, wie Dinge in TimeLord berechnet werden. Mit dieser Bibliothek erhalten Sie (ziemlich) genaue Zeiten von Sonnenuntergang und Sonnenaufgang.
Am Ende werde ich das gesamte Programm mit diesem Instructable setzen. Es ist ziemlich direkt.
Schritt 4: Mehr Software…
Mehr zur Software…
Wir haben drei große Teile in der Software.
1) Wir erhalten einige Rohdaten von unseren verschiedenen Sensoren: von unserer Uhr, DHTs und BMP180. Das ist unser Input.
2) Wir müssen die Daten in (1 und 0) in etwas Sinnvolles übersetzen. Dazu verwenden wir unsere Bibliotheken und Variablen.
3) Wir möchten unsere Daten auslesen und speichern. Das ist unser Output. Für den sofortigen Einsatz haben wir unser LCD-TFT, für den späteren Einsatz haben wir unsere gespeicherten Daten auf unserer SD-Karte.
In unserer loop() bekommen wir viele "GOTOs": Wir springen zu den verschiedenen Bibliotheken. Wir beziehen unsere Daten von einem der Sensoren, holen die Daten ab und speichern sie (meist) in einer schwebenden Datenvariable. Wir wählen unsere Variablennamen mit Bedacht, nicht mit x oder y, sondern mit Namen wie "tempOutside" oder "pressure" oder so. Um sie lesbarer zu machen. OK, das macht es etwas schwerer für die Verwendung von Variablen und verbraucht mehr Speicher.
Hier kommt der Trick: Wenn Sie unsere Variablen auf dem Bildschirm sichtbar machen, platzieren Sie sie einfach an der richtigen Position.
Die beiden hier verwendeten Bibliotheken, Adafruit_GFX.h und MCUfriend_kbv.h, haben ein schönes Arbeitsset, um Farben, Schriftarten und die Möglichkeit zum Zeichnen von Linien zu verwenden. Zuerst habe ich mit diesen Bibliotheken einen 12864-Bildschirm verwendet, später habe ich das im tft-Bildschirm geändert. Alles, was ich tun musste, war, Kästchen, Rechtecke und Linien zu platzieren und sicherzustellen, dass die Daten an der richtigen Stelle ausgegeben wurden. Dazu können Sie setCursor und tft. Write als Befehl verwenden. Immer sachte. Farben können auch als Variablen gesetzt werden, es gibt viele Beispiele in diesen Bibliotheken, wie man sie wählt.
Zum Beschreiben der SD-Karte benötigen wir auch einige einfache Tricks.
Zum Beispiel lesen wir unsere Daten von der Uhr als separate Stunden, Minuten und Sekunden aus. Die Temperaturen sind DHT.temperature und DHTT.temperature, um zwischen Innen- und Außenbereich zu unterscheiden.
Wenn wir sie auf die SD-Karte legen wollen, verwenden wir einen String: Wir starten jede Schleife als leerer String:
Variablenstring=""; Dann können wir es mit all unseren Daten füllen:
variablestring = variablestring + Stunden+":" + Minuten +":" + Sekunden. Dies ergibt die Zeichenfolge wie 12:00:00.
Da wir es als TXT-Datei schreiben (siehe SD.h auf Arduino.cc), fügen wir für die nächsten Variablen eine Registerkarte hinzu, damit es einfacher in Excel importiert werden kann.
So kommen wir zu: variablestring = variablestring +" \t " + DHT.temperature + " \t" + DHTT. Temperature.
Und so weiter.
Schritt 5: Einige Screenshots…
Um sicherzustellen, dass wir unsere Datensätze nicht "überladen", habe ich nur alle 10 Minuten Daten geschrieben. Wir geben uns 144 Einträge pro Tag. Nicht schlecht, denke ich.
Und natürlich können Sie diese Daten weiterverarbeiten: Sie können Durchschnittswerte bilden, nach Maxima und Minima suchen, Sie können mit vergangenen Jahren vergleichen…
Met-Büros erstellen normalerweise Durchschnittswerte für Tag und Nacht für die Temperaturen: Der Tag beginnt um 8:00 Uhr und dauert bis 20:00 Uhr.
Für Wind, Druck und Niederschlag werden die Mittelwerte von Mitternacht bis Mitternacht genommen.
Schritt 6: Fertig?
Nicht wirklich… Wie gesagt, ich möchte endlich den Windgeschwindigkeits- und Windrichtungssensor mit dem Rest der JAWS arbeiten lassen.
Die kleine Konstruktion, die ich gemacht habe, steht etwa 4 m hoch. Meteorologen erhalten Windgeschwindigkeit aus 10m Höhe. Für mich etwas zu hoch…
Ich hoffe, es hat Ihnen Spaß gemacht, dies zu lesen!
Adafruit-GFX wird hier erklärt:
MCUFRIEND_kbv.h ist hier zu finden:
Mehr über BMP 120 (wie BMP085):
Über DHT22:
Empfohlen:
Erhalten Sie eine Benachrichtigungs-E-Mail, wenn ein Kanal auf ThingSpeak eine Weile nicht aktualisiert wurde – wikiHow
Erhalten Sie eine Benachrichtigungs-E-Mail, wenn ein Kanal auf ThingSpeak eine Weile nicht aktualisiert wurde: HintergrundgeschichteIch habe sechs automatisierte Gewächshäuser, die über Dublin, Irland, verteilt sind. Durch die Verwendung einer maßgeschneiderten Handy-App kann ich die automatisierten Funktionen in jedem Gewächshaus aus der Ferne überwachen und mit ihnen interagieren. Ich kann den Win manuell öffnen / schließen
Eine einfache Wetterstation erstellen – wikiHow
So erstellen Sie eine einfache Wetterstation: Hallo Leute, in diesem Video zeige ich Ihnen, wie Sie eine einfache Wetterstation erstellen, um Temperatur und Luftfeuchtigkeit mit dem DHT11-Sensor zu messen
So erstellen Sie eine Arduino-Wetterstation – wikiHow
So erstellen Sie eine Arduino-Wetterstation: In diesem Projekt werden wir eine Wetterstation herstellen, die Temperatur und Luftfeuchtigkeit mit Arduino misst und den Wert der aktuellen Temperatur und Luftfeuchtigkeit auf einem LCD-Display anzeigt
So erstellen Sie eine Website (eine Schritt-für-Schritt-Anleitung): 4 Schritte
So erstellen Sie eine Website (eine Schritt-für-Schritt-Anleitung): In dieser Anleitung zeige ich Ihnen, wie die meisten Webentwickler ihre Websites erstellen und wie Sie teure Website-Builder vermeiden können, die für eine größere Website oft zu begrenzt sind helfen Ihnen, einige Fehler zu vermeiden, die ich am Anfang gemacht habe
Wie erstelle ich eine Raspberry Pi Wetterstation – wikiHow
So erstellen Sie eine Raspberry Pi-Wetterstation: In diesem Tutorial werde ich den Prozess der Installation eines SenseHAT durchgehen und den Code importieren, der erforderlich ist, um diesen SenseHAT in eine voll funktionsfähige Wetterstation zu verwandeln, die Temperatur, Druck und Luftfeuchtigkeit aufzeichnen kann