Volledige DIY Raspberry Pi weerstasie met sagteware: 7 stappe (met foto's)
Volledige DIY Raspberry Pi weerstasie met sagteware: 7 stappe (met foto's)
Anonim
Voltooi DIY Raspberry Pi Weerstasie met sagteware
Voltooi DIY Raspberry Pi Weerstasie met sagteware
Voltooi DIY Raspberry Pi Weerstasie met sagteware
Voltooi DIY Raspberry Pi Weerstasie met sagteware

Einde Februarie het ek hierdie pos op die Raspberry Pi -webwerf gesien.

www.raspberrypi.org/school-weather-station-…

Hulle het Raspberry Pi -weerstasies vir skole geskep. Ek wou heeltemal een hê! Maar op daardie tydstip (en ek glo nog steeds dat dit tydens die skryf hiervan) nie publiek beskikbaar is nie (u moet in 'n geselekteerde groep toetsers wees). Wel, ek wou aangaan en ek was nie lus om honderde dollars uit te betaal vir 'n bestaande derdeparty -stelsel nie.

Dus, soos 'n goeie Instrueerbare gebruiker, het ek besluit om my eie te maak !!!

Ek het 'n bietjie navorsing gedoen en 'n paar goeie kommersiële stelsels gevind waarop ek myne kon baseer. Ek het 'n paar goeie instruksies gevind om te help met 'n paar van die Sensor- of Framboos -PI -konsepte. Ek het selfs hierdie webwerf gevind, wat vuil was, hulle het 'n bestaande Maplin -stelsel afgebreek:

www.philpot.me/weatherinsider.html

Ongeveer 'n maand vinnig vorentoe en ek het 'n basiese werkstelsel. Dit is 'n volledige Raspberry Pi Weather -stelsel met net die basiese Raspberry Pi -hardeware, kamera en 'n paar verskillende analoog en digitale sensors om ons metings te doen. U hoef nie voorafgemaakte windmeters of reënmeters te koop nie; ons maak ons eie! Hier is die kenmerke daarvan:

  • Teken inligting op na RRD en CSV, sodat dit gemanipuleer of uitgevoer/ingevoer kan word na ander formate.
  • Gebruik die Weather Underground API om koel inligting te kry, soos historiese hoogte- en laagtepunte, maanfases en sonsopkoms/sonsondergang.
  • Gebruik die Raspberry Pi -kamera om een keer per minuut 'n foto te neem (u kan dit dan gebruik om tydsverloop te maak).
  • Het webblaaie wat die data vir die huidige toestande vertoon en 'n paar historiese (laaste uur, dag, 7 dae, maand, jaar). Die webwerf -tema verander met die tyd van die dag (4 opsies: sonsopkoms, sonsondergang, dag en nag).

Al die sagteware om die inligting op te neem en te vertoon, is in 'n Github; ek het selfs foutopsporing gedoen, funksieversoeke ook:

github.com/kmkingsbury/raspberrypi-weather…

Hierdie projek was vir my 'n wonderlike leerervaring; ek moes regtig nadink oor die vermoëns van die Raspberry Pi, veral met die GPIO, en ek het ook 'n paar leerpynpunte bereik. Ek hoop dat u, die leser, kan leer uit sommige van my beproewinge.

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

Elektronika:

  • 9 Rietskakelaars (8 vir die windrigting, 1 vir die reënmeter, opsioneel 1 vir die windsnelheid in plaas van 'n saalsensor), ek het die volgende gebruik:
  • 1 Hall Sensor (vir die windsnelheid, 'n windmeter genoem) -
  • Temperatuur (https://amzn.to/2RIHf6H)
  • Humiditeit (baie humiditeitsensors het 'n temperatuursensor), ek het die DHT11 gebruik:
  • Druk (die BMP bevat ook 'n temperatuursensor), ek gebruik die BMP180, https://www.adafruit.com/product/1603, hierdie produk word nou gestaak, maar daar is 'n ekwivalent met die BMP280 (https://amzn.to/2E8nmhi)
  • Fotoresistor (https://amzn.to/2seQFwd)
  • GPS -chip of USB -GPS (https://amzn.to/36tZZv3).
  • 4 sterk magnete (2 vir windmeter, 1 vir rigting, 1 vir reënmeter), ek het die seldsame aardmagnete sterk aanbeveel (https://amzn.to/2LHBoKZ).
  • Ek het 'n handjievol verskillende weerstande, hierdie pakket wat mettertyd uiters handig geblyk het:
  • MCP3008 - om analoog na digitale insette vir die Raspberry Pi om te skakel -

Hardeware

  • Raspberry Pi - Ek het oorspronklik die 2 met 'n draadlose adapter gebruik, en ek kry nou ook die 3 B+ -stel met 'n kragadapter. (https://amzn.to/2P76Mop)
  • Pi -kamera
  • 'N Soliede 5V -stroomadapter (dit was pynlik irriterend, ek het uiteindelik die Adafruit -een gekry, anders trek die kamera te veel sap en kan/kan die Pi hang, dit is hier: https://www.adafruit.com/products /501)

Materiaal:

  • 2 Stootlagers (of skaatsplank- of rolskaats-laers sal ook werk), ek het dit op Amazon gekry:
  • 2 waterdigte omhulsels (ek het 'n elektriese omhulsel van die plaaslike groot bokswinkel gebruik), dit maak nie veel saak nie, ek moet net 'n goeie omhulsel vind wat genoeg ruimte sal hê en alles moet beskerm).
  • Sommige PVC -pyp- en einddoppe (verskillende groottes).
  • PVC -hakies
  • Paar velle dun plexiglas (niks te fancy nie).
  • plastiek afstande
  • mini -skroewe (ek het #4 boute en moere gebruik).
  • 2 Plastiek kersboomversiering - gebruik vir die windmeter, ek het myne by die plaaslike stokperdjie -lobby gekry.
  • Klein stokkie
  • Klein stukkie laaghout.

Gereedskap:

  • Dremel
  • Plakgeweer
  • Soldeerbout
  • Multimeter
  • Boor

Stap 2: Hoofbehuizing - Pi, GPS, kamera, lig

Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig
Hoofbehuizing - Pi, GPS, kamera, lig

Die hoofomhulsel huisves die PI, die kamera, die GPS en die ligsensor. Dit is ontwerp om waterdig te wees, aangesien dit al die kritieke komponente bevat, die metings van die afstandsbediening neem en dat die een ontwerp is om blootgestel te word/oop te wees vir die elemente.

Stappe:

Kies 'n omhulsel, ek gebruik 'n elektriese aansluitkas, verskillende projekbakke en waterdigte kaste werk net so goed. Die belangrikste punt is dat dit genoeg ruimte het om alles in te hou.

My bylaag bevat:

  • Die framboos -pi (op afstand) - benodig 'n WIFI -chip, wil nie Cat5e in die agterplaas laat loop nie!
  • Die kamera (ook op afstand)
  • Die GPS -chip, verbind via USB (met behulp van 'n sparkfun FTDI -kabel: https://www.sparkfun.com/products/9718) - Die GPS bied breedtegraad en lengte, wat lekker is, maar belangriker nog, ek kan akkurate tyd kry van die gps!
  • twee ethernet/kat 5 -aansluitings om die hoofomhulsel aan te sluit op die ander omhulsel wat die ander sensors huisves. Dit was net 'n maklike manier om kabels tussen die twee bokse te laat loop; ek het ongeveer 12 drade, en die twee cat5 bied 16 moontlike verbindings, so ek het ruimte om dinge uit te brei/te verander.

Daar is 'n venster aan die voorkant van my kamer waaruit die kamera kan kyk. Die omhulsel met hierdie venster beskerm die kamera, maar ek het probleme gehad met die rooi led op die kamera (as dit 'n foto neem) van die plexiglas af en op die foto verskyn. Ek het swart tape gebruik om dit te versag en dit te probeer blokkeer (en ander LED's van die Pi en GPS), maar dit is nog nie 100% nie.

Stap 3: 'Afstandsbehuizing' vir temperatuur, humiditeit, druk

'Afstandsbehuizing' vir temperatuur, humiditeit, druk
'Afstandsbehuizing' vir temperatuur, humiditeit, druk
'Afstandsbehuizing' vir temperatuur, humiditeit, druk
'Afstandsbehuizing' vir temperatuur, humiditeit, druk
'Afstandsbehuizing' vir temperatuur, humiditeit, druk
'Afstandsbehuizing' vir temperatuur, humiditeit, druk

Dit is waar ek die temperatuur-, humiditeits- en druksensors sowel as die "aansluitings" vir die reënmeter, windrigting en windsnelheidsensors gestoor het.

Dit is alles eenvoudig: penne hier verbind via die ethernetkabels met die vereiste penne op die Raspberry Pi.

Ek het probeer om digitale sensors te gebruik waar ek kon, en dan word enige analoog by die MCP 3008 gevoeg; dit neem tot 8 analoog, wat meer as genoeg was vir my behoeftes, maar gee ruimte om te verbeter / uit te brei.

Hierdie omhulsel is oop vir die lug (dit moet wees vir akkurate temperatuur, humiditeit en druk). Die onderste gate kom uit, so ek het van die stroombane 'n spuit met 'n Silicone Conformal Coating -spuitstof gegee (u kan dit aanlyn kry, of 'n plek soos Fry's Electronics). Hopelik moet dit die metaal teen vog beskerm, alhoewel u versigtig moet wees en dit nie op sommige sensors moet gebruik nie.

Die bokant van die omhulsel is ook waar die windspoedsensor pas. Dit was 'n opskudding, ek kon die windsnelheid of windrigting bo -op geplaas het; ek het geen groot voordele van die een bo die ander gesien nie. In die algemeen wil u hê dat beide sensors (windrigting en spoed) hoog genoeg is waar geboue, heinings en hindernisse nie die metings belemmer nie.

Stap 4: Reënmeter

Reënmeter
Reënmeter
Reënmeter
Reënmeter
Reënmeter
Reënmeter

Ek het hierdie instruksie meestal gevolg om die werklike meter te maak:

www.instructables.com/id/Arduino-Weather-St…

Ek het dit van plexiglas gemaak sodat ek kon sien wat aangaan en ek het gedink dit sal gaaf wees. In die algemeen werk die plexiglas goed, maar in kombinasie met die Gluegun, rubber seëlmiddel en algehele sny en boor, lyk dit nie so ongerep nie, selfs nie met die beskermende film nie.

Kern punte:

  • Die sensor is 'n eenvoudige rietskakelaar en magneet wat met 'n knoppie in die RaspberryPi -kode behandel word; ek tel emmers mettertyd en maak later die omskakeling na "duim reën".
  • Maak dit groot genoeg om genoeg water te hou om te kan kantel, maar nie soveel dat dit baie nodig is om te kan kantel nie. My eerste pas het gemaak dat elke skinkbord nie groot genoeg was nie, sodat dit sou vul en oor die rand begin dreineer voordat dit kantel.
  • Ek het ook gevind dat oorblywende water 'n fout by die meting kan veroorsaak. Dit beteken dat dit heeltemal droog was, maar dit het X -druppels geneem om 'n kant te vul en dit te kantel, nadat dit nat was, het dit Y -druppels (wat minder as X is) geneem om te vul en te kantel. Dit was nie 'n groot hoeveelheid nie, maar het geraak toe ek probeer kalibreer en 'n goeie '1 lading is gelyk aan hoeveel' meting kry.
  • Om dit te balanseer, kan u bedrieg deur gomgom aan die onderkant te voeg as die een kant baie swaarder is as die ander kant, maar u benodig dit so naby as moontlik.
  • U kan op die foto sien dat ek 'n klein toetsapparaat opgestel het met 'n paar sponse en 'n houthouer om dit te toets en dit behoorlik te balanseer voordat dit geïnstalleer word.

Stap 5: Windrigting

Wind rigting
Wind rigting
Wind rigting
Wind rigting
Wind rigting
Wind rigting

Dit was 'n eenvoudige weerhaan. Ek het die elektronika gebaseer op die Maplin -stelsel:

www.philpot.me/weatherinsider.html

Kern punte:

Dit is 'n analoog sensor. Die agt rietskakelaars gekombineer met verskillende weerstande verdeel die uitset in stukke, sodat ek kan identifiseer in watter koördinaat die sensor is, volgens die waarde. (Die konsep word uiteengesit in hierdie instruksies:

  • Nadat u die weervaandeel vasgeskroef het, moet u dit wel kalibreer sodat "hierdie rigting noordwaarts wys".
  • Ek het 'n proeftuig met hout gemaak sodat ek weerstande maklik kon in- en uitskakel wat die hele reeks waardes vir my dek, wat baie nuttig was!
  • Ek het 'n stootlager gebruik, dit het goed gevaar, ek is seker 'n gewone skaatsplank of rolskaatslaer sou net so goed gewees het.

Stap 6: Windsnelheid

Wind spoed
Wind spoed
Wind spoed
Wind spoed
Wind spoed
Wind spoed

Hierdie een het ek weer na die Instructable -gemeenskap gewend en hierdie instruksies gevind en gevolg:

www.instructables.com/id/Data-Logging-Anemo…

Kern punte:

  • U kan ook die saalsensor gebruik of oorskakel na 'n rietsensor. Die gangsensor is meer 'n analoog sensor, so as u dit op 'n digitale manier gebruik, soos met 'n knoppie, moet u seker maak dat die lesing/spanning hoog genoeg is om te werk as 'n ware knoppie druk, eerder as om nie genoeg te wees nie.
  • Die grootte van die beker is deurslaggewend, so ook die lengte van die stok! Oorspronklik het ek tafeltennisballe gebruik en dit was te klein. Ek sit dit ook op lang stokke wat ook nie werk nie. Ek het baie gefrustreerd geraak en toe op die instruksies afgekom, het Ptorelli hom uitstekend verduidelik en dit het my gehelp toe my oorspronklike ontwerp nie so goed werk nie.

Stap 7: sagteware

Sagteware
Sagteware
Sagteware
Sagteware

Sagteware word in Python geskryf om die data van die sensors op te neem. Ek het ander Git -biblioteke van derde partye van Adafruit en ander gebruik om inligting van die sensors en GPS te kry. Daar is ook 'n paar cron -werksgeleenthede wat ook 'n paar API -inligting aantrek. Die meeste word verduidelik/uiteengesit in die Git -dokumentasie by docs/install_notes.txt

Die websagteware is in PHP om dit op die webblad te vertoon, terwyl dit ook YAML gebruik vir die config -lêers en natuurlik die RRD -instrument om die data op te slaan en te grafiseer.

Dit maak gebruik van die Weather Underground API om 'n paar interessante data te kry wat sensors nie kan opneem nie: teken hi's en laagtepunte, fase van die maan, sonsondergang en sonsopkoms aan; daar is ook getye beskikbaar op hul API, wat ek gedink het regtig netjies was, maar ek woon in Austin TX wat baie ver van die water af is.

Alles is beskikbaar op Github en word aktief onderhou en word tans gebruik terwyl ek my eie stelsel verder verfyn en kalibreer, sodat u ook funksieversoeke en foutverslae kan indien.

Die sagteware ondergaan 'n tema -verandering, afhangende van die tyd van die dag; daar is vier fases. As die huidige tyd + of - 2 uur vanaf sonsopkoms of sonsondergang is, kry u onderskeidelik die sonsopkoms- en sonsondergang -temas (op die oomblik net 'n ander agtergrond, sal ek waarskynlik in die toekoms verskillende lettertipes/randkleure doen). Net so gee die dag of nag tema buite hierdie reekse.

Dankie dat u gelees het, as u meer foto's en video's van my projekte wil sien, kyk dan na my Instagram- en YouTube -kanaal.

Pi/e -dagwedstryd
Pi/e -dagwedstryd
Pi/e -dagwedstryd
Pi/e -dagwedstryd

Derde prys in die Pi/e -dagkompetisie