Csináld magad anemométerek (az előkészítő csoport gyermekei számára). Házi készítésű szélmérő

Feladat volt egy projekthez egy szélmérőt összeállítani, hogy USB interfészen keresztül számítógépre lehessen adatokat vinni. A cikk inkább magára a szélmérőre fog összpontosítani, mint a belőle származó adatfeldolgozó rendszerre:

1. Alkatrészek

Tehát a termék gyártásához a következő összetevőkre volt szükség:
Mitsumi golyós egér - 1 db.
Ping-pong labda - 2 db.
Egy darab megfelelő méretű plexi
2,5 mm2 - 3 cm keresztmetszetű rézhuzal
Golyóstoll utántöltő — 1 db.
Chupa Chups cukorka rúd - 1 db.
Kábelcsipesz — 1 db.
Üreges sárgaréz hordó 1 db.

2. A járókerék készítése

3 darab, egyenként 120 fokos szögben 1 cm hosszú rézhuzalt egy sárgaréz hordóra forrasztottak. A hordó furatába egy kínai lejátszóból készült állványt forrasztottam, amelynek a végén egy menet.

Az édességből a csövet 3 kb 2 cm hosszú részre vágtam.

2 golyót kettévágtam, és ugyanabból a lejátszóból kis csavarokkal és polisztirol ragasztóval (ragasztópisztollyal) a labda feleit a nyalóka csövekhez rögzítettem.

A csöveket a golyó felével a forrasztott huzaldarabokra tettem, a tetejére mindent ragasztóval rögzítettem.

3. A főalkatrész gyártása

Az anemométer csapágyeleme egy golyóstollból származó fémrúd. A rúd alsó részébe (ahova a parafa be volt helyezve) az egérből (kódolóból) behelyeztem a lemezt. Magában az egér kialakításában az enkóder alsó része az egér testéhez támaszkodott, pontszerű csapágyat alkotva, zsíros volt, így az enkóder könnyen fordult. De szükség volt a rúd felső részének rögzítésére, ehhez felvettem egy megfelelő műanyagdarabot, amelyen pontosan a rúd átmérőjű lyuk volt (ilyen darabot a CD-ROMa kocsihosszabbító rendszerből vágtak ki). Maradt a probléma megoldása, hogy a jeladó rúdja ne essen ki a pontcsapágyból, ezért a rúdra közvetlenül a tartóelem elé forrasztottam néhány csepp forrasztóanyagot. Így a rúd szabadon forgott a tartószerkezetben, de nem esett ki a csapágyból.

A kódoló áramkör választásának oka a következő: a házi készítésű szélmérőkről szóló internetes cikkek mindegyike leírta, hogy egy lejátszóból, CD-ROM-ból vagy más termékből egyenáramú motoron alapuló gyártást végeznek. Az ilyen eszközökkel a probléma egyrészt a kalibrációjuk és az alacsony szélsebességnél mutatott alacsony pontosságuk, másrészt a szélsebesség kimeneti feszültséghez viszonyított nemlineáris karakterisztikája, pl. az információk számítógépre történő átviteléhez bizonyos problémák merülnek fel, ki kell számítani a szélsebességtől a feszültség vagy az áram változásának törvényét. Kódoló használatakor nincs ilyen probléma, mivel a függőség lineáris. A pontosság a legnagyobb, mivel a jeladó körülbelül 50 impulzust ad a szélmérő tengelyének fordulatánként, de valamivel bonyolultabb az átalakító áramkör, amelyben van egy mikrokontroller, amely számolja a másodpercenkénti impulzusok számát az egyik porton és kimeneten. ezt az értéket az USB-porthoz.

4. Tesztelés és kalibrálás

A kalibrációhoz laboratóriumi anemométert használtunk.

Egy közönséges háztartási márkás vagy házi készítésű meteorológiai állomás két hőmérsékletet mér - páratartalmat (a szobában és kívül), a légköri nyomást, és emellett van egy naptárral ellátott óra is. Egy igazi meteorológiai állomásnak azonban sokkal több van - egy napsugárzás-érzékelőre, egy esőmérőre és általában mindenre, egy kivétellel csak professzionális célokra van szükség. A szélmérő (sebesség, és ami a legfontosabb, irány) nagyon hasznos kiegészítő egy vidéki házhoz. Sőt, a márkás szélérzékelők még az Ali Babán is meglehetősen drágák, és érdemes otthoni megoldásokat nézni.

Rögtön el kell mondanom, ha előre tudtam volna, mennyi kétkezi munkával és kísérletekre fordított pénzzel jár az ötletem, talán el sem indultam volna. De a kíváncsiság felülmúlta, és e cikk olvasóinak esélyük van elkerülni azokat a buktatókat, amelyekbe nekem kellett belebotlanom.

Mert szélsebesség mérések(anemometria) több száz módszer létezik, amelyek közül a főbbek a következők:

forró drót,
- mechanikus - légcsavarral (pontosabban járókerék) vagy csésze vízszintes járókerékkel (klasszikus csésze anemométer) A sebesség mérése ezekben az esetekben egyenértékű annak a tengelynek a sebességének mérésével, amelyre a légcsavar vagy a járókerék rögzítve van.
- valamint ultrahang, amely egyesíti a sebesség és az irány mérését.
Mert iránymérések kevesebb mód:
- említett ultrahang;
- mechanikus szélkakas a forgásszög elektronikus eltávolításával. A forgásszög mérésének is sokféle módja van: optikai, rezisztív, mágneses, induktív, mechanikus. Egyébként egyszerűen felszerelhet egy elektronikus iránytűt a szélkakas tengelyére - ez csak megbízható és egyszerű ("térd" ismétlés esetén) még mindig keresni kell a kaotikusan forgó tengely leolvasási átvitelének módjait. Ezért a továbbiakban a hagyományos optikai módszert választjuk.

Ezen módszerek bármelyikének önálló megismétlésekor szem előtt kell tartania a minimális energiafogyasztás, valamint az éjjel-nappal (vagy esetleg egész évben?) napfénynek és esőnek való kitettség követelményeit. A szélérzékelőt nem lehet a tető alá árnyékban elhelyezni - éppen ellenkezőleg, a lehető legtávolabb kell lennie minden zavaró tényezőtől, és „nyitva kell lennie minden szélnek”. Az ideális hely egy ház tetejének gerince, vagy legrosszabb esetben egy istálló vagy pavilon, távol a többi épülettől és fától. Az ilyen követelmények autonóm tápellátást és természetesen vezeték nélküli adatátviteli csatornát foglalnak magukban. Ezek a követelmények az alábbiakban ismertetett tervezési „harangok és sípok” miatt következnek be.

A minimális energiafogyasztásról

Egyébként mennyi a minimális áramfelvétel? A hagyományos háztartási AA akkumulátorok alapján az áramkör átlagos fogyasztása ideális esetben nem haladhatja meg az 1-2 mA-t. Számold ki magad: egy tisztességes AA alkáli cella kapacitása kb 2,5-3 Ah, vagyis kb 1500-2500 órát, vagyis 2-3 hónapot fog működni belőle egy áramkör a jelzett fogyasztással. Elvileg ez sem sok, de viszonylag elfogadható - nem tehet kevesebbet: vagy tönkremegy az akkumulátorokon, vagy olyan akkumulátorokat kell használnia, amelyeket még gyakrabban kell tölteni, mint az akkumulátorcserét. Emiatt egy ilyen áramkör elkészítésekor kötelesek vagyunk minden morzsát megfogni: a kötelező energiatakarékos üzemmódot, a gondosan átgondolt áramkört és a programban szereplő műveletek sorrendjét. Továbbá látni fogjuk, hogy a végső tervezésnél még mindig nem feleltem meg a szükséges követelményeknek, és akkumulátort kellett használnom.


Egy informatív történet arról, hogyan próbáltam reprodukálni a legmodernebb és legfejlettebb módszereket - az ultrahangot, és nem sikerült, majd máskor elmesélem. Az összes többi módszer külön sebesség- és iránymérést tartalmaz, így két érzékelőt kellett blokkolnunk. Elméletileg áttanulmányoztam a forró vezetékes szélmérőket, és rájöttem, hogy nem tudunk készen amatőr szintű érzékeny elemet vásárolni (a nyugati piacon kaphatók!), hanem saját kezűleg kell feltalálni - részt venni a következő K+F megfelelő idő- és pénzveszteséggel. Ezért némi gondolkodás után úgy döntöttem, hogy mindkét szenzorhoz egységes konstrukciót készítek: egy csésze szélmérőt optikai forgási sebességmérővel és egy szélkakast a forgásszög elektronikus kiolvasásával kódoló lemez (encoder) alapján.

Érzékelő kialakítások

A mechanikus szenzorok előnye, hogy ott nincs szükség K+F-re, az elv egyszerű és egyértelmű, az eredmény minősége pedig csak az átgondolt tervezés pontosságán múlik.

Így elméletileg úgy tűnt, a gyakorlatban egy rakás mechanikai munkát eredményezett, amelyek egy részét oldalra kellett rendelni, mivel nem volt kéznél eszterga- és marógép. Rögtön el kell mondanom, hogy soha nem bántam meg, hogy kezdettől fogva a tőke megközelítésére támaszkodtam, és nem rögtönzött anyagokból kerítettem az építményeket.

A szélkakashoz és a szélmérőhöz a következő alkatrészek szükségesek, melyeket esztergályostól és marótól kellett megrendelni (mindkét érzékelőnél egyszerre van feltüntetve a mennyiség és az anyag):

Megjegyezzük, hogy a tengelyeket szükségszerűen esztergagépen forgatják: szinte lehetetlen olyan tengelyt készíteni, amelynek hegye pontosan a közepén van, térdre. A csúcsnak a forgástengely mentén történő pontos elhelyezése pedig itt a meghatározó tényező a siker szempontjából. Ezenkívül a tengelynek tökéletesen egyenesnek kell lennie, eltérések nem megengedettek.

Mechanikus szélirány-érzékelő - elektronikus szélkakas

A szélkakas (valamint a lenti sebességérzékelő) alapja egy D-16 duralumíniumból készült U alakú konzol, amely a bal felső rajzon látható. Az alsó mélyedésbe egy darab PTFE-t préselnek, amelyben 2 és 3 mm-es fúrókkal egymás után lépcsőzetes mélyedést készítenek. Ebbe a mélyedésbe egy tengelyt helyeznek be éles véggel (szélkakashoz - sárgarézből). Felülről szabadon áthalad egy 8 mm-es lyukon. E lyuk felett egy téglalap alakú, 4 mm vastagságú fluoroplasztikus darabot rögzítenek a konzolhoz M2 csavarokkal úgy, hogy az átfedje a furatot. A PTFE-ben pontosan a 6 mm-es tengelyátmérő mentén lyukat készítettek (pontosan a furatok közös tengelye mentén - lásd az alábbi összeszerelési rajzot). Fluoroplasztikus fent és alul itt a siklócsapágy szerepét tölti be.


