» Elektronik » Arduino »Uhr Wetterstation auf Arduino

Beobachten Sie die Wetterstation auf Arduino

Beobachten Sie die Wetterstation auf Arduino

Guten Tag, ich mache weiter Arduino In seiner Freizeit schrieb er diesmal Anweisungen für die Herstellung einer kleinen Wetterstation. Es fungiert als Uhr mit Datum und zeigt die Temperaturen innerhalb und außerhalb des Raums an. Als Hauptcontroller werden wir Arduino UNO verwenden, aber ein anderes Board mit Atmega328p an Bord reicht aus. Zur Anzeige verwenden wir den Grafikbildschirm WG12864B. Wir schließen auch zwei ds18b20 Temperatursensoren an. Einer drinnen, der zweite draußen. Fangen wir an.

Im Herstellungsprozess hausgemacht wir werden brauchen:

- Arduino UNO (oder ein anderes Arduino-kompatibles Board)
- Grafikbildschirm WG12864B
- ds18b20 Temperatursensor, 2St
- Stromversorgung 6 - 12 V.
- Widerstände 4,7 Kom 0,25 W, 2 Stk.
- Widerstände 100 Ohm 0,25 W.
- Batteriefach für 4 AAA-Batterien
- Box aus der Kassette der SEGA-Konsole
- Isolierband
- Verbindungsdrähte
- Leiterplatte
- Knöpfe
- Schreibwarenmesser
- Lötkolben
- Lot, Kolophonium
- Doppelseitiges Klebeband

Schritt 1 WG12864B3 vorbereiten.
Diejenigen, die zuvor noch nicht mit Bildschirmen gearbeitet haben, haben möglicherweise Angst vor einer Vielzahl von Modifikationen, die anscheinend gleich sind. Ich werde ein wenig erklären. Die meisten Bildschirme dieses Typs arbeiten mit ks0107 / ks0108-Chips. Alle Bildschirme können in 4 Typen unterteilt werden:

Option A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T

Option B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ-Displays AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-QJ, QY

Option C: Shenzhen Jinghua zeigt Co Ltd. Jm12864

Option D: Wintek-Kaskaden WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Sie sehen fast gleich aus. Sie haben jedoch unterschiedliche Verbindungsstifte. Ich habe mich für WG12864B3 V2.0 entschieden und empfehle es Ihnen. Wenn der Bildschirm jedoch anders eingeht oder Sie ihn einfach nicht zur Hand haben, können Sie ihn anhand der Tabelle leicht herausfinden:


Kurze Eigenschaften:


Es gibt viele verschiedene Verbindungsschemata im Internet, und alles scheint zu funktionieren. Die Sache ist, dass es nicht nur verschiedene Bildschirme gibt, sondern auch zwei Möglichkeiten, sie zu verbinden: seriell und parallel. Bei Verwendung einer seriellen Schnittstelle benötigen wir nur 3 Ausgänge des Mikrocontrollers. Mit einem parallelen Minimum von 13. Die Wahl in diesem Fall ist offensichtlich, Arduino hat nur wenige Schlussfolgerungen. Für die Parallelschaltung sieht der Anschlussplan wie folgt aus:


Für eine serielle Verbindung, die wir verwenden werden, lautet das Schema wie folgt:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - über einen 100 Ohm Widerstand - + 5V
20 (BLK) - GND


Um den Kontrast einzustellen, sollte sich ein Potentiometer auf dem Bildschirm befinden. Es gibt Bildschirme ohne, aber jetzt ist es eine Seltenheit:


Ein 100-Ohm-Widerstand wird benötigt, damit eine Spannung von 5 Volt nicht versehentlich Hintergrundbeleuchtungsdioden verbrennt.


Schritt 2 Den Fall machen.
Nehmen Sie für den Fall die Box aus dem Patronenpräfix Sega. Wenn Sie diese Box nicht zur Hand haben, können Sie einen anderen Fall verwenden. Die Hauptsache ist, dass der Bildschirm und das Arduino hineinpassen.


