» elektronika » Arduino »Óra időjárás-állomás az Arduinón

Nézze meg az Arduino meteorológiai állomását

Nézze meg az Arduino meteorológiai állomását

Jó napot, folytatom Arduino szabadidejében, és ezúttal utasításokat írt egy kis meteorológiai állomás gyártására. Dátummal ellátott óraként működik, és megmutatja a hőmérsékletet a helyiségen és azon kívül. Fő vezérlőként Arduino UNO-t fogjuk használni, de egy másik tábla, amelyen Atmega328p van a fedélzeten. A megjelenítéshez a WG12864B grafikus képernyőt használjuk. Két ds18b20 hőmérséklet-érzékelőt is csatlakoztatunk. Az egyik beltéri, a második kint ki. Kezdjük!

A gyártási folyamatban házi szükségünk lesz:

- Arduino UNO (vagy bármely más Arduino kompatibilis tábla)
- WG12864B grafikus képernyő
- ds18b20 hőmérséklet-érzékelő, 2db
- Tápegység 6 - 12 V
- Ellenállások 4,7 Kom 0,25 W, 2 db.
- Ellenállások 100 ohm, 0,25 W
- Elemtartó rekesz 4 AAA „rózsaszínű” elemhez
- Doboz a SEGA konzol patrontól
- elektromos szalag
- összekötő vezetékek
- áramköri lap
- Gombok
- levélpapír kés
- forrasztópáka
- Forrasztott, kolofon
- Kétoldalas szalag

1. lépés: A WG12864B3 előkészítése.
Azokat, akik korábban nem dolgoztak a képernyőkkel, riaszthatják a képernyők nagyszámú módosítása, amelyek látszólag ugyanazok. Magyarálok egy kicsit. A legtöbb ilyen típusú képernyő a ks0107 / ks0108 chipeken működik. Az összes képernyő 4 típusra osztható:

A lehetőség: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T

B opció: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Az AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1, kijelzők.

C lehetőség: Shenzhen Jinghua Displays Co Ltd. JM12864

D. lehetőség: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Szinte azonosak. De eltérő csatlakozási pontokkal rendelkeznek. Választottam és ajánlom neked a WG12864B3 V2.0 szoftvert, de ha a képernyő másképp érkezett, vagy ha nincs kéznél, akkor könnyen kitalálhatja a táblázat segítségével:


Rövid jellemzők:


Sok különböző kapcsolatrendszer létezik az interneten, és úgy tűnik, hogy minden működik. A helyzet az, hogy nemcsak különböző képernyők vannak, hanem csatlakoztatásuk kétféle módja is: soros és párhuzamos. Soros portos kapcsolat használata esetén csak a mikrovezérlő 3 kimenetére van szükség. Párhuzamos minimummal: 13. A választás ebben az esetben nyilvánvaló, Arduino néhány következtetéssel rendelkezik. A párhuzamos csatlakozáshoz a csatlakozási ábra a következő:


Egy soros kapcsolat esetén, amelyet használunk, a séma a következő:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - 100 Ohm ellenálláson keresztül - + 5 V
20 (BLK) - GND


A kontraszt beállításához potenciométernek kell lennie a képernyőn. Van képernyők nélkül, de most ritkaság:


100 ohmos ellenállásra van szükség, hogy az 5 voltos feszültség ne érezze véletlenül a háttérvilágítás diódait.


2. lépés Az ügy elkészítése.
Az esethez vegye ki a dobozt a Sega előtagból. Ha nem találja ezt a négyzetet kéznél, használhat egy másik esetet. A lényeg az, hogy a képernyő és az Arduino beleférjen.


Vágja át az átlátszó filmet a doboz tetejére, hogy ne maradjon darab:


Ezután irodai késsel vágja ki a képernyőhöz 37x69 méretű ablakot.


A hátoldalon, a vágás széle mentén ragasztunk egy kétoldalas, lehetőleg fekete szalagot:


Távolítsa el a védőpapírt a ragasztószalagról, és ragasztja rá a képernyőn:


Kívülről úgy kell kinéznie:


A képernyő alatt, kétoldalas szalaggal is rögzítjük az Arduino-t, előzetesen kivágva az USB-portot és a hálózati aljzatot:


Az Arduino aljzatok kivágásait a doboz mindkét oldalán el kell végezni, hogy az szabadon bezárható legyen:


3. lépés: Hőmérséklet-érzékelők.
A DS18B20 digitális hőmérséklet-érzékelőket fogjuk használni. Ezekkel nagy mérési pontosságot kapunk, a hiba nem haladja meg a 0,5 ° C-ot, széles -55 ... + 125 ° C hőmérsékleti tartományban. Ezenkívül a digitális érzékelő maga végzi el az összes számítást, és az Arduino egyszerűen készen áll a leolvasásokra. Az érzékelő csatlakoztatásakor ne felejtsd el a 4,7 kΩ-os húzó ellenállást a DQ és a VDD érintkezők között. Számos csatlakozási lehetőség is lehetséges. Külső erővel, véleményem szerint a legjobb megoldás, ezt fogjuk használni:


Ha szeretné, használhatja a parazita energiamódot:


Vagy továbbfejlesztett parazita étel:


Bármilyen tápegységgel az érzékelők párhuzamosan vannak csatlakoztatva:


A kicsi táblára a hőmérséklet-mérő érzékelőt helyezzük el, két gombbal együtt, amelyeket az óra és az idő beállításához használunk:


A két gomb közös vezetéke a GND-hez van csatlakoztatva, az első gomb vezetéke az A0-hoz, a másodikból az A1-hez csatlakozik.
Rögzítse egy kétoldalas szalaghoz az Arduino mellett:


Az érzékelőt, amelyet állítólag a helyiségen kívül kell elhelyezni, jobb választani egy fém-, por- és nedvességálló házban:


Számítsa ki a kívánt hosszúságú huzalot úgy, hogy az érzékelőt az ablakon kívül lógni lehessen, főleg az, hogy nem haladhatja meg az 5 métert, ha több hosszúságra van szüksége, csökkentenie kell a pull-up ellenállás értékét.

A két érzékelő DQ adatbusz-vezetékét az Arduino 5. érintkezőjéhez kell csatlakoztatni.
Vdd - +5 Arduino.
GND - GND Arduino.


4. lépés Teljesítmény.
Tápellátáshoz 6–12 V feszültségű tápegységet használhat. A tápfeszültség huzal végén forrasztja meg az Arduino hálózati csatlakozóhoz megfelelő dugót:


Vagy elhelyezhet akkumulátortartót négy „AAA”, „rózsaszín” elemhez. És csatlakoztassa a pozitív vezetéket a rekeszből a Vin Arduino-hoz, és a mínusz a GND-hez.

5. lépés: A programozási környezet előkészítése.
Először le kell töltenie és telepítenie kell az Arduino IDE szoftvert hivatalos oldal

És a vázlathoz szükséges két könyvtárat is hozzá kell adni. OneWire - szükséges a ds18b20 érzékelőkkel történő kommunikációhoz:
onewire.rar [16,75 Kb] (letöltések: 34)


U8glib - információ megjelenítésére szolgál a képernyőn:
u8glib.rar [906,95 Kb] (letöltések: 46)


Töltse le a könyvtárat. Ezután kicsomagoljuk az archívumokat, és az archívumok tartalmát áthelyezzük a „könyvtárak” mappába, amely abban a mappában található, ahol az Arduino IDE telepítve van. Az Arduino IDE segítségével könyvtárakat is felvehet. Ehhez az archívumok kicsomagolása nélkül futtassa az Arduino IDE-t, és válassza a Vázlat menü Sketch - Connect Library menüpontját. A legördülő lista tetején válassza az "Add .Zip könyvtár hozzáadása" elemet. Jelöljük a letöltött archívumok helyét. Az összes lépés után újra kell indítania az Arduino IDE-t.