A fényműanyaggal szembeni súrlódási pontban lévő tengely polírozható, a súrlódási terület pedig csökkenthető a fluoroplasztikus műanyagon lévő lyuk besüllyesztésével. ( Lásd a témát az alábbi UPD-ben 09/13/18 és 06/05/19). A szélkakas esetében ez nem játszik különösebb szerepet - bizonyos „retardáció” még hasznos is lehet számára, és a szélmérő esetében meg kell próbálnia minimalizálni a súrlódást és a tehetetlenséget.

Most a forgásszög eltávolításáról. A klasszikus 16 pozíciós Grey kódoló esetünkben így néz ki:

A lemez méretét az adó-vevő párok egymástól való megbízható optikai leválasztásának feltétele alapján választottuk ki. Ennél a konfigurációnál az 5 mm széles rések is 5 mm-re, az optikai párok pedig pontosan 10 mm-re vannak egymástól. A szélkakast rögzítő konzol méreteit pontosan egy 120 mm-es tárcsaátmérő alapján számították ki. Mindez természetesen csökkenthető (főleg, ha a lehető legkisebb átmérőjű LED-eket és fotodetektorokat választja), de figyelembe vették az enkóder gyártásának bonyolultságát: kiderült, hogy a molnárok nem vállalnak ilyen kényes munkát, ezért kézzel kellett vágni tűreszelővel. És itt minél nagyobb a méret, annál megbízhatóbb az eredmény és annál kevesebb probléma.

A fenti összeszerelési rajzon látható, hogyan kell a tárcsát a tengelyhez rögzíteni. Egy gondosan központosított korong M2-es csavarokkal van rögzítve a caprolon hüvelyhez. A persely a tengelyen úgy van elhelyezve, hogy a tetején a rés minimális legyen (1-2 mm) - hogy a tengely normál helyzetben szabadon forogjon, és megfordításkor a csúcs ne essen ki a foglalatból alsó. A lemez tetején és alján lévő tartóhoz fotodetektorok és emitterek blokkjai vannak rögzítve, pontosabban a kialakításukról lent.

A teljes szerkezetet műanyag (ABS vagy polikarbonát) 150×150×90 mm-es tokba helyezzük. Összeszerelve (fedél és szélkakas nélkül) az irányérzékelő így néz ki:

Vegye figyelembe, hogy a kiválasztott északi irányt egy nyíl jelöli, és ezt figyelembe kell venni az érzékelő visszahelyezésekor.

A tényleges szélkakas a tengely tetejére van rögzítve. Ugyanilyen sárgaréz tengely alapján készül, melynek tompa oldalán egy sárgaréz lemezszár van forrasztva. Az éles végén egy M6-os menetet vágnak egy bizonyos hosszúságúra, és anyák segítségével egy ólomból öntött kerek súly-ellensúlyt rögzítenek rá:

A teher úgy van kialakítva, hogy a súlypont pontosan a rögzítési pontra essen (a menet mentén mozgatva tökéletes egyensúlyt érhet el). A szélkakast a tengelyhez egy M3-as rozsdamentes csavarral rögzítjük, amely a szélkakas tengelyében lévő furaton halad át, és a forgástengelyben elvágott menetbe van becsavarva (a rögzítőcsavar a fenti képen látható). A pontos tájolás érdekében a forgástengely tetején van egy félkör alakú mélyedés, amelyben a szélkakas tengelye fekszik.

Szélsebesség-érzékelő – csináld magad csésze szélmérő

Amint már megértette, az egységesítés céljára szolgáló sebességérzékelő alapját ugyanazt választották, mint a szélkakas esetében. De a tervezési követelmények itt némileg eltérőek: az indulási küszöb csökkentése érdekében az anemométernek a lehető legkönnyebbnek kell lennie. Ezért különösen a tengelye duralumíniumból készül, a lyukakkal ellátott lemez (a forgási sebesség mérésére) átmérője csökken:

Míg egy négybites Grey kódolóhoz négy optocsatoló szükséges, a sebességérzékelőhöz csak egy. A lemez kerülete mentén egyenlő távolságban 16 lyukat fúrnak, így a lemez másodpercenkénti egy fordulata megfelel az optocsatolóból érkező frekvencia 16 hertzének (több lyuk lehetséges, kevesebb - a kérdés csak az, hogy az újraszámítás mértéke és a kibocsátók energiamegtakarítása).

Egy saját készítésű szenzor még így is elég durvának bizonyul (az indulási küszöb másodpercenként legalább fél méter), de ez csak akkor csökkenthető, ha a kialakítás gyökeresen megváltozik: például a légcsavar helyett a egy csésze forgótányért. Egy csésze forgótányérban a forgatónyomatékot meghatározó áramlási ellenállási erők különbsége viszonylag kicsi - ez kizárólag a szembejövő légáramhoz illeszkedő felület eltérő alakja miatt érhető el (ezért a csészék alakja olyan áramvonalas legyen, mint lehetséges - ideális esetben ez egy fél tojás vagy egy golyó). A propeller sokkal nagyobb nyomatékkal rendelkezik, sokkal könnyebbé tehető, és végül maga a gyártás is egyszerűbb. De a légcsavart a légáramlás irányában kell felszerelni - például úgy, hogy ugyanazon szélkakas végére helyezi.

A kérdések egyben: hogyan továbbíthatunk egy függőleges tengely körül véletlenszerűen forgó érzékelő leolvasását? Nem tudtam megoldani, és abból ítélve, hogy még mindig elterjedtek a professzionális pohárkialakítások, semmiképpen sem oldható meg félrúgással (a kézi szélmérőket nem vesszük figyelembe - kézzel tájolják a levegő szerint folyam).

Az én verzióm a csésze szélmérőről lézerlemezre épül. A képen látható felül és alul:



A csészék az "Agusha" bébivizes palackok aljából készülnek. Az alját óvatosan levágjuk, és mindhárom - azonos távolságra, hogy egyenlő súlyúak legyenek, helyben felmelegítve középen (semmi esetre se melegítse az egészet - visszafordíthatatlanul megvetemedik!) És a hátsó oldal A reszelő fa fogantyúja kifelé hajlik, hogy áramvonalasabb legyen. Meg fogod ismételni – tölts fel nagyobb üvegeket, öt-hat darabból valószínűleg három, többé-kevésbé egyforma poharat készíthetsz. A legyártott csészékben egy rés van az oldalán, és vízálló ragasztó-tömítőanyaggal rögzítik őket a tárcsa kerülete mentén 120 ° -os szögben egymáshoz képest. A tárcsa szigorúan a tengelyhez képest középre van állítva (ezt egy mellékelt fém alátét segítségével tettem), és M2 csavarokkal van rögzítve a caprolon hüvelyre.

Érzékelők általános tervezése és telepítése

Mindkét érzékelő, mint már említettük, 150×150×90 mm-es műanyag tokokban van elhelyezve. A tok anyagának megválasztását megfontoltan kell megközelíteni: az ABS vagy a polikarbonát kellően időjárásálló, de a polisztirol, a plexi, és még inkább a polietilén itt biztosan nem működik (és a festés is nehéz lesz, hogy megvédje a naptól). ). Ha nem lehet márkás dobozt vásárolni, jobb, ha a tokot önállóan forrasztja fólia üvegszálból, majd lefesti, hogy megvédje a korróziótól és esztétikus megjelenést biztosítson.

A fedélen pontosan a tengely kilépési pontján egy 8-10 mm-es lyukat készítünk, amelybe egy műanyag kúpot ragasztanak be ugyanazzal a ragasztó-tömítőanyaggal, amelyet a kifolyóból vágnak ki egy permeteződobozból épülettömítőanyaggal vagy ragasztóval:

A kúp tengely menti középre állításához rögzítsen egy fadarabot a fedél aljáról egy bilinccsel, jelölje meg rajta a pontos középpontot, és egy 12 mm-es ásófúróval menjen egy kicsit mélyebbre, gyűrű alakú mélyedést készítve a furat körül. A kúpnak pontosan oda kell lépnie, ezután lehet ragasztóval bevonni. Ezenkívül egy anyával ellátott M6 csavarral rögzítheti függőleges helyzetben a megszilárdulás idejére.

Maga a fordulatszám-érzékelő esernyőként takarja be ezzel a kúppal a tengelyt, megakadályozva, hogy víz kerüljön a házba. A szélkakas esetében érdemes a kúp fölé egy hüvelyt is elhelyezni, amely a közvetlen vízáramlástól lezárja a tengely és a kúp közötti rést (lásd az érzékelők általános nézetének képét lent).

Az optocsatolók vezetékei egy külön D-SUB csatlakozóhoz csatlakoznak (lásd az irányérzékelő képét fent). A csatlakozó részt a kábellel a ház alján lévő téglalap alakú lyukon keresztül kell behelyezni. A lyukat ezután fedjük le egy nyílással a kábel számára, amely megakadályozza, hogy a csatlakozó kiessen. Dural konzolok vannak csavarozva a ház aljához a rögzítéshez. Konfigurációjuk az érzékelők elhelyezkedésétől függ.

Összeszerelve mindkét érzékelő így néz ki:

Itt már a helyükre szerelve láthatók - a pavilon gerincén. Kérjük, vegye figyelembe, hogy a burkolatot rögzítő csavarok bemélyedéseit nedves gumidugók védik a víztől. Az érzékelőket szigorúan vízszintesen szerelik fel a szintnek megfelelően, amelyhez linóleumdarabokból készült béléseket kellett használni.

Elektronikus rész

Az időjárás-állomás egésze két modulból áll: egy távoli egységből (amely mindkét szélérzékelőt kiszolgálja, és egy külső hőmérséklet-páratartalom érzékelőtől is méri a leolvasást), valamint a fő modulból a kijelzőkkel. A távoli egység egy vezeték nélküli adatátviteli jeladóval van felszerelve a belsejébe (az antenna oldalról kilóg). A fő modul adatokat fogad a távoli egységtől (a vevő a tájékozódás megkönnyítése érdekében külön egységben egy kábelen van elhelyezve), valamint a belső hőmérséklet-páratartalom érzékelőtől is leolvassa, és mindezt megjeleníti a kijelzőkön. A főegység külön alkatrésze egy naptárral ellátott óra, amelyet az állomás általános beállításának megkönnyítése érdekében egy külön Arduino Mini vezérlő kezel, és saját kijelzőkkel rendelkezik.

