Gör-det-själv vindmätare (för barn i den förberedande gruppen). Hemmagjord vindmätare

Det fanns en uppgift att montera en vindmätare för ett projekt så att det gick att ta data på en dator via ett USB-gränssnitt. Artikeln kommer att fokusera mer på själva vindmätaren än på databehandlingssystemet från den:

1. Komponenter

Så för tillverkningen av produkten behövdes följande komponenter:
Mitsumi bollmus — 1 st.
Pingisboll - 2 st.
En bit plexiglas i rätt storlek
Koppartråd med ett tvärsnitt på 2,5 mm2 - 3 cm
Kulspetspenna – 1 st.
Chupa Chups godissticka - 1 st.
Kabelklämma - 1 st.
Ihålig mässingspipa 1 st.

2. Tillverkning av pumphjulet

3 stycken koppartråd 1 cm långa vardera i en vinkel på 120 grader löddes fast i en mässingspipa. I hålet på pipan lödde jag fast ett stativ från en kinesisk spelare med en tråd i änden.

Jag skar röret från godiset i 3 delar ca 2 cm långa.

Jag skar 2 bollar på mitten och fäste med hjälp av små skruvar från samma spelare och polystyrenlim (med en limpistol) halvorna av bollen på klubborna.

Jag satte rören med halvorna av bollen på de lödda trådbitarna och fixade allt ovanpå med lim.

3. Tillverkning av huvuddelen

Vindmätarens lagerelement är en metallstav från en kulspetspenna. I den nedre delen av staven (där korken sattes in) satte jag in skivan från musen (kodaren). I designen av själva musen vilade den nedre delen av kodaren mot musens kropp och bildade ett spetslager, det fanns fett, så kodaren vred sig lätt. Men det var nödvändigt att fixa den övre delen av stången, för detta plockade jag upp en lämplig plastbit med ett hål exakt diametern på stången (en sådan bit skars från CD-ROM-vagnförlängningssystemet). Det återstod att lösa problemet så att kodarstaven inte ramlade ur spetslagret, så jag lödde några droppar lod på stången direkt framför hållarelementet. Således roterade stången fritt i hållarkonstruktionen, men föll inte ut ur lagret.

Anledningen till att kodarkretsen valdes är följande: alla artiklar om hemmagjorda vindmätare på Internet beskrev deras tillverkning baserat på en DC-motor från en spelare, CD-ROM eller någon annan produkt. Problemet med sådana anordningar är för det första deras kalibrering och låga noggrannhet vid låga vindhastigheter, och för det andra i den icke-linjära karakteristiken för vindhastigheten med avseende på utspänningen, dvs. för att överföra information till en dator, det finns vissa problem, du måste beräkna lagen om spänning eller strömförändring från vindhastighet. När du använder en kodare är det inget sådant problem, eftersom beroendet är linjärt. Noggrannheten är högst, eftersom kodaren ger cirka 50 pulser per varv av vindmätaraxeln, men omvandlarkretsen är något mer komplicerad, där det finns en mikrokontroller som räknar antalet pulser per sekund på en av portarna och utgångarna detta värde till USB-porten.

4. Testning och kalibrering

En laboratorieanemometer användes för kalibrering.

En vanlig hushållsmärkt eller hemmagjord väderstation mäter två temperaturer - luftfuktighet (i rummet och utanför), atmosfärstryck och har dessutom en klocka med en kalender. Men en riktig väderstation har mycket mer - en solstrålningssensor, en regnmätare och allt som i allmänhet krävs endast för professionella ändamål, med ett undantag. En vindmätare (hastighet och, viktigast av allt, riktning) är ett mycket användbart tillägg för ett hus på landet. Dessutom är märkesvaror ganska dyra även på Ali Baba, och det är vettigt att titta på hemgjorda lösningar.

Jag måste säga direkt att om jag hade vetat i förväg hur mycket manuellt arbete och pengar som spenderas på experiment min idé skulle resultera i, kanske jag inte hade börjat. Men nyfikenheten vägde tyngre, och läsarna av den här artikeln har en chans att undvika de fallgropar som jag var tvungen att snubbla över.

För vindhastighetsmätningar(anemometri) det finns hundratals sätt, varav de viktigaste är:

het tråd,
- mekanisk - med en propeller (närmare bestämt en impeller) eller en cup horisontal impeller (klassisk cup-anemometer) Att mäta hastigheten i dessa fall är likvärdigt med att mäta hastigheten på den axel som propellern eller impellern är fixerad på.
- samt ultraljud, som kombinerar mätningar av hastighet och riktning.
För riktningsmått färre sätt:
- nämnda ultraljud;
- mekanisk väderflöjel med elektronisk borttagning av rotationsvinkeln. Det finns också många olika sätt att mäta rotationsvinkeln: optisk, resistiv, magnetisk, induktiv, mekanisk. Förresten, du kan helt enkelt montera en elektronisk kompass på väderflöjelns axel - det är bara pålitligt och enkelt (för "knä"-repetition) sätt att överföra avläsningar från en kaotiskt roterande axel måste fortfarande letas efter. Därför väljer vi vidare den traditionella optiska metoden.

När du upprepar någon av dessa metoder på egen hand bör du tänka på kraven på minimal energiförbrukning och dygnet runt (eller kanske året runt?) exponering för sol och regn. Vindsensorn kan inte placeras under taket i skuggan - tvärtom ska den vara så långt borta från alla störande faktorer som möjligt och "öppen för alla vindar". Den idealiska platsen är nocken på taket på ett hus eller i värsta fall en lada eller lusthus, långt från andra byggnader och träd. Sådana krav innebär autonom strömförsörjning och, uppenbarligen, en trådlös dataöverföringskanal. Dessa krav beror på vissa "klockor och visselpipor" i designen, som beskrivs nedan.

Om minsta strömförbrukning

Förresten, hur mycket är den lägsta strömförbrukningen? Baserat på vanliga AA-hushållsbatterier bör den genomsnittliga förbrukningen av kretsen helst inte vara mer än 1-2 mA. Beräkna själv: kapaciteten hos en anständig AA alkalisk cell är cirka 2,5-3 Ah, det vill säga en krets med den indikerade förbrukningen kommer att arbeta från den i cirka 1500-2500 timmar, eller 2-3 månader. I princip är detta inte heller mycket, men relativt acceptabelt - du kan inte göra mindre: antingen gå sönder på batterier, eller så måste du använda batterier som måste laddas ännu oftare än att byta batterier. Av denna anledning, när vi skapar en sådan krets, är vi skyldiga att fånga eventuella smulor: det obligatoriska energisparläget, noggrant genomtänkta kretsar och sekvensen av åtgärder i programmet. Vidare kommer vi att se att jag i den slutliga designen fortfarande inte uppfyllde de nödvändiga kraven och var tvungen att använda batterikraft.


En informativ berättelse om hur jag försökte återskapa den mest moderna och avancerade av metoderna - ultraljud, och misslyckades, ska jag berätta någon annan gång. Alla andra metoder innebär separat mätning av hastighet och riktning, så vi var tvungna att blockera två sensorer. Efter att ha studerat teoretiskt hot-wire anemometrar, insåg jag att vi inte skulle kunna köpa ett färdigt känsligt element på en amatörnivå (de finns på den västerländska marknaden!), men att uppfinna det själv - att engagera sig i nästa FoU med motsvarande slöseri med tid och pengar. Därför, efter lite funderande, bestämde jag mig för att göra en enhetlig design för båda sensorerna: en koppanemometer med optisk mätning av rotationshastighet och en väderflöjel med elektronisk avläsning av rotationsvinkeln baserat på en kodarskiva (kodare).

Sensordesigner

Fördelen med mekaniska sensorer är att det inte krävs någon FoU där, principen är enkel och tydlig och kvaliteten på resultatet beror bara på noggrannheten i den noggrant genomtänkta designen.

Så det verkade teoretiskt, i praktiken resulterade det i ett gäng mekaniskt arbete, varav en del måste beställas på sidan, på grund av bristen på svarvar och fräsmaskiner till hands. Jag måste genast säga att jag aldrig har ångrat att jag från första början förlitade mig på ett kapitaltillvägagångssätt och inte stakade konstruktioner från improviserade material.

Till väderflöjeln och vindmätaren behövs följande delar, som måste beställas från en vändare och fräsare (mängd och material anges för båda sensorerna samtidigt):

Axlarna, noterar vi, är nödvändigtvis vridna på en svarv: det är nästan omöjligt att göra en axel med en spets exakt i mitten på ett knä. Och placeringen av spetsen exakt längs rotationsaxeln här är den avgörande faktorn för framgång. Dessutom måste axeln vara helt rak, inga avvikelser tillåts.

Mekanisk vindriktningssensor - elektronisk väderflöjel