6. lépés A vázlat szerkesztése.
A hőmérséklet-érzékelők az Egyvezetékes protokoll használatával működnek, és minden eszközhöz egyedi címmel rendelkeznek - 64 bites kóddal. Nem javasolt az érzékelő keresési parancsok hozzáadása a vázlathoz. Nem kell minden alkalommal betöltenie az Arduino csuklásérzékelőket.Ezért először mindent összerakva töltse ki a vázlatot Arduino-ban, amely a Fájl menüben található - Példák - Dallas hőmérséklet - OneWireSearch. Ezután futtassa az Tools - Port Monitor programot. Arduino-nak meg kell találnia érzékelőinket, meg kell írni a címeket és a hőmérsékleti értékeket. Ezeket a címeket le kell írni vagy másolni kell valahol. Most nyissa meg az Ard_Tic_Tak_WG12864B_2_x_Term_Serial vázlatot, és keresse meg a sorokat:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // belső cím
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // a külső érzékelő címe


Az érzékelők helyének megfelelő címeket helyettesítjük a címeinkkel.
Óráink nem használják az RTC modult (valós idejű óra), ezért az órát beállítania kell. A kényelem kedvéért vonja vissza a sort (másodpercek jelennek meg a képernyőn):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Másolatok nyomtatása a kurzus helyességének ellenőrzéséhez


Állítsa be a megfelelő időt a portmonitoron. Ehhez nyissa meg a portfigyelőt, várja meg a kezdeti hőmérsékleti mérések befejezését, és írja be az aktuális dátumot és időt "nap, hónap, év, óra, perc, másodperc" formátumban. Szóköz nélkül ossza meg a számokat vesszővel vagy pontokkal.

Ha az óra siet, akkor változtassa meg az értéket nagyobbra, azt javaslom, hogy kísérletezzen 100 egység lépésekkel. Ha elmarad, csökkentse az értéket a sorban:

if (micros () - prevmicros> 494000) {// átváltás másikra igazítás céljából 500 000 volt


Empirikusan meg kell határozni azt a számot, amelyen az óra pontosan megy. A kurzus pontosságának meghatározásához és másodpercek befejezéséhez van szükség. A szám pontos kalibrálása után a másodperc kommentálható és eltávolítható a képernyőről.
Töltse ki a vázlatot.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3,2 Kb] (letöltések: 90)

Funkcionalitás vagy szépség?
Szavazók száma: 19
8
8.3
7.7

Adj hozzá egy megjegyzést

    • smilemosolyogxaxarendbendontknowjehunea
      főnökkarcolásbolondigenigen-igenagresszívtitok
      Bocsánattáncdance2dance3megbocsátássegítségitalok
      megállásbarátokjógoodgoodsípájulásnyelv
      füsttapsolóCrayállapítsagúnyosdon-t_mentionletöltés
      hőségingerültlaugh1MDAtalálkozómoskingnegatív
      not_ipopcornbüntetolvasmegijesztijesztkeresés
      gúnyolódásthank_youeztto_clueumnikakutegyetért
      rosszbeeeblack_eyeblum3pírdicsekvésunalom
      cenzúrázottvidámságsecret2fenyegetgyőzelemyusun_bespectacled
      ShokRespektlolprevedfogadtatáskrutoyya_za
      ya_dobryisegítőne_huliganne_othodiFLUDtilalomközel
3 megjegyzések
A szerző
Sajnos nem ismerem olcsóbb a kijelző analógjait.
És minél több költségvetéssel lehet helyettesíteni ezt a kijelzőt, akkor 500 rubeltől nézett ki.?
Ezekhez a denyushki termékekhez készen áll egy igazán meteorológiai állomást, amely nemcsak a hőmérsékletet, hanem a nyomást és a páratartalmat is feltünteti, és a mért értékek változásának irányát jelzi! smile
Jó estét És minél több költségvetéssel lehet helyettesíteni ezt a kijelzőt, akkor 500 rubeltől nézett ki.?
Köszönöm

Azt javasoljuk, hogy olvassa el:

Adja át az okostelefon számára ...