» Elektronica » Arduino »Klokweerstation op Arduino

Bekijk het weerstation op Arduino

Bekijk het weerstation op Arduino

Goedemiddag, ik blijf doen Arduino in zijn vrije tijd, en deze keer schreef hij instructies voor de fabricage van een klein weerstation. Het werkt als een klok met een datum en toont temperaturen binnen en buiten de kamer. Als hoofdcontroller zullen we Arduino UNO gebruiken, maar een ander bord met Atmega328p aan boord zal het doen. Voor weergave gebruiken we het grafische scherm WG12864B. We sluiten ook twee ds18b20 temperatuursensoren aan. Een binnen, de tweede buiten. Laten we beginnen.

In het fabricageproces zelfgemaakt we hebben nodig:

- Arduino UNO (of een ander Arduino-compatibel bord)
- WG12864B grafisch scherm
- ds18b20 temperatuursensor, 2 stuks
- Voeding 6-12 V
- Weerstanden 4.7 Kom 0.25 W, 2 stuks.
- Weerstanden 100 ohm 0,25 W.
- Batterijvak voor 4 AAA "pink" batterijen
- Doos uit de cartridge van de SEGA-console
- elektrische tape
- aansluitdraden
- printplaat
- Knopen
- briefpapiermes
- soldeerbout
- Soldeer, hars
- Dubbelzijdige tape

Stap 1 WG12864B3 voorbereiden.
Degenen die nog niet eerder met schermen hebben gewerkt, kunnen bang zijn voor een groot aantal aanpassingen, die identiek lijken, schermen. Ik zal een beetje uitleggen. De meeste schermen van dit type werken op ks0107 / ks0108-chips. Alle schermen zijn onder te verdelen in 4 soorten:

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

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

Optie C: Shenzhen Jinghua Displays Co Ltd. Jm12864

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

Ze zien er bijna hetzelfde uit. Maar ze hebben verschillende verbindingspennen. Ik koos voor, en ik raad je aan, WG12864B3 V2.0, maar als het scherm anders was, of als je het gewoon niet bij de hand hebt, kun je het gemakkelijk uitzoeken met behulp van de tabel:


Korte kenmerken:


Er zijn veel verschillende verbindingsschema's op internet en alles lijkt te werken. Het punt is dat er niet alleen verschillende schermen zijn, maar ook twee manieren om ze aan te sluiten: serieel en parallel. Bij gebruik van een seriële poortverbinding hebben we slechts 3 uitgangen van de microcontroller nodig. Met een parallel minimum van 13. De keuze ligt in dit geval voor de hand, Arduino heeft weinig conclusies. Voor parallelle verbinding is het aansluitschema als volgt:


Voor de seriële verbinding die we zullen gebruiken, is het schema als volgt:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - via een weerstand van 100 Ohm - + 5V
20 (BLK) - GND


Om het contrast aan te passen, moet er een potentiometer op het scherm staan. Er zijn schermen zonder, maar nu is het een zeldzaamheid:


Er is een weerstand van 100 ohm nodig, zodat een spanning van 5 volt niet per ongeluk tegenlichtdiodes verbrandt.


Stap 2 De zaak maken.
Neem voor de zaak de doos uit het patroonprefix Sega. Als u deze doos niet bij de hand heeft, kunt u een andere case gebruiken. Het belangrijkste is dat het scherm en de Arduino erin passen.


Knip de transparante film bovenop de doos zodat er geen stukjes meer over zijn:


Knip vervolgens met behulp van een administratief mes een venster van 37x69 uit voor het scherm.


Aan de achterkant, langs de rand van de snede, lijmen we een dubbelzijdige tape, bij voorkeur zwart:


Verwijder het beschermpapier van het plakband en lijm ons scherm erop:


Van de buitenkant zou het er zo uit moeten zien:


Onder het scherm, ook op dubbelzijdige tape, bevestigen we de Arduino, waarbij we voorlopige uitsparingen maken voor de USB-poort en het stopcontact:


Uitsparingen voor Arduino-sockets moeten aan beide zijden van de doos worden gedaan, zodat deze vrij kan worden gesloten:


Stap 3 Temperatuursensoren.
We zullen digitale temperatuursensoren DS18B20 gebruiken. Door ze te gebruiken, krijgen we een grote meetnauwkeurigheid, de fout is niet meer dan 0,5 ° C, in een breed temperatuurbereik -55 ... + 125 ° C. Daarnaast voert de digitale sensor alle berekeningen zelf uit en ontvangt de Arduino eenvoudig kant-en-klare metingen. Vergeet bij het aansluiten van deze sensor niet de pull-up weerstand, 4,7 kΩ, tussen de DQ- en VDD-contacten. Er zijn ook verschillende aansluitmogelijkheden mogelijk. Met externe voeding, naar mijn mening de beste optie, zullen we deze gebruiken:


Als je wilt, kun je de parasitaire energiemodus gebruiken:


Of een verbeterde optie voor parasitaire voeding:


Bij elke stroomvoorziening worden de sensoren parallel aangesloten:


We plaatsen de temperatuurmeetsensor op het kleine bord samen met twee knoppen, die we zullen gebruiken om de tijd en datum van de klok in te stellen:


De gemeenschappelijke draad van beide knoppen is aangesloten op GND, de draad van de eerste knop is aangesloten op A0, van de tweede op A1.
Bevestig op een dubbelzijdige tape naast de Arduino:


De sensor, die buiten de kamer moet worden geplaatst, is beter te kiezen in een metalen, stof- en vochtbestendige behuizing:


Bereken de draad met de vereiste lengte zodat de sensor buiten het raam kan worden opgehangen, het belangrijkste is dat deze niet meer dan 5 meter mag zijn, als u meer lengte nodig heeft, moet u de waarde van de pull-up-weerstand verminderen.

De draad van de DQ-databus van beide sensoren is aangesloten op pin 5 van de Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Stap 4 Power.
Voor stroom kunt u een voeding gebruiken met een spanning van 6 tot 12 volt. Soldeer aan het einde van de power flare-draad de stekker die geschikt is voor het Arduino-stopcontact:


Of u kunt een batterijvak voor vier "AAA" -, "pink" -batterijen in de hoes plaatsen. En sluit de positieve draad van het compartiment aan op de Vin Arduino en de min op GND.

Stap 5 De programmeeromgeving voorbereiden.
Eerst moet je Arduino IDE downloaden en installeren officiële site

En voeg ook toe aan de twee bibliotheken die nodig zijn voor de schets. OneWire - vereist voor communicatie met DS18B20-sensoren:
onewire.rar [16.75 Kb] (downloads: 34)


U8glib - gebruikt om informatie op het scherm weer te geven:
u8glib.rar [906.95 Kb] (downloads: 46)


Download de bibliotheek. Vervolgens pakken we de archieven uit en verplaatsen we de inhoud van de archieven naar de map "libraries" in de map met de Arduino IDE geïnstalleerd. Je kunt ook bibliotheken toevoegen via de Arduino IDE. Om dit te doen, zonder de archieven uit te pakken, voert u de Arduino IDE uit, selecteert u Sketch - Connect Library in het menu Sketch. Selecteer helemaal bovenaan de vervolgkeuzelijst het item ".Zip-bibliotheek toevoegen". We geven de locatie van de gedownloade archieven aan. Na alle stappen moet je de Arduino IDE opnieuw opstarten.

Stap 6 De schets bewerken.
Temperatuursensoren werken met het One Wire-protocol en hebben voor elk apparaat een uniek adres - een 64-bits code. Het is niet raadzaam sensorzoekopdrachten toe te voegen aan de schets. Het is niet nodig om elke keer Arduino hiccup-sensoren te laden.Vul daarom eerst alles in elkaar en vul de schets in Arduino in, in het menu Bestand - Voorbeelden - Dallas Temperatuur - OneWireSearch. Voer vervolgens Tools - Port Monitor uit. Arduino zou onze sensoren moeten vinden, de adressen en temperatuurmetingen moeten schrijven. Deze adressen moeten worden opgeschreven of gewoon ergens worden gekopieerd. Open nu de schets Ard_Tic_Tak_WG12864B_2_x_Term_Serial en zoek naar de regels:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // intern adres
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adres van de externe sensor


De adressen die overeenkomen met de locatie van de sensoren vervangen we door onze adressen.
Onze horloges maken geen gebruik van de RTC-module (real-time klok), dus je moet de klok aanpassen. Verwijder voor het gemak de regel (seconden verschijnen op het scherm):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Druk seconden af ​​om de juistheid van de cursus te controleren


Stel de juiste tijd in via de poortmonitor. Open hiervoor de poortmonitor, wacht tot de initiële temperatuurmetingen zijn voltooid en voer de huidige datum en tijd in het formaat "dag, maand, jaar, uren, minuten, seconden" in. Deel de getallen zonder spaties door komma's of punten.

Als de klok haast heeft, verander dan de waarde in een grotere, ik raad aan om te experimenteren met stappen van 100 eenheden. Als u achterblijft, verlaag dan de waarde in de regel:

if (micros () - prevmicros & gt; 494000) {// verandering naar een andere voor aanpassing was 500.000


Bepaal empirisch het nummer waarop de klok vrij nauwkeurig gaat. Om de nauwkeurigheid van de cursus te bepalen en een conclusie nodig seconden. Nadat het nummer nauwkeurig is gekalibreerd, kunnen seconden van commentaar worden voorzien en dus van het scherm worden verwijderd.
Vul de schets in.


Functionaliteit of schoonheid?
Totaal aantal stemmen: 19
8
8.3
7.7

Voeg een opmerking toe

    • lachglimlachtxaxaokweet het nietyahoonea
      baaskrabbendwaasjaja-jaagressiefgeheim
      sorrydansdance2dance3pardonhulpdrankjes
      stopvriendengoedgoedfluitjebezwijmdtong
      rookklappencrayverklarenbeledigenddon-t_mentiondownloaden
      hittebooslach1mdavergaderingmoskingnegatief
      not_ipopcornstraffenlezenschrikschriktzoeken
      bespottendankjewelditto_clueUmnikacuutmee eens
      slechtbeeeblack_eyeblum3: oopscheppenverveling
      gecensureerdbeleefdheidgeheim2bedreigenoverwinningyusun_bespectacled
      shokrespektlolvoorgekomenwelkomkrutoyya_za
      ya_dobryihelperne_huliganne_othodifludverbodsluiten
3 commentaar
De auteur
Helaas ken ik de analogen van het beeldscherm niet goedkoper.
En hoe meer budget het mogelijk is om dit scherm te vervangen, ze keken vanaf 500 roebel.?
Voor deze denyushki kun je een kant-en-klaar, echt weerstation kopen, met een indicatie van niet alleen temperatuur, maar ook druk en vochtigheid, en met een indicatie van de richting van verandering van de gemeten waarden! lach
Goedenavond En hoe meer budget het mogelijk is om dit scherm te vervangen, ze keken vanaf 500 roebel.?
Dank je wel!

We raden je aan om te lezen:

Geef het voor de smartphone ...