Učinite sami anemometri (za djecu pripremne skupine). Domaći anemometar

Postojao je zadatak sastaviti anemometar za jedan projekt kako bi bilo moguće uzimati podatke na računalu preko USB sučelja. Članak će se više usredotočiti na sam anemometar nego na sustav za obradu podataka iz njega:

1. Komponente

Dakle, za proizvodnju proizvoda bile su potrebne sljedeće komponente:
Mitsumi loptasti miš — 1 kom.
Lopta za ping-pong - 2 kom.
Komad pleksiglasa prave veličine
Bakrena žica s presjekom od 2,5 mm2 - 3 cm
Dopuna kemijske olovke — 1 kom.
Chupa Chups štapić slatkiša - 1 kom.
Spojnica za kabel — 1 kom.
Šuplja mjedena cijev 1 kom.

2. Izrada impelera

3 komada bakrene žice duljine 1 cm svaki pod kutom od 120 stupnjeva zalemljena su na mjedenu cijev. U otvor cijevi zalemio sam stalak od kineskog igrača s navojem na kraju.

Cjevčicu od bombona sam izrezala na 3 dijela dužine oko 2 cm.

Prepolovio sam 2 kuglice i pomoću malih vijaka od istog igrača i polistirenskog ljepila (pištoljem za ljepilo) pričvrstio polovice kuglice na tube od lizalica.

Na zalemljene komade žice stavio sam cijevi s polovicama kuglice, a odozgo sve fiksirao ljepilom.

3. Izrada glavnog dijela

Nosivi element anemometra je metalna šipka od kemijske olovke. U donji dio šipke (gdje je umetnut čep) umetnuo sam disk od miša (enkodera). U dizajnu samog miša, donji dio enkodera naslonjen je na tijelo miša, tvoreći točkasti ležaj, bilo je masnoće, pa se enkoder lako okretao. Ali bilo je potrebno popraviti gornji dio šipke, za to sam pokupio prikladan komad plastike s rupom točno promjerom šipke (takav je komad izrezan iz sustava produžetka nosača CD-ROMa). Ostalo je riješiti problem da šipka enkodera ne ispadne iz točkastog ležaja, pa sam zalemio nekoliko kapi lema na šipku neposredno ispred pričvrsnog elementa. Dakle, šipka se slobodno okretala u potpornoj strukturi, ali nije ispala iz ležaja.

Razlog zašto je odabran sklop enkodera je sljedeći: u svim člancima o domaćim anemometrima na internetu opisana je njihova proizvodnja na temelju DC motora s playera, CD-ROM-a ili nekog drugog proizvoda. Problem kod ovakvih uređaja je, prvo, njihova kalibracija i niska točnost pri malim brzinama vjetra, a drugo, u nelinearnoj karakteristici brzine vjetra s obzirom na izlazni napon, t.j. za prijenos informacija na računalo, postoje određeni problemi, morate izračunati zakon promjene napona ili struje od brzine vjetra. Kod korištenja enkodera nema takvog problema jer je ovisnost linearna. Točnost je najveća, budući da enkoder daje oko 50 impulsa po okretaju osi anemometra, ali je sklop pretvarača nešto kompliciraniji, u kojem se nalazi mikrokontroler koji broji broj impulsa u sekundi na jednom od priključaka i izlaza. ovu vrijednost na USB priključak.

4. Ispitivanje i kalibracija

Za kalibraciju je korišten laboratorijski anemometar.

Obična kućna markirana ili domaća meteorološka stanica mjeri dvije temperature-vlagu (u prostoriji i vani), atmosferski tlak, a dodatno ima sat s kalendarom. Međutim, prava meteorološka stanica ima puno više - senzor sunčevog zračenja, kišomjer i sve to, općenito, potrebno je samo u profesionalne svrhe, uz jednu iznimku. Mjerač vjetra (brzina i, što je najvažnije, smjer) vrlo je koristan dodatak za seosku kuću. Štoviše, markirani senzori vjetra prilično su skupi čak i na Ali Babi, i ima smisla pogledati domaća rješenja.

Odmah moram reći da da sam unaprijed znao koliko bi ručnog rada i novca utrošenog na eksperimente rezultirala moja ideja, možda ne bih ni krenuo. No, znatiželja je nadjačala, a čitatelji ovog članka imaju priliku izbjeći one zamke na koje sam se morao spotaknuti.

Za mjerenja brzine vjetra(anemometrija) postoje stotine načina, od kojih su glavni:

Vruća žica,
- mehanički - s propelerom (točnije impelerom) ili čašastim horizontalnim impelerom (klasični čašni anemometar).Mjerenje brzine u tim slučajevima je ekvivalentno mjerenju brzine osi na kojoj je propeler ili impeler pričvršćen.
- kao i ultrazvučni, koji kombinira mjerenja brzine i smjera.
Za mjerenja smjera manje načina:
- spomenuti ultrazvučni;
- mehanička vjetrokaz s elektroničkim uklanjanjem kuta rotacije. Također postoji mnogo različitih načina mjerenja kuta rotacije: optički, otporni, magnetski, induktivni, mehanički. Usput, možete jednostavno montirati elektronički kompas na osovinu vremenske lopatice - to je samo pouzdane i jednostavne (za ponavljanje "koljena") načine za prijenos očitanja s kaotično rotirajuće osi i dalje će se morati tražiti. Stoga dalje biramo tradicionalnu optičku metodu.

Prilikom samostalnog ponavljanja bilo koje od ovih metoda treba imati na umu zahtjeve za minimalnom potrošnjom energije i cjelodnevnom (ili možda tijekom cijele godine?) izloženosti suncu i kiši. Senzor vjetra ne može se postaviti ispod krova u hladu - naprotiv, trebao bi biti što dalje od svih ometajućih čimbenika i „otvoren za sve vjetrove“. Idealno mjesto je greben krova kuće ili, u najgorem slučaju, štala ili sjenica, udaljena od drugih zgrada i drveća. Takvi zahtjevi podrazumijevaju autonomno napajanje i, očito, bežični kanal za prijenos podataka. Ovi zahtjevi su posljedica nekih "zvona i zviždaljki" dizajna, koji je opisan u nastavku.

O minimalnoj potrošnji energije

Usput, kolika je minimalna potrošnja energije? Na temelju običnih kućanskih AA baterija, prosječna potrošnja kruga u idealnom slučaju ne bi trebala biti veća od 1-2 mA. Izračunajte sami: kapacitet pristojne AA alkalne ćelije je oko 2,5-3 Ah, odnosno krug s naznačenom potrošnjom radit će od njega oko 1500-2500 sati, odnosno 2-3 mjeseca. U principu, to također nije puno, ali relativno prihvatljivo - ne možete učiniti manje: ili ćete se pokvariti na baterijama ili ćete morati koristiti baterije koje će se morati puniti čak i češće nego mijenjanje baterija. Iz tog razloga, prilikom sastavljanja takvog kruga, dužni smo uhvatiti sve mrvice: obvezni način uštede energije, pažljivo promišljeni krug i slijed radnji u programu. Dalje ćemo vidjeti da u konačnom dizajnu još uvijek nisam ispunio potrebne zahtjeve i morao sam koristiti bateriju.


Informativnu priču o tome kako sam pokušao reproducirati najmoderniju i najnapredniju metodu - ultrazvuk, a nije uspio, ispričat ću neki drugi put. Sve ostale metode uključuju odvojeno mjerenje brzine i smjera, pa smo morali blokirati dva senzora. Proučivši teoretski anemometre s vrućom žicom, shvatio sam da nećemo moći kupiti gotovi osjetljivi element amaterske razine (dostupni su na zapadnom tržištu!), nego da ga sami izmislite - da se uključite u sljedeće istraživanje i razvoj s odgovarajućim gubitkom vremena i novca. Stoga sam, nakon malo razmišljanja, odlučio napraviti objedinjeni dizajn za oba senzora: čašni anemometar s optičkim mjerenjem brzine rotacije i vjetrokaz s elektroničkim očitavanjem kuta rotacije na temelju diska enkodera (enkodera).

Dizajn senzora

Prednost mehaničkih senzora je što tamo nije potrebno istraživanje i razvoj, princip je jednostavan i jasan, a kvaliteta rezultata ovisi samo o točnosti pomno osmišljenog dizajna.

Tako je teoretski izgledalo, u praksi je rezultiralo gomilom mehaničkih radova, od kojih su se neki morali naručiti sa strane, zbog nedostatka tokarilica i glodalica pri ruci. Moram odmah reći da nikada nisam požalio što sam se od samog početka oslanjao na kapitalni pristup, a nisam ogradio konstrukcije od improviziranih materijala.

Za vremensku lopaticu i anemometar potrebni su sljedeći dijelovi koje je trebalo naručiti kod tokara i mlinara (količina i materijal su naznačeni za oba senzora odjednom):

Osovine su, napominjemo, nužno okrenute na tokarilici: gotovo je nemoguće napraviti osovinu s vrhom točno u sredini na koljenu. A postavljanje vrha točno duž osi rotacije ovdje je odlučujući faktor za uspjeh. Osim toga, os mora biti savršeno ravna, nikakva odstupanja nisu dopuštena.

Mehanički senzor smjera vjetra - elektronska vjetrokaz

Osnova vremenske lopatice (kao i senzora brzine ispod) je nosač u obliku slova U od D-16 duralumin, prikazan na crtežu u gornjem lijevom kutu. U donje udubljenje utiskuje se komad PTFE u kojem se svrdlama od 2 i 3 mm sukcesivno izrađuje stepenasto udubljenje. U ovo udubljenje umetnuta je osovina s oštrim krajem (za vremensku lopaticu - od mesinga). Odozgo slobodno prolazi kroz rupu od 8 mm. Iznad ove rupe, pravokutni komad iste fluoroplastike debljine 4 mm pričvršćen je na nosač vijcima M2 tako da preklapa rupu. U PTFE-u je napravljena rupa točno duž promjera osi od 6 mm (nalazi se točno duž zajedničke osi rupa - vidi montažni crtež ispod). Fluoroplastika na vrhu i dnu ovdje igra ulogu kliznih ležajeva.


