Innehållsförteckning:

En självhållen dataloggmätare: 11 steg (med bilder)
En självhållen dataloggmätare: 11 steg (med bilder)

Video: En självhållen dataloggmätare: 11 steg (med bilder)

Video: En självhållen dataloggmätare: 11 steg (med bilder)
Video: How To Speak Confidently With Seniors?| Overcoming Fear Of Publc Speaking | Dr. Vivek Modi 2024, November
Anonim
En självhållen dataloggmätare
En självhållen dataloggmätare

Jag älskar att samla in och analysera data. Jag älskar också att bygga elektroniska prylar. För ett år sedan när jag upptäckte Arduino -produkterna tänkte jag genast: "Jag vill samla in miljödata." Det var en blåsig dag i Portland, OR, så jag bestämde mig för att fånga vinddata. Jag tittade på några av instruktionerna för vindmätare och fann dem ganska användbara, men behövde göra några tekniska förändringar. Först ville jag att enheten skulle köra fristående, utomhus, i en vecka. För det andra ville jag att det skulle kunna spela in väldigt små vindbyar, flera av mönstren här krävde ganska kraftiga vindar för att komma igång. Slutligen ville jag spela in data. Jag bestämde mig för att gå efter en riktigt lätt rotordesign med så lite tröghet och motstånd som möjligt. För att åstadkomma detta använde jag alla plastdelar (inklusive gängade vinylstavar), kullagerlänkar och optiska sensorer. Andra konstruktioner använde magnetiska sensorer eller faktiska likströmsmotorer, men båda saktar ner rotorn, optiken använder lite mer effekt men erbjuder inget mekaniskt motstånd. Dataloggern är helt enkelt en Atmega328P med ett 8 mbit flash -chip. Jag tänkte gå SD, men jag ville hålla kostnaden, strömförbrukningen och komplexiteten låg. Jag skrev ett enkelt program som loggade två-bytes rotation räknar varje sekund. Med 8 megabit tänkte jag att jag kunde samla in ungefär en veckas data. I min ursprungliga design tänkte jag att jag skulle behöva 4 C -celler, men efter en vecka var de fortfarande fulladdade så jag måste ha varit av med en storleksordning i strömförbrukningen. Jag använde inte linjära regulatorer, jag körde alla spänningsskenor till 6V (även om några av delarna fick 3,3V. Yay överdesign!). För att ladda ner data hade jag ett komplext system som läste blixten och dumpade den till den arduino seriella bildskärmen, och jag klippte och klistrade in i Excel. Jag ägnade inte tid åt att försöka ta reda på hur jag skulle skriva en kommandorads USB -app för att dumpa blixten till standard, men någon gång måste jag räkna ut det här. Resultatet var ganska överraskande, jag kunde observera några mycket intressanta trender, som jag sparar för en annan rapport. Lycka till!

Steg 1: Bygg rotorn

Bygg rotorn
Bygg rotorn
Bygg rotorn
Bygg rotorn

Jag provade ett antal olika idéer för rotorkopparna: påskägg, pingisbollar, plastmuggar och tomma julgransprydnadsbollar. Jag byggde flera rotorer och testade dem alla med en hårtork, vilket gav en rad vindhastigheter. Av de fyra prototyperna fungerade prydnadsskal bäst. De hade också dessa små flikar som underlättade fästningen och var gjorda av en styv plast som fungerade bra med polykarbonatcement. Jag försökte några olika axellängder, små, medelstora och stora (ca 1 "till ca 6") och fann att de större storlekarna vridade för mycket och inte svarade bra på låga vindhastigheter, så jag gick med de små axlarna. Eftersom allt var klart plast gjorde jag en praktisk liten utskrift för att hjälpa till att tända de tre bladen. Material: Ornamenten kom från Oriental Trading Company, artikeln "48/6300 DYO CLEAR ORNAMENT", $ 6 plus $ 3 frakt. Plastaxlarna och konstruktionsskivan kom från en lokal TAP Plastics -butik, cirka $ 4 mer i delar.

