Innehållsförteckning:
- Steg 1: Delar som behövs (steg 1)
- Steg 2: Bygg din krets (steg 2)
- Steg 3: Bygg din mätare (steg 3)
- Steg 4: Beräkningar och kalibrering (steg 4)
- Steg 5: Programvara (steg 5)
- Steg 6: Fortfarande att göra (steg 6)
Video: Ultrasonic Rain Gauge: Raspebbery Pi Open Weather Station: Del 1: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Kommersiellt tillgängligt IoT (Internet Of Things) Väderstationer är dyra och inte tillgängliga överallt (som i Sydafrika). Extrema väderförhållanden slår oss. SA upplever den hårdaste torka på decennier, jorden värms upp och bönderna kämpar för att producera lönsamma, utan tekniskt eller ekonomiskt stöd från regeringen för kommersiella bönder.
Det finns några Raspberry Pi -väderstationer runt, som den som Raspberry Pi Foundation bygger för brittiska skolor, men det är inte tillgängligt för allmänheten. Det finns många lämpliga sensorer, några analoga, några digitala, några halvledare, några med rörliga delar och några mycket dyra sensorer som ultraljudsanemometrar (vindhastighet och riktning)
Jag bestämde mig för att bygga en öppen källkod, öppen hårdvara Weather Station, med allmänna delar tillgängliga i Sydafrika kan vara ett mycket användbart projekt och jag kommer att ha mycket roligt (och utmanande huvudvärk).
Jag bestämde mig för att börja med en fastmätare (inga rörliga delar) regnmätare. Den traditionella tipphinken imponerade inte på mig i det skedet (trodde till och med att jag aldrig använde en då). Så jag tänkte att regn är vatten och vatten leder elektricitet. Det finns många analoga resistiva sensorer där motståndet minskar när sensorn kommer i kontakt med vatten. Jag trodde att detta skulle vara en perfekt lösning. Tyvärr lider dessa sensorer av alla typer av avvikelser som elektrolys och deoxidering och avläsningarna från dessa sensorer var opålitliga. Jag bygger till och med mina egna rostfria givare och ett litet kretskort med reläer för att skapa växelström (konstant 5 volt, men alternerande positiva och negativa poler) för att eliminera elektrolys, men avläsningarna var fortfarande instabila.
Mitt senaste val är ultraljudssensor. Denna sensor ansluten till mätarens ovansida kan mäta avståndet till vattennivån. Till min förvåning var dessa sensorer mycket exakta och mycket billiga (mindre än 50 ZAR eller 4 USD)
Steg 1: Delar som behövs (steg 1)
Du behöver följande
1) 1 Raspberry Pi (valfri modell, jag använder en Pi 3)
2) 1 Bröd Bord
3) Några bygelkablar
4) Ett ett ohm motstånd och ett två (eller 2,2) ohm motstånd
5) En gammal lång kopp för att lagra regnet. Jag skrev ut min (mjuk kopia tillgänglig)
6) En gammal manuell regnmätare som fångar del (Eller så kan du designa din egen och skriva ut den)
7) Mätutrustning för att mäta milliliter eller en skala till vikt på vatten
8) HC-SR04 ultraljudssensor (sydafrikaner kan få dem från Communica)
Steg 2: Bygg din krets (steg 2)
Jag hittade en mycket användbar guide som hjälper mig att bygga kretsen och skriva python -skripten för detta projekt. Denna skiss beräknar avstånd och du kommer att använda den för att beräkna avståndet mellan sensorn monterad på toppen av din mätartank och vattennivån
Du hittar den här:
www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi
Studera det, bygg din krets, anslut den till din pi och lek med pythonkoden. Se till att du bygger spänningsdelaren korrekt. Jag använde ett 2,2 ohm motstånd mellan GPIO 24 och GND.
Steg 3: Bygg din mätare (steg 3)
Du kan skriva ut din mätare, använda en befintlig mätare eller kopp. HC-SR04-sensorn fästs på toppen av mätarens huvudtank. Det är viktigt att se till att det stannar torrt hela tiden.
Det är viktigt att förstå mätvinkeln för din HC-SR04-sensor. Du kan inte fästa den på toppen av en kon med traditionella regnmätare. Jag normal cylindrisk kopp kommer att göra. Se till att den är tillräckligt bred för att en ordentlig ljudvåg ska gå ner till botten. Jag tror att ett 75 x 300 mm PVC -rör kommer att göra. För att testa om signalen går genom din cylinder och studsa tillbaka ordentligt, mät avståndet från censorn till cylinderns botten med en linjal, jämför den mätningen med avståndet du får från sensorn TOF (Time of flight) uppskattat avstånd till botten.
Steg 4: Beräkningar och kalibrering (steg 4)
Vad betyder 1 millimeter regn? Ett mm regn betyder att om du hade en kub på 1000mm X 1000mm X 1000mm eller 1m X 1m X 1m, kommer kuben att ha ett djup på 1 mm regnvatten om du lämnade den utanför när det regnade. Om du tömmer detta regn i en 1 liters flaska, kommer det att fylla flaskan 100 % och vattnet kommer också att mäta 1 kg. Olika regnmätare har olika upptagningsområden. Om ditt upptagningsområde på din mätare var 1m X 1m är det enkelt.
Dessutom är 1 gram vatten konventionell 1 ml
För att beräkna din nederbörd i mm från din mätare kan du göra följande efter att väga regnvattnet:
W är nederbördsvikten i gram eller mililiter
A är ditt upptagningsområde i kvadrat mm
R är din totala nederbörd i mm
R = B x [(1000 x 1000)/A]
Det finns två möjligheter att använda HC-SR04 för att uppskatta W (du behöver W för att beräkna R).
Metod 1: Använd vanlig fysik
Mät avståndet från HC-SR till botten av din mätare (Du gjorde det också i ett tidigare steg) med sensorn med hjälp av TOF-beräkningarna (Time of Flight) i python-skriptet från https://www.modmypi. com/blog/hc-sr04-ultrasonic-range-sensor-on-the-hallon-pi Call This CD (Cylinder Depth)
Mät ytan på cylinderns inre botten med allt som är lämpligt i kvadrat mm. Kalla detta IA.
Kasta nu 2 ml vatten (eller lämplig mängd) i din cylinder. Beräkna avståndet till den nya vattennivån i mm med hjälp av vår sensor, Cal this Dist_To_Water).
Vattendjupet (WD) i mm är:
WD = CD - Dist_To_Water (eller cylinderdjup minus minus avståndet från censorn till vattennivån)
Ingen uppskattad vikt av vattnet är
W = WD x IA i ml eller gram (kom ihåg 1 ml vattenvikter 1 gram)
Nu kan du uppskatta nederbörd (R) i mm med B x [(1000 x 1000)/A] som tidigare förklarats.
Metod 2: Kalibrera din mätare med statistik
Eftersom HC-SR04 inte är perfekt (fel kan uppstå) verkar det som om den är minst konstant för att mäta om din cylinder är lämplig.
Bygg en linjär modell med sensoravläsningar (eller sensoravstånd) som beroende variabel och injicerade vikter av vatten som beroende variabel.
Steg 5: Programvara (steg 5)
Programvara för detta projekt är fortfarande under utveckling.
Python-skripten på https://www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi bör vara användbara.
Bifoga är några användbara python -applikationer (General Public License) utvecklade av mig själv.
Jag planerar att utveckla ett webbgränssnitt för hela väderstationen senare. Bifoga är några av mina program som används för att kalibrera mätaren och göra sensoravläsningar
Använd bifoga kalibreringsskriptet för att kalibrera mätaren statistiskt. Importera data i ett kalkylblad för analys.
Steg 6: Fortfarande att göra (steg 6)
En magnetventil behövs för att tömma tanken när den är full (nära sensorn)
De första regndropparna mäts inte alltid korrekt, särskilt om mätaren inte är korrekt utjämnad. Jag håller på att utveckla en disdro -mätare för att fånga dessa droppar korrekt. Disdro min framtid nästa.
Ad en andra ultraljudssensor för att mäta effekten av temp på TOF. Jag kommer snart att lägga upp en uppdatering om detta.
Jag hittade följande resurs som kan hjälpa
www.researchgate.net/profile/Zheng_Guilin3/publication/258745832_An_Innovative_Principle_in_Self-Calibration_by_Dual_Ultrasonic_Sensor_and_Application_in_Rain_Gauge/links/540d53e00cf2f2b29a38392b/An-Innovative-Principle-in-Self-Calibration-by-Dual-Ultrasonic-Sensor-and-Application-in- Rain-Gauge.pdf
Rekommenderad:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjord på rätt sätt: 8 steg (med bilder)
NaTaLia väderstation: Arduino soldriven väderstation gjord på rätt sätt: Efter 1 års framgångsrik drift på 2 olika platser delar jag mina solcellsdrivna väderstationsprojektplaner och förklarar hur det utvecklades till ett system som verkligen kan överleva över lång tid perioder från solenergi. Om du följer
PiSiphon Rain Gauge (prototyp): 4 steg
PiSiphon Rain Gauge (Prototype): Detta projekt är en förbättring av Bell Siphon Rain Gauge. Det är mer exakt och läckande sifoner borde vara något från det förflutna. Traditionellt mäts nederbörd med en manuell regnmätare. Automatiserade väderstationer (inklusive IoT -väderstationer
Bell Siphon Rain Gauge: 8 steg (med bilder)
Bell Siphon Rain Gauge: En förbättrad version av detta är PiSiphon Rain Gauge Traditionellt mäts nederbörd med en manuell regnmätare. Automatiserade väderstationer (inklusive IoT -väderstationer) använder normalt tippskopor, akustiska disdrometrar eller laserdistometrar. T
Arduino Rain Gauge Kalibrering: 7 steg
Arduino Rain Gauge Kalibrering: Introduktion: I denna instruktionsbok konstruerar vi en regnmätare med Arduino och kalibrerar den för att rapportera dagliga och timmars nederbörd. Regnuppsamlaren jag använder är en återanpassad regnmätare av typen tipphink. Det kom från en skadad personlig vi
Akustisk DISDRO -mätare: Raspebbery Pi Open Weather Station (del 2): 4 steg (med bilder)
Akustisk DISDRO -mätare: Raspebbery Pi Open Weather Station (del 2): DISDRO står för distribution av droppar. Enheten registrerar storleken på varje droppe med en tidsstämpel. Data är användbara för en mängd olika tillämpningar, inklusive meteorologisk (väder) forskning och jordbruk. Om disdro är mycket exakt kan det jag