Os na točki trenja o fotoplastiku može se polirati, a područje trenja može se smanjiti upuštanjem rupe u fluoroplastici. ( O ovoj temi pogledajte ispod UPD od 13.09.18. i 05.06.19.). Za vremensku lopaticu to ne igra posebnu ulogu - neko "zaostajanje" mu je čak korisno, a za anemometar ćete morati pokušati smanjiti trenje i inerciju.

Sada o uklanjanju kuta rotacije. Klasični 16-pozicijski Grey koder u našem slučaju izgleda ovako:

Veličina diska odabrana je na temelju uvjeta pouzdane optičke izolacije parova emiter-prijemnik jedan od drugog. S ovom konfiguracijom, prorezi širine 5 mm također su razmaknuti 5 mm, a optički parovi su razmaknuti točno 10 mm. Dimenzije nosača na koji se pričvršćuje vjetrokaz izračunate su precizno na temelju promjera diska od 120 mm. Sve se to, naravno, može smanjiti (pogotovo ako odaberete LED diode i fotodetektore najmanjeg mogućeg promjera), ali je uzeta u obzir složenost proizvodnje kodera: pokazalo se da mlinari ne poduzimaju tako delikatan posao, stoga je morao se rezati ručno turpijom za iglu. I ovdje što je veća veličina, to je pouzdaniji rezultat i manje muke.

Gornji montažni crtež pokazuje kako je disk pričvršćen na osovinu. Pažljivo centriran disk pričvršćen je vijcima M2 na kaprolonski rukavac. Čahura se postavlja na osovinu tako da je razmak na vrhu minimalan (1-2 mm) - tako da se os slobodno rotira u normalnom položaju, a kada se okrene, vrh ne ispada iz utičnice na dno. Blokovi fotodetektora i emitera pričvršćeni su na nosač na vrhu i dnu diska, točnije o njihovom dizajnu u nastavku.

Cijela konstrukcija je smještena u plastično (ABS ili polikarbonatno) kućište 150×150×90 mm. Sastavljen (bez poklopca i vjetrobrana), senzor smjera izgleda ovako:

Imajte na umu da je odabrani sjeverni smjer označen strelicom i morat ćete ga poštovati prilikom ponovnog postavljanja senzora.

Prava vremenska lopatica pričvršćena je na vrh osi. Izrađuje se na temelju iste mjedene osovine, u rezu na čijoj je tupi strani zalemljena drška od mjedenog lima. Na oštrom kraju se navoj M6 izrezuje na određenu duljinu, a na njega se uz pomoć matica učvršćuje okrugla protuutega izlivena od olova:

Teret je dizajniran tako da težište pada točno na točku pričvršćivanja (pomicanjem duž konca možete postići savršenu ravnotežu). Vremenska lopatica se pričvršćuje na os pomoću nehrđajućeg M3 vijka, koji prolazi kroz rupu na osi vjetrobrana i uvija se u navoj urezan u osi rotacije (vijka za pričvršćivanje je vidljiva na gornjoj fotografiji). Za preciznu orijentaciju, vrh osi rotacije ima polukružno udubljenje u kojem leži os vjetrobrana.

Senzor brzine vjetra - anemometar za šalicu uradi sam

Kao što ste već shvatili, osnova za senzor brzine u svrhu objedinjavanja odabrana je ista kao i za vremensku lopaticu. Ali zahtjevi dizajna ovdje su nešto drugačiji: kako bi se smanjio početni prag, anemometar bi trebao biti što je moguće lakši. Stoga je, posebice, os za njega izrađena od duraluminija, disk s rupama (za mjerenje brzine rotacije) je smanjen u promjeru:

Dok četverobitni Grey koder zahtijeva četiri optospojnice, senzor brzine treba samo jedan. Po obodu diska na jednakoj udaljenosti izbušeno je 16 rupa, tako da je jedan okret diska u sekundi ekvivalentan 16 herca frekvencije koja dolazi iz optospojnice (moguće je više rupa, manje ih je - pitanje je samo ljestvica preračuna i uštede energije za emitere).

Samostalni senzor i dalje će se pokazati prilično grubim (početni prag je najmanje pola metra u sekundi), ali se može smanjiti samo ako se dizajn radikalno promijeni: na primjer, stavite propeler umjesto gramofon za šalice. Kod okretnog stola za čaše razlika u silama otpora protoka koje određuju zakretni moment je relativno mala - postiže se isključivo zbog različitog oblika površine koja se susreće s nadolazećim strujanjem zraka (dakle, oblik čaša treba biti jednako aerodinamičan kao moguće - idealno, ovo je pola jajeta ili kuglica). Propeler ima mnogo veći zakretni moment, može se napraviti znatno lakšim i, konačno, sama izrada je jednostavnija. Ali propeler se mora postaviti u smjeru strujanja zraka – na primjer, tako da se postavi na kraj iste vremenske lopatice.

Pitanje pitanja u isto vrijeme: kako prenijeti očitanja sa senzora koji se nasumično rotira oko okomite osi? Nisam to mogao riješiti, a sudeći prema činjenici da su profesionalni dizajni šalica još uvijek rašireni, to se nikako ne rješava polu-udarcem (ne uzimamo u obzir ručne anemometre - oni su orijentirani ručno prema zraku teći).

Moja verzija šalastog anemometra temelji se na laserskom disku. Gornji i donji izgled prikazan je na fotografiji:



Šalice su izrađene od dna dječjih bočica za vodu "Agusha". Dno je pažljivo odrezano, a sva tri - na istoj udaljenosti, tako da imaju jednaku težinu, lokalno zagrijana u sredini (ni u kojem slučaju ne zagrijavajte cijelu stvar - nepovratno će se iskriviti!) I stražnja strana drvena ručka od turpije savija se prema van kako bi bila modernija. Ponovit ćete – opskrbite se većim bocama, od pet-šest komada vjerojatno ćete uspjeti napraviti tri manje-više identične šalice. U proizvedenim čašama napravljen je utor sa strane i oni su pričvršćeni duž perimetra diska na 120 ° jedan u odnosu na drugu uz pomoć vodootpornog ljepila-brtvila. Disk je strogo centriran u odnosu na os (to sam učinio uz pomoć priložene metalne podloške) i pričvršćen je na kaprolonski rukavac vijcima M2.

Općenito projektiranje i ugradnja senzora

Oba senzora, kao što je već spomenuto, smještena su u plastičnim kućištima 150×150×90 mm. Odabiru materijala kućišta treba pristupiti promišljeno: ABS ili polikarbonat imaju dovoljnu otpornost na vremenske uvjete, ali polistiren, pleksiglas, a još više polietilen, ovdje definitivno neće raditi (a također će ih biti teško obojiti kako bi ih zaštitili od sunca ). Ako nije moguće kupiti markiranu kutiju, bolje je samostalno lemiti kućište od stakloplastike, a zatim ga obojiti kako biste ga zaštitili od korozije i dali mu estetski izgled.

U poklopcu se točno na mjestu izlaza osi napravi otvor od 8-10 mm, u koji je istim ljepilom-brtvilom zalijepljen plastični konus, izrezan iz izljeva iz limenke s građevinskim brtvilom ili ljepilom:

Za centriranje konusa duž osi, stezaljkom pričvrstite komad drveta na dno poklopca, označite točnu sredinu na njemu i prođite malo dublje s lopatom bušilicom od 12 mm, čineći prstenasto udubljenje oko rupe. Konus mora ući tamo točno, nakon čega se može premazati ljepilom. Za vrijeme skrućivanja možete ga dodatno učvrstiti u okomitom položaju vijkom M6 s maticom.

Sam senzor brzine ovim konusom pokriva osovinu poput kišobrana, sprječavajući ulazak vode u kućište. Za vremensku lopaticu, vrijedno je dodatno postaviti rukav iznad konusa, koji će zatvoriti razmak između osi i konusa od izravnog protoka vode (pogledajte fotografiju općeg prikaza senzora ispod).

Žice iz optospojnika spojene su na zasebni D-SUB konektor (vidi sliku senzora smjera iznad). Spojni dio s kabelom umetnut je kroz pravokutni otvor na dnu kućišta. Rupa se zatim prekriva poklopcem s utorom za kabel, koji sprječava ispadanje konektora. Duralni nosači su pričvršćeni na podnožje kućišta radi pričvršćivanja na mjesto. Njihova konfiguracija ovisi o mjestu senzora.

Kada su sklopljena, oba senzora izgledaju ovako:

Ovdje su prikazani već postavljeni na mjestu - na grebenu sjenice. Imajte na umu da su udubljenja za vijke koji pričvršćuju poklopac zaštićena od vode mokrim gumenim čepovima. Senzori se postavljaju strogo vodoravno prema razini, za što je bilo potrebno koristiti obloge od komada linoleuma.

Elektronički dio

Meteorološka stanica u cjelini sastoji se od dva modula: udaljene jedinice (koja služi oba senzora vjetra, a također uzima očitanja s vanjskog senzora temperature i vlage) i glavnog modula s zaslonima. Daljinska jedinica je opremljena bežičnim odašiljačem za slanje podataka koji je ugrađen unutar njega (antena strši sa strane). Glavni modul prima podatke od udaljene jedinice (prijemnik je postavljen na kabel u zasebnoj jedinici radi lakše orijentacije), a također uzima očitanja s unutarnjeg senzora temperature i vlage i sve to prikazuje na zaslonima. Zasebna komponenta glavne jedinice je sat s kalendarom, koji, radi praktičnosti općeg postavljanja stanice, servisira poseban Arduino Mini kontroler i ima svoje zaslone.