Szélérzékelők távoli modulja és mérőköre

Az AL-107B IR LED-eket választották fénykibocsátónak. Ezek a vintage LED-ek természetesen nem a legjobbak a kategóriájukban, de miniatűr testük 2,4 mm átmérőjű, és impulzusonként akár 600 mA áramot is képesek átadni. A tesztek során egyébként kiderült, hogy ennek a LED-nek az 1980 körüli kibocsátású mintája (piros tokban) megközelítőleg kétszer olyan hatásfokú (a fotodetektor megbízható működési tartományában kifejezve), mint a Chipnél vásárolt modern példányok. -Mély (átlátszó sárgás-zöld testük van). Nem valószínű, hogy a kristályok jobbak voltak 1980-ban, mint most, bár mi a fenének nem tréfa? Lehetséges azonban, hogy mindkét kivitelben eltérő szórási szögben van a dolog.

Körülbelül 20 mA egyenáramot vezettek át a LED-en a sebességérzékelőben (150 ohmos ellenállás, amikor 5 voltos tápfeszültségről van szó), és az irányérzékelőben - körülbelül 65 mA-es impulzusos (kanyargós, 2 munkaciklusú) áramot ( ugyanaz a 150 Ohm, amikor 12 V-ról tápláljuk). Az átlagos áram az irányérzékelő egy LED-jén keresztül körülbelül 33 mA, összesen négy csatornán keresztül - körülbelül 130 mA.

Fotodetektorként 3 mm átmérőjű tokozású L-32P3C fototranzisztorokat választottunk. A jelet egy 1,5 vagy 2 kOhm-os ellenállással terhelt kollektorról vettük 5 V-os tápfeszültségről, ezeket a paramétereket úgy választottuk meg, hogy a fotókibocsátó és a vevő között ~20 mm távolságban 5-nél teljes méretű logikai jelet kapjunk. - Volt szintek további erősítés nélkül azonnal megérkeznének a vezérlő bemenetére. Az itt ábrázolt áramok aránytalanul nagynak tűnhetnek számodra a fent említett minimális teljesítményigény alapján, de mint látni fogod, minden mérési ciklusban maximum néhány milliszekundum erejéig jelennek meg, így a teljes fogyasztás kicsi marad.

A vevők és adók felszerelésének alapját a kábelcsatorna szakaszai képezték (a fenti érzékelők képén látható), amelyeket úgy vágtak ki, hogy „füleket” képezzenek az alján a konzolra való rögzítéshez. Mindegyik vágásnál a zárófedélre belülről egy műanyag lemezt ragasztottak, amelynek szélessége megegyezik a csatorna szélességével. Az ebbe a lemezbe fúrt lyukakba a szükséges távolságra LED-eket és fototranzisztorokat rögzítettek úgy, hogy a vezetékek a csatornán belül legyenek, és csak a tokok végén lévő dudorok lógjanak ki. A következtetéseket a diagramnak megfelelően forrasztják (lásd alább), a külső következtetéseket egy rugalmas, többszínű huzal vágásával készítik. Az irányérzékelő emittereinek ellenállásai szintén a csatornán belül vannak elhelyezve, ezekből egy általános következtetést vonunk le. Kiforrasztás után a burkolat a helyére pattan, minden rés gyurmával és ragasztószalaggal van lezárva, ami a lyukat a vezetékekkel ellentétes oldalról is lezárja, és a teljes szerkezetet epoxigyanta tölti ki. A külső következtetések, amint az az érzékelők képén látható, a konzol hátulján rögzített sorkapocsra kerülnek.

kördiagramm A szélérzékelő feldolgozó egység így néz ki:

Arról, hogy honnan jön a 12-14 voltos táp, lásd alább. Az ábrán feltüntetett alkatrészeken kívül a távoli egység tartalmaz egy hőmérséklet-páratartalom érzékelőt is, amely az ábrán nem látható. A vezérlő A0 kivezetésére csatlakoztatott feszültségosztó a tápfeszültség szabályozására szolgál az időben történő csere érdekében. A hagyományos 13-as érintkezőhöz (DIP tok 19-es tűje) csatlakoztatott LED szuperfényes, normál, nem vakító fényéhez egy milliamper töredéke is elegendő, amit a 33-as szokatlanul magas értéke biztosít. kΩ ellenállás.

Az áramkör csupasz Atmega328 vezérlőt használ DIP-csomagban, Uno-n keresztül programozva és aljzatra szerelve. Az ilyen, már megírt Arduino rendszerbetöltővel rendelkező vezérlőket például Chip-Dip-ben árulják (vagy saját maga is megírhatja a rendszerbetöltőt). Kényelmes egy ilyen vezérlőt ismerős környezetben programozni, de a táblán lévő alkatrészek nélkül egyrészt gazdaságosabb, másrészt kevesebb helyet foglal el. Teljes értékű energiatakarékos módot lehetne elérni, ha a bootloadertől is megszabadulunk (és általában az összes kódot assemblerbe írjuk :), de itt ez nem túl lényeges, a programozás pedig feleslegesen bonyolult.

A diagramon szürke téglalapok körözték a sebesség- és iránycsatornákhoz külön-külön kapcsolódó összetevőket. Tekintsük a rendszer egészének működését.

A vezérlő egészének működését a megszakításos hívás módban engedélyezett WDT watchdog időzítő vezérli. A WDT meghatározott időközönként felébreszti a vezérlőt alvó üzemmódból. Abban az esetben, ha a hívott megszakításban az időzítőt alaphelyzetbe állítják, nincs semmiből való újraindítás, minden globális változó értéke marad. Ez lehetővé teszi az adatok összegyűjtését az ébredéstől az ébredésig, és egy bizonyos ponton feldolgozhatja – például átlagolhatja.

A program elején a könyvtárak és a globális változók alábbi deklarációi készülnek (hogy az amúgy is kiterjedt példák szövege ne legyen összezavarva, itt minden a hőmérséklet-páratartalom érzékelővel kapcsolatos):

#beleértve #beleértve #beleértve . . . . . #define ledPin 13 //LED pin (PB5 pin 19 ATmega) #define IR_Pin 10 //IRLU tranzisztor vezérlés (PB2 pin 16 Atmega) #define in_3p 9 //Vevõ bemeneti bit 3 #define in_2p 8 //Receiver input bit2 define in_1p 7 //vevő bemeneti bit 1 #define in_0p 6 //vevő bemeneti bit 0 #define IR_PINF 5 //(PD5,11) kimenet frekvenciához IR LED #define IN_PINF 4 //(PD4,6) frekvenciaérzékelő bemenet illékony előjel nélküli hosszú ttime = 0; //Érzékelő aktiválási periódusa float ff; //sebességérzékelő frekvenciaértékei a karakter üzenetek átlagolásához; //elküldött üzenet byte count=0;//counter int batt; //az akkumulátor bájtjának átlagolása wDir; // szélirányok tömbje bájt wind_Gray=0; //szélirány kód byte
A következő eljárások használhatók az alvó üzemmód és a WDT (4 másodpercenkénti ébredés) elindításához:

// a rendszer alvó állapotba helyezése void system_sleep() ( ADCSRA &= ~(1<< ADEN); //экв. cbi(ADCSRA,ADEN); выключим АЦП set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна sleep_mode(); // система засыпает sleep_disable(); // система продолжает работу после переполнения watchdog ADCSRA |= (1 << ADEN); /экв. sbi(ADCSRA,ADEN); включаем АЦП } //**************************************************************** // ii: 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; if (ii >9) ii=9; bb=ii & 7; ha (ii > 7) bb|= (1<<5); //в bb - код периода bb|= (1<A sebességérzékelő az optikai csatorna megszakítási frekvenciáját adja ki, nagyságrendje egység-tíz hertz. Gazdaságosabb és gyorsabb egy ilyen érték mérése egy időszak után (erről volt szó a szerző „Az alacsony frekvenciák mérési módszereinek értékelése Arduino-n” című publikációjában). Itt a módosított pulseInLong() függvényen keresztül olyan módszert választunk, amely nem köti a mérést bizonyos vezérlőkimenetekhez (a periodInLong() függvény szövege a jelzett kiadványban található).

A setup() függvényben deklarálják a tűirányokat, inicializálják a 433 MHz-es adókönyvtárat és a watchdog időzítőt (az IN_PINF sora elvileg felesleges, és a memóriához van beszúrva):

