Tartalomjegyzék:
- 1. lépés: Mini időjárás állomás Attiny85 -vel: az adó
- 2. lépés: Mini időjárás állomás Attiny85 -vel: a vevő
- 3. lépés: Mini meteorológiai állomás Attiny85/45 -vel: a kijelző
- 4. lépés: Mini meteorológiai állomás Attiny85/45 -vel: Lehetőségek/Következtetések
- 5. lépés: Mini Weather Station: az antenna
- 6. lépés: BMP180 hozzáadása
Videó: Mini időjárás állomás Attiny -val85: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Egy nemrégiben oktatható Indigod0g leírt egy mini időjárás -állomást, amely nagyon jól működik, két Arduinót használva. Talán nem mindenki akar feláldozni 2 Arduinót a páratartalom és a hőmérséklet leolvasásához, és megjegyzem, hogy két Attiny85 -vel hasonló funkciót kell elvégezni. Azt hiszem, a beszéd könnyű, ezért jobb, ha a pénzemet oda teszem, ahol a szám van.
Valójában, ha két korábbi utasítást kombinálok, akkor ezt írtam:
2 vezetékes LCD interfész az Arduino vagy az Attiny számára Csak egy kicsit módosítani kell a szoftvert.
Az I2C LCD helyett kétvezetékes lcd megoldást választottam váltóregiszterrel, nem pedig I2C LCD -vel, mert az Attiny -on a váltóregiszter könnyebben megvalósítható, mint az I2C busz. Azonban… ha például egy BMP180 vagy BMP085 nyomásérzékelőt szeretne olvasni, akkor mindenképpen szüksége van I2C -re, így akkor is használhat I2C LCD -t. A TinyWireM jó könyvtár az I2C -hez egy Attiny -on (de ez több helyet igényel).
BOM Az adó: DHT11 Attiny85 10 k ellenállású 433MHz adó modul
A vevő Attiny85 10k ellenállású 433 MHz -es vevőmodul
A kijelző 74LS164 váltásregiszter 1N4148 dióda 2x1k ellenállás 1x1k változó ellenállás LCD kijelző 2x16
1. lépés: Mini időjárás állomás Attiny85 -vel: az adó
Az adó az Attiny85 alapvető konfigurációja, felhúzó ellenállással a visszaállítási vonalon. Az adómodul a „0” digitális tűhöz van csatlakoztatva, a DHT11 adatcsap pedig a 4 -es digitális tűhöz. Csatlakoztasson egy 17,2 cm -es vezetéket antennaként (a sokkal jobb antennához lásd az 5. lépést). A szoftver a következő:
// az Attinyon fog működni // RF433 = D0 pin 5
// DHT11 = D4 pin 3 // könyvtárak #include // Rob Tillaarttól #include dht DHT11; #define DHT11PIN 4 #define TX_PIN 0 // pin, ahol az adó csatlakozik // változók float h = 0; úszó t = 0; int átvitel_t = 0; int átvitel_h = 0; int átviteli_adatok = 0; void setup () {pinMode (1, INPUT); man.setupTransmit (TX_PIN, MAN_1200); } void loop () {int chk = DHT11.read11 (DHT11PIN); h = DHT11. páratartalom; t = DHT11. hőmérséklet; // Tudom, itt 3 egész változót használok // ahol az 1 // -et használhatnám, de ez csak azért van, hogy könnyebb legyen követni az átvitel_h = 100* (int) h; átvitel_t = (int) t; átvitel_adatok = átvitel_h+átvitel_t; man.transmit (átvitel_adatok); késleltetés (500); }
A szoftver manchesteri kódot használ az adatok elküldéséhez. Beolvassa a DHT11 -et, és két különálló úszóban tárolja a hőmérsékletet és a páratartalmat. Mivel a manchesteri kód nem úsztatókat, hanem egész számokat küld, több lehetőségem van: 1- ossza fel az úszókat két egész számra, és küldje el azokat2- küldje el mindegyik úszót egész számként3- küldje el a két úszót egy egész számként Az 1-es lehetőséggel kombinálnom kell az egész számok ismét lebegnek a vevőkészülékben, és meg kell határoznom, hogy melyik egész szám mi, így a kód hosszú lesz. Nem tudok egyedül sorrend szerint haladni, ha egy egész szám elveszik az átvitel során, ezért egy egész számhoz csatolt azonosítót kell küldenem. A 3. opcióval csak egy egész számot tudok küldeni. Nyilvánvaló, hogy ez kissé kevésbé pontos a leolvasást - 1 fokon belül -, és nem lehet nulla alatti hőmérsékletet küldeni, de ez csak egy egyszerű kód, és ennek vannak módjai. Egyelőre csak az elvről van szó. Tehát amit teszek, az úszókat egész számokká alakítom, és a páratartalmat megszorozom 100 -zal. Ezután hozzáadom a hőmérsékletet a többszörös páratartalomhoz. Tekintettel arra, hogy a páratartalom soha nem lesz 100% -os A maximális szám, amit kapok, 9900. Tekintettel arra, hogy a hőmérséklet szintén nem lesz 100 fok fölött, a maximális szám 99 lesz, ezért a legnagyobb szám, amit elküldök, 9999, és ezt könnyen el lehet különíteni a vevő oldalán. a számításom, amelyben 3 egész számot használok, túlzás, mivel könnyen elvégezhető 1 változóval. Csak meg akartam könnyíteni a kód követését. A kód most így áll össze:
Bináris vázlat mérete: 2, 836 bájt (maximum 8, 192 bájt), így illeszkedik egy Attiny 45 vagy 85 -be. MEGJEGYZÉS: az általam használt dht.h könyvtár Rob Tillaart könyvtára. Ez a könyvtár alkalmas DHT22 -re is. 1.08 -as verziót használok. Azonban az Attiny85 -nek problémái lehetnek a DHT22 olvasásával a könyvtár alacsonyabb verzióival. Megerősítést nyert számomra, hogy az 1.08 -nak és az 1.14 -nek - bár rendszeres Arduino -n dolgoznak - nehézségeik vannak a DHT22 olvasásával az Attiny85 -n. Ha DHT22 -t szeretne használni az Attiny85 készüléken, használja a könyvtár 1.20 -as verzióját. Mindez összefügg az időzítéssel. A könyvtár 1.20 -as verziója gyorsabban olvasható. (Köszönöm ezt a felhasználói élményt Jeroen)
2. lépés: Mini időjárás állomás Attiny85 -vel: a vevő
Ismét az Attiny85 -öt használják alapkonfigurációban, a Reset csapot magasra húzva, 10 k ellenállással. A vevőmodul az 1. digitális tűhöz van rögzítve (a chip 6 -os tűje). Az LCD a 0 -as és 2 -es digitális tüskékhez van rögzítve. Csatlakoztasson 17,2 cm -es vezetéket antennaként. A kód a következő:
#befoglalni
#include LiquidCrystal_SR lcd (0, 2, TWO_WIRE); #define RX_PIN 1 // = 6 -os fizikai pin void setup () {lcd.begin (16, 2); lcd.home (); man.setupRecept (RX_PIN, MAN_1200); man.beginRecept (); } void loop () {if (man.receptComplete ()) {uint16_t m = man.getMessage (); man.beginRecept (); lcd.print ("Nedves:"); lcd.nyomtatás (m/100); lcd.setCursor (0, 1); lcd.print ("Hőmérséklet"); lcd.print (m%100); }}
A kód meglehetősen egyszerű: az átvitt egész számot az „m” változó fogadja és tárolja. 100 -zal osztva adja meg a páratartalmat, a 100 -as modulus pedig a hőmérsékletet. Tehát tegyük fel, hogy a kapott egész szám 33253325/100 = 333325 % 100 = 25Ez a kód 3380 bájtban áll össze, ezért csak attiny85 -vel használható, nem 45
3. lépés: Mini meteorológiai állomás Attiny85/45 -vel: a kijelző
A kijelző esetében a legjobb, ha a kétvezetékes kijelzőn olvasható utasításokra hivatkozom. Röviden, egy közös 16x2 -es kijelző váltóregisztert használ, így két digitális tűvel is működhet. Természetesen, ha inkább I2C -kész kijelzőt használ, lehetséges, de akkor végre kell hajtania egy I2C protokollt az Attiny -on. A Tinywire protokoll képes erre. Bár egyes források azt mondják, hogy ez 1 Mhz -es órát vár, nem okozott gondot (egy másik projektben) a 8Mhz -en való használat.
4. lépés: Mini meteorológiai állomás Attiny85/45 -vel: Lehetőségek/Következtetések
Mint mondtam, taníthatóvá tettem, hogy megmutassam, hogy két attiny85 -zel (akár egy attiny85+ 1 attiny45 -el) is készíthető egy mini időjárás -állomás. Csak a DHT11 segítségével küld páratartalmat és hőmérsékletet. Az Attiny azonban 5 digitális tűt használ, 6 még némi trükközéssel is. Ezért lehetséges több érzékelőből adatokat küldeni. A projektemben- amint azt a szalagfotón és a professzionális NYÁK-on (OSHPark) lévő képek is látják- adatokat küldök/fogadok DHT11-ből, LDR-ből és PIR-ből, minden Az attiny85 vevőként való használatának korlátozása azonban az adatok mutatós stílusban történő megjelenítése. Mivel a memória korlátozott: Az olyan szövegek, mint a „Hőmérséklet, páratartalom, fényszint, a téma közeledik”, elég gyorsan feltöltik az értékes memóriaterületet. Mindazonáltal nincs ok arra, hogy két Arduino -t használjon csak a hőmérséklet és a páratartalom küldésére/fogadására. Ezenkívül lehetséges hogy az adó alvó állapotba kerüljön, és csak akkor ébredjen fel, hogy 10 percenként küldjön adatokat, és így betáplálja őket egy gombelemből. Nyilvánvaló, hogy nem csak a hőmérsékletre vagy a páratartalomra vonatkozó adatokat lehet elküldeni, hanem egy sor kis távadót is küldhet a talajnedvesség leolvasását is, vagy adjon hozzá szélmérőt vagy esőmérőt
5. lépés: Mini Weather Station: az antenna
Az antenna fontos része minden 433 MHz -es beállításnak. Kísérleteztem a szabványos 17,2 cm -es „rúd” antennával, és röviden flörtöltem egy tekercsantennával. A legjobbnak tűnő tekercses antenna könnyen elkészíthető. A design Ben Schueler -től származik, és nyilvánvalóan az "Elektor" magazinban jelent meg. Ennek a 'léghűtéses 433 MHz -es antennának' leírását tartalmazó PDF -fájl könnyen követhető. (A link eltűnt, nézd meg itt)
6. lépés: BMP180 hozzáadása
Szeretne olyan légnyomás -érzékelőt hozzáadni, mint a BMP180? nézd meg a másik utasítást ezzel kapcsolatban.
Ajánlott:
Fanair: időjárás állomás a szobájához: 6 lépés (képekkel)
Fanair: időjárás állomás a szobájához: Számtalan módja van az aktuális időjárás megismerésére, de akkor csak a kinti időjárást ismeri. Mi van, ha tudni szeretné az időjárást a házban, egy adott szobában? Ezt próbálom megoldani ezzel a projekttel. A Fanair többféle
Szuper időjárás állomás függő kosár: 11 lépés (képekkel)
Szuper időjárás állomás függő kosár: Szia mindenkinek! Ebben a T3chFlicks blogbejegyzésben megmutatjuk, hogyan készítettünk intelligens függő kosarat. A növények friss és egészséges kiegészítői minden otthonnak, de gyorsan fárasztóvá válhatnak - különösen, ha csak akkor emlékszel, hogy öntözd őket, amikor
Egyszerű időjárás állomás az ESP8266 használatával: 6 lépés (képekkel)
Egyszerű időjárás állomás az ESP8266 használatával: Ebben az utasításban megosztom, hogyan kell használni az ESP8266 -t olyan adatok beszerzéséhez, mint a hőmérséklet, a nyomás, az éghajlat stb., Valamint a YouTube -adatokat, például az előfizetőket Teljes megtekintések száma. és jelenítse meg az adatokat a soros monitoron, és jelenítse meg az LCD -n. Az adatok f
Moduláris szolár időjárás állomás: 5 lépés (képekkel)
Modular Solar Weather Station: Az egyik projekt, amit egy ideje meg akartam építeni, egy Modular Weather Station volt. Moduláris abban az értelemben, hogy a szoftver megváltoztatásával hozzáadhatjuk a kívánt érzékelőket. A Modular Weather Station három részre oszlik. Az alaplapon a W
WiFi óra, időzítő és időjárás állomás, Blynk vezérelt: 5 lépés (képekkel)
WiFi óra, időzítő és időjárás állomás, Blynk vezérelt: Ez egy Morphing digitális óra (Hari Wigunának köszönhető a koncepció és a morfikus kód), ez egyben analóg óra, időjárás -jelentő állomás és konyhai időzítő. Teljesen egy Blynk alkalmazás okostelefonján WiFi -n keresztül. Az alkalmazás lehetővé teszi, hogy