Schneiden Sie die transparente Folie oben auf der Schachtel so ab, dass keine Teile mehr vorhanden sind:


Schneiden Sie dann mit einem Schreibmesser ein Fenster mit einer Größe von 37 x 69 für den Bildschirm aus.


Auf der Rückseite kleben wir entlang der Schnittkante ein doppelseitiges Klebeband, vorzugsweise schwarz:


Entfernen Sie das Schutzpapier vom Klebeband und kleben Sie unseren Bildschirm darauf:


Von außen sollte es so aussehen:


Unterhalb des Bildschirms, ebenfalls auf doppelseitigem Klebeband, befestigen wir den Arduino und machen vorläufige Ausschnitte für den USB-Anschluss und die Steckdose:


Ausschnitte für Arduino-Sockel müssen auf beiden Seiten der Box angebracht werden, damit sie frei geschlossen werden kann:


Schritt 3 Temperatursensoren.
Wir werden digitale Temperatursensoren DS18B20 verwenden. Mit ihnen erhalten wir eine hohe Messgenauigkeit, der Fehler beträgt nicht mehr als 0,5 ° C in einem weiten Temperaturbereich von -55 ... + 125 ° C. Darüber hinaus führt der digitale Sensor alle Berechnungen selbst durch und der Arduino empfängt einfach vorgefertigte Messwerte. Vergessen Sie beim Anschließen dieses Sensors nicht den Pull-up-Widerstand (4,7 kΩ) zwischen den DQ- und VDD-Kontakten. Es sind auch mehrere Verbindungsoptionen möglich. Mit externer Stromversorgung, meiner Meinung nach die beste Option, werden wir sie nutzen:


Wenn Sie möchten, können Sie den parasitären Energiemodus verwenden:


Oder eine verbesserte Option für parasitäre Lebensmittel:


Bei jeder Stromversorgung sind die Sensoren parallel geschaltet:


Wir werden den Temperaturmesssensor zusammen mit zwei Tasten auf der kleinen Tafel platzieren, mit denen wir die Uhrzeit und das Datum der Uhr einstellen:


Das gemeinsame Kabel von beiden Tasten ist mit GND verbunden, das Kabel von der ersten Taste ist mit A0 verbunden, von der zweiten mit A1.
Befestigen Sie es an einem doppelseitigen Klebeband neben dem Arduino:


Der Sensor, der außerhalb des Raums platziert werden soll, ist besser in einem metall-, staub- und feuchtigkeitsbeständigen Gehäuse zu wählen:


Berechnen Sie den Draht mit der erforderlichen Länge, damit der Sensor außerhalb des Fensters aufgehängt werden kann. Hauptsache, er sollte nicht mehr als 5 Meter betragen. Wenn Sie mehr Länge benötigen, müssen Sie den Wert des Pull-up-Widerstands reduzieren.

Der Draht vom DQ-Datenbus beider Sensoren ist mit Pin 5 des Arduino verbunden.
Vdd - +5 Arduino.
GND - GND Arduino.


Schritt 4 Stromversorgung.
Für die Stromversorgung können Sie ein Netzteil mit einer Spannung von 6 bis 12 Volt verwenden. Löten Sie am Ende des Power Flare-Kabels den für die Arduino-Steckdose geeigneten Stecker:


Oder Sie können ein Batteriefach für vier AAA-Batterien in das Gehäuse legen. Verbinden Sie den positiven Draht vom Fach mit dem Vin Arduino und das Minus mit GND.

Schritt 5 Vorbereiten der Programmierumgebung.
Zuerst müssen Sie Arduino IDE mit herunterladen und installieren offizielle Seite

Fügen Sie außerdem die beiden für die Skizze erforderlichen Bibliotheken hinzu. OneWire - erforderlich für die Kommunikation mit ds18b20-Sensoren:
onewire.rar [16.75 Kb] (Downloads: 34)


U8glib - wird verwendet, um Informationen auf dem Bildschirm anzuzeigen:
u8glib.rar [906,95 Kb] (Downloads: 46)