Grunden för väderflöjeln (liksom hastighetssensorn nedan) är ett U-format fäste av D-16 duralumin, som visas på ritningen uppe till vänster. En bit PTFE pressas in i det nedre urtaget, i vilket en stegvis urtagning görs successivt med 2 och 3 mm borr. En axel sätts in i denna urtagning med en vass ände (för en väderflöjel - gjord av mässing). Ovanifrån passerar den fritt genom ett 8 mm hål. Ovanför detta hål fästs ett rektangulärt stycke av samma 4 mm tjocka fluorplast på fästet med M2-skruvar så att det överlappar hålet. Ett hål gjordes i PTFE exakt längs axeldiametern på 6 mm (placerad exakt längs hålens gemensamma axel - se monteringsritningen nedan). Fluoroplast i toppen och botten spelar här rollen som glidlager.


Axeln vid friktionspunkten mot fotoplasten kan poleras, och friktionsarean kan minskas genom att försänka ett hål i fluorplasten. ( Se om detta ämne nedan UPD från 09/13/18 och 06/05/19). För en väderflöjel spelar detta ingen speciell roll - viss "retardation" är till och med användbar för honom, och för en vindmätare måste du försöka minimera friktion och tröghet.

Nu om borttagandet av rotationsvinkeln. Den klassiska 16-positions grå kodaren i vårt fall ser ut så här:

Skivstorleken valdes baserat på villkoret för tillförlitlig optisk isolering av emitter-mottagarparen från varandra. Med denna konfiguration är de 5 mm breda slitsarna också åtskilda 5 mm från varandra, och de optiska paren är placerade exakt 10 mm från varandra. Måtten på fästet som väderflöjeln är fäst på beräknades exakt utifrån en skivdiameter på 120 mm. Allt detta kan naturligtvis minskas (särskilt om du väljer lysdioder och fotodetektorer med minsta möjliga diameter), men komplexiteten i tillverkningen av kodaren togs i beaktande: det visade sig att fräsarna inte utför ett sådant känsligt arbete, därför fick skäras manuellt med en nålfil. Och här ju större storlek, desto mer tillförlitligt blir resultatet och desto mindre krångel.

Monteringsritningen ovan visar hur skivan fästs på axeln. En noggrant centrerad skiva är fäst med M2-skruvar på caprolon-hylsan. Bussningen placeras på axeln så att gapet upptill är minimalt (1-2 mm) - så att axeln roterar fritt i normalläge, och när den vänds faller spetsen inte ut ur hylsan vid botten. Block av fotodetektorer och sändare är fästa på fästet i toppen och botten av skivan, mer specifikt om deras design nedan.

Hela strukturen är placerad i en plastlåda (ABS eller polykarbonat) 150×150×90 mm. Monterad (utan kåpa och väderflöjel) ser riktningssensorn ut så här:

Observera att den valda norra riktningen är markerad med en pil och måste respekteras vid återinstallation av sensorn.

Själva väderflöjeln är fäst på toppen av axeln. Den är gjord på basis av samma mässingsaxel, i snittet på vars trubbiga sida en mässingsplåtskaft är lödd. I den vassa änden skärs en M6-gänga till en viss längd, och en rund vikt-motviktsgjutning av bly fixeras på den med hjälp av muttrar:

Lasten är utformad så att tyngdpunkten faller exakt på fästpunkten (genom att flytta den längs gängan kan du uppnå perfekt balans). Väderflöjeln fästs på axeln med en M3 rostfri skruv, som går genom ett hål i väderflöjelns axel och skruvas in i gängan som är skuren i rotationsaxeln (fixeringsskruven syns på bilden ovan). För exakt orientering har toppen av rotationsaxeln en halvcirkelformad urtagning i vilken väderflöjelns axel ligger.

Vindhastighetssensor - gör-det-själv kopp vindmätare

Som du redan har förstått valdes grunden för hastighetssensorn för föreningsändamål på samma sätt som för väderflöjeln. Men designkraven här är något annorlunda: för att minska starttröskeln bör vindmätaren vara så lätt som möjligt. Därför är i synnerhet axeln för den gjord av duraluminium, skivan med hål (för att mäta rotationshastigheten) är reducerad i diameter:

Medan en fyrabitars Gray-kodare kräver fyra optokopplare, behöver en hastighetssensor bara en. 16 hål borras längs skivans omkrets på lika avstånd, så ett varv av skivan per sekund motsvarar 16 hertz av frekvensen som kommer från optokopplaren (fler hål är möjliga, färre är möjliga - den enda frågan är skala för omräkning och energibesparingar för utsläppare).

En egentillverkad sensor kommer fortfarande att visa sig vara ganska grov (starttröskeln är minst en halv meter per sekund), men den kan bara minskas om designen ändras radikalt: sätt till exempel en propeller istället för en kopp skivspelare. I en skålvridskiva är skillnaden i flödesmotståndskrafter som bestämmer vridmomentet relativt liten - den uppnås enbart på grund av den olika formen på ytan som möter det mötande luftflödet (därför bör formen på kopparna vara lika strömlinjeformad som möjligt - helst är detta ett halvt ägg eller en boll). Propellern har mycket mer vridmoment, kan göras mycket lättare i vikt, och slutligen är själva tillverkningen enklare. Men propellern måste installeras i luftflödets riktning - till exempel genom att placera den i änden av samma väderflöjel.

Frågan om frågor på samma gång: hur man överför avläsningar från en sensor som slumpmässigt roterar runt en vertikal axel? Jag kunde inte lösa det, och att döma av det faktum att professionella cupdesigner fortfarande är utbredda, löses det inte på något sätt med en halvspark (vi tar inte hänsyn till handhållna vindmätare - de är orienterade manuellt efter luften flöde).

Min version av koppanemometern är baserad på en laserskiva. Den övre och nedre vyn visas på bilden:



Muggarna är gjorda av bottnen av barnvattenflaskor "Agusha". Botten skärs försiktigt av, och alla tre - på samma avstånd, så att de har samma vikt, värms upp lokalt i mitten (värm inte upp hela - det kommer att bli oåterkalleligt skevt!) Och baksidan av trähandtaget från filen böjs utåt för att göra den mer strömlinjeformad. Du kommer att upprepa - fylla på med större flaskor, av fem eller sex stycken kommer du förmodligen att kunna göra tre mer eller mindre identiska koppar. I de tillverkade kopparna är en slits gjord på sidan och de är fixerade längs skivans omkrets vid 120 ° i förhållande till varandra med hjälp av ett vattentätt limtätningsmedel. Skivan är strikt centrerad i förhållande till axeln (jag gjorde detta med hjälp av en bifogad metallbricka) och fixeras på caprolon-hylsan med M2-skruvar.

Allmän design och installation av sensorer

Båda sensorerna är som redan nämnts placerade i plastfodral 150×150×90 mm. Valet av fodralmaterial måste närma sig eftertänksamt: ABS eller polykarbonat har tillräcklig väderbeständighet, men polystyren, plexiglas och ännu mer polyeten kommer definitivt inte att fungera här (och det kommer också att vara svårt att måla dem för att skydda dem från solen ). Om det inte är möjligt att köpa en märkeslåda är det bättre att löda höljet från folieglasfiber på egen hand och sedan måla det för att skydda det från korrosion och ge det ett estetiskt utseende.

Ett hål på 8-10 mm görs i locket exakt vid den punkt där axeln går ut, i vilken en plastkon limmas med samma limtätningsmedel, skuren från pipen från en sprayburk med byggtätningsmedel eller lim:

För att centrera konen längs axeln, fixera en träbit på botten av locket med en klämma, markera den exakta mitten på den och gå lite djupare med en 12 mm spadborr, gör en ringformig urtagning runt hålet. Konen måste komma in där exakt, varefter den kan beläggas med lim. Du kan dessutom fixera den i vertikalt läge för stelningstiden med en M6-skruv med en mutter.

Själva hastighetssensorn täcker axeln med denna kon som ett paraply, vilket förhindrar att vatten kommer in i huset. För en väderflöjel är det värt att ytterligare placera en hylsa ovanför konen, vilket kommer att stänga gapet mellan axeln och konen från direkt vattenflöde (se bilden av den allmänna vyn av sensorerna nedan).

Ledningarna från optokopplarna är anslutna till en separat D-SUB-kontakt (se bild på riktningssensorn ovan). Den passande delen med kabeln förs in genom ett rektangulärt hål i fodralets bas. Hålet täcks sedan med ett lock med en slits för kabeln som gör att kontakten inte faller ut. Duralfästen skruvas fast i väskans bas för fixering på plats. Deras konfiguration beror på sensorernas placering.

När de är monterade ser båda sensorerna ut så här:

Här visas de redan installerade på plats - på lusthusets ås. Observera att urtagen för skruvarna som fäster locket är skyddade från vatten med våta gummipluggar. Sensorerna installeras strikt horisontellt enligt nivån, för vilken det var nödvändigt att använda foder från bitar av linoleum.

Elektronisk del

Väderstationen som helhet består av två moduler: en fjärrenhet (som betjänar båda vindsensorerna och även tar avläsningar från en extern temperatur-fuktighetssensor), och huvudmodulen med displayer. Fjärrenheten är utrustad med en trådlös sändare för att skicka data installerad inuti den (antennen sticker ut från sidan). Huvudmodulen tar emot data från fjärrenheten (mottagaren placeras på en kabel i en separat enhet för att underlätta orienteringen), och tar även avläsningar från den interna temperatur-fuktighetssensorn och visar allt detta på displayerna. En separat komponent i huvudenheten är en klocka med en kalender, som, för att underlätta allmän stationsinställning, betjänas av en separat Arduino Mini-kontroller och har sina egna displayer.