Steg 2: Bygg den övre basen

Bygg den övre basen
Bygg den övre basen
Bygg den övre basen
Bygg den övre basen

För att minska rotationsströgheten använde jag en gängad nylonstång från McMaster Karr. Jag ville använda kullager, men maskinlagren är förpackade i rotorsänkande fett, så jag köpte några billiga skateboardlager som inte hade några. De råkade bara passa in i CPVC innerdiameter 3/4 "röradapter.. Det var inte förrän jag monterade strukturen som jag insåg att skridskolagren hanterar plan last, och jag applicerade vertikal belastning, så jag borde ha använt ett propellerlager, men de fungerade alldeles utmärkt, och hjälpte förmodligen till att hantera friktion från vridmoment. Jag planerade att fästa en optisk sensor på botten av axeln, så jag monterade CPVC -kopplingen i en större bas. Home Depot är en rolig plats att blanda och matcha CPVC/PVC-beslag. I slutändan kunde jag stoppa den 3/4 "gängade CPVC-kopplingen i en PVC 3/4" till 1-1/2 "reducerare. Det krävdes mycket lek för att få allt att passa, men det lämnade tillräckligt med utrymme för elektronik. Material: 98743A235-Svart gängad nylonstång (5/16 "-18 gänga) 94900A030-Svart nylon sexkantmuttrar (5/16" -18 gänga) Billiga skateboardlager 3/4 "gängade CPVC-adapter 3/4" till 1 -1/2 "PVC -reducerare till gängat 3/4" rör Obs! PVC- och CPVC -kopplingsdimensioner är inte desamma, förmodligen för att förhindra oavsiktlig missbruk; så att byta i en vanlig PVC 3/4 "vanlig adapter fungerar inte, men trådarna på en gängad adapter är desamma, vilket är helt konstigt. CPVC -kopplingstrådarna i PVC -adapterbussningen. Adapter … bussning … koppling … Jag blandar nog ihop alla dessa termer, men 15 minuter i Home Depot VVS -gång kommer att göra dig rak.

Steg 3: Optisk avbrytare

Optisk avbrytare
Optisk avbrytare
Optisk avbrytare
Optisk avbrytare

När rotorn roterar, räknas dess rotation av en optisk avbrytare. Jag tänkte använda en skiva, men det innebar att jag måste fästa belysningskällan och detektorn vertikalt, vilket skulle vara mycket utmanande att montera. Istället valde jag ett horisontellt fäste och hittade några små koppar som går på botten av stolarna för att skydda trägolv. Jag målade och tejpade av sex segment, vilket skulle ge mig tolv (nästan) likformiga kanter, eller 12 fästingar per rotor av rotorn. Jag tänkte göra mer men var inte särskilt bekant med detektorns hastighet eller synfältet för dess optik. Det vill säga, om jag gick för smalt kan lysdioden krypa runt kanterna och aktivera sensorn. Detta är ett annat forskningsområde jag inte ägnade mig åt, men skulle vara bra att utforska. Jag limmade den målade koppen på en mutter och spände fast den i änden av axeln. Material: Stolsbenskyddskopp från Home Depot Black -färgen

Steg 4: Fäst rotorn

Fäst rotorn!
Fäst rotorn!

Vid det här laget började det se ganska coolt ut. Nylonmuttrarna är riktigt hala, så jag var tvungen att använda många låsmuttrar (om du inte märkte av de tidigare bilderna). Jag var också tvungen att göra en speciell plattnyckel för att passa in i locket under rotorn så att jag kunde låsa båda muttrarna.

Steg 5: Bygg den nedre basen

Bygg den nedre basen
Bygg den nedre basen
Bygg den nedre basen
Bygg den nedre basen