Daljinski modul i mjerni krug senzora vjetra

AL-107B IR LED diode odabrane su kao fotoemiteri. Ove vintage LED diode, naravno, nisu najbolje u svojoj klasi, ali imaju minijaturno tijelo promjera 2,4 mm i sposobne su proći struju do 600 mA po impulsu. Inače, tijekom testiranja pokazalo se da uzorak ove LED diode oko 1980. godine izlaska (u crvenom kućištu) ima otprilike dvostruko veću učinkovitost (izraženu u rasponu pouzdanog rada fotodetektora) od modernih primjeraka kupljenih u Chipu -Dubok (imaju prozirno žućkasto-zeleno tijelo). Malo je vjerojatno da su kristali bili bolji 1980. nego sada, iako se, dovraga, ne šali? Možda je, međutim, stvar u različitim kutovima raspršenja u oba dizajna.

Jednosmjerna struja od oko 20 mA propuštena je kroz LED u senzoru brzine (otpornik od 150 Ohma kada se napaja od 5 volti), au senzoru smjera - impulsna (meander s radnim ciklusom od 2) struja od oko 65 mA ( istih 150 Ohma kada se napaja od 12 volti). Prosječna struja kroz jednu LED diodu senzora smjera je oko 33 mA, ukupno kroz četiri kanala - oko 130 mA.

Kao fotodetektori odabrani su fototranzistori L-32P3C u pakiranju promjera 3 mm. Signal je preuzet sa kolektora napunjenog otpornikom od 1,5 ili 2 kOhm iz napajanja od 5 V. Ovi parametri su odabrani tako da se na udaljenosti od ~ 20 mm između foto emitera i prijemnika, logički signal pune veličine na 5 -naponske razine bez dodatnog pojačanja odmah bi stigle na ulaz kontrolera. Ovdje prikazane struje mogu vam se činiti neproporcionalno velikima, na temelju gore navedenih minimalnih zahtjeva za snagom, ali kao što ćete vidjeti, pojavljuju se u svakom ciklusu mjerenja najviše nekoliko milisekundi, tako da ukupna potrošnja ostaje mala.

Osnova za montažu prijemnika i odašiljača bili su dijelovi kabelskog kanala (vidjeti na gornjoj fotografiji senzora), izrezani tako da formiraju "uši" na bazi za montažu na nosač. Za svaki od ovih rezova na poklopac za zaključavanje s unutarnje strane zalijepljena je plastična ploča, jednaka širini širini kanala. LED diode i fototranzistori učvršćeni su na potrebnoj udaljenosti u rupice izbušene na ovoj ploči tako da su vodovi bili unutar kanala, a samo su izbočine na krajevima kućišta virile van. Zaključci su zalemljeni u skladu s dijagramom (vidi dolje), vanjski zaključci su napravljeni rezovima fleksibilne višebojne žice. Otpornici za emitere senzora smjera također su postavljeni unutar kanala, iz njih se izvodi jedan opći zaključak. Nakon odlemljenja poklopac škljocne na svoje mjesto, svi utori su zapečaćeni plastelinom i dodatno ljepljivom trakom, koja također zatvara rupu sa strane suprotne vodovima, a cijela konstrukcija je ispunjena epoksidom. Vanjski zaključci, kao što možete vidjeti na fotografiji senzora, izlaze na terminalni blok pričvršćen na stražnjoj strani nosača.

kružni dijagram Procesna jedinica senzora vjetra izgleda ovako:

O tome odakle dolazi napajanje od 12-14 volti, pogledajte dolje. Uz komponente prikazane na dijagramu, daljinska jedinica sadrži senzor temperature i vlage, koji nije prikazan na dijagramu. Razdjelnik napona spojen na terminal A0 regulatora je dizajniran za kontrolu napona napajanja u svrhu pravovremene zamjene. LED dioda spojena na tradicionalni pin 13 (pin 19 DIP kućišta) je super svijetla, za njegov normalan, ne zasljepljujući sjaj, dovoljan je djelić miliampera struje, što je osigurano neobično visokom vrijednošću 33 kΩ otpornik.

Krug koristi goli Atmega328 kontroler u DIP paketu, programiran preko Unoa i instaliran na utičnicu. Takvi kontroleri s već napisanim Arduino bootloaderom prodaju se, na primjer, u Chip-Dip-u (ili možete sami napisati bootloader). Prikladno je programirati takav kontroler u poznatom okruženju, ali, bez komponenti na ploči, on je, prvo, ekonomičniji, a drugo, zauzima manje prostora. Punopravni način za uštedu energije mogao bi se dobiti i uklanjanjem bootloadera (i općenito pisanjem cijelog koda u asembleru :), ali ovdje to nije baš relevantno, a programiranje je nepotrebno komplicirano.

Na dijagramu su sivi pravokutnici zaokružili komponente koje se zasebno odnose na kanale brzine i smjera. Razmotrite rad sheme u cjelini.

Radom kontrolera u cjelini upravlja watchdog timer WDT koji je omogućen u načinu prekida poziva. WDT budi kontroler iz stanja mirovanja u zadanim intervalima. U slučaju da se timer resetuje u pozvanom prekidu, nema ponovnog pokretanja od nule, sve globalne varijable ostaju na svojim vrijednostima. To vam omogućuje da skupite podatke od buđenja do buđenja i da ih u nekom trenutku obradite – na primjer, prosječite ih.

Na početku programa izrađuju se sljedeće deklaracije knjižnica i globalnih varijabli (kako ne bismo zatrpavali tekst već opširnih primjera, ovdje se objavljuje sve što se odnosi na senzor temperature i vlažnosti):

#uključiti #uključiti #uključiti . . . . . #define ledPin 13 //LED pin (PB5 pin 19 ATmega) #define IR_Pin 10 //IRLU upravljanje tranzistorom (PB2 pin 16 Atmega) #define in_3p 9 //Ulazni bit prijemnika 3 #define in_2p 8 bit //Prijamnik 2 # ulaz definiraj in_1p 7 //ulazni bit prijemnika 1 #definiraj in_0p 6 //ulazni bit prijemnika 0 #definiraj IR_PINF 5 //(PD5,11) izlaz za frekvenciju IR LED #definiraj IN_PINF 4 //(PD4,6) ulaz detekcije frekvencije nepostojan neoznačeno dugo ttime = 0; // Razdoblje aktivacije senzora float ff; //frekventne vrijednosti senzora brzine za usrednjavanje char msg; //poslana poruka byte count=0;//counter int batt; //prosječiti bajt baterije wDir; // niz smjerova vjetra bajt wind_Gray=0; // bajt koda smjera vjetra
Sljedeći postupci se koriste za pokretanje stanja mirovanja i WDT (buđenje svake 4 sekunde):

// stavljanje sustava u stanje mirovanja 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; ako je (ii > 7) bb|= (1<<5); //в bb - код периода bb|= (1<Senzor brzine daje frekvenciju prekida optičkog kanala, red veličine je jedinica-desetak herca. Ekonomičnije je i brže izmjeriti takvu vrijednost nakon određenog razdoblja (to je bio predmet autorove publikacije “Evaluacija metoda za mjerenje niskih frekvencija na Arduinu”). Ovdje se putem modificirane funkcije pulseInLong() bira metoda koja ne veže mjerenje za određene izlaze regulatora (tekst funkcije periodInLong() nalazi se u navedenoj publikaciji).

U funkciji setup() deklariraju se smjerovi pinova, inicijaliziraju se knjižnica odašiljača 433 MHz i mjerač vremena čuvanja (red za IN_PINF je u principu suvišan i umetnut je za memoriju):