Fjärrmodul och mätkrets av vindsensorer

AL-107B IR-lysdioder valdes som fotosändare. Dessa vintage lysdioder är naturligtvis inte de bästa i sin klass, men de har en miniatyrkropp med en diameter på 2,4 mm och klarar av att skicka ström upp till 600 mA per puls. Förresten, under testerna visade det sig att ett prov av denna lysdiod runt 1980 av utgivningen (i ett rött fall) har ungefär dubbelt så hög effektivitet (uttryckt i området för tillförlitlig drift av fotodetektorn) än moderna exemplar köpta på Chip -Djupa (de har en genomskinlig gulgrön kropp). Det är osannolikt att kristaller var bättre 1980 än de är nu, även om vad fan är det inte som skämtar? Men kanske är saken i olika spridningsvinklar i båda designerna.

En likström på cirka 20 mA leddes genom lysdioden i hastighetssensorn (150 Ohm motstånd när den drivs med 5 volt), och i riktningssensorn - en pulsad (meander med en arbetscykel på 2) ström på cirka 65 mA ( samma 150 ohm när den drivs av 12 volt). Medelströmmen genom en lysdiod på riktningssensorn är cirka 33 mA, totalt genom fyra kanaler - cirka 130 mA.

Som fotodetektorer valdes L-32P3C fototransistorer i en förpackning med en diameter på 3 mm. Signalen togs från en kollektor laddad med ett 1,5 eller 2 kOhm motstånd från en matning på 5 V. Dessa parametrar valdes så att på ett avstånd av ~ 20 mm mellan fotosändaren och mottagaren, en fullstor logisk signal vid 5 -Voltsnivåer utan ytterligare förstärkning skulle omedelbart komma till styrenhetens ingång. Strömmarna som räknas upp här kan tyckas oproportionerligt stora för dig, baserat på det lägsta effektbehovet som nämns ovan, men som du kommer att se så dyker de upp i varje mätcykel under max några millisekunder så att den totala förbrukningen förblir liten.

Grunden för montering av mottagare och sändare var sektionerna av kabelkanalen (se bilden av sensorerna ovan), utskurna för att bilda "öron" vid basen för montering på fästet. För vart och ett av dessa snitt limmades en plastplatta på låslocket från insidan, lika i bredd som kanalens bredd. Lysdioder och fototransistorer fixerades på erforderligt avstånd i hålen som borrades i denna platta så att ledningarna var inuti kanalen, och endast utbuktningarna i änden av fodralen stack ut utanför. Slutsatserna är lödda i enlighet med diagrammet (se nedan), de externa slutsatserna görs med snitt av en flexibel flerfärgad tråd. Motstånd för riktningssensorns emitters är också placerade inuti kanalen, en generell slutsats dras från dem. Efter avlödning snäpper locket på plats, alla slitsar förseglas med plasticine och dessutom med tejp, som också stänger hålet från sidan motsatt ledarna, och hela strukturen är fylld med epoxi. Externa slutsatser, som du kan se på fotot av sensorerna, matas ut till kopplingsplinten som är fäst på baksidan av fästet.

kretsschema vindsensorbehandlingsenheten ser ut så här:

Om varifrån 12-14 voltseffekten kommer, se nedan. Utöver de komponenter som anges i diagrammet innehåller fjärrenheten en temperatur-fuktighetsgivare, som inte visas i diagrammet. Spänningsdelaren som är ansluten till A0-terminalen på styrenheten är utformad för att styra spänningen på strömförsörjningen i syfte att byta ut i tid. Lysdioden som är ansluten till den traditionella stift 13 (stift 19 i DIP-höljet) är superljus, för dess normala, icke-blindande glöd räcker det med en bråkdel av en milliampere ström, vilket säkerställs av det ovanligt höga värdet på 33 kΩ motstånd.

Kretsen använder en bar Atmega328-kontroller i ett DIP-paket, programmerad via Uno och installerad på ett uttag. Sådana kontroller med en Arduino bootloader redan skriven säljs till exempel i Chip-Dip (eller så kan du skriva bootloader själv). Det är bekvämt att programmera en sådan styrenhet i en bekant miljö, men utan komponenter på kortet är det för det första mer ekonomiskt och för det andra tar det mindre utrymme. Ett fullfjädrat energisparläge skulle kunna erhållas genom att bli av med bootloadern också (och generellt skriva all kod i assembler :), men här är detta inte särskilt relevant, och programmeringen är onödigt komplicerad.

I diagrammet inringade grå rektanglar komponenterna relaterade separat till hastighets- och riktningskanalerna. Överväg hur systemet fungerar som helhet.

Driften av styrenheten som helhet styrs av watchdog-timern WDT aktiverad i avbrottsanropsläget. WDT väcker styrenheten från viloläge med bestämda intervall. I händelse av att timern återställs i det anropade avbrottet, sker ingen omstart från början, alla globala variabler förblir på sina värden. Detta gör att du kan ackumulera data från uppvaknande till uppvaknande och någon gång bearbeta den - till exempel snitta den.

I början av programmet görs följande deklarationer av bibliotek och globala variabler (för att inte röra upp texten i redan omfattande exempel, släpps allt relaterat till temperatur-fuktighetssensorn här):

#omfatta #omfatta #omfatta . . . . . #define ledPin 13 //LED pin (PB5 pin 19 ATmega) #define IR_Pin 10 //IRLU transistor control (PB2 pin 16 Atmega) #define in_3p 9 //Receiver input bit 3 #define in_2p 8 //Receiver input bit 2 # definiera in_1p 7 //mottagarens ingångsbit 1 #definiera in_0p 6 //mottagarnas ingångsbit 0 #definiera IR_PINF 5 //(PD5,11) utgång för frekvens IR LED #definiera IN_PINF 4 //(PD4,6) frekvensdetekteringsingång flyktig unsigned long ttime = 0; //Sensoraktiveringsperiod float ff; //hastighetssensor frekvensvärden för medelvärdesberäkning av char msg; //skickat meddelande byte count=0;//counter int batt; //att snitta batteribyten wDir; // array av vindriktningar byte wind_Gray=0; //vindriktningskodbyte
Följande procedurer används för att initiera viloläge och WDT (vakna var 4:e sekund):

// försätter systemet i viloläge 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; om (ii > 7) bb|= (1<<5); //в bb - код периода bb|= (1<Hastighetssensorn matar ut avbrottsfrekvensen för den optiska kanalen, storleksordningen är enheter-tiotals hertz. Det är mer ekonomiskt och snabbare att mäta ett sådant värde efter en period (detta var ämnet för författarens publikation "Utvärdering av metoder för att mäta låga frekvenser på Arduino"). Här väljs en metod genom den modifierade funktionen pulseInLong(), som inte binder mätningen till vissa kontrollerutgångar (texten till periodInLong()-funktionen finns i den angivna publikationen).

I setup()-funktionen deklareras stiftriktningarna, 433 MHz-sändarbiblioteket och watchdog-timern initieras (raden för IN_PINF är i princip överflödig och infogas för minnet):