Den nedre basen rymmer batterierna och ger en stödstruktur. Jag hittade en ganska cool vattentät låda online från ett företag som heter Polycase. Det är ett riktigt smidigt hölje som tätar tätt, och skruvarna är bredare vid basen så att de inte lätt faller ur toppen. Jag använde en PVC -kompis till den övre PVC -bussningen. Denna nedre baskompis är bara en gängad 1-1/2 "PVC-koppling. Det övre rotorns bastryck passar in i den nedre basen via denna koppling. Som du kommer att se senare limde jag inte ihop dessa bitar för att jag ville kunna öppna den och göra justeringar om det behövs, plus montering är enklare vid montering av kretskort. Material: Vattentät låda från Polycase, artikel # WP-23F, $ 12,50 Gängad 1-1/2 "PVC-koppling

Steg 6: Bygg den optiska sensorn

Bygg den optiska sensorn
Bygg den optiska sensorn

Sensormekanismen är en 940nm LED och en Schmitt-trigger-mottagare. Jag älskar kärlek älskar Schmitt -utlösarkretsen, den tar hand om alla mina avstängningsbehov och skickar ut en CMOS/TTL -kompatibel signal. Enda nackdelen? 5V drift. Ja, jag körde över hela designen till 6V, men jag hade kunnat gå till 3.3V om det inte vore för den här delen. Tanken är att denna krets monteras under rotorkoppen, som avbryter strålen när den vänder och genererar logiska övergångar för varje kant. Jag har ingen bra bild av hur detta monterades. Jag limmade i princip två plastförskjutningar i den nedre basen PVC -koppling och skruvade in dem ovanifrån. Jag var tvungen att slipa ner brädans kanter för att få det att passa snyggt. Jag har inte ens en schematisk bild för det här, det är verkligen enkelt: kör bara ett 1k -motstånd från Vin och koppla upp det så att lysdioden alltid är på och detektorns utgång är på sin stift. Material: 1 940nm LED 1k motstånd 1 OPTEK OPL550-sensor 1 tre-stifts kontakt (hona) 1 1,5 "x1,5" kretskort Olika trådlängder Värmekrympande slangar om du gillar att dina ledningar buntas ihop

Steg 7: Bygg dataloggaren

Bygg dataloggaren
Bygg dataloggaren
Bygg dataloggaren
Bygg dataloggaren
Bygg dataloggaren
Bygg dataloggaren
Bygg dataloggaren
Bygg dataloggaren

Arduino -prototypkortet var för stort för att passa in i chassit. Jag använde EagleCAD för att lägga ut ett mindre kretskort och tappade bort ett enda lager … det finns fyra fula trådar som jag behövde för att överbrygga några luckor.

(Jag trodde att jag mätte detta med ~ 50mW driftseffekt, och baserat på batteriets wattimmar, trodde jag att jag skulle sjunka under 5V på en vecka, men antingen min effektmätning eller min matte var fel eftersom 4 C-celler hölls håller på länge.) Ganska enkel layout: bara en resonator, ATmega328, ett flashchip, en felsökningshoppare, en felsöknings -LED, strömförsörjningslock, och det är ungefär det. Det finns något som heter DorkBoard som jag också kunde ha använt, det är i princip allt som behövs för ett ATMega328 dev -kort i storleken på DIP -uttag. Jag övervägde att köpa en men min diskreta strategi var cirka 50% billigare. Här är länken till dorkboard:

Här är den grundläggande idén (källkoden kommer att inkluderas senare) hur kortet fungerar: Bygel inställd på "felsökning" -läge: koppla ett avbrott i ändringsvärdet till den optiska sensorutgången och blinka test-LED i samklang med detektorn. Detta var till stor hjälp för felsökning. Bygel inställd på "inspelning" -läge: anslut samma avbrott till en räknare och i huvudslingan, fördröj 1000 ms. I slutet av 1000 msek skriver du antalet kanträkningar till en 256-bytes blixtsida, och när sidan är full skriver du ut den och återställer räkningen. Enkelt, eller hur? Ganska mycket. Jag gillar verkligen Winbond -blixtenheterna, jag brukade designa blixt tillbaka på 90 -talet, så det var kul att programmera dem igen. SPI -gränssnittet är lysande. Så enkelt att använda. Jag låter schemat och källkoden tala för sig själva. Nämnde jag EagleCAD är fantastiskt? Det är det verkligen. Det finns några bra självstudier på YouTube.