Void setup() ( pinMode(IR_PINF, OUTPUT); //za izlaz pinMode(IN_PINF, INPUT); //detekcija izlazne frekvencije na ulaz pinMode(13, OUTPUT); //LED vw_setup(1200); // brzina veze VirtualWire vw_set_tx_pin(2); //D2, PD2(4) VirtualWire pin za prijenos // Serial.begin(9600); // Serijski port za praćenje prilikom otklanjanja pogrešaka setup_watchdog(8); //WDT razdoblje 4 c wdt_reset(); )
Konačno, u glavnoj petlji programa prvo očitamo napon svaki put kada se probudimo (svake 4 sekunde) i izračunamo frekvenciju senzora brzine vjetra:

Void loop() ( wdt_reset(); // resetirajte tajmer digitalWrite(ledPin, HIGH); // uključite LED za kontrolu batt=analogRead(0); // pročitajte i spremite trenutni kod baterije /*=== frekvencija === = */ digitalWrite(IR_PINF, HIGH); //uključite IR LED senzora brzine float f=0; //varijabla za frekvenciju ttime=periodInLong(IN_PINF, LOW, 250000); //pričekajte 0,25 sek // Serial. println(ttime); //za kontrolu tijekom otklanjanja pogrešaka if (ttime!=0) (//u slučaju da nema frekvencije f = 1000000/float(ttime);) //izračunaj frekvenciju signala u Hz digitalWrite(IR_PINF, LOW); / /isključite IR LED ff=f; //spremite izračunatu vrijednost u niz. . . . .
Vrijeme gorenja IR LED-a (koji troši, da vas podsjetim, 20 mA) ovdje, kao što vidite, bit će maksimalno u odsutnosti rotacije diska senzora i iznosi oko 0,25 sekundi pod ovim uvjetom. Minimalna mjerljiva frekvencija tako bi bila 4 Hz (četvrtina okretaja diska u sekundi sa 16 rupa). Kako se pokazalo pri kalibraciji senzora (vidi dolje), to odgovara brzini vjetra od oko 0,2 m/s. Naglašavamo da je to minimalna mjerljiva vrijednost brzine vjetra, ali ne i rezolucija i ne početni prag (koji će biti mnogo veći). U prisutnosti frekvencije (to jest, kada se senzor rotira), vrijeme mjerenja (i, sukladno tome, vrijeme gorenja LED-a, odnosno potrošnja struje) će se proporcionalno smanjiti, a razlučivost će se povećati.

Slijede postupci koji se izvode pri svakom četvrtom buđenju (odnosno svakih 16 sekundi). Iz akumulirane četiri vrijednosti prenosimo frekvencijsku vrijednost senzora brzine ne prosjek, već maksimum - kao što je iskustvo pokazalo, ovo je informativnija vrijednost. Radi praktičnosti i ujednačenosti, svaka se veličina, bez obzira na njenu vrstu, prije prijenosa pretvara u pozitivan cijeli broj veličine 4 decimale. Varijabla count prati broj buđenja:

//svakih 16 sekundi prosječujemo bateriju i određujemo maksimalnu //vrijednost frekvencije od 4 vrijednosti: if (count==3)( f=0; //frekvencijska vrijednost za (bajt i=0; i<4; i++) if (fSljedeća je definicija Grayovog koda smjera. Ovdje se, radi smanjenja potrošnje, umjesto stalnog uključivanja IR LED-a, frekvencija od 5 kHz primjenjuje na sva četiri kanala istovremeno preko ključnog tranzistora s efektom polja pomoću funkcije ton (). Detekcija prisutnosti frekvencije na svakoj od znamenki (pinovi in_0p - in_3p) izvodi se metodom sličnom anti-bounce pri očitavanju indikacija pritisnutog gumba. Prvo, u petlji, čekamo da vidimo je li izlaz visok, a zatim ga provjeravamo nakon 100 µs. 100 µs je pola perioda frekvencije od 5 kHz, odnosno ako postoji frekvencija barem od drugog puta, opet ćemo doći na visoku razinu (za svaki slučaj ponavljamo četiri puta) a to znači da definitivno je tu. Ponavljamo ovaj postupak za svaki od četiri bita koda:

/* ===== Wind Gray ==== */ //smjer: ton(IR_Pin,5000);//frekvencija 5 kHz do tranzistora boolean yes = false; bajt i=0; while(!yes)( //cifra 3 i++; boolean state1 = (digitalRead(in_3p)&HIGH); delayMicroseconds(100); // 100 mikrosekunda kašnjenja yes=(state1 & !digitalRead(in_3p)); if (i> 4 ) prekid; //pokušaj četiri puta) if (da) wDir=1; inače wDir=0; da = lažno; i=0; while(!yes)( //cifra 2 i++; boolean state1 = (digitalRead(in_2p)&HIGH); delayMicroseconds(100); // 100 mikrosekunda kašnjenja yes=(state1 & !digitalRead(in_2p)); if (i> 4 ) prekid; //pokušaj četiri puta) if (da) wDir=1; inače wDir=0; da = lažno; i=0; while(!yes)( //bit 1 i++; boolean state1 = (digitalRead(in_1p)&HIGH); delayMicroseconds(100); // odgoda od 100 mikrosekundi yes=(state1 & !digitalRead(in_1p)); if (i> 4 ) prekid; //pokušaj četiri puta) if (da) wDir=1; inače wDir=0; da = lažno; i=0; while(!yes)( //bit 0 i++; boolean state1 = (digitalRead(in_0p)&HIGH); delayMicroseconds(100); // odgoda od 100 mikrosekundi yes=(state1 & !digitalRead(in_0p)); if (i> 4 ) prekid; //pokušaj četiri puta) if (da) wDir=1; inače wDir=0; noTone (IR_Pin); //isključi frekvenciju //sakupi je u bajt u Grey kodu: wind_Gray=wDir+wDir*2+wDir*4+wDir*8; // izravni prijevod u binarni. kod int wind_G=siva_vjetra*10+1000; //dodaj do 4 des. pražnjenja. . . . .
Maksimalno trajanje jednog postupka bit će u nedostatku frekvencije na prijemniku i jednako je 4 × 100 = 400 mikrosekundi. Maksimalno vrijeme gorenja LED dioda u 4 smjera bit će kada nijedan prijemnik nije osvijetljen, odnosno 4 × 400 = 1,6 milisekundi. Algoritam će, inače, raditi na isti način ako, umjesto frekvencije čiji je period višekratnik 100 μs, jednostavno primijenite konstantnu visoku razinu na LED diode. U prisutnosti meandra umjesto stalne razine, hranu jednostavno štedimo na pola. Možemo uštedjeti još više ako svaku IR LED vodimo kroz zasebnu liniju (odnosno, kroz zasebni izlaz kontrolera s vlastitim ključnim tranzistorom), ali to komplicira sklop, ožičenje i upravljanje, te struju od 130 mA za 2 ms svaki 16 sekundi - ovo je, vidite, malo.

Konačno, bežični prijenos podataka. Odabrana je najjednostavnija, najjeftinija i najpouzdanija metoda za prijenos podataka s mjesta senzora na prikaz meteorološke stanice: par odašiljač/prijemnik na frekvenciji od 433 MHz. Slažem se da metoda nije najprikladnija (zbog činjenice da su uređaji dizajnirani za prijenos nizova bitova, a ne cijelih bajtova, morate biti izvrsni u pretvaranju podataka između potrebnih formata), a siguran sam da će mnogi poželjeti raspravljati sa mnom u smislu njegove pouzdanosti. Odgovor na zadnji prigovor je jednostavan: "ne znate ih kuhati!".

Tajna je u tome što obično ostaje iza kulisa raznih opisa razmjene podataka preko kanala od 433 MHz: budući da su ovi uređaji isključivo analogni, napajanje prijamnika mora biti vrlo dobro očišćeno od bilo kakvog stranog mreškanja. Ni pod kojim okolnostima prijemnik ne smije biti napajan iz Arduino internog 5V regulatora! Instaliranje zasebnog regulatora prijemnika male snage (LM2931, LM2950 ili slično) tik uz njegove izlaze, s odgovarajućim ulaznim i izlaznim filterskim krugovima, dramatično povećava domet prijenosa i pouzdanost.

U ovom slučaju, odašiljač je radio izravno od napona baterije od 12 V, prijemnik i odašiljač su bili opremljeni standardnim antenama domaće izrade u obliku komada žice dužine 17 cm. (Podsjetim da je samo jednožilna žica je prikladna za antene, a antene je potrebno postaviti u prostoru paralelno jedna s drugom.) Paket informacija dužine 24 bajta (uzimajući u obzir vlažnost i temperaturu) bez ikakvih problema se pouzdano prenosi brzinom od 1200 bps dijagonalno kroz okućnicu od 15 hektara (oko 40-50 metara), a zatim kroz tri zida od balvana u sobu (u kojoj se, na primjer, mobilni signal prima s velikim poteškoćama i ne svugdje). Uvjeti koji su praktički nedostižni za bilo koju standardnu ​​metodu od 2,4 GHz (kao što su Bluetooth, Zig-Bee pa čak i amaterski Wi-Fi), unatoč činjenici da je potrošnja odašiljača ovdje mizernih 8 mA i to samo u trenutku stvarnog prijenosa, ostalo vrijeme odašiljač troši prave novčiće. Odašiljač je strukturno smješten unutar daljinske jedinice, antena strši vodoravno sa strane.

Kombiniramo sve podatke u jedan paket (u stvarnoj stanici će mu se dodati temperatura i vlaga), koji se sastoji od jednoličnih 4-bajtnih dijelova i kojima prethodi potpis “DAT”, šaljemo ga odašiljaču i završavamo sve cikluse:

/*=====Odašiljač=====*/ String strMsg="DAT"; //potpis - podaci strMsg+=volt; //pričvrstite 4-znamenkastu bateriju strMsg+=wind_G; //prikači vjetar 4 bita strMsg+=fi; //priloži frekvenciju 4 bita strMsg.toCharArray(msg,16); //prevođenje niza u niz // Serial.println(msg); //za kontrolu vw_send((uint8_t *)msg, strlen(msg)); // poslati poruku vw_wait_tx(); // pričekajte da se prijenos završi - obavezno! kašnjenje (50); //+ za svaki slučaj, kašnjenje count=0; //resetiraj brojač )//end count==3 else count++; digitalWrite(ledPin, LOW); //isključujemo signalni LED system_sleep(); //sustav - za spavanje) //kraj petlje
Veličina paketa može se smanjiti ako se napusti zahtjev za predstavljanjem svake od različitih vrsta vrijednosti u obliku jednoličnog 4-bajtnog koda (na primjer, za Grayjev kod, naravno, dovoljan je jedan bajt). No, radi univerzalizacije, ostavio sam sve kako jest.

Napajanje i značajke dizajna daljinske jedinice. Potrošnja udaljene jedinice izračunava se na sljedeći način:

20 mA (emiter) + ~20 mA (kontroler s pomoćnim krugovima) za otprilike 0,25 s svake četiri sekunde - 40/16 = 2,5 mA prosjek;
- 130 mA (radijatori) + ~20 mA (regulator s pomoćnim krugovima) za oko 2 ms svakih 16 sekundi - 150/16/50 ≈ 0,2 mA u prosjeku;

Bacajući na ovaj izračun potrošnju regulatora pri očitavanju podataka sa senzora temperature-vlažnosti i tijekom rada odašiljača, hrabro dovodimo prosječnu potrošnju na 4 mA (s vršnom od oko 150 mA, imajte na umu!). Baterije (kojih će, inače, trebati čak 8 komada za napajanje odašiljača maksimalnim naponom!) morat će se prečesto mijenjati, pa se pojavila ideja da se daljinski uređaj napaja iz 12-voltnih baterija za odvijač - Imao sam samo dva viška. Kapacitet im je čak i manji od odgovarajućeg broja AA baterija - samo 1,3 A sata, no nitko se ni u jednom trenutku ne trudi mijenjati, držeći drugu napunjenu spremnom. Uz naznačenu potrošnju od 4 mA, kapacitet od 1300 mA sati dovoljan je za oko dva tjedna, što nije previše problematično.

Imajte na umu da napon svježe napunjene baterije može biti do 14 volti. U ovom slučaju ugrađen je ulazni stabilizator od 12 volti - kako bi se spriječili prenaponi u napajanju odašiljača i da se ne preoptereti glavni pet-voltni stabilizator.

Daljinska jedinica u prikladnom plastičnom kućištu nalazi se ispod krova, na nju se na priključcima spaja kabel za napajanje iz baterije i priključci na senzore vjetra. Glavna poteškoća je u tome što se krug pokazao iznimno osjetljivim na vlažnost zraka: po kišnom vremenu, nakon nekoliko sati, odašiljač počinje otkazivati, mjerenja frekvencije pokazuju potpuni nered, a mjerenja napona baterije pokazuju "vrijeme na Marsu" .

Stoga, nakon otklanjanja pogrešaka algoritama i provjere svih veza, kućište mora biti pažljivo zapečaćeno. Svi konektori na ulazu u kućište su premazani brtvilom, isto vrijedi i za sve glave vijaka koje vire, izlaz antene i strujni kabel. Zglobovi tijela premazani su plastelinom (uzimajući u obzir da će se morati razdvojiti), a na vrhu su dodatno zalijepljeni trakama od vodovodne trake. Dobro je dodatno pažljivo ojačati korištene konektore iznutra epoksidom: na primjer, daljinski modul DB-15 naveden na dijagramu nije sam po sebi hermetički zatvoren, a vlažan zrak polako će prodrijeti između metalnog okvira i plastične baze.

No, sve ove mjere same po sebi dat će samo kratkotrajan učinak – čak i ako nema usisavanja hladnog, vlažnog zraka, tada se suhi zrak iz prostorije lako pretvara u vlažan kada temperatura izvan kućišta padne (sjetite se fenomena tzv. "temperatura kondenzacije").

Da bi se to izbjeglo potrebno je unutar kućišta ostaviti uložak ili vrećicu sa sredstvom za sušenje - silika gelom (vrećice s njim ponekad se stavljaju u kutije s cipelama ili u neka pakiranja s elektroničkim uređajima). Ako je silika gel nepoznatog podrijetla i dugo se čuvao, prije upotrebe mora se nekoliko sati kalcinirati u električnoj pećnici na 140-150 stupnjeva. Ako je kućište ispravno zapečaćeno, sredstvo za sušenje će se morati mijenjati ne češće nego na početku svake ljetne sezone.

Glavni modul

U glavnom modulu sve se vrijednosti primaju, dekodiraju, ako je potrebno, pretvaraju u skladu s jednadžbama kalibracije i prikazuju.

Prijemnik se vadi iz tijela glavnog modula stanice i stavlja u malu kutiju s ušima za pričvršćivanje. Antena se izvodi kroz rupu na poklopcu, sve rupe u kućištu su zapečaćene sirovom gumom. Kontakti prijemnika su usmjereni na vrlo pouzdan domaći RS-4 konektor, sa strane prijemnika spojen je preko segmenta dvostruko oklopljenog AV kabela:

Signal se uzima iz jedne od jezgri kabela, a napajanje se napaja iz druge u obliku "sirovih" 9 volti iz adaptera za napajanje modula. Stabilizator tipa LM-2950-5.0, zajedno s filtarskim kondenzatorima, ugrađen je u kutiju zajedno s prijemnikom na zasebnoj ploči.

Provedeni su eksperimenti kako bi se povećala duljina kabela (za svaki slučaj - što ako ne bi prošao kroz zid?), U kojima se pokazalo da se ništa ne mijenja unutar duljine do 6 metara.

Postoje samo četiri OLED zaslona: dva žuta služe vremenskim podacima, dva zelena sata i kalendar. Njihov položaj prikazan je na fotografiji:

Napominjemo da je u svakoj skupini jedan od prikaza tekstualni, drugi grafički, s umjetno stvorenim fontovima u obliku slika glifova. Ovdje se nećemo zadržavati na pitanju prikazivanja informacija na displejima u budućnosti, kako ne bismo naduvali ionako opsežan tekst članka i primjera: zbog prisutnosti glifnih slika koje se moraju prikazati pojedinačno (često jednostavnim navođenjem opcije pomoću iskaza case), izlazni programi mogu biti vrlo glomazni. Za informacije o tome kako rukovati ovim zaslonima, pogledajte autorov post "Grafički i tekstualni način Winstar zaslona", koji uključuje primjer zaslona za izlaz podataka o vjetru.

Shematski dijagram. Radi lakšeg postavljanja, sat i njegove zaslone opslužuje zasebni Arduino Mini kontroler i ovdje ih nećemo dalje analizirati. Shema za povezivanje komponenti na Arduino Nano, koja kontrolira prijem i izlaz vremenskih podataka, je sljedeća:

Ovdje je, za razliku od daljinskog modula, prikazan spoj vremenskih senzora - barometar i unutarnji senzor temperature i vlage. Obratite pažnju na ožičenje napajanja - zasloni se napajaju zasebnim stabilizatorom od 5 V tipa LM1085. Također je prirodno napajati prikaze sata iz njega, međutim, u ovom slučaju, kontroler sata također se mora napajati iz istog napona, i to preko izlaza od 5 V, a ne Vin (za Mini Pro, potonji se zove RAW). Ako napajate kontroler sata na isti način kao i Nano - s 9 volti kroz RAW izlaz, tada će se njegov unutarnji regulator sukobiti s vanjskim 5 volti, a u ovoj će borbi, naravno, pobijediti najjači, odnosno LM1085, a Mini će ostati potpuno bez struje. Također, kako bi se izbjegle svakakve nevolje, prije programiranja Nano-a, a posebno Mini-a (odnosno prije spajanja USB kabela), potrebno je odspojiti vanjski adapter.

Na stabilizatoru LM1085, kada su sva četiri zaslona spojena, oslobodit će se oko jedan vat snage, pa ga treba ugraditi na mali radijator od oko 5-10 cm2 iz aluminijskog ili bakrenog kuta.

Primanje i obrada podataka. Ovdje reproduciram i komentiram samo fragmente programa koji se odnose na podatke o vjetru, o ostalim senzorima nekoliko riječi kasnije.

Za primanje poruke na kanalu od 433 MHz koristimo se standardnom metodom opisanom u mnogim izvorima. Povezujemo biblioteku i deklariramo varijable:

#uključiti . . . . . intvolt; //napon baterije u uvjetnom cijelom kodu float batt; //stvarna vrijednost - bajt napona baterije wDir; //smjer u sivom kodu uint16_t t_time = 0; //vremenski interval prijema char str; //string za podatke uint8_t buf; //varijabla za primljenu poruku uint8_t buflen = VW_MAX_MESSAGE_LEN; // maksimalna duljina primljene poruke. . . . .
Postoji jedna posebnost s veličinom međuspremnika: nije dovoljno deklarirati njegovu vrijednost (VW_MAX_MESSAGE_LEN) jednom na početku programa. Budući da se ova varijabla pojavljuje kao referenca u funkciji primanja (vidi dolje), zadana veličina poruke mora se ažurirati svaki ciklus. Inače, zbog primanja oštećenih poruka, vrijednost buflena će se svaki put skraćivati, sve dok umjesto podataka ne počnete dobivati ​​gluposti. U primjerima su obje ove varijable obično deklarirane lokalno u petlji loop() pa se veličina međuspremnika automatski ažurira, ali ovdje ćemo jednostavno ponoviti dodjelu željene vrijednosti na početku svake petlje.

U postupku postavljanja vršimo sljedeće postavke:

Void setup() ( kašnjenje (500); //za isključivanje prikazuje pinMode(16,INPUT_PULLUP); //pin za gumb vw_setup(1200); //VirtuWire brzina veze vw_set_rx_pin(17); //pin prijamnika A3 VirtualWire. ...
Prije prihvaćanja nečega, provjerava se vremenski interval t_time koji je prošao od posljednjeg prijema. Ako je premašio razumne granice (na primjer, 48 sekundi - tri puta više od vremena ponavljanja poruka s vanjske jedinice), tada se to doživljava kao gubitak senzora i nekako se prikazuje na zaslonu:

Void loop() ( vw_rx_start(); // Spreman za primanje buflen = VW_MAX_MESSAGE_LEN; // veličina međuspremnika svaki put iznova ako ((int(millis()) - t_time) > 48000) // ako t_time nije ažurirano za više od 48 sekundi (<отображаем прочерк на дисплее>)//krajnji senzor nije pronađen if (vw_have_message()) ( //čekaj na prijem if (vw_get_message(buf, &buflen)) // Ako su podaci primljeni ( vw_rx_stop(); //prestani primati na neko vrijeme t_time = millis( ); / /ažuriranje t_time za (bajt 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> . . . . .
Koeficijent 55,5 - pretvaranje vrijednosti ADC koda u stvarni napon, njegova vrijednost ovisi o referentnom naponu i vrijednostima djeliteljskih otpornika.

Usput, Gray kod ima jednu značajku: redoslijed bitova je u njemu nevažan, kod zadržava sva svoja svojstva za bilo koju permutaciju. A budući da, prilikom dekodiranja, ovdje još uvijek razmatramo svaki slučaj zasebno, bitovi se mogu razmatrati bilo kojim redoslijedom, pa čak i zbuniti kada su povezani. Druga je stvar da li su htjeli nekako pojednostaviti ovu stvar - na primjer, stvoriti niz vrijednosti smjera (“s”, “ssz”, “sz”, “zsz”, “z” itd.), a umjesto toga pojedinačnog razmatranja svaka varijanta izdvaja oznake brojem u ovom nizu. Tada bi se Grayjev kod morao pretvoriti u uređenu binarnost, a redoslijed bitova bi igrao značajnu ulogu.

I konačno, izdvajamo vrijednost brzine i zatvaramo sve naredbe:

Za(bajt 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(); . . . . .
Ovdje je 10+0,5*wFrq jednadžba kalibracije. 10 dm/s (tj. 1,0 metara u sekundi) je početni prag, a 0,5 je faktor pretvorbe frekvencije u brzinu (u dm/s). Uz nultu vrijednost ulazne frekvencije, ova jednadžba daje 10 dm / s, stoga treba obratiti posebnu pozornost na prikaz ne 1 m / s, već nulte vrijednosti. Senzor brzine možete kalibrirati pomoću bilo kojeg od najjeftinijih ručnih anemometara i stolnog ventilatora. Nemojte pokušavati eksperimentalno odrediti početni prag - bit će mnogo točnije ako označite dvije ili tri točke kalibracijske ravne linije brzine V iz frekvencije F: V = Vp + K × F pri različitim brzinama strujanja, zatim početni prag će se automatski odrediti kao vrijednost Vp (ordinata točke presjeka ove linije s osi brzine).

Još jedna stvar koju treba učiniti prije zatvaranja glavne petlje. Imamo napon baterije, ali ne morate ga stalno prikazivati ​​- samo zauzmite prostor. Za to je potreban gumb Kn1 - klikom na njega privremeno (do sljedećeg ažuriranja podataka) zamjenjujemo vanjski temperaturno-vlažni vod vrijednošću napona:

If (digitalRead(16)==LOW)( //gumb pritisnut<выводим напряжение на дисплей, затирая значение температуры-влажности>)//odgoda gumba za kraj (500); ) // završna petlja
Imao sam tipku, kao što se vidi iz dijagrama, s kontaktom za promjenu, ali ništa me ne sprječava da instaliram obični sa zatvaračem, spajajući ga na napajanje preko otpornika. Ovome možete dodati i treptanje simbola na zaslonu u slučaju da napon baterije padne ispod, na primjer, 10 volti, kao znak da je vrijeme da ga promijenite.

Zaključno, o vremenskim senzorima. SHT-75 je korišten kao vanjski senzor - jedini amaterski senzor koji sam pronašao da ne zahtijeva kalibraciju i pokazuje stvarne vrijednosti temperature i vlažnosti odmah iz kutije (otuda i njegova visoka cijena).

Može se pronaći knjižnica za povezivanje.

SHT-75 je dizajniran na prilično glup način: metalna podloga ploče vrlo dobro provodi toplinu, pa se mora potpuno izvaditi iz kućišta. Inače, prisutnost samo jednog ATmega328 kontrolera s regulatorom napajanja u zatvorenom kućištu dovoljna je za zagrijavanje senzora za nekoliko stupnjeva kroz podlogu ploče čak i ako je njegova glava pomaknuta van. Moj sklop sa senzorima vjetra, sa svojim strujama od 20-130 mA (čak i ako je struja zanemarivih milisekundi) zagrijao je SHT-75 stupnjeva za pet stupnjeva, pa je izvađen i postavljen zasebno na plastičnu ploču koja viri iz kućišta sa strane .

Podatke sa SHT-75 preuzima isti kontroler kao i podatke iz senzora vjetra i šalje ih s udaljenog modula u jednom paketu putem bežičnog kanala od 433 MHz. Također se pretvaraju u niz od 4 bajta za pretprijenos.

Za mjerenje temperature i vlage u prostoriji odabran je banalni DHT-22 - budući da je raspon tamo mali u odnosu na ulicu, nije bitno koji senzor koristiti (osim, naravno, DHT-11, koji ne bi trebao se uopće može koristiti pod bilo kojim okolnostima, u svrhu za koju je namijenjena, jednostavno je neupotrebljiva). Temperatura DHT-22 korigirana je prema mjerenjima živinim termometrom (u potpunosti su se poklopili sa SHT-75!), a vlažnost je malo prilagođena u usporedbi sa SHT-75. Ispravci se unose neposredno prije indikacije na zaslonu.

Usput, DHT-22 također treba oduzeti iz kućišta s zaslonima - inače će se neizbježno zagrijati i lagati. Fiksiram ga na plastični nosač na dnu kućišta, na udaljenosti od deset milimetara od njega. Ova je okolnost, inače, kako sumnjam, jedan od razloga (osim nepostojanja individualne kalibracije) da sve kućne meteorološke stanice s markom RST i Oregon besramno lažu u svojim očitanjima, imaju širenje čak i sami (interni senzor s vanjskim) od dva ili tri stupnja i do deset posto vlage.

Barometar ne predstavlja nikakav problem, jer su gotovo svi komercijalno dostupni napravljeni na istoj osnovi - mikroelektromehaničkom (MEMS) čipu BMP180 ili njegovim modifikacijama. Moje osobno iskustvo s manje uobičajenom varijantom baziranom na LPS331AP bilo je negativno: knjižnicu za nju je teže pronaći, a povrh svega, pronađen je sukob s drugim uređajima na I2C sabirnici. Barometar će se možda morati prilagoditi na mjestu ugradnje - svakih 10-12 metara visine iznad razine mora smanjuje se tlak za 1 mm Hg. Umjetnost. Stoga će se određena vrijednost morati oduzeti od očitanja (ili dodati) kako bi vrijednost tlaka odgovarala očitanjima službene meteorološke stanice u tom području.

Ne dajem sve programe meteorološke stanice u cijelosti - prilično su glomazni i još uvijek nećete moći ponoviti dizajn jedan na jedan. Ako ništa, kucaj na PM.

UPD od 30.06.17. Instalirana solarna energija. Komplet odavde:
solarni panel
kontrolor
baterija
Sve zajedno + dostava u Moskvi u roku od 2,5 tyr. Radi besprijekorno.
Zanimljiva metoda za izračun snage solarne baterije i baterije koju nude konzultanti s ove stranice. Primjer izračuna za 3 W potrošnje energije (imam puno manje), citiram:
“3W puta 24h i podijeljeno sa 6 = 12Ah je minimalni kapacitet baterije
3W pomnoženo s 24h i podijeljeno s 3h = 24W je minimalna snaga solarne baterije.
Bez komentara.
U mom slučaju, rezultirajući kapacitet solarne elektrane je deset puta veći od potrebnog u najgorim vremenskim uvjetima. Stoga se u senzorskom kontroleru ne možete previše brinuti o uštedi energije i primijeniti sve potrebne frekvencije čitanja i usrednjavanja.

UPD od 13.09.18. Za gotovo dvije sezone rada otkrivene su prednosti i mane stanice. Slabi su, prije svega, to što je ciklus ažuriranja očitanja od 16 sekundi (od četiri serije mjerenja), kako je prvobitno bio, predug. Ugradnja solarne baterije s međuspremnom baterijom omogućila je da se ne razmišlja o uštedi energije i igra se s vremenom ciklusa. Kao rezultat toga, ciklus je postavljen na 8 sekundi (četiri mjerenja u dvije sekunde).
Od mehaničkih poboljšanja, ispod vrha senzora brzine uveden je čvrsti potisni ležaj (da, tada sam bio upozoren na njegovu potrebu, ali tada nisam shvatio kako to napraviti). Nakon nekog vremena, os senzora je potpuno prorezala fluoroplastični nosač i početni prag se naglo povećao (usput, to uopće nije utjecalo na osjetljivost vremenske lopatice). Stoga je oslonac zamijenjen potisnim ležajem od nehrđajućeg čelika, u kojem je tankom bušilicom napravljeno malo udubljenje. Predosjećam da ću kasnije morati smisliti nešto drugo s vrhom, koji je, kao i cijela osovina, napravljen od duralumina. Ali odgodio sam to do trenutka kada bi senzor ipak morao biti prerađen: laserski disk, uzet kao osnova za dizajn, postao je mutan od sunca u dvije sezone i počeo pucati.

UPD od 05.06.19.
O izmjeni senzora (vremenska lopatica ostala ista). Senzor brzine morao se prepravljati i zbog dotrajale osovine i zbog laserskog diska koji je postao neupotrebljiv. Osnovni dizajn ostaje isti, ali je novi laserski disk obojen zlatnom bojom. Rješenje za vrh osi pronađeno je u sljedećem obliku. U duralnoj osi, udubljenje je izbušeno točno u sredini, a tamo je na drugom ljepilu umetnut rez od 3 mm vrha kineske slavine. Vrh slavine je dobro centriran konus pod kutom od oko 70-80 stupnjeva, dodatno je poliran nultim brusnim papirom, a zatim GOI pastom. Kao osnovu koristio sam glavu nehrđajućeg M3 vijka s piljenim utorom, u kojem je običnom bušilicom D = 2 mm u sredini označeno malo udubljenje. Ovaj vijak je uvrnut izravno u udubljenje u PTFE-u, prerezan preko osovine prije nego što je osigurano centriranje.
Vrh osovine je bio podmazan grafitnom mašću radi zaštite od korozije (pošto su mi nehrđajuća svojstva slavine nepoznata). Nakon nekog mljevenja, početni prag se toliko smanjio da ga je postalo nemoguće izmjeriti vlastitim anemometrom, u kojem je prag oko 0,3-0,5 cm / s. Prema neizravnim podacima (konstruiranjem ravne crte iz dvije točke) volonterski je prihvaćen prag od 0,3 m/s, iako je vjerojatno nešto manji.

Glavna promjena u algoritmima proračuna odnosi se i na senzore vjetra, a smatrao sam korisnim to staviti u .


Vjetrovi se kreću od laganog povjetarca do iznenadnih, naglih oluja koje donose uništenje i smrt. Najjači vjetrovi su uragani. Ovi vjetrovi orkanske snage nastaju nad oceanima u tropima kada se ogromne mase zraka usišu u područja niskog tlaka. Olujni oblaci često kruže oko središta (ili oko) uragana brzinom većom od željezničkog vlaka.

Možda nikada niste doživjeli orkanske vjetrove, ali gdje god da živite, vjerojatno ste doživjeli i mirne i vjetrovite dane. Napravite anemometar, najjednostavniji instrument za mjerenje brzine vjetra, i zabilježite jačinu vjetra u vašem području po vjetrovitom danu.

Trebat će vam:

Debela drvena igla
tanke drvene šipke
uže i odvojak
šalica jogurta
ljepljiva traka (vodootporna)
kopče
karton u boji
bakrena cijev
ljepilo
škare

1. Uzmite debelu drvenu iglu i čvrsto je umetnite u bakrenu cijev. Ovo će biti stalak za anemometar.

2. Zamolite odraslu osobu da vam pomogne izbušiti rupu kroz stalak. Promjer rupe trebao bi odgovarati debljini jedne od tankih šipki. Na jednom kraju ove tanke šipke napravite prorez. Umetnite ga u stalak i pričvrstite kao što je prikazano na slici.

3. Izrežite vrh strijele i fleš od kartona i pričvrstite ga na krajeve tanke šipke.

4. Izrežite četvrtinu kruga od kartona u boji i pričvrstite ga na strelicu ljepljivom trakom.

5. Uzmite veliku čašu jogurta. Zalijepite ga na jedan kraj druge tanke drvene šipke.

6. Neka vam odrasla osoba pomogne izbušiti malu rupu na drugom kraju druge šipke, a zatim je pričvrstiti ili zabiti na vrh stupa. Provjerite može li se šipka slobodno okretati.

7. Odaberite prikladno mjesto za promatranje na otvorenom. Zabijte bakrenu cijev u zemlju, a zatim u nju umetnite stup. Pričvrstite stalak u željeni položaj pomoću držača. Ugradite stalak strogo okomito, objesite odvojak na strelicu (možete koristiti maticu kao odvojak). Visak treba visjeti strogo paralelno s stalkom.

Vjetar okreće iglu anemometra tako da pokazuje u smjeru iz kojeg vjetar puše.
Čašica jogurta i stabljika će se uz njega podići. Što je vjetar jači, šipka se više diže.

Beaufortova ljestvica

Ovo je ljestvica za mjerenje brzine vjetra, koja se temelji na promatranju prirode. Vage je izumio engleski admiral Sir Francis Beaufort prije gotovo 200 godina.

Brzina vjetra na vremenskim kartama označena je brojem crtica na ikoni snage vjetra.

Brzina vjetra Verbalna karakteristika Znakovi procjene brzine vjetra
m/s km/h postići
Beaufort
0,0-1,5 0,0-1,8 0 Smiriti Dim se diže okomito ili gotovo okomito, lišće je nepomično
0,6-1,7 1,9-5,1 1 Tihi vjetar Smjer vjetra određuje dim
1,8-3,3 5,2-11,7 2 Lagani povjetarac Kretanje vjetra osjeća se licem, lišće šušti
3,4-5,2 11,8-18,7 3 slab vjetar Neprestano se njiše lišće i tanke grane drveća, vjetar vije svjetlosne zastave, more je prekriveno neprekidnim svjetlosnim valom.
5,3-7,4 18,8-26,6 4 umjeren vjetar Vjetar diže prašinu, pokreće tanke grane drveća, na odvojenim valovima povremeno se pojavljuju bijela, brzo nestajuća "janjad"
7,5-9,8 26,7-35,3 5 Svježi vjetrić Ljuljaju se debele grane drveća; "janjci" su vidljivi na svakom valu
9,9-12,4 35,4-44,0 6 Jak vjetar Ljuljaju se debele grane drveća, zuje telegrafske žice, "janjci" na valovima su duži (5-10 sec.)
12,5-15,2 44,1-54,7 7 jak vjetar Vrhovi drveća se njišu, velike grane se savijaju, nezgodno je ići protiv vjetra. Zapjenjeni valovi na moru
15,3-18,2 54,8-66,0 8 Vrlo jak vjetar Vjetar lomi tanke grane i suhe grane drveća, što otežava kretanje
18,3-21,5 66,1-77,5 9 Oluja Vjetar ruši dimnjake i crijep. Vrlo je teško ići protiv vjetra.
21,6-25,1 77,6-90,2 10 Jaka oluja Značajna razaranja, drveće počupano
25,2-29,0 90,3-104,4 11 Nasilna oluja Velika razaranja: rušenje telegrafskih stupova, vagona
Preko 29.0 Preko 104.4 12 uragan Uništava kuće, uzrokuje velika razaranja

Moj novi anemometar. Pokazalo se da anemometar nije mali, generator je disk, promjer vijka je 0,5 m. Anemometar je vodoravnog tipa s propelerom sa šest lopatica. Članak sadrži detaljan opis s fotografijama i videozapisima

Novi članak na temu + fotografija i video - Anemometar android + mikrofon

Konačno je došlo do anemometra. Nakon što sam već napravio tri vjetroturbine, još uvijek ne znam točno koji vjetar i koliko daju moje vjetrenjače. Sada je u pogonu samo jedan vjetrogenerator, moj najuspješniji, iako je sav sastavljen “na koljena”. Otprilike zamišljam snagu vjetra i mogu razlikovati vjetar od 5 m/s i 10 m/s, ali ipak želim točnije znati brzinu vjetra kako bih odredio snagu vjetrogeneratora.

Nekoliko dana s vremena na vrijeme razmišljao sam da od nečeg napravim anemometar, ali do sada ništa pametno nije izronilo od smeća koje je dostupno kod kuće. Našao sam dva mala motora iz DVD playera, ali su bolno sićušni i teško je smisliti oštrice za tanku osovinu.

Za oko mi je zapeo ventilator za auto, inače se ugrađuju u kamione. To je onaj kojeg sam mučila. Rastavljen i uklonjen motor. Polomio sam lopatice od propelera i ostala je samo baza - središnji dio, koji se stavlja na osovinu. Onda sam razmišljao koje oštrice da pričvrstim na njega, isprobao sam dno plastičnih boca i limenki, ali mi se sve ovo nije svidjelo.

Zatim sam pronašao komad PVC cijevi promjera 5 cm i dužine 50 cm Od njega sam napravio 4 oštrice, samo sam prerezao cijev po dužini na dvije polovice, a polovice, svaka na dva dijela, ispalo je 4 oštrice. U bazi, koja je ostala od matičnog vijka, izbušio sam 4 rupe za pričvršćivanje oštrica, a također sam napravio 4 rupe na oštricama. Cijelu stvar je zavrnuo u vijke i dobio propeler s četiri lopatice - savonius (prva "ozbiljna" vertikala).

Pa, onda sam pronašao žice potrebne duljine, spojio 5 metara antenskog kabela i 8 metara uobičajenog. Odmah sam spojio žice kako bih izmjerio parametre uzimajući u obzir duljinu žice, budući da se podaci mogu razlikovati ako se mjere mjere na metarskoj žici ili na 13 m.

Zatim sam pronašao komad metalne cijevi duge oko 80-90 cm, savio ga slovom Z i namotao motor. Ova cijev će pričvrstiti anemometar na jarbol. Nema ništa komplicirano, možete koristiti bilo koji materijal pri ruci.

Pa, onda, kad sam potpuno sastavio anemometar, ugradio sam ga na svoj motocikl kako bih ga kalibrirao. Ispod na fotografiji možete vidjeti kako je to napravljeno, sve je primitivno i jednostavno. Na ogledalu primata s električnom trakom, mjerač sapuna, općenito, nekako je sve popravio kako bih oslobodio ruke za upravljanje motociklom.

Ovaj jesenski dan vrlo je uspješan zbog gotovo potpunog izostanka vjetra, koji je inače poslužio kao brza montaža anemometra, takav dan ne bi trebao nestati. Nisam htio izaći na asfalt, jer bih neshvatljivom spravom ispred motocikla privukao pažnju na sebe, pa sam odlučio voziti se kroz polja uz šumske nasade.

Vozio sam se naprijed-natrag iu različitim smjerovima i bilježio očitanja multimetra na telefonu različitim brzinama. Anemometar je počeo brzinom od 7 km/h, a ja sam se postupno kotrljao naprijed-natrag različitim brzinama počevši od 10 km/h do maksimalnih 40 km/h, bilo je moguće i više, ali zemljani putevi su vrlo neravni i možete ne ubrzaj puno.

>

Nakon pokatushek takvi podaci su izvučeni. Multimetar je pokazao 10km/s =0,06V, 20km/h=0,12V, 30km/h=0,20V, 40km/h=0,30V.

Zatim sam pomoću kalkulatora izračunao očitanja za srednje brzine vjetra.

Volti - brzina vjetra m / s.

Podaci iznad 11 m/s izračunati su crtanjem na komad papira grafikona rasta napona ovisno o brzini vjetra, koji se glatko nastavljao do 15 m/s. Istog dana, odnosno navečer, ugradio sam anemometar na jarbol do vjetrogeneratora. Spustio je vjetrenjaču i zavezao anemometar ispod. Privremeno sam navukao cijev na žicu i dodatno omotao selotejpom, pokazalo se jakom. E, onda sam sve podigao na mjesto i sad je na jarbolu pored vjetrogeneratora anemometar koji kreće od 3 m/s i redovito pokazuje brzinu vjetra.

>

>

Ispod na fotografiji je već podignuta vjetroturbina s fiksnim anemometrom. Nisam detaljnije slikao, jer tu nema ništa komplicirano i nema se što ponoviti. Anemometar se može sastaviti od bilo čega, od gotovo bilo kojeg motora. Naravno, prikladnije je kalibrirati automobilom. Tamo je i udobno, i praktičnije, a brzinomjer je točniji. Ali odlučio sam se za motocikl, i činilo se da je dobro ispalo, nadam se ako brzinomjer laže, onda ne puno.

>

To je za sada sve, ovo je prva verzija ovog anemometra, a mislim da ne i posljednja. U međuvremenu ću pričekati vjetar i saznati što daje moj vjetrogenerator. Pa, dopunit ću ovaj članak ovim podacima. Možda treba nešto prepraviti...

Dodatak

Puhao je vjetar i testirao sam anemometar. Prva opažanja jačine vjetra i očitanja generatorskog ampermetra jasno su pokazala koliko je vjetar nestabilan. Ovdje dolje, budući da jarbol nije visok, sastoji se uglavnom od kratkih udara, čije trajanje ne prelazi dvije-tri sekunde, a za nekoliko sekundi vjetar može jako varirati.

Neopterećeni vijak anemometra oštro reagira na svaki nalet i promjenu brzine vjetra. A napunjeni vijak ovog vjetrogeneratora još uvijek kasni s reakcijama, a zbog toga i nesinkroni podaci u očitanjima. Danas je vjetar 3-7 m/s, anemometar je stvarno uhvatio par naleta do 10 m/s, ali su trajali manje od sekunde i vjetrogenerator jednostavno nije mogao odgovoriti na njih.

Nakon nekog vremena promatranja nacrtane su neke prosječne vrijednosti jačine struje iz vjetrogeneratora na određenom vjetru. Vijak počinje od 3,5-4 m / s, punjenje 0,5A pri 4m/s, 1A pri 5m/s, 2,5A pri 6m/s, 4A pri 7m/s, 5A pri 8m/s. Ovi podaci su prosječni, budući da je ampermetar analogni stot, i mogu pogriješiti do 0,5A u trenutnim očitanjima vjetrogeneratora.

Trebalo je biti ovako nešto

Koraci izrade samog senzora:

Slučaj je napravio ovo: uzeo sam komad četvrtaste cijevi i u njemu izrezao prozorčić kako bih kasnije mogao kroz njega montirati punjenje (usput, izrezao sam prozorčić s temperaturom, ali stvarno sam to htio napraviti da sam ustao i otišao pilati). Zatim sam unutra zavario ploču (unutarnji držač ležaja), zatim zavario dno (donji držač ležaja). Kada sam odlučio napraviti gornji dio, odlučio sam napraviti kosi krov - za to sam izrezao četiri trokuta i pažljivo ga uhvatio, a zatim ga potpuno prokuhao i tako napravio šiljasti vizir. Zatim ga je stegnuo u škripcu i svrdlom 0,5 mm manjim od promjera ležaja izbušio okomitu rupu u donjem poklopcu i u srednjim, oba za ležajeve. Tako da su ležajevi od čelika s rastezanjem podešeni zamahom. Ležajevi odgovaraju kako treba. Zatim je u njih umetnuo blago ulašteni čavao od 100-ku, dok je na sredini prozora stavio plastičnu podlošku s 4 utora. Prerezao sam konac na dnu čavala i na njega pričvrstio impeler.

Napravio sam impeler na slijedeći način: na maticu sam zavario tri čavala s elektrodom s dvojkom, zatim ih odrezao i prerezao navoje na čijim krajevima sam zašrafio polovice od kuglice.

Na tijelo je zavaren šesterokutni držač šipke od nehrđajućeg čelika. Samo kućište je dva puta lakirano bijelom emajlom, kako sigurno ne bi zahrđalo.

Odlučio sam da ne izmišljam bicikl, već da to učinim kao u kompjuterskom mišu, tu je plastična podloška s četiri utora na osi rotacije, kada se rotor okreće, on se okreće i podloška treperi preko senzora koji je pričvršćen do prednjeg poklopca i kada se poklopac zavrne, to je kao da jednom postane tako da se prorezna podloška rotira i svjetlosni tok od LED-a do fototranzistora ulazi i izlazi. To je sve ... ovdje imate impulse, a oni se mogu prebrojati i imaju broj okretaja u sekundi.

Leddiodno - fototranzistor senzor izvučen iz pisača, takvih ima na veliko.

Prvo napravljen od teniskih loptica

Morao sam malo modificirati uređaj. Na rotoru od teniskih loptica krenuo je s vjetrom od 5m/s. loptice su kupljene u trgovini dječjim igračkama promjera 55 mm. Počinje od 2m/s i mjeri do 22m/s, dosta mi je.

Nakon što je senzor bio spreman. Morali smo napraviti elektroniku.

Prva opcija bila je domaća LUT tehnologija + zelena maska ​​iz Kine, suši se pod ultraljubičastim svjetlom.

55 na fotografiji je okretaja u sekundi. Bilo je potrebno nekako prevesti u m / s. Dugo sam razmišljao kako, čak sam dobio dva anemometra, stari iz SSSR-a i kineski za 50 dolara, ali bilo je problema s provjerom, jer je vjetar jak i ne puše stabilno.

Stoga sam smislio ovo: na slobodan dan tata i ja smo pronašli 2 km ravne ceste izvan grada bez auta, bez vjetra i sadnje drveća s obje strane (tata je vozio, a ja sjedio na pola puta ispred prozora) i vozimo se naprijed-natrag. Prvo sam postavio SSSR štap i kineske anemometre, pobrinuo sam se da oba pokazuju isto i ispravno, jer ako podijelite brzinu na brzinomjeru automobila s 3,6, onda ćete dobiti brojku koju su anemometri pokazali u m / s. Tata je vozio istom brzinom, a instrumenti su pokazivali isti vjetar. Ovako sam testirao svoj uređaj. Tata je svaki put dodao +5 km na sat, a ja sam zapisao novi indikator (rpm). Mjerenja su vršena tri puta. Kad smo se vozili preko 80 km/h (22 m/s), moj anemometar se više nije mogao vrtjeti i brojka se ukočila, jer ne mjeri više od 22 m/s....

Inače, Kinezi su pokazali do 28m / s. SSSR cue do 20m/s. Kad sam ga instalirao na mjesto s modificiranim programom, još jednom sam provjerio kod Kineza da li je sve skupa.

Sada se modificira za Arduino.

Planovi su to ušrafiti u sustav pametne kuće kako biste sa svog pametnog telefona mogli ulaziti i upravljati opterećenjima u kući, pratiti temperaturu u kući (ovo je relevantno za mene, samo se ponekad gas isključuje u zima i dobro je vidjeti koja temperatura) bit će senzor plina, a plus bit će i prikaz brzine vjetra u blizini kuće.

Video o radu

Rezultati rada za zimu

s-st --- sati za zimu
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


Prema rezultatima za dvije zime vidio sam da mi vjetrovi nisu jaki i vjetrenjača neće biti učinkovita pa sam napravio malu s lopaticama od 50 cm. vršna snaga od 150 vata. Samo sam se pobrinuo da barem jedna ekonomična žarulja zasvijetli kad svjetlo nestane.

Sada malo o Arduinu.

Na internetu sam pronašao dijagram miša, jasno ilustrira kako moj sustav radi.

Na temelju dijagrama miša napravio sam sljedeću shemu.

Impulsi dolaze od fototranzistora do Arduina, a on ih percipira pri pritisku gumba.

Algoritam programa je sljedeći: Razmatramo koliko se pritisaka gumba dogodilo u jednoj sekundi, pa imamo frekvenciju rotacije. Za pretvaranje ove frekvencije u m/s. kad sam to radio na Atmelu napravio sam algoritam za izračun frekvencije u m/s. Izgledalo je ovako:

ob_per_sec=0; // Varijabla u kojoj opada frekvencija okretaja u sekundi.

int speed_wind=0; // Vrijednost će ići ovdje nakon što se frekvencija pretvori u m/s.

int speed_wind_max=0; // Ovdje ide maksimalna vrijednost očitanja vjetra m/s.

int speed_wind_2=0; // Broj sekundi od početka programa s brzinom vjetra od 2 m/s.

int speed_wind_3=0; // Broj sekundi od početka programa s brzinom vjetra od 3 m/s.

int speed_wind_4=0; // Broj sekundi od početka programa s brzinom vjetra od 4 m/s.

int speed_wind_5=0; // Broj sekundi od početka programa s brzinom vjetra od 5 m/s.

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

int speed_wind_22=0; // Broj sekundi od početka programa s brzinom vjetra od 22 m/s.

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

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

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

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

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

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

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

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

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

ako (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 ;)// provjeriti i prepisati je li maksimalna vrijednost veća od prethodne napisane.

I prikazati vrijednost.

Ako je potrebno, tada možete vidjeti koliko je minuta vjetar puhao određenom brzinom, za to trebate prikazati varijablu (s potrebnim indeksom brzine) speed_wind_№ (ali podijelite je sa 60 da dobijete minute.).

Ovo sam napravio u svom programu: kada se pritisne određeni gumb, sve varijable se prikazuju redom, od speed_wind_1 do speed_wind_22.

Učitavam...Učitavam...