Laden Sie die Bibliothek herunter. Dann entpacken wir die Archive und verschieben den Inhalt der Archive in den Ordner "Bibliotheken", der sich in dem Ordner befindet, in dem die Arduino IDE installiert ist. Sie können Bibliotheken auch über die Arduino IDE hinzufügen. Führen Sie dazu die Arduino IDE aus, ohne die Archive zu entpacken, und wählen Sie im Menü Skizze die Option Skizze - Bibliothek verbinden. Wählen Sie ganz oben in der Dropdown-Liste das Element ".Zip-Bibliothek hinzufügen" aus. Wir geben den Speicherort der heruntergeladenen Archive an. Nach allen Schritten müssen Sie die Arduino IDE neu starten.

Schritt 6 Bearbeiten der Skizze.
Temperatursensoren arbeiten mit dem One Wire-Protokoll und haben für jedes Gerät eine eindeutige Adresse - einen 64-Bit-Code. Das Hinzufügen von Sensorsuchbefehlen zur Skizze ist nicht ratsam. Es ist nicht erforderlich, jedes Mal Arduino-Schluckaufsensoren zu laden.Füllen Sie daher zunächst die Skizze in Arduino aus, die sich im Menü Datei befindet - Beispiele - Dallas Temperature - OneWireSearch. Führen Sie dann Tools - Port Monitor aus. Arduino sollte unsere Sensoren finden, die Adressen und Temperaturwerte schreiben. Diese Adressen müssen notiert oder einfach irgendwo kopiert werden. Öffnen Sie nun die Skizze Ard_Tic_Tak_WG12864B_2_x_Term_Serial und suchen Sie nach den Linien:

Byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // interne Adresse
Byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // Adresse des externen Sensors


Wir ersetzen die Adressen, die der Position der Sensoren entsprechen, durch unsere Adressen.
Unsere Uhren verwenden kein RTC-Modul (Echtzeituhr), daher müssen Sie die Uhr einstellen. Kommentieren Sie zur Vereinfachung die Zeile aus (Sekunden werden auf dem Bildschirm angezeigt):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Sekunden drucken, um die Richtigkeit des Kurses zu überprüfen


Stellen Sie die richtige Zeit über den Port-Monitor ein. Öffnen Sie dazu den Anschlussmonitor, warten Sie, bis die ersten Temperaturmessungen abgeschlossen sind, und geben Sie das aktuelle Datum und die aktuelle Uhrzeit im Format "Tag, Monat, Jahr, Stunden, Minuten, Sekunden" ein. Teilen Sie die Zahlen ohne Leerzeichen durch Kommas oder Punkte.

Wenn die Uhr es eilig hat, ändern Sie den Wert auf einen größeren. Ich empfehle, mit Schritten von 100 Einheiten zu experimentieren. Verringern Sie bei Verzögerung den Wert in der Zeile:

if (micros () - prevmicros & gt; 494000) {// Wechsel zu einem anderen zur Anpassung war 500.000


Bestimmen Sie empirisch die Zahl, bei der die Uhr ziemlich genau läuft. Um die Genauigkeit des Kurses zu bestimmen und benötigen Sie eine Abschlusssekunde. Nach genauer Kalibrierung der Zahl können Sekunden auskommentiert und somit vom Bildschirm entfernt werden.
Füllen Sie die Skizze.


Funktionalität oder Schönheit?
Gesamtzahl der Wähler: 19
8
8.3
7.7

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
3 Kommentar
Der Autor
Leider kenne ich die Analoga des Displays nicht billiger.
Und je mehr Budget es möglich ist, dieses Display zu ersetzen, desto mehr schauten sie aus 500 Rubel.
Für diese Denyushki können Sie eine fertige, wirklich wetterfeste Station kaufen, die nicht nur die Temperatur, sondern auch den Druck und die Luftfeuchtigkeit anzeigt und die Richtung der Änderung der Messwerte angibt! lächeln
Guten Abend! Und je mehr Budget es möglich ist, dieses Display zu ersetzen, desto mehr schauten sie aus 500 Rubel.
Vielen Dank!

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...