Void setup() ( pinMode(IR_PINF, OUTPUT); //a pinMode(IN_PINF, INPUT) kimenethez; //kimeneti frekvencia észlelése a pinMode(13, OUTPUT) bemenethez; //LED vw_setup(1200); // VirtualWire csatlakozási sebesség vw_set_tx_pin(2); //D2, PD2(4) VirtualWire átviteli láb // Serial.begin(9600); // Soros port a figyeléshez setup_watchdog(8) hibakereséskor; //WDT periódus 4 c wdt_reset(); )
Végül a program főhurkában először minden ébredéskor (4 másodpercenként) leolvassuk a feszültséget, és kiszámítjuk a szélsebesség-érzékelő frekvenciáját:

Void loop() ( wdt_reset(); // az időzítő alaphelyzetbe állítása digitalWrite(ledPin, HIGH); // bekapcsolja a LED-et a batt=analogRead(0) vezérléséhez; // az aktuális akkumulátorkód beolvasása és mentése /*=== frekvencia === = */ digitalWrite(IR_PINF, HIGH); //bekapcsolja a sebességérzékelő IR LED-jét, f=0; //változó a frekvenciához ttime=periodInLong(IN_PINF, LOW, 250000); //várjon 0,25 mp // Serial. println(ttime); //hibakeresés közbeni vezérléshez if (ttime!=0) (//frekvencia nélkül f = 1000000/float(ttime);) //jelfrekvencia kiszámítása Hz-ben digitalWrite(IR_PINF, LOW); / /kapcsolja ki az IR LED-et ff=f; //elmenti a számított értéket egy tömbbe. . . .
Az IR LED égési ideje (emlékeztessem 20 mA-t fogyaszt) itt, mint látható, a szenzorkorong forgása nélkül a maximum, és ilyen körülmények között kb. 0,25 másodperc. A minimálisan mérhető frekvencia tehát 4 Hz lenne (16 lyukkal másodpercenként negyed lemezfordulat). Mint a szenzor kalibrálásakor kiderült (lásd lent), ez kb 0,2 m/s szélsebességnek felel meg.Kihangsúlyozzuk, hogy ez a szélsebesség minimálisan mérhető értéke, de nem a felbontás és nem az indulási küszöb (amely sokkal magasabb legyen). Frekvencia jelenlétében (vagyis amikor az érzékelő forog) a mérési idő (és ennek megfelelően a LED égési ideje, azaz az áramfelvétel) arányosan csökken, és a felbontás nő.

Ezt követik az eljárások, amelyeket minden negyedik ébredéskor (vagyis 16 másodpercenként) hajtanak végre. A felhalmozott négy értékből a sebességérzékelő frekvenciaértékét nem az átlagot, hanem a maximumot továbbítjuk - a tapasztalatok szerint ez informatívabb érték. A kényelem és az egységesség kedvéért a mennyiségek mindegyikét, típusától függetlenül, 4 tizedesjegy méretű pozitív egész számmá alakítjuk át az átvitel előtt. A count változó nyomon követi az ébresztések számát:

//16 másodpercenként átlagoljuk az akkumulátor töltöttségét, és 4 értékből meghatározzuk a maximális //frekvencia értéket: if (count==3)( f=0; //frekvencia értéke (byte i=0; i)<4; i++) if (fEzután következik az irány szürke kódjának meghatározása. Itt a fogyasztás csökkentése érdekében az infravörös LED-ek állandó bekapcsolása helyett 5 kHz-es frekvenciát alkalmazunk mind a négy csatornára egyidejűleg egy kulcsfontosságú térhatású tranzisztoron keresztül a hang () funkció használatával. A frekvencia jelenlétének észlelése az egyes számjegyeken (pins in_0p - in_3p) a visszapattanásgátlóhoz hasonló módszerrel történik a megnyomott gomb jelzéseinek leolvasásakor. Először a ciklusban megvárjuk, hogy a kimenet magas-e, majd 100 µs után ellenőrizzük. 100 µs az 5 kHz-es frekvencia fél periódusa, vagyis ha legalább a második alkalomtól van frekvencia, akkor ismét magas szintre kerülünk (csak abban az esetben, ha megismételjük négyszer), és ez azt jelenti, hogy biztosan ott van. Ezt az eljárást megismételjük a kód mind a négy bitjére:

/* ===== Szélszürke ==== */ //irány: hang(IR_Pin,5000);//frekvencia 5 kHz-től tranzisztorig logikai érték igen = false; bájt i=0; yet //próbáld meg négyszer) if (yes) wDir=1; else wDir=0; igen = hamis; i=0; yet //próbáld meg négyszer) if (yes) wDir=1; else wDir=0; igen = hamis; i=0; yet //próbáld meg négyszer) if (yes) wDir=1; else wDir=0; igen = hamis; i=0; yet //próbáld meg négyszer) if (yes) wDir=1; else wDir=0; noTone(IR_Pin); //a frekvencia kikapcsolása //egy bájtba gyűjtése Gray kódban: wind_Gray=wDir+wDir*2+wDir*4+wDir*8; // közvetlen fordítás binárisra. kód int wind_G=wind_Gray*10+1000; //adj hozzá legfeljebb 4 des-t. kisülések. . . . .
Egy eljárás maximális időtartama a vevő frekvencia hiányában, és egyenlő 4 × 100 = 400 mikroszekundum. A 4 irányjelző LED maximális égési ideje akkor lesz, amikor egyetlen vevő sem világít, azaz 4 × 400 = 1,6 milliszekundum. Az algoritmus egyébként ugyanúgy fog működni, ha a 100 μs többszörösének periódusos frekvenciája helyett egyszerűen egy állandó magas szintet alkalmazunk a LED-ekre. Az állandó szint helyett kanyarulat jelenlétében egyszerűen csak felére takarítjuk meg az ételt. Még többet spórolhatunk, ha minden IR LED-et külön vezetéken vezetünk (illetve külön vezérlőkimeneten keresztül, saját kulcstranzisztorral), de ez bonyolítja az áramkört, a bekötést és a vezérlést, valamint 130 mA-es áramot 2 ms-onként. 16 másodperc – ez, látod, egy kicsit.

Végül, vezeték nélküli adatátvitel. A legegyszerűbb, legolcsóbb és legmegbízhatóbb módszert választották a szenzorok helyéről az időjárás állomás kijelzőjére történő adatátvitelhez: egy adó/vevő pár 433 MHz-es frekvencián. Egyetértek azzal, hogy a módszer nem a legkényelmesebb (mivel az eszközöket bitszekvenciák és nem egész bájtok átvitelére tervezték, jeleskedni kell az adatok szükséges formátumok közötti konvertálásában), és biztos vagyok benne, hogy sokan szeretnék hogy vitatkozzon velem a megbízhatósága kapcsán. Az utolsó ellenvetésre egyszerű a válasz: „csak nem tudod, hogyan kell főzni!”.

A titok az, hogy általában a színfalak mögött marad a 433 MHz-es csatornán történő adatcsere leírása: mivel ezek az eszközök tisztán analógok, a vevő teljesítményét nagyon jól meg kell tisztítani az esetleges idegen hullámoktól. A vevőt semmi esetre sem szabad az Arduino belső 5V-os szabályozójáról táplálni! Egy külön, kis teljesítményű vevő szabályozó (LM2931, LM2950 vagy hasonló) felszerelése közvetlenül a kimenetei mellé, megfelelő bemeneti és kimeneti szűrőáramkörökkel, drámai módon növeli az átviteli tartományt és a megbízhatóságot.

Ebben az esetben az adó közvetlenül 12 V-os elemfeszültségről működött, a vevő és az adó szabványos házi készítésű antennákkal volt felszerelve, 17 cm hosszú huzaldarab formájában. (Emlékeztetnék arra, hogy csak egymagos vezeték alkalmas antennákhoz, és az antennákat egymással párhuzamos térben kell elhelyezni.) Egy 24 bájt hosszú információs csomagot (a páratartalom és a hőmérséklet figyelembevételével) gond nélkül, 1200 bps sebességgel, átlósan továbbítottunk. egy 15 hektáros (kb. 40-50 méteres) kerti telek, majd három fafalon keresztül a helyiségbe (amiben például nagy nehezen és nem mindenhol veszik a mobiljelet). Gyakorlatilag elérhetetlen feltételek egyetlen szabványos 2,4 GHz-es módszerhez sem (például Bluetooth, Zig-Bee és még amatőr Wi-Fi is), annak ellenére, hogy az adó fogyasztása itt nyomorúságos 8 mA, és csak a tényleges adás idején, a fennmaradó időben az adó valódi filléreket fogyaszt. Az adó szerkezetileg a távoli egység belsejében van elhelyezve, az antenna oldalról vízszintesen kilóg.

Az összes adatot egy csomagba egyesítjük (egy valós állomáson a hőmérséklet és a páratartalom hozzáadódik), amely egységes 4 bájtos részekből áll, és előtte a „DAT” aláírás szerepel, elküldjük az adónak, és végrehajtjuk az összes ciklust:

/*=====Adó=====*/ String strMsg="DAT"; //aláírás - adat strMsg+=volt; //egy 4 számjegyű akkumulátor csatolása strMsg+=wind_G; //attach wind 4 bit strMsg+=fi; //frekvencia csatolása 4 bit strMsg.toCharArray(msg,16); //a karakterlánc lefordítása tömbbe // Serial.println(msg); //szabályozása vw_send((uint8_t *)msg, strlen(msg)); // üzenet küldése vw_wait_tx(); // várja meg az átvitel befejezését – kötelező! késleltetés(50); //+ minden esetre, késleltetés count=0; //számláló visszaállítása )//végszámlálás==3 else count++; digitalWrite(ledPin, LOW); //kikapcsoljuk a jelző LED-et system_sleep(); //rendszer - aludni) //vége ciklus
A csomag mérete csökkenthető, ha elhagyjuk azt a követelményt, hogy a különböző típusú értékeket egységes 4 bájtos kód formájában kell megjeleníteni (például Gray kódnál természetesen egy bájt is elegendő). De az univerzalizálás kedvéért mindent úgy hagytam, ahogy van.

A távirányító tápellátása és tervezési jellemzői. A távoli egység fogyasztása a következőképpen kerül kiszámításra:

20 mA (kibocsátó) + ~20 mA (vezérlő segédáramkörökkel) körülbelül 0,25 másodpercig négy másodpercenként - 40/16 = 2,5 mA átlagosan;
- 130 mA (radiátorok) + ~20 mA (vezérlő segédáramkörökkel) körülbelül 2 ms-ig 16 másodpercenként - 150/16/50 ≈ 0,2 mA átlagosan;

Ezen a számításon átvetve a szabályozó fogyasztást a hőmérséklet-páratartalom érzékelő adatainak leolvasásakor és a távadó működése közben, bátran hozzuk az átlagfogyasztást 4 mA-re (kb. 150 mA-es csúcsnál, figyelem!). Az elemeket (amihez egyébként akár 8 darab is kell ahhoz, hogy a távadót maximális feszültséggel táplálják!) túl gyakran kell majd cserélni, így felmerült az ötlet, hogy a távirányítót 12 voltos, csavarhúzó elemekkel látják el. Csak két plusz volt nálam. Kapacitásuk még a megfelelő számú AA elemnél is kisebb - mindössze 1,3 A óra, de senki sem veszi a fáradságot, hogy bármikor cserélje őket, készen tartva a második feltöltöttet. A jelzett 4 mA-es fogyasztás mellett az 1300 mA órás kapacitás nagyjából két hétre elegendő, ami nem túl zavaró.

Vegye figyelembe, hogy a frissen feltöltött akkumulátor feszültsége akár 14 volt is lehet. Ebben az esetben egy 12 voltos bemeneti stabilizátort szereltek be - annak érdekében, hogy elkerüljék a túlfeszültséget a távadó tápellátásában, és ne terheljék túl a fő öt voltos stabilizátort.

A megfelelő műanyag tokban lévő távirányítót a tető alá helyezzük, a csatlakozókon egy tápkábelt csatlakoztatunk az akkumulátorból és a szélérzékelőkhöz való csatlakozásokat. A fő nehézséget az jelenti, hogy az áramkör rendkívül érzékenynek bizonyult a levegő páratartalmára: esős időben pár óra elteltével az adó meghibásodik, a frekvencia mérések teljes káoszt mutatnak, az akkumulátor feszültség mérése pedig „időjárást a Marson” .

Ezért az algoritmusok hibakeresése és az összes csatlakozás ellenőrzése után a házat gondosan le kell zárni. A ház bejáratánál lévő összes csatlakozó tömítőanyaggal van bevonva, ugyanez vonatkozik az összes kilógó csavarfejre, az antenna kimenetére és a tápkábelre. A test ízületeit gyurmával vonják be (figyelembe véve, hogy el kell őket választani), és a tetejére vízvezeték-szalag csíkokkal ragasztják. Célszerű a belső használt csatlakozókat ezenkívül óvatosan megerősíteni epoxigyantával: például a diagramon feltüntetett DB-15 távvezérlő modul önmagában nem légtömör, a fémváz és a műanyag alap közé pedig lassan beszivárog a nedves levegő.

De mindezek az intézkedések önmagukban csak rövid távú hatást adnak - még ha nincs is hideg, nedves levegő szívása, akkor a helyiségből érkező száraz levegő könnyen párássá válik, amikor a házon kívüli hőmérséklet csökken (emlékezzünk az ún. "Harmatpont").

Ennek elkerülése érdekében a tok belsejében hagyjon egy patront vagy egy nedvszívó-szilikagélt tartalmazó zacskót (a táskákat néha cipőkkel vagy egyes elektronikus eszközökkel ellátott dobozokba helyezik). Ha a szilikagél ismeretlen eredetű és hosszabb ideig tárolva van, akkor használat előtt villanysütőben 140-150 fokon több órán át égetni kell. Ha a tok megfelelően van lezárva, akkor a szárítószert legfeljebb minden nyári szezon elején kell cserélni.

A fő modul

A fő modulban minden értéket fogad, dekódol, ha szükséges, konvertál a kalibrációs egyenletek szerint és megjeleníti.

A vevőt kivesszük az állomás fő moduljának testéből, és egy kis füles dobozba helyezzük a rögzítéshez. Az antenna a burkolaton lévő lyukon keresztül kerül kivezetésre, a tokban lévő összes lyuk nyersgumival van lezárva. A vevőérintkezők egy nagyon megbízható háztartási RS-4 csatlakozóra vannak vezetve, a vevőoldalról egy dupla árnyékolt AV-kábel szegmensén keresztül csatlakozik:

A jelet az egyik kábelmagról veszik, a másikon pedig „nyers” 9 voltos tápellátást kapnak a modul hálózati adapteréről. Az LM-2950-5.0 típusú stabilizátor a szűrőkondenzátorokkal együtt egy dobozba van felszerelve, egy külön kártyán lévő vevővel együtt.

Kísérleteket végeztek a kábel hosszának növelésére (csak abban az esetben - mi van, ha nem működik a falon?), amelyekből kiderült, hogy 6 méteres hosszon belül semmi sem változik.

Csak négy OLED kijelző van: két sárga az időjárási adatokat, két zöld óra és egy naptár. Elhelyezésük a képen látható:

Felhívjuk figyelmét, hogy minden csoportban az egyik kijelző szöveg, a második grafikus, mesterségesen létrehozott betűtípusokkal, karakterképek formájában. Itt nem fogunk foglalkozni a jövőben az információ megjelenítésének kérdésével, hogy ne duzzogjuk fel a cikk és a példák amúgy is kiterjedt szövegét: a glifképek jelenléte miatt, amelyeket egyenként kell megjeleníteni (gyakran egyszerűen felsorolással). esetleírás használatával), a kimeneti programok nagyon nehézkesek lehetnek. Az ilyen kijelzők kezelésével kapcsolatos információkért tekintse meg a szerző "Winstar kijelzők grafikus és szöveges módja" című bejegyzését, amely példát is tartalmaz a széladatok kimenetére szolgáló kijelzőre.

Sematikus ábrája. A beállítás megkönnyítése érdekében az órát és a kijelzőit egy külön Arduino Mini vezérlő szolgálja ki, és ezeket itt nem elemezzük tovább. Az időjárási adatok vételét és kimenetét vezérlő Arduino Nano-hoz való komponensek csatlakoztatásának sémája a következő:

Itt a távoli modullal ellentétben az időjárás-érzékelők csatlakoztatása látható - egy barométer és egy belső hőmérséklet-páratartalom érzékelő. Ügyeljen a tápkábelekre - a kijelzőket külön 5 V-os LM1085 típusú stabilizátor táplálja. Az is természetes, hogy az órakijelzőket tápláljuk róla, azonban ebben az esetben az óravezérlőt is ugyanarról a feszültségről kell táplálni, és az 5 V-os kimeneten keresztül, nem pedig Vin (a Mini Pro esetében ez utóbbi ún. NYERS). Ha az óravezérlőt ugyanúgy táplálja, mint a Nano - 9 volttal a RAW kimeneten keresztül, akkor a belső szabályozója ütközik a külső 5 voltos feszültséggel, és ebben a küzdelemben természetesen a legerősebb nyer, vagyis az LM1085 , és a Mini teljesen áram nélkül marad. Valamint mindenféle baj elkerülése érdekében a Nano és főleg a Mini programozása előtt (vagyis az USB kábel csatlakoztatása előtt) le kell választani a külső adaptert.

Az LM1085 stabilizátoron mind a négy kijelző csatlakoztatásakor kb watt teljesítmény szabadul fel, ezért egy kb 5-10 cm2-es kis radiátorra kell felszerelni alumínium vagy réz sarokból.

Adatok fogadása és feldolgozása. Itt csak a széladatokkal kapcsolatos programrészleteket reprodukálom és kommentálom, néhány szóval később más szenzorokról.

A 433 MHz-es csatornán üzenet fogadásához a sok forrásban leírt szabványos módszert alkalmazzuk. Összekapcsoljuk a könyvtárat és deklaráljuk a változókat:

#beleértve . . . . . intvolt; //akkumulátorfeszültség a feltételes teljes kódban float batt; //valós érték - akkumulátorfeszültség bájt wDir; //irány szürke kódban uint16_t t_time = 0; //vételi időintervallum char str; //karakterlánc az adatokhoz uint8_t buf; //változó a fogadott üzenethez uint8_t buflen = VW_MAX_MESSAGE_LEN; // a fogadott üzenet maximális hossza. . . . .
A puffer puffer méretének egy sajátossága van: nem elég egyszer a program elején deklarálni az értékét (VW_MAX_MESSAGE_LEN). Mivel ez a változó hivatkozásként jelenik meg a fogadási függvényben (lásd alább), az alapértelmezett üzenetméretet minden ciklusban frissíteni kell. Ellenkező esetben a sérült üzenetek fogadása miatt a buflen értéke minden alkalommal lerövidül, egészen addig, amíg az adatok helyett hülyeségeket kezd kapni. A példákban általában mindkét változót lokálisan deklarálják a loop() ciklusban, így a puffer mérete automatikusan frissül, de itt egyszerűen megismételjük a kívánt érték hozzárendelését minden ciklus elején.

A beállítási folyamat során a következő beállításokat végezzük el:

Void setup() (késleltetés (500); //kikapcsoláshoz a pinMode(16,INPUT_PULLUP); //pin a vw_setup(1200) gombhoz; //VirtuWire csatlakozási sebesség vw_set_rx_pin(17); //A3 VirtualWire vevő érintkezője. ...
Mielőtt elfogadna valamit, az utolsó vétel óta eltelt t_time időintervallumot ellenőrzi. Ha túllépte az ésszerű határokat (például 48 másodperc - a külső egység üzeneteinek ismétlési idejének háromszorosa), akkor ez az érzékelő elvesztéseként érzékelhető, és valamilyen módon megjelenik a kijelzőn:

Void loop() ( vw_rx_start(); // készen áll a buflen fogadására = VW_MAX_MESSAGE_LEN; // pufferméret minden alkalommal újra if ((int(millis()) - t_time) > 48000) // ha a t_time nem frissült tovább 48 másodpercnél (<отображаем прочерк на дисплее>)//végérzékelő nem található if (vw_have_message()) ( //várakozik a vételre if (vw_get_message(buf, &buflen)) // Ha adat érkezik ( vw_rx_stop(); //a vétel leállítása egy időre t_time = millis( ); / /frissítés t_time for (byte i=0;i<3;i++) // Получить первые три байта str[i]= buf[i]; str="\0"; if((str=="D")&&(str=="A")&&(str=="T")) { //сигнатура принята //принимаем данные: for (byte i=3;i<7;i++) // извлечь четыре байта аккумулятора str= buf[i]; // упаковать их в строку volt=atoi(str); //преобразовать в целое число volt=(volt/10)-100; //удаляем добавки до 4-х байт batt=float(volt)/55.5; //преобразуем в реальный вид напряжения в вольтах //и пока храним в глобальной переменной for (byte i=7;i<11;i++) // извлечь четыре байта направления str= buf[i]; // упаковать их в строку int w_Dir=atoi(str); //преобразовать в целое число w_Dir=(w_Dir-1000)/10; //возвращаем к исходному виду wDir=lowByte(w_Dir); //младший байт - код Грея <выводим направление на дисплей через оператор case> . . . . .
55,5 együttható - az ADC kód értékének átalakítása valós feszültséggé, értéke a referenciafeszültségtől és az osztóellenállások értékétől függ.

A Gray kódnak egyébként van egy tulajdonsága: a bitek sorrendje lényegtelen benne, a kód minden tulajdonságát megőrzi minden permutációnál. És mivel a dekódolásnál itt továbbra is minden esetet külön-külön mérlegelünk, a bitek tetszőleges sorrendben tekinthetők, és összekapcsoláskor össze is zavarodhatnak. Más kérdés, hogy ezt a dolgot valahogyan egyszerűsíteni akarták - például létrehozni egy irányérték tömböt ("s", "ssz", "sz", "zsz", "z" stb.), és helyette Egyéni megfontolásból minden változat szám szerint vonja ki a megnevezéseket ebben a tömbben. Ekkor a Grey kódot rendezett binárissá kellene alakítani, és a bitek sorrendje jelentős szerepet játszik.

Végül kivonjuk a sebesség értékét, és bezárjuk az összes utasítást:

For(byte i=19;i<23;i++) // Получить четыре байта частоты str= buf[i]; // упаковать их в строку int wFrq=atoi(str); //преобразовать в целое число wFrq = (wFrq-1000)/10; //удаляем добавки до 4-х байт wFrq=10+0.5*wFrq;//скорость в целом виде с десятыми <отображаем ее на дисплее поразрядно>)//end if str=DAT )//end vw_get_message ) //end vw_have_message(); . . . . .
Itt 10+0,5*wFrq a kalibrációs egyenlet. 10 dm/s (azaz 1,0 méter/másodperc) a kiindulási küszöb, és 0,5 a frekvencia-sebesség konverziós tényezője (dm/s-ban). A bemeneti frekvencia nulla értékével ez az egyenlet 10 dm / s értéket ad, ezért különös figyelmet kell fordítani arra, hogy ne 1 m / s, hanem nulla értéket jelenítsen meg. A sebességérzékelőt a legolcsóbb kézi szélmérők és asztali ventilátor segítségével kalibrálhatja. Ne próbálja meg kísérletileg meghatározni a kiindulási küszöböt - sokkal pontosabb lesz, ha az F frekvenciából kijelöli a V sebesség kalibrációs egyenesének két-három pontját: V = Vp + K × F különböző áramlási sebességeknél, majd a kiindulási küszöb automatikusan Vp értékként kerül meghatározásra (ennek az egyenesnek a sebességtengellyel való metszéspontjának ordinátája).

A fő hurok bezárása előtt még egy dolgot kell tenni. Van akkumulátorfeszültségünk, de nem kell állandóan megjelenítenie – csak foglaljon helyet. Ehhez szükséges a Kn1 gomb - erre kattintva ideiglenesen (a következő adatfrissítésig) kicseréljük a külső hőmérséklet-páratartalom vezetéket a feszültség értékre:

Ha (digitalRead(16)==LOW)( //gomb megnyomva<выводим напряжение на дисплей, затирая значение температуры-влажности>)//vége gomb késleltetése(500); )//vég hurok
Volt egy gombom, mint a diagramból is látszik, váltóérintkezővel, de semmi sem akadályoz abban, hogy egy rendes záróérintkezőt szereljek fel, ellenálláson keresztül rákössem a tápra. Ehhez még hozzáadható a kijelzőn megjelenő szimbólumok villogása arra az esetre, ha az akkumulátor feszültsége például 10 V alá csökkenne, annak jeleként, hogy ideje váltani.

Befejezésül az időjárás-érzékelőkről. Az SHT-75-öt kültéri érzékelőként használták - az egyetlen amatőr érzékelőt találtam, amely nem igényel kalibrálást, és a hőmérséklet és a páratartalom valós értékeit mutatja közvetlenül a dobozból (ezért a magas ára).

A csatlakoztatáshoz könyvtár található.

Az SHT-75 meglehetősen hülyén van megtervezve: a tábla fém hordozója nagyon jól vezeti a hőt, ezért teljesen ki kell venni a házból. Ellenkező esetben csak egy ATmega328 vezérlő jelenléte tápfeszültség-szabályozóval zárt tokban elegendő ahhoz, hogy a szenzor pár fokkal átmelegedjen a tábla hordozóján, még akkor is, ha a fejét kifelé mozgatjuk. Az én szélérzékelős áramköröm a 20-130 mA-es áramerősségével (még ha elhanyagolható ezredmásodperc is) az SHT-75-öt öt fokkal melegítette fel, ezért kiszedtem és külön, a házból oldalt kilógó műanyag lapra szereltem. .

Az SHT-75 adatait ugyanaz a vezérlő veszi, mint a szélérzékelők adatait, és egyetlen csomagban küldi el a távoli modulból egy 433 MHz-es vezeték nélküli csatornán keresztül. Előküldés céljából 4 bájtos karakterláncokká is konvertálják őket.

A helyiségen belüli hőmérséklet és páratartalom mérésére a banális DHT-22-t választották - mivel ott kicsi a hatótávolság az utcához képest, nem mindegy, hogy melyik érzékelőt használja (kivéve természetesen a DHT-11-et, amelyet nem szabad egyáltalán nem használható semmilyen körülmények között, rendeltetésszerűen, egyszerűen működésképtelen). A DHT-22 hőmérsékletét higanyhőmérővel végzett mérések alapján korrigáltuk (teljesen egybeestek az SHT-75-tel!), a páratartalmat pedig az SHT-75-höz képest némileg korrigáltuk. A javítások közvetlenül a kijelzőn megjelenő jelzés előtt kerülnek bevitelre.

Egyébként a DHT-22-t is ki kell venni a kijelzős házból - különben óhatatlanul felmelegszik és hazudik. A ház alján lévő műanyag konzolra rögzítem, tőle tíz milliméter távolságra. Ez a körülmény egyébként, ahogy gyanítom, az egyik oka annak (az egyedi kalibrálás hiányától eltekintve), hogy az összes RST és Oregon márkájú háztartási meteorológiai állomás szemérmetlenül belefekszik a leolvasásaiba, még saját magukkal is terjedve (belső szenzor) külsővel) két-három fokos és legfeljebb tíz százalékos páratartalom.

Barométer Ez nem jelent problémát, mivel szinte az összes kereskedelmi forgalomban kapható változat ugyanazon az alapon készül - a BMP180 mikroelektromechanikai (MEMS) chip vagy annak módosításai. Személyes tapasztalataim a kevésbé elterjedt LPS331AP alapú változattal negatívak voltak: nehezebb megtalálni a könyvtárat, és ráadásul ütközést is találtak az I2C buszon lévő más eszközökkel. Előfordulhat, hogy a barométer állását a telepítés helyén módosítani kell – minden 10-12 méter tengerszint feletti magasság 1 Hgmm-rel csökkenti a nyomást. Művészet. Ezért a leolvasott értékekből le kell vonni (vagy össze kell adni) egy bizonyos értéket, hogy a nyomásérték megfeleljen a területen lévő hivatalos meteorológiai állomás leolvasásának.

Nem adom meg az időjárás állomás összes programját teljes egészében - meglehetősen nehézkesek, és továbbra sem tudja egy az egyben megismételni a tervezést. Ha valami, kopogtassa a PM-et.

UPD kelt: 06/30/17. Telepített napelem. Kit innen:
a napelem
vezérlő
akkumulátor
Minden együtt + szállítás Moszkvában 2,5 tyr. Hibátlanul működik.
Érdekes módszer a napelem és az akkumulátor teljesítményének kiszámítására, amelyet az oldal tanácsadói kínálnak. Példa a 3 W-os energiafogyasztás számítására (nekem sokkal kevesebb), idézem:
„3 W-szor 24 óra, osztva 6-tal = 12Ah a minimális akkumulátorkapacitás
3 W szorozva 24 órával és osztva 3 órával = 24 W a napelem minimális teljesítménye.
Nincs hozzászólás.
Esetemben a naperőmű eredő kapacitása tízszerese a legrosszabb időjárási körülmények között szükségesnek. Ezért az érzékelővezérlőben nem sokat törődhet az energiamegtakarítással, és alkalmazhatja a szükséges leolvasási és átlagolási frekvenciákat.

UPD kelt: 09/13/18. Majdnem két szezonnyi működés során feltárultak az állomás erősségei és gyengeségei. A gyengébbek elsősorban az, hogy a 16 másodperces leolvasási frissítési ciklus (négy mérési sorozatból), mint eredetileg, túl hosszú. A pufferelemes napelem beépítése lehetővé tette, hogy ne gondoljunk az energiatakarékosságra, és játszadozzon a ciklusidővel. Ennek eredményeként a ciklust 8 másodpercre állítottuk be (négy mérés két másodperc alatt).
A mechanikai fejlesztések közül a fordulatszám-érzékelő hegye alá szilárd nyomócsapágyat vezettek be (igen, már akkor figyelmeztettek a szükségességére, de akkor még nem jöttem rá, hogyan kell elkészíteni). Egy idő után az érzékelő tengelye teljesen átvágta a fluoroplasztikus támasztékot, és az indulási küszöb meredeken emelkedett (mellesleg ez egyáltalán nem befolyásolta a szélkakas érzékenységét). Ezért a támasztékot egy rozsdamentes acél nyomócsapágyra cserélték, melyben vékony fúróval kis mélyedést készítettek. Van egy olyan elképzelésem, hogy később valami mást kell kitalálnom a hegyével, ami, mint az egész tengely, duralumíniumból van. De elhalasztottam addig a pillanatig, amikor az érzékelőt még át kell tenni: a tervezés alapjául szolgáló lézerkorong két évszak alatt felhős lett a naptól, és elkezdett repedni.

UPD dátum: 06/05/19.
Az érzékelő módosításáról (a szélkakas ugyanaz maradt). A sebességmérőt a kopott tengely és a használhatatlanná vált lézerkorong miatt is újra kellett készíteni. Az alapkialakítás változatlan marad, de az új lézertárcsát aranyszínű festékszóróval festették le. A tengelycsúcs megoldását a következő formában találtuk meg. A duralumínium tengelyen pontosan a közepébe fúrtak egy mélyedést, és egy második ragasztón egy kínai csap tetejének 3 mm-es kivágását helyezték be. A csap teteje egy jól központosított, kb 70-80 fokos szögű kúp, ezen kívül zéró csiszolópapírral, majd GOI pasztával polírozták. Alapnak egy rozsdamentes M3 csavar fejét használtam fűrészelt hornyolással, melyben közönséges D = 2 mm-es fúróval középen egy kis mélyedést jelöltem. Ezt a csavart közvetlenül a PTFE-ben lévő mélyedésbe csavarták be, amelyet a tengely korábban átfűrészelt, minthogy a központosítás biztosított lett volna.
A tengely csúcsát a korrózió elleni védelem érdekében grafitzsírral kenték be (mivel a csap rozsdamentes tulajdonságai számomra ismeretlenek). Némi csiszolás után az indítási küszöb annyira lecsökkent, hogy lehetetlenné vált egy szabadalmaztatott anemométerrel, amelyben a küszöb körülbelül 0,3-0,5 cm/s. A közvetett adatok szerint (két pontból egyenes megépítésével) a 0,3 m/s-os küszöböt önkéntesen elfogadták, bár ez valószínűleg valamivel kevesebb.

A számítási algoritmusok fő változása a szélérzékelőket is érinti, ezt hasznosnak találtam, hogy berakjam.


A szél az enyhe szellőtől a hirtelen fellépő, pusztulást és halált hozó széllökésekig terjed. A legerősebb szelek a hurrikánok. Ezek a hurrikán erejű szelek az óceánok felett alakulnak ki a trópusokon, amikor hatalmas légtömegeket szívnak be az alacsony nyomású területekre. A viharfelhők gyakran egy hurrikán középpontja (vagy szeme) körül keringenek nagyobb sebességgel, mint egy vasúti vonat.

Lehet, hogy soha nem tapasztalt viharos szelet, de bárhol is él, valószínűleg tapasztalt nyugodt és szeles napokat egyaránt. Készítsen szélmérőt, a legegyszerűbb műszert a szélsebesség mérésére, és rögzítse a környék szélerősségét egy szeles napon.

Szükséged lesz:

Vastag fa tű
vékony fa rudak
kötél és vízcsap
csésze joghurt
ragasztószalag (vízálló)
rajzszögek
színes karton
réz cső
ragasztó
olló

1. Vegyen egy vastag facsapot, és határozottan illessze be a rézcsőbe. Ez lesz a szélmérő állvány.

2. Kérjen meg egy felnőttet, hogy segítsen lyukat fúrni az állványon. A lyuk átmérőjének meg kell felelnie az egyik vékony rúd vastagságának. Ennek a vékony rúdnak az egyik végén készítsen rést. Helyezze be az állványba, és rögzítse a képen látható módon.

3. Vágja ki a nyílhegyet és a fletchet a kartonból, és rögzítse egy vékony rúd végéhez.

4. Vágjon ki egy negyed kört a színes kartonból, és rögzítse a nyílhoz ragasztószalaggal.

5. Vegyünk egy nagy pohár joghurtot. Ragasszuk a második vékony farúd egyik végére.

6. Kérjen meg egy felnőttet, hogy egy kis lyukat fúrjon a második rúd másik végén, majd tűzze vagy szögezze az oszlop tetejére. Győződjön meg arról, hogy a rúd szabadon forog.

7. Válasszon megfelelő helyet a szabadtéri megfigyeléshez. Hajtson egy rézcsövet a földbe, majd helyezzen be egy oszlopot. Rögzítse az állványt a kívánt helyzetben a rajzszög segítségével. Szerelje fel az állványt szigorúan függőlegesen, egy függővezetéket akasztva a nyílra (bármilyen anyát is használhat). A függővezetéknek szigorúan párhuzamosan kell lógnia az állvánnyal.

A szél úgy fordítja a szélmérő tűjét, hogy az abba az irányba mutasson, ahonnan a szél fúj.
A joghurtos csésze és a szár felemelkedik vele. Minél erősebb a szél, annál magasabbra emelkedik a mutatórúd.

Beaufort skála

Ez a szélsebesség mérésére szolgáló skála, amely a természet megfigyelésein alapul. A mérleget Sir Francis Beaufort angol admirális találta fel majdnem 200 évvel ezelőtt.

Az időjárási térképeken a szél sebességét a szélerősség ikonján lévő kötőjelek száma jelzi.

Szélsebesség Verbális jellemző A szélsebesség becslésének jelei
Kisasszony km/h pontszám
Beaufort
0,0-1,5 0,0-1,8 0 Nyugodt A füst függőlegesen vagy majdnem függőlegesen emelkedik, a levelek mozdulatlanok
0,6-1,7 1,9-5,1 1 Csendes szél A szél irányát a füst határozza meg
1,8-3,3 5,2-11,7 2 Könnyű szellő A szél mozgását az arc érzi, a levelek susognak
3,4-5,2 11,8-18,7 3 gyenge szél A fák levelei, vékony ágai folyamatosan ringatóznak, a szél könnyű zászlókat lengeti, a tengert folyamatos fényhullám borítja.
5,3-7,4 18,8-26,6 4 mérsékelt szél A szél felhordja a port, megmozgatja a fák vékony ágait, külön hullámokon időnként fehér, gyorsan eltűnő "bárányok" jelennek meg.
7,5-9,8 26,7-35,3 5 Friss szellő A fák vastag ágai ringatóznak; "bárányok" minden hullámon láthatók
9,9-12,4 35,4-44,0 6 Erős szél Vastag faágak himbálóznak, zúgnak a távíródrótok, a hullámokon hosszabbak a „bárányok” (5-10 mp.)
12,5-15,2 44,1-54,7 7 erős szél A fák teteje imbolyog, a nagy ágak meghajlanak, kellemetlen a széllel szemben menni. Habzó hullámok a tengeren
15,3-18,2 54,8-66,0 8 Nagyon erős szél A szél letöri a fák vékony ágait és száraz ágait, megnehezítve a mozgást
18,3-21,5 66,1-77,5 9 Vihar A szél kéményeket és tetőcserepeket döntöget. Nagyon nehéz a széllel szemben menni.
21,6-25,1 77,6-90,2 10 Kemény vihar Jelentős pusztítás, fák kitépve
25,2-29,0 90,3-104,4 11 Durva vihar Nagy pusztítás: távíróoszlopok, kocsik ledöntése
29,0 felett 104,4 felett 12 Hurrikán Lerombolja a házakat, nagy pusztítást okoz

Az új szélmérőm. A szélmérő nem kicsinek bizonyult, a generátor tárcsás, a csavar átmérője 0,5 m A szélmérő vízszintes, hatlapátos propellerrel. A cikk részletes leírást tartalmaz fotókkal és videókkal

Új cikk a témában + fotó és videó - Anemometer android + mikrofon

Végül megérkezett a szélmérő. Miután már három szélturbinát készítettem, még mindig nem tudom, pontosan milyen szél és mennyit adnak a szélmalmaim. Most már csak egy szélgenerátor működik, az én legsikeresebbem, bár ez mind „térdre” van szerelve. Körülbelül elképzelem a szél erősségét, és meg tudom különböztetni az 5 m/s és 10 m/s szelet, de mégis szeretném pontosabban tudni a szélsebességet, hogy meg lehessen határozni a szélgenerátor teljesítményét.

Több napig, időnként azon gondolkodtam, hogy valamiből szélmérőt csináljak, de eddig semmi értelmes nem sült ki az itthon fellelhető szemétből. Találtam két kis motort egy DVD lejátszóból, de azok fájdalmasan aprók, és nehéz pengét kitalálni egy vékony tengelyre.

Egy autórajongó keltette fel a szemem, általában teherautókba szerelik be. Ez az, akit megkínoztam. A motort leszerelték és eltávolították. Letörtem a lapátokat a propellerről, és csak az alap maradt - a központi rész, amely a tengelyre került. Aztán gondolkodtam, hogy milyen pengéket rögzítsek rá, kipróbáltam műanyag palackok, dobozok alját, de ez az egész nem tetszett.

Aztán találtam egy 5 cm átmérőjű és 50 cm hosszú PVC csövet, ebből 4 pengét csináltam, csak a csövet hosszában kétfelé vágtam, és a felekből, egyenként két részre, 4 darab lett. pengék. A natív csavarból megmaradt alapba 4 lyukat fúrtam a pengék rögzítésére, valamint a pengékbe is készítettem 4 lyukat. Az egészet csavarokba csavarta, és kapott egy négylapátos légcsavart - savonius (az első "komoly" függőleges).

Nos, akkor megtaláltam a megfelelő hosszúságú vezetékeket, 5 méter antennakábelt és 8 métert a szokásosból összeillesztve. A vezetékeket azonnal bekötöttem a paraméterek mérésére a vezeték hosszát figyelembe véve, mivel az adatok eltérhetnek, ha mérővezetéken vagy 13 m-en történik a mérés.

Aztán találtam egy kb 80-90 cm hosszú fémcső darabot, Z betűvel meghajlítottam és feltekertem a motort. Ez a cső rögzíti az anemométert az árbochoz. Nincs semmi bonyolult, bármilyen kéznél lévő anyagot használhat.

Nos, amikor teljesen összeszereltem a szélmérőt, felraktam a motoromra, hogy kalibráljam. Alább a képen láthatja, hogyan készült, minden primitív és egyszerű. Az elektromos szalaggal ellátott főemlősök tükrén a szappanmérő általában valahogy mindent rögzített, hogy felszabadítsa a kezemet a motorkerékpár irányításához.

Nagyon jól sikerült ez az őszi nap a szél szinte teljes hiánya miatt, ami egyébként a szélmérő gyors összeszereléseként szolgált, egy ilyen nap nem tűnhet el. Nem akartam az aszfaltra menni, mert a motor előtti érthetetlen mesterkedéssel felhívnám magamra a figyelmet, ezért úgy döntöttem, hogy végiglovagolok a mezőkön az erdőültetvények mentén.

Oda-vissza és különböző irányokba tekertem, és különböző sebességgel rögzítettem a multiméter állását a telefonon. A szélmérő 7 km/h sebességgel indult, és fokozatosan gurultam előre-hátra különböző sebességgel 10 km/h-tól a maximum 40 km/h-tól kezdve, több is lehetett, de a földutak nagyon egyenetlenek és lehet. ne gyorsulj sokat.

>

Miután pokatushek ilyen adatok készültek. A multiméter 10km/s-nál =0.06V, 20km/h=0.12V, 30km/h=0.20V, 40km/h=0.30V.

Ezután egy számológép segítségével kiszámoltam a közepes szélsebesség értékeket.

Volt - szélsebesség m / s.

A 11 m/s feletti adatokat úgy számítottuk ki, hogy egy papírra rajzoltuk a szélsebességtől függő feszültségnövekedés grafikonját, amely simán 15 m/s-ig folytatódott. Még aznap, vagy inkább este felszereltem egy szélmérőt az árbocra a szélgenerátorhoz. Leengedte a szélmalmot, és odakötötte a szélmérőt. Átmenetileg egy vezetékre húztam a csövet és rátekertem elektromos szalaggal, erősnek bizonyult. Na, akkor az egészet a helyére emeltem és most a szélgenerátor mellett van egy szélmérő az árbocon, ami 3 m/s-ról indul és rendszeresen mutatja a szél sebességét.

>

>

Alul a fotón egy már felemelt szélturbina látható fix szélmérővel. Nem készítettem részletesebben képeket, mivel nincs semmi bonyolult, és nincs mit ismételni. A szélmérő bármiből, szinte bármilyen motorból összeállítható. Természetesen kényelmesebb autóval kalibrálni. Ott és kényelmes, és kényelmesebb, és a sebességmérő pontosabb. De a motor mellett döntöttem, és úgy tűnt, ez is jól sikerült, remélem, ha hazudik a sebességmérő, akkor nem sokat.

>

Egyelőre ennyi, ennek az anemométernek ez az első verziója, és azt hiszem, nem az utolsó. Addig is megvárom a szelet és megtudom mit ad a szélgenerátorom. Nos, ezekkel az adatokkal kiegészítem ezt a cikket. Lehet, hogy valamit át kell alakítani...

Kiegészítés

Fújt a szél, és teszteltem a szélmérőt. A szélerősség első megfigyelései és a generátor ampermérője egyértelműen megmutatta, mennyire instabil a szél. Itt lent, mivel az árboc nem magas, főként rövid széllökésekből áll, amelyek időtartama nem haladja meg a két-három másodpercet, és néhány másodperc alatt a szél erősen változhat.

A semmivel nem terhelt szélmérő csavar élesen reagál minden széllökésre és a szélsebesség változására. Ennek a szélgenerátornak a terhelt csavarja pedig még mindig késik a reakciókban, és emiatt nem szinkron adatok a leolvasásokban. Ma 3-7 m/s a szél, a szélmérő valóban elkapott pár széllökést 10 m/s-ig, de azok egy másodpercnél is rövidebb ideig tartottak, és a szélgenerátor egyszerűen nem tudott reagálni rájuk.

Némi megfigyelés után a szélgenerátor áramerősségének néhány átlagos értéke egy bizonyos szél mellett készült. A csavar 3,5-4 m/s-ról indul, töltődik 0,5A 4m/s-nál, 1A 5m/s-nál, 2,5A 6m/s-nál, 4A 7m/s-nál, 5A 8m/s-nál. Ezek az adatok átlagoltak, mivel az ampermérő analóg stot, és 0,5A-ig tévedhetek a szélgenerátor áramleolvasásában.

Valami ilyesminek kellett volna lennie

Magának az érzékelőnek a gyártási lépései:

Az eset így csinálta: vettem egy darab négyzetes csövet és belevágtam egy ablakot, hogy később a tölteléket felrakhassam (egyébként a hőmérséklettel kivágtam az ablakot, de nagyon meg akartam csinálni hogy felkeltem és elmentem fűrészelni). Ezután belehegesztettem egy lemezt (belső csapágytartó), majd az alját (alsó csapágytartó). Amikor úgy döntöttem, hogy elkészítem a tetejét, úgy döntöttem, hogy csinálok egy ferde tetőt - ehhez négy háromszöget vágtam ki, és óvatosan megragadtam, majd teljesen felforraltam, és így egy hegyes szemellenzőt készítettem. Majd satuba szorította, és a csapágy átmérőjénél 0,5 mm-rel kisebb fúróval függőleges lyukat fúrt az alsó burkolatba és a középsőkbe, mindkettő csapágynak. Úgy, hogy a feszített acél csapágyakat söpréssel beállították. A csapágyak úgy illeszkednek, ahogy kell. Majd egy enyhén polírozott 100 ku-s szöget szúrt beléjük, miközben az ablak közepére egy 4 réses műanyag alátétet tett. A szög aljára vágtam egy szálat és rácsavartam a járókereket.

A járókereket a következőképpen készítettem: Kettővel elektródával három szöget hegesztettem az anyára, majd levágtam és elvágtam azokat a meneteket, amelyeknek a végein a feleket csavartam a golyóból.

A testhez egy rozsdamentes acél hatszögletű rúdtartót hegesztettek. Maga a tok kétszer lett lefestve fehér zománccal, hogy biztosan ne rozsdásodjon meg.

Úgy döntöttem, hogy nem biciklit találok fel, hanem úgy csinálom, mint egy számítógépes egeret, a forgástengelyen van egy műanyag alátét négy résszel, ha forog a járókerék, akkor forog, és az alátét villog a szenzor fölött, ami fel van szerelve. az elülső burkolathoz és a burkolat csavarozásakor olyan, mintha az egyszer olyanná válik, hogy a hornyolt alátét forog, és a LED-ről a fototranzisztorra ható fényáram ki-be lép. Ennyi... itt vannak impulzusok, és meg lehet számolni őket, és megvan a másodpercenkénti fordulatszámuk.

Leddiodno - a nyomtatóból kihúzott fototranzisztoros érzékelő, ömlesztve vannak ilyenek.

Először teniszlabdákból készült

Kicsit módosítanom kellett a készüléken. A teniszlabdák járókerekén 5 m/s széllel indult. 55 mm átmérőjű labdákat egy gyerekjáték boltban vásároltak. 2m/s-nál kezdődik és 22m/s-ig tart, nekem elegem van.

Miután az érzékelő készen állt. Elektronikát kellett gyártanunk.

Az első lehetőség a házi LUT technológia volt + egy zöld maszk Kínából, amely ultraibolya fény alatt szárad.

A képen látható 55 fordulat/másodperc. Valahogy le kellett fordítani m / s-re. Sokáig gondolkodtam, hogyan, még két szélmérőt is kaptam, régi Szovjetunióból és kínait 50 dollárért, de problémák voltak az ellenőrzéssel, mert a szél viharos és nem fúj stabilan.

Ezért erre jutottam: szabadnapon apával találtunk 2 km sík utat a városon kívül, autók nélkül, szél nélkül és mindkét oldalon fák ültetésével (apa vezetett, én félig az ablakon kívül ültem) és vezessünk oda-vissza. Először beállítottam a Szovjetunió dákóját és a kínai szélmérőket, megbizonyosodtam arról, hogy mindkettő ugyanazt és helyesen mutassa, mert ha az autó sebességmérőjén a sebességet elosztod 3,6-tal, akkor azt a számot kapod, amit a szélmérők m-ben mutattak. / s. Apa ugyanolyan sebességgel hajtott, és a műszerek ugyanazt a szelet mutatták. Így teszteltem a készülékemet. Apa minden alkalommal +5 km-t adott hozzá, én meg felírtam egy új mutatót (rpm). A méréseket háromszor végezték el. Amikor 80 km/h (22 m/s) felett haladtunk, már nem tudott felpörögni a szélmérőm és lefagyott az ábra, mert nem mér többet 22 m/s-nál....

A kínaiak egyébként 28 m/s-ig mutattak. Szovjetunió dákó 20 m/s-ig. Amikor módosított programmal egy helyre telepítettem, még egyszer megnéztem a kínainál minden összejött.

Most az Arduino számára módosítják.

A tervek szerint ezt becsavarják az okosotthon rendszerbe, hogy okostelefonról bevihesd és kezelhesd a házban lévő terheléseket, figyeld a hőmérsékletet a házban (ez nálam aktuális, csak néha elzárják a gázt a tél és jó látni, hogy milyen hőmérséklet) lesz gázérzékelő, plusz a ház közelében lesz a szél sebességének kijelzése.

Videó a munkáról

A téli munka eredménye

s-st --- óra ​​a télre
0 m/s --- 511,0
1 m/s --- 475,0
2 m/s --- 386,5
3 m/s --- 321,2
4 m/s --- 219,0
5 m/s --- 131,5
6 m/s --- 63,3
7 m/s --- 32,5
8 m/s --- 15.4
9 m/s --- 9.1
10 m/s --- 5,0
11 m/s --- 3.5
12 m/s --- 2.2
13 m/s --- 1.3
14 m/s --- 0,8
15 m/s --- 0,5
16 m/s --- 0,5
17 m/s --- 0,2
18 m/s --- 0,0
19 m/s --- 0,1


A két tél eredményei alapján láttam, hogy nem erős a szelem, és nem lesz hatékony a szélmalom, ezért készítettem egy kisebbet, 50 cm-es pengékkel. 150 watt csúcsteljesítmény. Csak arra figyeltem, hogy legalább egy gazdaságos izzó világítson, amikor a fény eltűnik.

Most egy kicsit az Arduino-ról.

Találtam a neten egy diagramot az egérről, jól szemlélteti a rendszerem működését.

Az egér diagramja alapján a következő vázlatot készítettem.

Az impulzusok a fototranzisztortól érkeznek az Arduinóhoz, és gombnyomásként érzékeli őket.

A program algoritmusa a következő: Figyelembe vesszük, hogy hány gombnyomás történt egy másodperc alatt, így megvan a forgási gyakoriság. Ezt a frekvenciát m/s-ra konvertálni. Amikor az Atmelen csináltam, készítettem egy algoritmust a frekvencia m / s-ban való kiszámításához. Így nézett ki:

ob_per_sec=0; // Változó, amelybe a másodpercenkénti fordulatszám esik.

int sebesség_szél=0; // Az érték ide kerül, miután a frekvenciát m/s-ra konvertáltuk.

int sebesség_szél_max=0; // Ide kerül az m/s leolvasási szél maximális értéke.

int sebesség_szél_2=0; // A program indítása óta eltelt másodpercek száma 2 m/s szélsebességgel.

int sebesség_szél_3=0; // A program indítása óta eltelt másodpercek száma 3 m/s szélsebességgel.

int sebesség_szél_4=0; // A program indítása óta eltelt másodpercek száma 4 m/s szélsebességgel.

int sebesség_szél_5=0; // A program indítása óta eltelt másodpercek száma 5 m/s szélsebességgel.

…………………………………………………………..

int sebesség_szél_22=0; // A program indítása óta eltelt másodpercek száma 22 m/s szélsebességgel.

if (ob_per_sec >0 && ob_per_sec<4) { speed_wind=2; speed_wind_2++;}

if (ob_per_sec >4 && ob_per_sec<7) { speed_wind=3; speed_wind_3++; }

if (ob_per_sec >7 && ob_per_sec<11) { speed_wind=4; speed_wind_4++; }

if (ob_per_sec >11 && ob_per_sec<15) { speed_wind=5; speed_wind_5++; }

if (ob_per_sec >15 && ob_per_sec<18) { speed_wind=6; speed_wind_6++; }

if (ob_per_sec >18 && ob_per_sec<23) { speed_wind=7; speed_wind_7++; }

if (ob_per_sec >23 && ob_per_sec<27) { speed_wind=8; speed_wind_8++; }

if (ob_per_sec >27 && ob_per_sec<30) { speed_wind=9; speed_wind_9++; }

…………………………………………………………..

if (ob_per_sec >60 && ob_per_sec<67) { speed_wind=22; speed_wind_22++; }

if (speed_wind> speed_wind_max)( speed_wind_max = speed_wind ;)// ellenőrizze és írja felül, ha a maximális érték nagyobb, mint az előzőleg írt érték.

És megjeleníti az értéket.

Szükség esetén ezután megtekintheti, hogy egy adott sebességgel hány percig fújt a szél, ehhez meg kell jeleníteni a (szükséges sebességindexszel) speed_wind_№ változót (de el kell osztani 60-al, hogy percet kapjunk.).

A programomban ezt csináltam: ha egy bizonyos gombot megnyomunk, az összes változó felváltva jelenik meg, a speed_wind_1-től a speed_wind_22-ig.

Betöltés...Betöltés...