Void setup() ( pinMode(IR_PINF, OUTPUT); //att utmata pinMode(IN_PINF, INPUT); //utgångsfrekvensdetektering till ingång pinMode(13, OUTPUT); //LED vw_setup(1200); // VirtualWire anslutningshastighet vw_set_tx_pin(2); //D2, PD2(4) VirtualWire-överföringsstift // Serial.begin(9600); // Seriell port att övervaka vid felsökning av setup_watchdog(8); //WDT period 4 c wdt_reset(); )
Slutligen, i programmets huvudslinga, läser vi först av spänningen varje gång vi vaknar (var 4:e sekund) och beräknar vindhastighetssensorns frekvens:

Void loop() ( wdt_reset(); // återställ timern digitalWrite(ledPin, HIGH); // slå på lysdioden för att styra batt=analogRead(0); // läs och spara den aktuella batterikoden /*=== frekvens === = */ digitalWrite(IR_PINF, HIGH); //slå på IR-lysdioden på hastighetssensorns flottör f=0; //variabel för frekvensen ttime=periodInLong(IN_PINF, LOW, 250000); //wait 0,25 sek // Serial. println(ttime); //för kontroll under felsökning om (ttime!=0) (//vid ingen frekvens f = 1000000/float(ttime);) //beräkna signalfrekvensen i Hz digitalWrite(IR_PINF, LOW); / /stäng av IR-lampan ff=f; //spara det beräknade värdet i en array. . . . .
Brinntiden för IR-lysdioden (förbrukande, låt mig påminna dig, 20 mA) här, som du kan se, kommer att vara maximal i avsaknad av rotation av sensorskivan och är cirka 0,25 sekunder under detta tillstånd. Minsta mätbara frekvens skulle alltså vara 4 Hz (en fjärdedel av ett skivvarv per sekund med 16 hål). Som det visade sig vid kalibrering av sensorn (se nedan) motsvarar detta cirka 0,2 m/s vindhastighet. Vi betonar att detta är det minsta mätbara värdet för vindhastighet, men inte upplösningen och inte starttröskeln (som kommer att vara mycket högre). I närvaro av frekvens (det vill säga när sensorn roterar) kommer mättiden (och följaktligen LED-bränntiden, det vill säga strömförbrukningen) att minska proportionellt och upplösningen kommer att öka.

Följt av procedurer som utförs var fjärde uppvaknande (det vill säga var 16:e sekund). Från de ackumulerade fyra värdena överför vi hastighetssensorns frekvensvärde, inte genomsnittet, utan det maximala - som erfarenheten har visat är detta ett mer informativt värde. För bekvämlighet och enhetlighet omvandlas var och en av kvantiteterna, oavsett dess typ, till ett positivt heltal med en storlek på 4 decimaler före överföring. Räknevariabeln håller reda på antalet väckningar:

//var 16:e sekund ger vi ett medelvärde för batteriet och bestämmer det maximala //frekvensvärdet från 4 värden: if (count==3)( f=0; //frekvensvärde för (byte i=0; i)<4; i++) if (fNästa är definitionen av riktningens grå kod. Här, för att minska förbrukningen, istället för konstant på IR-lysdioder, appliceras en frekvens på 5 kHz på alla fyra kanalerna samtidigt genom en nyckelfälteffekttransistor som använder ton ()-funktionen. Detekteringen av närvaron av en frekvens på var och en av siffrorna (stift in_0p - in_3p) utförs med en metod som liknar anti-studs när man läser indikationerna på en nedtryckt knapp. Först, i slingan, väntar vi för att se om uteffekten är hög, och sedan kontrollerar vi den efter 100 µs. 100 µs är en halv period med en frekvens på 5 kHz, det vill säga om det finns en frekvens åtminstone från andra gången, kommer vi återigen att komma till en hög nivå (för säkerhets skull upprepar vi fyra gånger) och det betyder att den finns definitivt där. Vi upprepar denna procedur för var och en av de fyra bitarna i koden:

/* ===== Vindgrå ==== */ //riktning: ton(IR_Pin,5000);//frekvens 5 kHz till transistor boolean ja = falskt; byte i=0; while(!yes)( //siffra 3 i++; booleskt tillstånd1 = (digitalRead(in_3p)&HIGH); delayMicroseconds(100); // 100 mikrosekunders fördröjning yes=(state1 & !digitalRead(in_3p)); if (i> 4 ) break; //försök fyra gånger) om (ja) wDir=1; annars wDir=0; ja = falskt; i=0; while(!yes)( //siffra 2 i++; booleskt tillstånd1 = (digitalRead(in_2p)&HIGH); delayMicroseconds(100); // 100 mikrosekunders fördröjning yes=(state1 & !digitalRead(in_2p)); if (i> 4 ) break; //försök fyra gånger) om (ja) wDir=1; annars wDir=0; ja = falskt; i=0; while(!yes)( //bit 1 i++; booleskt tillstånd1 = (digitalRead(in_1p)&HIGH); delayMicroseconds(100); // 100 mikrosekunders fördröjning yes=(state1 & !digitalRead(in_1p)); if (i> 4 ) break; //försök fyra gånger) om (ja) wDir=1; annars wDir=0; ja = falskt; i=0; while(!yes)( //bit 0 i++; booleskt tillstånd1 = (digitalRead(in_0p)&HIGH); delayMicroseconds(100); // 100 mikrosekunders fördröjning ja=(tillstånd1 & !digitalRead(in_0p)); if (i> 4 ) break; //försök fyra gånger) om (ja) wDir=1; annars wDir=0; noTone(IR_Pin); //stäng av frekvensen //samla den till en byte i Gray-kod: wind_Gray=wDir+wDir*2+wDir*4+wDir*8; // direkt översättning till binär. kod int vind_G=vind_Grå*10+1000; //lägg till upp till 4 des. utsläpp. . . . .
Den maximala varaktigheten av en procedur kommer att vara i frånvaro av en frekvens på mottagaren och är lika med 4 × 100 = 400 mikrosekunder. Den maximala brinntiden för lysdioderna med fyra riktningar kommer att vara när ingen mottagare är tänd, det vill säga 4 × 400 = 1,6 millisekunder. Algoritmen kommer förresten att fungera på samma sätt om du, istället för en frekvens vars period är en multipel av 100 μs, helt enkelt applicerar en konstant hög nivå på lysdioderna. I närvaro av en meander istället för en konstant nivå sparar vi helt enkelt mat till hälften. Vi kan spara ännu mer om vi kör varje IR-LED genom en separat linje (respektive genom en separat styrenhetsutgång med sin egen nyckeltransistor), men detta komplicerar kretsen, ledningar och styrning, och en ström på 130 mA i 2 ms varje 16 sekunder - det här, förstår du, är lite.

Till sist, trådlös dataöverföring. Den enklaste, billigaste och mest pålitliga metoden valdes för att överföra data från sensorernas plats till väderstationens display: ett sändare/mottagarpar med en frekvens på 433 MHz. Jag håller med om att metoden inte är den mest bekväma (på grund av det faktum att enheter är designade för att överföra bitsekvenser, och inte hela bytes, måste du utmärka dig i att konvertera data mellan de nödvändiga formaten), och jag är säker på att många kommer att vilja att argumentera med mig när det gäller dess tillförlitlighet. Svaret på den sista invändningen är enkelt: "du vet bara inte hur man lagar dem!".

Hemligheten är att den vanligtvis förblir bakom kulisserna för olika beskrivningar av datautbyte över 433 MHz-kanalen: eftersom dessa enheter är rent analoga, måste mottagarens ström vara mycket väl rensad från alla främmande krusningar. Under inga omständigheter får mottagaren drivas av Arduinos interna 5V-regulator! Att installera en separat, lågeffekts mottagaren regulator (LM2931, LM2950, ​​eller liknande) precis bredvid dess utgångar, med korrekta in- och utgångsfiltreringskretsar, ökar dramatiskt överföringsräckvidden och tillförlitligheten.

I det här fallet fungerade sändaren direkt från en 12 V batterispänning, mottagaren och sändaren var utrustade med vanliga hemmagjorda antenner i form av en bit tråd 17 cm lång. (Låt mig påminna dig om att endast en enkärnad tråd är lämplig för antenner, och det är nödvändigt att placera antenner i rymden parallellt med varandra.) Ett informationspaket 24 byte långt (med hänsyn till luftfuktighet och temperatur) utan problem sändes utan problem med en hastighet av 1200 bps diagonalt genom en trädgårdstomt på 15 tunnland (ca 40-50 meter), och sedan genom tre stockväggar in i rummet ( där till exempel en cellulär signal tas emot med stor svårighet och inte överallt). Förhållanden som är praktiskt taget ouppnåeliga för alla vanliga 2,4 GHz-metoder (som Bluetooth, Zig-Bee och till och med amatör-Wi-Fi), trots att sändarförbrukningen här är eländiga 8 mA och endast vid tidpunkten för den faktiska överföringen, resten av tiden förbrukar sändaren riktiga slantar. Sändaren är strukturellt placerad inuti fjärrenheten, antennen sticker ut horisontellt från sidan.

Vi kombinerar all data i ett paket (i en riktig station kommer temperatur och luftfuktighet att läggas till), som består av enhetliga 4-byte delar och föregås av "DAT"-signaturen, skickar den till sändaren och slutför alla cykler:

/*=====Sändare=====*/ String strMsg="DAT"; //signatur - data strMsg+=volt; //bifoga ett 4-siffrigt batteri strMsg+=wind_G; //attach vind 4 bitar strMsg+=fi; //attach frekvens 4 bitar strMsg.toCharArray(msg,16); //översätta strängen till en array // Serial.println(msg); //att styra vw_send((uint8_t *)msg, strlen(msg)); // skicka meddelande vw_wait_tx(); // vänta på att överföringen ska slutföras - ett måste! fördröjning(50); //+ för säkerhets skull, delay count=0; //återställ räknaren )//end count==3 else count++; digitalWrite(ledPin, LOW); //vi stänger av signalen LED system_sleep(); //system - att sova) //slut loop
Paketstorleken kan minskas om kravet på att representera var och en av de olika typerna av värden i form av en enhetlig 4-byte kod överges (till exempel för grå kod räcker det naturligtvis med en byte). Men för universaliseringens skull lämnade jag allt som det är.

Strömförsörjning och designfunktioner för fjärrenheten. Förbrukningen av fjärrenheten beräknas enligt följande:

20 mA (sändare) + ~20 mA (kontroller med hjälpkretsar) i cirka 0,25 s var fjärde sekund - 40/16 = 2,5 mA medelvärde;
- 130 mA (radiatorer) + ~20 mA (kontroller med hjälpkretsar) i cirka 2 ms var 16:e sekund - 150/16/50 ≈ 0,2 mA i genomsnitt;

Genom att lägga på denna beräkning av styrenhetens förbrukning vid läsning av data från temperatur-fuktighetssensorn och under driften av sändaren, tar vi djärvt den genomsnittliga förbrukningen till 4 mA (med en topp på cirka 150 mA, märk väl!). Batterier (som förresten kommer att kräva så många som 8 stycken för att driva sändaren med maximal spänning!) kommer att behöva bytas för ofta, så idén uppstod att driva fjärrenheten från 12-volts batterier för en skruvmejsel - Jag hade bara två extra. Deras kapacitet är ännu mindre än motsvarande antal AA-batterier - bara 1,3 A-timmar, men ingen bryr sig om att byta dem när som helst och håller den andra laddade redo. Med den indikerade förbrukningen på 4 mA räcker kapaciteten på 1300 mA timmar i cirka två veckor, vilket inte är alltför besvärligt.

Observera att spänningen på ett nyladdat batteri kan vara upp till 14 volt. I det här fallet installerades en ingångsstabilisator på 12 volt - för att förhindra överspänningar i sändarförsörjningen och för att inte överbelasta huvudstabilisatorn på fem volt.

Fjärrenheten i en lämplig plastlåda placeras under taket, en strömkabel från batteriet och anslutningar till vindsensorer ansluts till den vid kontakterna. Den största svårigheten är att kretsen visade sig vara extremt känslig för luftfuktighet: i regnigt väder, efter ett par timmar, börjar sändaren att misslyckas, frekvensmätningar visar en fullständig röra och batterispänningsmätningar visar "väder på Mars" .

Därför, efter att ha felsökt algoritmerna och kontrollerat alla anslutningar, måste höljet noggrant förseglas. Alla kontakter vid ingången till höljet är belagda med tätningsmedel, detsamma gäller alla skruvhuvuden som sticker ut, antennutgången och strömkabeln. Kroppens leder är belagda med plasticine (med hänsyn till att de måste separeras) och limmas dessutom ovanpå med remsor av VVS-tejp. Det är en bra idé att extra noggrant förstärka de använda kontakterna inuti med epoxi: till exempel är DB-15-fjärrmodulen som anges på diagrammet inte lufttät i sig själv, och fuktig luft kommer långsamt att sippra mellan metallramen och plastbasen.

Men alla dessa åtgärder i sig kommer bara att ge en kortvarig effekt - även om det inte finns någon sugning av kall, fuktig luft, då blir den torra luften från rummet lätt fuktig när temperaturen utanför höljet sjunker (kom ihåg fenomenet som kallas "daggpunkt").

För att undvika detta är det nödvändigt att lämna en patron eller en påse med ett torkmedel - kiselgel inuti fodralet (påsar med det läggs ibland i lådor med skor eller i vissa paket med elektroniska enheter). Om kiselgelen är av okänt ursprung och har lagrats länge måste den brännas i en elektrisk ugn vid 140-150 grader i flera timmar före användning. Om höljet är ordentligt förseglat måste torkmedlet inte bytas oftare än i början av varje sommarsäsong.

Huvudmodulen

I huvudmodulen tas alla värden emot, avkodas, om nödvändigt, konverteras i enlighet med kalibreringsekvationerna och visas.

Mottagaren tas ut ur kroppen av stationens huvudmodul och placeras i en liten låda med öron för fastsättning. Antennen förs ut genom ett hål i locket, alla hål i fodralet är tätade med rågummi. Mottagarkontakterna leds till en mycket pålitlig RS-4-kontakt för hemmet, från mottagarsidan ansluts den via ett segment av en dubbelskärmad AV-kabel:

En signal tas från en av kabelkärnorna, och ström tillförs via den andra i form av "rå" 9 volt från modulens strömadapter. Stabilisatorn typ LM-2950-5.0, tillsammans med filterkondensatorer, installeras i en låda tillsammans med en mottagare på ett separat kort.

Experiment utfördes för att öka längden på kabeln (för säkerhets skull - tänk om den inte skulle fungera genom väggen?), där det visade sig att ingenting förändras inom en längd på upp till 6 meter.

Det finns bara fyra OLED-skärmar: två gula visar väderdata, två gröna klockor och en kalender. Deras placering visas på bilden:

Observera att i varje grupp är en av displayerna text, den andra är grafisk, med artificiellt skapade typsnitt i form av glyfbilder. Här kommer vi inte att uppehålla oss vid frågan om att mata ut information till skärmar i framtiden, för att inte blåsa upp den redan omfattande texten i artikeln och exemplen: på grund av förekomsten av glyfbilder som måste visas individuellt (ofta genom att bara lista alternativ som använder en case-sats), kan utdataprogram vara mycket besvärliga. För information om hur man hanterar dessa displayer, se författarens inlägg "Graphic and Text Mode of Winstar Displays", som inkluderar ett exempel på en display för utmatning av vinddata.

Schematiskt diagram. För att underlätta installationen betjänas klockan och dess skärmar av en separat Arduino Mini-kontroller och vi kommer inte att analysera dem ytterligare här. Schemat för att ansluta komponenter till Arduino Nano, som styr mottagning och utmatning av väderdata, är som följer:

Här, i motsats till fjärrmodulen, visas anslutningen av vädersensorer - en barometer och en intern temperatur-fuktighetssensor. Du bör vara uppmärksam på strömledningarna - displayerna drivs av en separat 5 V stabilisator typ LM1085. Det är också naturligt att driva klockdisplayerna från den, men i det här fallet måste klockkontrollen också drivas från samma spänning och genom 5 V-utgången, och inte Vin (för Mini Pro kallas den senare RÅ). Om du driver klockkontrollern på samma sätt som Nano - med 9 volt genom RAW-utgången, kommer dess interna regulator att komma i konflikt med de externa 5 volten, och i denna kamp kommer naturligtvis den starkaste att vinna, det vill säga LM1085 , och Mini kommer att förbli helt utan ström. För att undvika alla möjliga problem, innan du programmerar Nano och speciellt Mini (det vill säga innan du ansluter USB-kabeln), bör den externa adaptern kopplas bort.

På stabilisatorn LM1085, när alla fyra bildskärmar är anslutna, kommer ungefär en watt effekt att släppas, så den bör installeras på en liten radiator på cirka 5-10 cm2 från ett hörn av aluminium eller koppar.

Mottagning och bearbetning av data. Här återger och kommenterar jag endast programfragmenten relaterade till vinddata, om andra sensorer några ord senare.

För att ta emot ett meddelande på 433 MHz-kanalen använder vi standardmetoden som beskrivs i många källor. Vi kopplar ihop biblioteket och deklarerar variabler:

#omfatta . . . . . involt; //batterispänning i den villkorade helkoden float batt; //verkligt värde - batterispänningsbyte wDir; //riktning i grå kod uint16_t t_time = 0; //mottagningstidsintervall char str; //sträng för data uint8_t buf; //variabel för mottaget meddelande uint8_t buflen = VW_MAX_MESSAGE_LEN; // max längd på mottaget meddelande. . . . .
Det finns en egenhet med storleken på buffertbufferten: det räcker inte att deklarera dess värde (VW_MAX_MESSAGE_LEN) en gång i början av programmet. Eftersom denna variabel visas som referens i mottagningsfunktionen (se nedan), måste standardmeddelandestorleken uppdateras varje cykel. Annars, på grund av mottagningen av korrupta meddelanden, kommer värdet av buflen att förkortas varje gång, tills du börjar få nonsens istället för data. I exemplen deklareras vanligtvis båda dessa variabler lokalt i loop()-loopen, så buffertstorleken uppdateras automatiskt, men här kommer vi helt enkelt att upprepa tilldelningen av det önskade värdet i början av varje loop.

I installationsproceduren gör vi följande inställningar:

Void setup() (fördröjning (500); //för att stänga av visar pinMode(16,INPUT_PULLUP); //pin för knapp vw_setup(1200); //VirtuWire anslutningshastighet vw_set_rx_pin(17); //A3 VirtualWire-mottagarens pin. ....
Innan något accepteras kontrolleras tidsintervallet t_time som har förflutit sedan den senaste mottagningen. Om det överskred rimliga gränser (till exempel 48 sekunder - tre gånger upprepningstiden för meddelanden från den externa enheten), så uppfattas detta som en förlust av sensorn och indikeras på något sätt på displayen:

Void loop() ( vw_rx_start(); // Redo att ta emot buflen = VW_MAX_MESSAGE_LEN; // buffertstorlek varje gång på nytt if ((int(millis()) - t_time) > 48000) // om t_time inte har uppdaterats för mer än 48 sekunder (<отображаем прочерк на дисплее>)//end sensor not found if (vw_have_message()) ( //vänta på mottagning if (vw_get_message(buf, &buflen)) // Om data tas emot ( vw_rx_stop(); //sluta ta emot ett tag t_time = millis( ); / /update 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> . . . . .
Koefficient 55,5 - omvandling av värdet på ADC-koden till verklig spänning, dess värde beror på referensspänningen och värdena för delningsmotstånden.

Förresten har Gray-koden en funktion: bitarnas ordning är oviktig i den, koden behåller alla sina egenskaper för varje permutation. Och eftersom vi fortfarande betraktar varje fall separat här vid avkodning, kan bitarna betraktas i valfri ordning och till och med förväxlas när de är anslutna. Det är en annan sak om de på något sätt ville effektivisera den här saken - till exempel skapa en rad riktningsvärden ("s", "ss", "sz", "ssz", "z", etc.), och istället av individuell hänsyn extraherar varje variant beteckningar efter nummer i denna array. Då skulle man behöva konvertera Gray-koden till ordnad binär, och bitarnas ordning skulle spela en betydande roll.

Och slutligen extraherar vi hastighetsvärdet och stänger alla uttalanden:

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(); . . . . .
Här är 10+0,5*wFrq kalibreringsekvationen. 10 dm/s (dvs. 1,0 meter per sekund) är starttröskeln och 0,5 är konverteringsfaktorn för frekvens till hastighet (i dm/s). Med ett nollvärde på ingångsfrekvensen ger denna ekvation 10 dm / s, därför bör särskild försiktighet iakttas för att visa inte 1 m / s, utan ett nollvärde. Du kan kalibrera hastighetssensorn med någon av de billigaste handhållna vindmätarna och en stationär fläkt. Försök inte bestämma starttröskeln experimentellt - det blir mycket mer exakt om du markerar två eller tre punkter på den räta kalibreringslinjen för hastigheten V från frekvensen F: V = Vp + K × F vid olika flödeshastigheter, då starttröskeln kommer att bestämmas automatiskt som värdet Vp (ordinatan för punktskärningen av denna linje med hastighetsaxeln).

Det finns ytterligare en sak att göra innan du stänger huvudslingan. Vi har batterispänning, men du behöver inte visa den hela tiden - ta bara upp plats. För detta behövs knappen Kn1 - genom att klicka på den ersätter vi tillfälligt (tills nästa datauppdatering) den externa temperatur-fuktlinjen med spänningsvärdet:

If (digitalRead(16)==LOW)( //-knappen nedtryckt<выводим напряжение на дисплей, затирая значение температуры-влажности>)//slutknappsfördröjning(500); )//slutslinga
Jag hade en knapp, som kan ses av diagrammet, med en växlingskontakt, men ingenting hindrar mig från att installera en vanlig med en stängande, koppla den till ström genom ett motstånd. Du kan också lägga till att symbolerna blinkar på displayen ifall batterispänningen sjunker under till exempel 10 volt, som ett tecken på att det är dags att byta den.

Sammanfattningsvis om vädersensorer. SHT-75 användes som en utomhussensor - den enda amatörsensorn jag hittade som inte kräver kalibrering och visar verkliga värden för temperatur och luftfuktighet direkt ur lådan (därav dess höga pris).

Ett bibliotek för att ansluta den finns.

SHT-75 är designad på ett ganska dumt sätt: brädans metallsubstrat leder värme mycket bra, så det måste tas ut helt ur höljet. Annars är närvaron av endast en ATmega328-kontroller med en strömförsörjningsregulator i ett stängt hölje tillräckligt för att värma sensorn ett par grader genom kortets substrat även om dess huvud flyttas utanför. Min krets med vindsensorer, med sina strömmar på 20-130 mA (även om strömmen är försumbara millisekunder) värmde upp SHT-75 grader med fem, så den togs ut och installerades separat på en plastplatta som stack ut ur höljet i sidled .

Data från SHT-75 tas av samma styrenhet som data från vindsensorerna och skickas från fjärrmodulen i ett paket via en 433 MHz trådlös kanal. De konverteras också till en 4-byte-sträng för försändning.

För att mäta temperatur och luftfuktighet inne i rummet valdes den banala DHT-22 - eftersom räckvidden där är liten jämfört med gatan spelar det ingen roll vilken sensor som ska användas (förutom förstås DHT-11, som inte ska användas överhuvudtaget under alla omständigheter, för det avsedda syftet, det är helt enkelt obrukbart). Temperaturen på DHT-22 korrigerades enligt mätningar med en kvicksilvertermometer (de sammanföll helt med SHT-75!), och luftfuktigheten justerades något i jämförelse med SHT-75. Korrigeringar läggs in strax före indikeringen på displayen.

Förresten, DHT-22 måste också tas bort från fodralet med displayer - annars kommer den oundvikligen att värmas upp och ligga. Jag fixerar det på ett plastfäste i botten av fodralet, på ett avstånd av tio millimeter från det. Denna omständighet är förresten, som jag misstänker, en av anledningarna (bortsett från bristen på individuell kalibrering) till att alla hushållsväderstationer av märket RST och Oregon skamlöst ligger i sina avläsningar och har en spridning även med sig själva (en intern sensor med en extern) på två eller tre grader och upp till tio procents luftfuktighet.

Barometer ger inga problem, eftersom nästan alla kommersiellt tillgängliga görs på samma grund - BMP180 mikroelektromekaniska (MEMS) chip eller dess modifieringar. Min personliga erfarenhet av den mindre vanliga LPS331AP-baserade varianten var negativ: ett bibliotek för det är svårare att hitta, och till råga på det hittades en konflikt med andra enheter på I2C-bussen. Barometeravläsningarna kan behöva justeras på installationsplatsen - var 10-12 meters höjd över havet minskar trycket med 1 mm Hg. Konst. Därför kommer ett visst värde att behöva subtraheras från avläsningarna (eller adderas) så att tryckvärdet motsvarar avläsningarna från den officiella väderstationen i området.

Jag ger inte alla program från väderstationen i sin helhet - de är ganska besvärliga, och du kommer fortfarande inte att kunna upprepa designen en-mot-en. Om något, knacka på PM.

UPD daterad 30/06/17. Installerad solenergi. Kit härifrån:
solpanelen
kontroller
batteri
Allt tillsammans + leverans i Moskva inom 2,5 tyr. Fungerar felfritt.
En intressant metod för att beräkna effekten av ett solbatteri och ett batteri, som erbjuds av konsulter från denna sida. Ett exempel på en beräkning för 3 W strömförbrukning (jag har mycket mindre), jag citerar:
"3W gånger 24h och dividerat med 6 = 12Ah är den lägsta batterikapaciteten
3W multiplicerat med 24h och dividerat med 3h = 24W är solbatteriets lägsta effekt.
Inga kommentarer.
I mitt fall är den resulterande kapaciteten hos solkraftverket tio gånger högre än vad som krävs under de värsta väderförhållandena. Därför, i sensorstyrenheten, kan du inte bry dig så mycket om energibesparing och använda alla nödvändiga avläsnings- och medelvärdesfrekvenser.

UPD daterad 09/13/18. Under nästan två säsonger avslöjades stationens styrkor och svagheter. De svaga är, för det första, att avläsningarnas uppdateringscykel på 16 sekunder (av fyra mätserier), som den var ursprungligen, är för lång. Installationen av ett solbatteri med ett buffertbatteri gjorde det möjligt att inte tänka på energibesparing och leka med cykeltiden. Som ett resultat sattes cykeln till 8 sekunder (fyra mätningar på två sekunder).
Av de mekaniska förbättringarna introducerades ett solidt axiallager under spetsen av hastighetssensorn (ja, jag varnades för dess behov då, men jag kom inte på hur jag skulle göra det då). Efter en tid skar sensorns axel helt igenom det fluoroplastiska stödet och starttröskeln ökade kraftigt (förresten, detta påverkade inte väderflöjelns känslighet alls). Därför ersattes stödet med ett axiallager av rostfritt stål, i vilket en liten urtagning gjordes med en tunn borr. Jag har en aning om att jag senare måste komma på något annat med spetsen, som liksom hela axeln är gjord av duraluminium. Men jag sköt upp det till det ögonblick då sensorn fortfarande skulle behöva göras om: laserskivan, tagen som grund för designen, blev grumlig av solen på två säsonger och började spricka.

UPD daterad 06/05/19.
Om ändringen av sensorn (väderflöjeln lämnade densamma). Hastighetssensorn fick göras om både på grund av den slitna axeln och på grund av laserskivan som blivit oanvändbar. Grunddesignen är densamma, men den nya laserskivan är spraymålad med guldfärg. Lösningen för axelspetsen hittades i följande form. I duralumin-axeln borrades ett urtag exakt i mitten, och ett 3 mm snitt av toppen av en kinesisk kran sattes in där på ett andra lim. Toppen av kranen är en välcentrerad kon med en vinkel på ca 70-80 grader, den polerades dessutom med nollsandpapper och sedan med GOI-pasta. Som bas använde jag huvudet på en rostfri M3-skruv med ett sågat spår, där en liten fördjupning är markerad i mitten med en vanlig borr D = 2 mm. Denna skruv skruvades direkt in i ett urtag i PTFE, genomsågad av axeln innan centreringen säkerställdes.
Axelspetsen smordes med grafitfett för att skydda mot korrosion (eftersom kranens rostfria egenskaper är okända för mig). Efter lite slipning minskade starttröskeln så mycket att det blev omöjligt att mäta den med en proprietär vindmätare, där tröskeln är cirka 0,3-0,5 cm/s. Enligt indirekta data (genom att konstruera en rät linje från två punkter) accepterades frivilligt ett tröskelvärde på 0,3 m/s, även om det troligen är något lägre.

Den huvudsakliga förändringen i beräkningsalgoritmerna gäller även vindsensorerna, och jag tyckte det var användbart att lägga in detta i .


Vindarna sträcker sig från lätta vindar till plötsliga, byiga stormar som leder till förstörelse och död. De starkaste vindarna är orkaner. Dessa orkankraftiga vindar bildas över hav i tropikerna när enorma luftmassor sugs in i områden med lågt tryck. Stormmoln cirklar ofta i mitten (eller ögat) av en orkan i hastigheter som är snabbare än ett järnvägståg.

Du kanske aldrig har upplevt orkanvindar, men var du än bor har du förmodligen upplevt både lugna och blåsiga dagar. Gör en vindmätare, det enklaste instrumentet för att mäta vindhastighet, och registrera vindstyrkan i ditt område på en blåsig dag.

Du kommer behöva:

Tjock tränål
tunna trästänger
rep och lod
kopp yoghurt
självhäftande tejp (vattentät)
häftstift
färgad kartong
kopparrör
lim
sax

1. Ta en tjock trästift och sätt in den ordentligt i kopparröret. Detta kommer att vara vindmätarstativet.

2. Be en vuxen hjälpa till att borra ett hål genom stativet. Hålets diameter ska motsvara tjockleken på en av de tunna stängerna. Gör en skåra i ena änden av denna tunna stav. Sätt in den i ställningen och fäst den som bilden visar.

3. Klipp ut pilspetsen och fletchen från kartong och fäst den i ändarna av en tunn stång.

4. Klipp ut en kvartscirkel från färgad kartong och fäst den på pilen med tejp.

5. Ta ett stort glas yoghurt. Limma fast den i ena änden av den andra tunna trästaven.

6. Låt en vuxen hjälpa dig att borra ett litet hål i den andra änden av den andra stången, nåla eller spika den sedan på toppen av stolpen. Se till att stången är fri att rotera.

7. Välj en lämplig plats för utomhusobservation. Kör ner ett kopparrör i marken och sätt sedan in en stolpe i den. Fäst ställningen i önskad position med hjälp av häftstiftet. Installera stativet strikt vertikalt, häng ett lod mot pilen (du kan använda en mutter som ett lod). Lödlinjen ska hänga strikt parallellt med stativet.

Vinden vrider vindmätarnålen så att den pekar åt det håll som vinden blåser.
Yoghurtkoppen och stjälken kommer att stiga upp med det. Ju starkare vinden är, desto högre stiger pekstaven.

Beaufort skala

Detta är en skala för att mäta vindhastighet, som är baserad på observationer av naturen. Vågen uppfanns av den engelske amiralen Sir Francis Beaufort för nästan 200 år sedan.

Vindhastigheten på väderkartor indikeras av antalet streck på vindkraftsikonen.

Vindhastighet Verbal karaktäristik Tecken på uppskattning av vindhastighet
Fröken km/h Göra
Beaufort
0,0-1,5 0,0-1,8 0 Lugna Röken stiger vertikalt eller nästan vertikalt, löven är orörliga
0,6-1,7 1,9-5,1 1 Stilla vind Vindens riktning bestäms av röken
1,8-3,3 5,2-11,7 2 Lätt vind Vindens rörelse känns av ansiktet, löven prasslar
3,4-5,2 11,8-18,7 3 svag vind Löv och tunna trädgrenar vajar ständigt, vinden viftar med ljusflaggor, havet är täckt av en kontinuerlig ljusvåg.
5,3-7,4 18,8-26,6 4 måttlig vind Vinden väcker damm, sätter igång de tunna trädgrenarna, på separata vågor verkar ibland vita, snabbt försvinnande "lamm"
7,5-9,8 26,7-35,3 5 Frisk bris Tjocka grenar av träd vajar; "lamm" syns på varje våg
9,9-12,4 35,4-44,0 6 Stark vind Tjocka trädgrenar vajar, telegraftrådar surrar, "lamm" på vågorna är längre (5-10 sek.)
12,5-15,2 44,1-54,7 7 stark vind Trädens toppar svajar, stora grenar böjer sig, det är obekvämt att gå mot vinden. Skummande vågor på havet
15,3-18,2 54,8-66,0 8 Mycket hård vind Vinden bryter tunna grenar och torra grenar av träd, vilket gör det svårt att flytta
18,3-21,5 66,1-77,5 9 Storm Vinden slår ner skorstenar och takpannor. Det är väldigt svårt att gå mot vinden.
21,6-25,1 77,6-90,2 10 Kraftig storm Betydande förstörelse, träd rivna upp med rötterna
25,2-29,0 90,3-104,4 11 Våldsam storm Stor förstörelse: slå ner telegrafstolpar, vagnar
Över 29,0 Över 104,4 12 Orkan Förstör hus, orsakar stor förstörelse

Min nya vindmätare. Vindmätaren visade sig inte vara liten, generatorn är skiva, skruvens diameter är 0,5 m. Vindmätaren är av horisontell typ med en sexbladig propeller. Artikeln innehåller en detaljerad beskrivning med foton och videor

Ny artikel om ämnet + foto och video - Vindmätare android + mikrofon

Till slut kom det till vindmätaren. Efter att redan ha gjort tre vindkraftverk vet jag fortfarande inte exakt vilken vind och hur mycket mina väderkvarnar ger. Nu finns det bara en vindgenerator i drift, min mest framgångsrika, även om det hela är monterat "på knäet". Jag föreställer mig ungefär vindens styrka och kan skilja mellan en vind på 5 m/s och 10 m/s, men ändå vill jag veta vindhastigheten mer exakt för att kunna bestämma kraften hos vindgeneratorn.

I flera dagar, då och då, tänkte jag göra en vindmätare av något, men hittills har det inte dykt upp något vettigt från skräpet som finns hemma. Jag hittade två små motorer från en DVD-spelare, men de är smärtsamt små och det är svårt att hitta blad för ett tunt skaft.

En bilfläkt fångade mitt öga, de är vanligtvis installerade i lastbilar. Det var den jag torterade honom. Demonterade och tog bort motorn. Jag bröt bladen från propellern och bara basen återstod - den centrala delen, som sätts på axeln. Sedan tänkte jag på vilka blad jag skulle fästa på den, jag provade botten på plastflaskor och burkar, men jag gillade inte allt detta.

Sedan hittade jag en bit PVC-rör med en diameter på 5 cm och en längd på 50 cm. Jag gjorde 4 blad av det, skar bara röret på längden i två halvor, och halvorna, var och en i två delar, blev 4 blad. I basen, som återstod från den ursprungliga skruven, borrade jag 4 hål för att fästa bladen och gjorde även 4 hål i bladen. Han vred det hela till bultar och fick en fyrbladig propeller - savonius (den första "seriösa" vertikalen).

Nåväl, då hittade jag ledningarna med den nödvändiga längden, skarvade 5 meter antennkabel och 8 meter av den vanliga. Jag anslöt omedelbart ledningarna för att mäta parametrarna med hänsyn till trådens längd, eftersom data kan skilja sig åt om mätningar görs på en mättråd eller på 13 m.

Sedan hittade jag en bit av ett metallrör ca 80-90 cm långt, böjde den med bokstaven Z och lindade motorn. Detta rör kommer att fästa vindmätaren på masten. Det är inget komplicerat, du kan använda vilket material som helst.

Nåväl, när jag monterade vindmätaren helt, installerade jag den på min motorcykel för att kalibrera den. Nedan på bilden kan du se hur det gjordes, allt är primitivt och enkelt. På primaternas spegel med elektrisk tejp fixade en tvålmätare i allmänhet på något sätt allt för att befria mina händer för att styra motorcykeln.

Denna höstdag är mycket framgångsrik på grund av den nästan fullständiga frånvaron av vind, som förresten fungerade som en snabb montering av vindmätaren, en sådan dag borde inte försvinna. Jag ville inte gå på asfalten, för med en obegriplig grej framför motorcykeln skulle jag dra till mig uppmärksamhet, så jag bestämde mig för att åka genom fälten längs skogsplantagerna.

Jag cyklade fram och tillbaka och åt olika håll och spelade in multimeterns avläsningar på telefonen i olika hastigheter. Vindmätaren startade i en hastighet av 7 km/h, och jag rullade gradvis fram och tillbaka i olika hastigheter från 10 km/h och max 40 km/h, det var möjligt mer, men grusvägarna är väldigt ojämna och du kan accelererar inte mycket.

>

Efter pokatushek drogs sådana uppgifter. Multimetern visade vid 10km/s =0,06V, vid 20km/h=0,12V, vid 30km/h=0,20V, vid 40km/h=0,30V.

Sedan, med hjälp av en miniräknare, beräknade jag avläsningar för mellanliggande vindhastigheter.

Volt - vindhastighet m/s.

Data över 11 m/s beräknades genom att på ett papper rita en graf över spänningstillväxt beroende på vindhastighet, som mjukt fortsatte till 15 m/s. Samma dag, eller snarare på kvällen, installerade jag en vindmätare på masten till vindgeneratorn. Han sänkte väderkvarnen och knöt fast vindmätaren nedanför. Jag drog tillfälligt röret på en tråd och lindade det ytterligare med eltejp, det visade sig vara starkt. Nåväl, då lyfte jag det hela på plats och nu sitter det en vindmätare på masten bredvid vindgeneratorn som startar på 3 m/s och regelbundet visar vindhastigheten.

>

>

Nedan på bilden finns ett redan upphöjt vindkraftverk med fast vindmätare. Jag tog inte bilder mer i detalj, eftersom det inte är något komplicerat där, och det finns inget att upprepa. En vindmätare kan monteras av vad som helst, från nästan vilken motor som helst. Naturligtvis är det bekvämare att kalibrera med bil. Där och bekvämt, och bekvämare, och hastighetsmätaren är mer exakt. Men jag bestämde mig för en motorcykel, och det verkade också gå bra, hoppas om hastighetsmätaren ljuger, då inte så mycket.

>

Det var allt för nu, det här är den första versionen av denna vindmätare, och jag tror inte den sista. Under tiden väntar jag på vinden och får reda på vad min vindgenerator ger. Tja, jag kommer att komplettera den här artikeln med dessa data. Kanske behöver något göras om...

Tillägg

Det blåste och jag testade vindmätaren. De första observationerna av vindstyrkan och generatorns amperemeter visade tydligt hur instabil vinden var. Här nere, eftersom masten inte är hög, består den huvudsakligen av korta vindbyar, vars varaktighet inte överstiger två eller tre sekunder, och på några sekunder kan vinden variera kraftigt.

En olastad vindmätarskruv reagerar skarpt på varje vindby och förändring i vindhastighet. Och den laddade skruven i denna vindgenerator är fortfarande sen i reaktioner, och på grund av detta, icke-synkrona data i avläsningarna. Idag är vinden 3-7 m/s, vindmätaren fångade verkligen ett par vindbyar upp till 10 m/s, men de varade mindre än en sekund och vindgeneratorn kunde helt enkelt inte svara på dem.

Efter en tids observation drogs några medelvärden av strömstyrkan från vindgeneratorn vid en viss vind. Skruven startar från 3,5-4 m/s, laddning 0,5A vid 4m/s, 1A vid 5m/s, 2,5A vid 6m/s, 4A vid 7m/s, 5A vid 8m/s. Dessa data är medelvärde, eftersom amperemetern är analog stot, och jag kan ha fel upp till 0,5A i strömavläsningarna från vindgeneratorn.

Det borde ha varit något sånt här

Tillverkningssteg för själva sensorn:

Fallet gjorde så här: jag tog en bit av ett fyrkantsrör och skar ett fönster i det så att jag senare kunde montera fyllningen genom det (förresten, jag skar ut fönstret med temperaturen, men jag ville verkligen göra det att jag reste mig och gick för att såga). Sedan svetsade jag en platta inuti (inre lagerhållare), svetsade sedan botten (nedre lagerhållaren). När jag bestämde mig för att göra toppen bestämde jag mig för att göra ett sadeltak - för detta skar jag ut fyra trianglar och tog försiktigt tag i det och kokade det sedan helt och gjorde ett spetsigt visir. Sedan klämde han fast det i ett skruvstäd och med en borr 0,5 mm mindre än lagrets diameter borrade han ett vertikalt hål i det nedre locket och i de mittersta, båda för lager. Så att lagren av stål med en sträckning justerades med ett svep. Lagren sitter som de ska. Sedan satte han in en lätt polerad 100-ku spik i dem, samtidigt som han satte en plastbricka med 4 slitsar på i mitten av fönstret. Jag klippte en gänga på spikens botten och skruvade fast impellern på den.

Jag gjorde impellern enligt följande: Jag svetsade tre spikar till muttern med en elektrod med en deuce, skar dem sedan av och skar gängorna i vars ändar jag skruvade halvorna från kulan.

En hexagonal stavhållare i rostfritt stål svetsades fast på kroppen. Själva fodralet målades med vit emalj två gånger, för att det definitivt inte skulle rosta.

Jag bestämde mig för att inte uppfinna en cykel, men för att göra det som i en datormus finns det en plastbricka med fyra spår på rotationsaxeln, när pumphjulet snurrar snurrar det och brickan flimrar över sensorn, som är fäst till frontluckan och när locket skruvas så blir det liksom en gång så att slitsbrickan roterar och ljusflödet från lysdioden till fototransistorn kliver in och ut. Det är allt ... här har du impulser, och de kan räknas och har antalet varv per sekund.

Leddiodno - fototransistorsensor utdragen ur skrivaren, det finns sådana i bulk.

Först gjord av tennisbollar

Jag var tvungen att ändra enheten något. På pumphjulet från tennisbollar startade han med en vind på 5m/s. bollar köptes i en leksaksaffär för barn med en diameter på 55 mm. Börjar i 2m/s och mäter upp till 22m/s, jag har fått nog.

Efter att sensorn var klar. Vi var tvungna att göra elektronik.

Det första alternativet var hemmagjord LUT-teknik + en grön mask från Kina, torkar under ultraviolett ljus.

55 på bilden är varv per sekund. Det var nödvändigt att på något sätt översätta till m / s. Jag tänkte länge hur, jag fick till och med två vindmätare, gamla från Sovjetunionen och kinesiska för $ 50, men det fanns problem med verifieringen, eftersom vinden är byig och inte blåser stabilt.

Därför kom jag på det här: på en ledig dag hittade pappa och jag 2 km av en platt väg utanför stan utan bilar, utan vind och plantering av träd på båda sidor (pappa körde och jag satt halvvägs utanför fönstret) och låt oss köra fram och tillbaka. Först ställde jag upp USSR cue och kinesiska vindmätare, jag såg till att de båda visar samma och korrekt, för om du delar hastigheten på bilens hastighetsmätare med 3,6 så får du siffran som vindmätarna visade i m / s. Pappa körde i samma hastighet och instrumenten visade samma vind. Så här testade jag min enhet. Pappa lade till +5 km i timmen varje gång, och jag skrev ner en ny indikator (rpm). Mätningar gjordes tre gånger. När vi körde över 80 km/h (22 m/s) kunde inte min vindmätare snurra upp längre och figuren frös, eftersom den inte mäter mer än 22 m/s....

Kineserna visade förresten upp till 28m/s. USSR cue upp till 20m/s. När jag installerade det på en plats med ett modifierat program, kollade jag återigen med kineserna att allt kom ihop.

Nu modifieras den för Arduino.

Planerna är att skruva in detta i det smarta hemsystemet så att du kan gå in och hantera belastningarna i huset från din smartphone, titta på temperaturen i huset (detta är relevant för mig, det är bara så att ibland stängs gasen av i vintern och det är bra att se vilken temperatur) kommer det att finnas en gassensor, och plus att det kommer att visas vindhastigheten nära huset.

Video av arbete

Resultat av arbete för vintern

s-st --- timmar för vintern
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


Enligt resultaten för två vintrar såg jag att mina vindar inte var starka och väderkvarnen inte skulle vara effektiv, så jag gjorde en liten med 50 cm blad. toppeffekt på 150 watt. Jag såg bara till att minst en ekonomisk glödlampa lyste när ljuset försvinner.

Nu lite om Arduino.

Jag hittade ett diagram över musen på Internet, det visar tydligt hur mitt system fungerar.

Utifrån musdiagrammet gjorde jag följande schema.

Impulserna kommer från fototransistorn till Arduino, och den uppfattar dem som knapptryckningar.

Algoritmen för programmet är som följer: Vi överväger hur många knapptryckningar som skedde på en sekund, så vi har rotationsfrekvensen. För att konvertera denna frekvens till m/s. När jag gjorde det på Atmel gjorde jag en algoritm för att beräkna frekvensen i m/s. Det såg ut så här:

ob_per_sec=0; // Variabel där frekvensen av varv per sekund faller.

int hastighet_vind=0; // Värdet kommer att gå hit efter att frekvensen har konverterats till m/s.

int speed_wind_max=0; // Det maximala värdet för vindavläsningen m/s går här.

int hastighet_vind_2=0; // Antal sekunder sedan programmets start med en vindhastighet på 2 m/s.

int speed_wind_3=0; // Antal sekunder sedan programmets start med en vindhastighet på 3 m/s.

int speed_wind_4=0; // Antal sekunder sedan programmets start med en vindhastighet på 4 m/s.

int speed_wind_5=0; // Antal sekunder sedan programmets start med en vindhastighet på 5 m/s.

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

int speed_wind_22=0; // Antal sekunder sedan programmets start med en vindhastighet på 22 m/s.

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

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

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

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

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

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

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

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

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

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

if (hastighet_vind> hastighet_vind_max)( hastighet_vind_max = hastighet_vind ;)// kontrollera och skriv över om maxvärdet är större än det föregående som skrevs.

Och visa värdet.

Vid behov kan du sedan se hur många minuter vinden blåste med en viss hastighet, för detta måste du visa variabeln (med nödvändig hastighetsindex) speed_wind_№ (men dividera den med 60 för att få minuter.).

Jag gjorde detta i mitt program: när en viss knapp trycks in visas alla variabler i tur och ordning, från hastighet_vind_1 till hastighet_vind_22.

Läser in...Läser in...