Steg 8: Anslut elektroniken

Anslut elektroniken
Anslut elektroniken

Återigen, jag har inte många bra bilder här, men om du föreställer dig två plastavstånd som är limmade på insidan av PVC, skruvas båda brädorna i den. Här är ett skott av loggerkortet anslutet till botten. Detektorkortet är uppe i huset.

Steg 9: Kalibrering

Kalibrering
Kalibrering
Kalibrering
Kalibrering
Kalibrering
Kalibrering
Kalibrering
Kalibrering

Jag gjorde en testrigg för att kalibrera odjuret så att jag kunde konvertera råa rotorantal till MPH. Ja, det är en 2x4. Jag fäst vindmätaren i ena änden och en felsökning Arduio i den andra. LCD -skärmen visar rotorräkningarna. Processen gick så här: 1) Hitta en lång rak väg utan trafik. 2) Håll 2x4 så att den petar så långt ut genom fönstret som möjligt 3) Slå på röstinspelning på din iPhone eller Android 4) Slå på en digital GPS -hastighetsmätare på din valfria handhållna enhet 5) Kör stadigt i flera hastigheter och meddela till din inspelare räknas hastigheten och den genomsnittliga rotorn 6) Kraschar inte 7)? 8) Senare, när du inte kör, spela om ditt telefonmeddelande och ange data i excel och hoppas att en linjär eller en exponentiell eller ett polynom passar med ett R-kvadratvärde som är större än 99%. Denna konvertering # kommer att användas senare. Enheten fångar bara rådata, jag efterbehandlade den till MPH (eller KPH) i Excel. (Nämnde jag att jag applicerat en badass -olivfärg? Jag skulle ha kallat detta en "Tactical Data Logging Anemometer", men då kom jag ihåg att "Tactical" betyder "svart".)

Steg 10: Gå Samla lite vinddata

Gå och samla lite vinddata!
Gå och samla lite vinddata!
Gå Samla lite vinddata!
Gå Samla lite vinddata!
Gå Samla lite vinddata!
Gå Samla lite vinddata!

Det är i stort sett det. Jag tror att några bilder saknas, t.ex. inte visas är de fyra C-cellerna proppade i den nedre basen. Jag kunde inte passa en fjäderbelastad hållare så jag slutade med att lödkablar till själva batterierna. Jag skriver det här instruerbart ett år efter att jag byggde det, och i revision 2 använde jag AA -batterier eftersom jag överskattade kraftigt förbrukningen. Med hjälp av AA tillät jag att lägga till en på-av-omkopplare och frigjorde verkligen lite utrymme inuti, annars var det ganska tätt. Sammantaget var jag ganska nöjd med designen. Diagrammet nedan visar en veckas genomsnittliga data. Batterierna började dö på dag sju. Jag kunde ha förbättrat batteriets livslängd genom att köra lysdioden vid en lägre driftscykel på cirka 1 kHz och jag skulle inte ha tappat några kanter på grund av rotorns relativt låga vinkelhastighet.

Ha så kul! Låt mig veta om du ser något utrymme för förbättring!

Steg 11: Källkod

Bifogad är en enda Arduino -källfil. Jag GPL'd det för, hej, GPL.

EDIT: Jag skulle vilja påpeka att min implementering av att använda en 1s fördröjning () är en hemsk idé och i h Den tid som krävs för att skriva till blixten och läsa sensorn kan verka liten, men under 7 -10s ger det en betydande drift. Använd istället 1Hz timer -avbrott (Timer #1 på 328P kan kalibreras perfekt till 1Hz). För att vara säker bör du koda i ett staket om sidan skrivning och sensorläsning av någon anledning tar längre tid än 1 sekund (hantera tappade prover), men ett timeravbrott är sättet att göra saker som måste vara, ja, tid- exakt. Skål!

Rekommenderad: