Compleet DIY Raspberry Pi-weerstation met software - Ajarnpa
Compleet DIY Raspberry Pi-weerstation met software - Ajarnpa
Anonim
Compleet doe-het-zelf Raspberry Pi-weerstation met software
Compleet doe-het-zelf Raspberry Pi-weerstation met software
Compleet doe-het-zelf Raspberry Pi-weerstation met software
Compleet doe-het-zelf Raspberry Pi-weerstation met software

Eind februari zag ik dit bericht op de Raspberry Pi-site.

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

Ze hadden Raspberry Pi-weerstations voor scholen gemaakt. Ik wilde er helemaal een! Maar op dat moment (en ik geloof nog steeds op het moment dat ik dit schrijf) zijn ze niet openbaar beschikbaar (je moet in een selecte groep testers zitten). Nou, ik wilde verder en ik had geen zin om honderden dollars uit te geven voor een bestaand systeem van derden.

Dus, als een goede Instructable-gebruiker, besloot ik er zelf een te maken!!!

Ik deed wat onderzoek en vond een aantal goede commerciële systemen waarop ik de mijne kon baseren. Ik vond een aantal goede Instructables om te helpen met enkele van de Sensor- of Raspberry PI-concepten. Ik vond zelfs deze site, die betaald vuil was, ze hadden een bestaand Maplin-systeem afgebroken:

www.philpot.me/weatherinsider.html

Fast forward ongeveer een maand en ik heb een basis werkend systeem. Dit is een compleet Raspberry Pi-weersysteem met alleen de basis Raspberry Pi-hardware, camera en een aantal analoge en digitale sensoren om onze metingen te doen. Geen kant-en-klare windmeters of regenmeters kopen, we maken ze zelf! Hier zijn de kenmerken:

  • Registreert informatie naar RRD en CSV, dus kan worden gemanipuleerd of geëxporteerd/geïmporteerd naar andere formaten.
  • Gebruikt de Weather Underground API om coole informatie te krijgen, zoals historische hoogte- en dieptepunten, maanstanden en zonsopgang/zonsondergang.
  • Gebruikt de Raspberry Pi Camera om één keer per minuut een foto te maken (je kunt ze vervolgens gebruiken om time-lapses te maken).
  • Heeft webpagina's die de gegevens weergeven voor de huidige omstandigheden en enkele historische (laatste uur, dag, 7 dagen, maand, jaar). Het thema van de website verandert met de tijd van de dag (4 opties: zonsopgang, zonsondergang, dag en nacht).

Alle software voor het opnemen en weergeven van de informatie staat in een Github, ik heb zelfs wat bug-tracking gedaan, ook functieverzoeken:

github.com/kmkingsbury/raspberrypi-weather…

Dit project was een geweldige leerervaring voor mij, ik heb me echt kunnen verdiepen in de mogelijkheden van de Raspberry Pi, vooral met de GPIO, en ik heb ook wat leerpijnpunten bereikt. Ik hoop dat u, de lezer, kunt leren van enkele van mijn beproevingen en beproevingen.

Stap 1: Materialen

Materialen
Materialen
Materialen
Materialen
Materialen
Materialen
Materialen
Materialen

Elektronica:

  • 9 reed-schakelaars (8 voor de windrichting, 1 voor de regenmeter, optioneel 1 voor de windsnelheid in plaats van een Hall-sensor), deze heb ik gebruikt:
  • 1 Hall-sensor (voor de windsnelheid, anemometer genoemd) -
  • Temperatuur (https://amzn.to/2RIHf6H)
  • Vochtigheid (veel vochtigheidssensoren worden geleverd met een temperatuursensor), ik gebruikte de DHT11:
  • Druk (de BMP kwam ook met een temperatuursensor), ik gebruikte de BMP180, https://www.adafruit.com/product/1603, dit product is nu niet meer leverbaar maar er is een equivalent met de BMP280 (https://amzn.to/2E8nmhi)
  • Fotoweerstand (https://amzn.to/2seQFwd)
  • GPS-chip of USB-GPS (https://amzn.to/36tZZv3).
  • 4 sterke magneten (2 voor windmeter, 1 voor richting, 1 voor regenmeter), ik gebruikte de zeldzame aardmagneten, sterk aanbevolen) (https://amzn.to/2LHBoKZ).
  • Een handvol verschillende weerstanden, ik heb dit pakket dat in de loop van de tijd buitengewoon handig is gebleken:
  • MCP3008 - om analoge naar digitale ingangen voor de Raspberry Pi om te zetten -

Hardware

  • Raspberry Pi - Ik gebruikte de 2 oorspronkelijk met een draadloze adapter, maar krijg nu ook de 3 B+ kit met voedingsadapter. (https://amzn.to/2P76Mop)
  • Pi-camera
  • Een solide 5V-voedingsadapter (dit bleek pijnlijk irritant te zijn, ik heb uiteindelijk de Adafruit-versie gekregen, anders trekt de camera te veel sap en kan/zal de Pi ophangen, hij is hier: https://www.adafruit.com/products /501)

Materialen:

  • 2 stuwkrachtlagers (of skateboard- of rolschaatslagers werken ook), ik heb deze op Amazon:
  • 2 waterdichte behuizingen (ik gebruikte een elektrische behuizing van de plaatselijke grote kistenwinkel), maakt niet veel uit, je moet alleen een behuizing van goede grootte vinden die voldoende ruimte biedt en alles beschermt).
  • Enkele PVC-buis- en eindkappen (verschillende maten).
  • PVC montagebeugels
  • Paar vellen dun plexiglas (niets bijzonders).
  • plastic afstandhouders
  • mini-schroeven (ik gebruikte # 4 bouten en moeren).
  • 2 Kunststof kerstboomversiering - gebruikt voor de windmeter, ik heb de mijne bij de plaatselijke Hobby Lobby.
  • Kleine deuvel
  • Klein stukje multiplex.

Gereedschap:

  • Dremel
  • Lijmpistool
  • Soldeerbout
  • Multimeter
  • Oefening

Stap 2: Hoofdbehuizing - Pi, GPS, camera, licht

Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht
Hoofdbehuizing - Pi, GPS, camera, licht

De hoofdbehuizing bevat de PI, de camera, de GPS en de lichtsensor. Het is ontworpen om waterdicht te zijn omdat het alle kritieke componenten herbergt, de metingen worden gedaan vanaf de externe behuizing en die is ontworpen om te worden blootgesteld aan / open te staan voor de elementen.

Stappen:

Kies een behuizing, ik heb een elektrische aansluitdoos gebruikt, verschillende projectdozen en waterdichte behuizingen werken net zo goed. Het belangrijkste punt is dat het voldoende ruimte heeft om alles op te bergen.

Mijn bijlage bevat:

  • De Raspberry Pi (op afstandhouders) - Heeft een WIFI-chip nodig, wil Cat5e niet de achtertuin in laten lopen!
  • De camera (ook op afstandhouders)
  • De GPS-chip, aangesloten via USB (met een sparkfun FTDI-kabel: https://www.sparkfun.com/products/9718) - De GPS biedt lengte- en breedtegraad, wat leuk is, maar belangrijker nog, ik kan nauwkeurige tijd krijgen van de gps!
  • twee ethernet/cat 5-aansluitingen om de hoofdbehuizing te verbinden met de andere behuizing waarin de andere sensoren zijn ondergebracht. Dit was gewoon een handige manier om kabels tussen de twee dozen te laten lopen, ik heb ongeveer 12 draden en de twee cat5 bieden 16 mogelijke verbindingen, dus ik heb ruimte om dingen uit te breiden / te veranderen.

Er is een raam aan de voorkant van mijn behuizing waar de camera naar buiten kan kijken. De behuizing met dit venster beschermt de camera, maar ik had problemen waarbij de rode led op de camera (wanneer hij een foto maakt) op het plexiglas weerkaatst en op de foto verschijnt. Ik heb wat zwarte tape gebruikt om dit te verminderen en te proberen het te blokkeren (en andere LED's van de Pi en GPS), maar het is nog niet 100%.

Stap 3: 'Remote Behuizing' voor temperatuur, vochtigheid, druk

'Remote Behuizing' voor Temperatuur, Vochtigheid, Druk
'Remote Behuizing' voor Temperatuur, Vochtigheid, Druk
'Remote Behuizing' voor Temperatuur, Vochtigheid, Druk
'Remote Behuizing' voor Temperatuur, Vochtigheid, Druk
'Remote Behuizing' voor Temperatuur, Vochtigheid, Druk
'Remote Behuizing' voor Temperatuur, Vochtigheid, Druk

Hier heb ik de temperatuur-, vochtigheids- en druksensoren opgeslagen, evenals de "aansluitingen" voor de regenmeter, windrichting en windsnelheidssensoren.

Het is allemaal heel eenvoudig, pinnen worden hier via de ethernetkabels aangesloten op de benodigde pinnen op de Raspberry Pi.

Ik heb geprobeerd om digitale sensoren te gebruiken waar ik kon en dan wordt er een analoog toegevoegd aan de MCP 3008. Er zijn maximaal 8 analoge sensoren nodig, wat meer dan genoeg was voor mijn behoeften, maar er is ruimte voor verbetering / uitbreiding.

Deze behuizing is open naar de lucht (het moet voor nauwkeurige temperatuur, vochtigheid en druk zijn). De onderste gaten zijn eruit gesprongen, dus ik heb sommige circuits een spray van een siliconen conforme coating-spray gegeven (je kunt het online krijgen of een plaats zoals Fry's Electronics). Hopelijk moet het het metaal beschermen tegen vocht, hoewel je voorzichtig moet zijn en het niet op sommige sensoren moet gebruiken.

De bovenkant van de behuizing is ook waar de windsnelheidssensor past. Het was een gooi naar boven, ik had de windsnelheid of windrichting er bovenop kunnen zetten, ik zag geen grote voordelen van de een boven de ander. Over het algemeen wil je beide sensoren (windrichting en snelheid) hoog genoeg waar gebouwen, hekken, obstakels de metingen niet verstoren.

Stap 4: Regenmeter

Regenmeter
Regenmeter
Regenmeter
Regenmeter
Regenmeter
Regenmeter

Ik volgde meestal dit instructable om de werkelijke meter te maken:

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

Ik maakte dit van plexiglas, zodat ik kon zien wat er aan de hand was en ik dacht dat het cool zou zijn. Over het algemeen werkte het plexiglas goed, maar in combinatie met het lijmpistool, rubberen afdichtmiddel en algeheel snijden en boren blijft het er niet zo onberispelijk uitzien, zelfs niet met de beschermende film.

Belangrijkste punten:

  • De sensor is een eenvoudige reed-schakelaar en magneet die wordt behandeld als een druk op een knop in de RaspberryPi-code, ik tel eenvoudig emmers in de loop van de tijd en maak de conversie later naar "inch regen".
  • Maak het groot genoeg om genoeg water te bevatten om te kunnen kantelen, maar niet zo veel dat het veel nodig heeft om te kunnen kantelen. Bij mijn eerste doorgang maakte ik elk bakje niet groot genoeg zodat het zich zou vullen en over de rand zou leeglopen voordat het kantelde.
  • Ik ontdekte ook dat restwater een fout aan de meting kon toevoegen. Dit betekent dat het volledig droog was, er waren X druppels nodig om een kant te vullen en te kantelen, eenmaal nat waren er Y druppels (wat minder is dan X) om te vullen en te kantelen. Niet een enorm bedrag, maar kwam van invloed bij het proberen te kalibreren en een goede "1 lading is gelijk aan hoeveel" meting te krijgen.
  • Breng het in evenwicht, je kunt vals spelen door lijmpistoollijm aan de onderkant toe te voegen als de ene kant veel zwaarder is dan de andere, maar je moet het zo goed mogelijk in balans houden.
  • Je kunt op de foto zien dat ik een kleine testopstelling heb opgezet met behulp van wat sponzen en een houten houder om te testen en het goed in balans te krijgen voordat je het installeert.

Stap 5: Windrichting

Windrichting
Windrichting
Windrichting
Windrichting
Windrichting
Windrichting

Dit was een simpele windwijzer. Ik heb de elektronica gebaseerd op het Maplin-systeem:

www.philpot.me/weatherinsider.html

Belangrijkste punten:

Dit is een analoge sensor. De acht reed-schakelaars in combinatie met verschillende weerstanden verdelen de output in brokken, zodat ik aan de hand van de waarde kan zien in welke coördinaat de sensor zich bevindt. (Het concept wordt uitgelegd in deze instructable:

  • Na het vastschroeven van het windwijzerdeel moet je het wel kalibreren zodat "deze richting is wat naar het noorden wijst".
  • Ik heb een testopstelling met hout gemaakt, zodat ik gemakkelijk weerstanden kon in- en uitschakelen die het volledige bereik van waarden voor mij dekten, dat was super handig!
  • Ik gebruikte een druklager, dat deed het prima, ik weet zeker dat een gewoon skateboard- of rolschaatslager net zo goed zou zijn geweest.

Stap 6: Windsnelheid

Windsnelheid
Windsnelheid
Windsnelheid
Windsnelheid
Windsnelheid
Windsnelheid

Deze keerde ik opnieuw naar de Instructable-gemeenschap en vond en volgde deze instructable:

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

Belangrijkste punten:

  • U kunt de hall-sensor gebruiken of overstappen op een reed-sensor. De hall-sensor is meer een analoge sensor, dus als je hem op een digitale manier gebruikt, zoals een druk op een knop, moet je ervoor zorgen dat de uitlezing / spanning hoog genoeg is om te werken als een echte druk op de knop, in plaats van niet genoeg.
  • De maat van de cup is cruciaal, net als de lengte van de stick! Oorspronkelijk gebruikte ik pingpongballen en die waren veel te klein. Ik heb ze ook op lange stokken gezet, wat ook niet werkte. Ik raakte erg gefrustreerd en kwam toen dat instructable tegen, Ptorelli deed geweldig werk door uit te leggen en het hielp me toen mijn oorspronkelijke ontwerp niet zo goed werkte.

Stap 7: Software

Software
Software
Software
Software

Software is geschreven in Python om de gegevens van de sensoren vast te leggen. Ik heb een aantal andere Git-bibliotheken van derden van Adafruit en anderen gebruikt om de informatie van de sensoren en GPS te krijgen. Er zijn ook enkele cron-taken die ook een deel van de API-informatie ophalen. Het meeste wordt uitgelegd/beschreven in de Git-documentatie op docs/install_notes.txt

De websoftware is in PHP om het op de webpagina weer te geven, terwijl het ook YAML gebruikt voor de configuratiebestanden en natuurlijk de RRD-tool om de gegevens op te slaan en in een grafiek te zetten.

Het gebruikt de Weather Underground API om enkele van de interessante gegevens te krijgen die sensoren niet kunnen trekken: Record Hi's en Lows, Phase of the Moon, Sunset en Sunrise tijden, er is ook Tides beschikbaar op hun API, waarvan ik dacht dat het heel netjes was, maar ik woon in Austin TX, wat erg ver van water is.

Alles is beschikbaar op Github en wordt actief onderhouden en wordt momenteel gebruikt terwijl ik mijn eigen systeem verder verfijn en kalibreer, zodat je ook functieverzoeken en bugrapporten kunt indienen.

De software doorloopt een themawisseling, afhankelijk van het tijdstip van de dag, er zijn 4 fasen. Als de huidige tijd + of - 2 uur vanaf zonsopgang of zonsondergang is, krijgt u respectievelijk de thema's voor zonsopgang en zonsondergang (op dit moment alleen een andere achtergrond, ik zal in de toekomst waarschijnlijk andere lettertype-/randkleuren gebruiken). Evenzo geeft buiten die bereiken het dag- of nachtthema.

Bedankt voor het lezen. Als je meer foto's en video's van mijn projecten wilt zien, kijk dan op mijn Instagram- en YouTube-kanaal.

Pi/e-dagwedstrijd
Pi/e-dagwedstrijd
Pi/e-dagwedstrijd
Pi/e-dagwedstrijd

Derde prijs in de Pi/e Day-wedstrijd