Indholdsfortegnelse:

Sådan opbygges dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software: 5 trin (med billeder)
Sådan opbygges dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software: 5 trin (med billeder)

Video: Sådan opbygges dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software: 5 trin (med billeder)

Video: Sådan opbygges dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software: 5 trin (med billeder)
Video: El fra vindmøller 2024, November
Anonim
Sådan opbygger du dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software
Sådan opbygger du dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software
Sådan opbygger du dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software
Sådan opbygger du dit eget vindmåler ved hjælp af Reed Switches, Hall Effect Sensor og nogle rester på Nodemcu - Del 2 - Software

Introduktion

Dette er efterfølgeren til det første indlæg "Sådan opbygger du dit eget vindmåler ved hjælp af sivafbrydere, haleffektsensor og nogle rester på Nodemcu - del 1 - hardware" - hvor jeg viser, hvordan man samler vindhastigheds- og retningsmåleenheder. Her vil vi udnytte målekontrolsoftwaren designet til brug i en Nodemcu ved hjælp af Arduino IDE.

Projekt Beskrivelse

I det forrige indlæg er de enheder, der er bevæbnet og forbundet til Nodemcu, i stand til at måle vindens hastighed og retning. Kontrolsoftwaren blev designet til at aflæse vindmålerens rotation i en periode, beregne den lineære hastighed, aflæse den retning, som bladet er i, vise resultaterne i OLED, offentliggøre resultaterne i ThingSpeak og sove i 15 minutter, indtil næste måling.

Ansvarsfraskrivelse: Dette vindmåler må ikke bruges til professionelle formål. Det er kun til akademisk brug eller hjemmebrug.

Bemærk: Engelsk er ikke mit naturlige sprog. Hvis du finder grammatiske fejl, der forhindrer dig i at forstå projektet, bedes du give mig besked for at rette dem. Mange tak.

Trin 1: Installation af Arduino IDE, ESP8266 boards og biblioteker og din ThingSpeak -konto

Installation af Arduino IDE, ESP8266 boards og biblioteker og din ThingSpeak -konto
Installation af Arduino IDE, ESP8266 boards og biblioteker og din ThingSpeak -konto
Installation af Arduino IDE, ESP8266 boards og biblioteker og din ThingSpeak -konto
Installation af Arduino IDE, ESP8266 boards og biblioteker og din ThingSpeak -konto

Installation af Arduino IDE og Nodemcu

Hvis du aldrig har installeret IDE Arduino, kan du læse vejledningen i linket - Sådan installeres Arduino IDE - hvor du kan finde de komplette instruktioner.

Næste trin, for at installere Nodemcu -kortet, skal du bruge denne vejledning fra Magesh Jayakumar Instructables, som er meget komplet. Sådan installeres Nodemcu no Arduino IDE

Installation af biblioteker

Næste trin skal du installere de biblioteker, skitsen bruger. De er almindelige, og du kan følge trinene nedenfor.

ThingSpeak Library -

ESP8266 Library -

Oprettelse af en ThingSpeak -konto

For at bruge ThingSpeak (https://thingspeak.com/) skal du oprette en konto (det er stadig gratis for et bestemt antal interaktioner), hvor du kan gemme de data, der måles i dit vindmåler og overvåge vindforholdene i dit hjem, selv via mobiltelefon. Ved at bruge ThingSpeak kan du give offentligheden adgang til dine indsamlede data til alle, der er interesseret. Det er en god fordel ved ThingSpeak. Indtast hjemmesiden, og følg trinene for at oprette din konto.

Når kontoen er oprettet, skal du indtaste denne vejledning - ThingSpeak Kom godt i gang - for at oprette dine kanaler. Det er ret godt forklaret. Sammenfattende skal du oprette en kanal, hvor dataene gemmes. Denne kanal har et ID og en nøgle -API, der skal refereres til i skitsen, hver gang du vil registrere data. ThingSpeak gemmer alle data i en bank og viser dem hver gang du får adgang til din konto, på den måde du har konfigureret.

Trin 2: Udforsk skitsen

Udforske skitsen
Udforske skitsen
Udforske skitsen
Udforske skitsen

Flowchart

I diagrammet kan du forstå skitsens fluxogram. Når du vågner (link) Nodemcu, vil den oprette forbindelse til dit Wi-Fi-netværk, hvis parametre du har konfigureret og begynde at tælle 1 minuts tid til at udføre målingerne. Først vil det tælle vindmålerens rotationer i 25 sekunder, beregne den lineære hastighed og aflæs vindens retning. Resultaterne er vist på OLED. Gør de samme trin igen, og ved denne anden behandling vil den blive sendt til ThingSpeak.

Derefter sover Nodemcu i 15 minutter for at spare på batteriet. Da jeg bruger et lille solpanel, er det bydende nødvendigt, at jeg gør det. Hvis du bruger en 5V kilde, kan du ændre programmet, så det ikke sover og blive ved med at måle dataene.

Opbygning af programmerne

I diagrammet kan du se skitsens struktur.

Anemometer_Instructables

Det er hovedprogrammet, der indlæser bibliotekerne, starter variablerne, styrer vedhæftningsafbrydelsen, kalder alle funktionerne, beregner vindhastigheden, bestemmer dens retning og sætter den i dvale.

kommunikation

Tilslut WiFi og send dataene til ThingSpeak.

legitimationsoplysninger.h

Nøglerne til dit WiFi -netværk og identifikatorerne for din konto i ThingSpeak. Det er her, du vil ændre dine nøgle -id'er og API'er.

definerer.h

Den indeholder alle programmets variabler. Det er her, du kan ændre læsningstiderne, eller hvor længe nodemcu skal sove.

funktioner

Den indeholder funktionerne til at kombinere parametrene og aflæse multiplexeren samt funktionen til at aflæse vindmålerens rotationer.

oledDisplay

Vis resultater på vinduet med vindhastighed og retning.

Trin 3: Forklaringer om …

Forklaringer om…
Forklaringer om…
Forklaringer om…
Forklaringer om…
Forklaringer om…
Forklaringer om…
Forklaringer om…
Forklaringer om…

Vedhæft Afbryd

Vindmålerens rotation måles ved hjælp af funktionen attachInterrupt () (og detachInterrupt ()) i GPIO 12 (pin D6) på Nodemcu (den har afbrydelsesfunktion på dens D0-D8-ben).

Afbrydelser er hændelser eller tilstande, der får mikrokontrolleren til at stoppe udførelsen af den opgave, den udfører, midlertidigt arbejde i en anden opgave og vende tilbage til den oprindelige opgave.

Du kan læse detaljerne i funktionen i linket til tutorialen om Arduino. Se vedhæfteInterrupt ().

Syntaks: attachInterrupt (pin, tilbagekaldsfunktion, afbrydelsestype/-tilstand);

pin = D6

tilbagekaldsfunktion = rpm_anemometer - tæller hver puls på en variabel.

afbryd type/tilstand = RISING - afbryd, når stiften går fra lav til høj.

Ved hver puls produceret af magneto i Hall -sensoren går stiften fra lav til høj, og tællefunktionen aktiveres og summeres puls i en variabel i løbet af de 25 sekunder, der er etableret. Når tiden er udløbet, afbrydes tælleren (detachInterrupt ()), og rutinen beregner hastigheden, mens den er afbrudt.

Beregning af vindhastighed

Når det er blevet bestemt, hvor mange rotationer vindmåleren gav på 25 sekunder, beregner vi hastigheden.

  • RADIO er målingen fra vindmålerens midterakse til spidsen af bordtennisbolden. Du må have målt din meget godt - (se det i diagrammet der siger 10 cm).
  • RPS (rotationer pr. Sekund) = rotationer / 25 sekunder
  • RPM (omdrejninger pr. Minut) = RPS * 60
  • OMEGA (vinkelhastighed - radianer pr. Sekund) = 2 * PI * RPS
  • Lineær_Velocitet (meter pr. Sekund) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km i timen) = 3,6 * Linear_Velocity, og dette er hvad der skal sendes til ThingSpeak.

Læs vindvingenes retning

For at aflæse vindbladets position for at bestemme vindens retning sender programmet lave og høje signaler til multiplexeren med alle kombinationerne af parametrene A, B, C (muxABC matrix) og venter på at modtage resultatet på pin A0 resultatet der kan være enhver spænding mellem 0 og 3,3V. Kombinationerne er vist i diagrammet.

For eksempel, når C = 0 (lav), B = 0 (lav), A = 0 (lav) giver multiplexeren dataene fra pin 0 og sender signalet til A0, der læses af Nodemcu; hvis C = 0 (lav), B = 0 (lav), A = 1 (høj) sender multiplexeren dig dataene fra pin 1 og så videre, indtil aflæsningen af de 8 kanaler er fuldført.

Da signalet er analogt, transformeres programmet til digitalt (0 eller 1), hvis spændingen er mindre end eller lig med 1,3V, er signalet 0; hvis det er større end 1,3V er signalet 1. Værdien 1,3V er vilkårlig og for mig fungerede det meget godt. Der er altid små lækager af strøm, og det beskytter, at der ikke er falske positive.

Disse data gemmes i en vektorval [8], der vil blive sammenlignet med adressearrayet som kompas. Se matrixen i diagrammet. For eksempel, hvis den modtagne vektor er [0, 0, 1, 0, 0, 0, 0, 0, 0] angiver den i matricen retningen E og svarer til en vinkel på 90 grader; hvis [0, 0, 0, 0, 0, 0, 1, 1] angiver i matricen WNW -adressen og svarer til en vinkel på 292,5 grader. N svarer til [1, 0, 0, 0, 0, 0, 0, 0, 0] og vinkel på 0 grader.

Hvad der vil blive sendt til ThingSpeak er i vinklen, fordi det kun accepterer tal.

Trin 4: Kommunikation

Kommunikation
Kommunikation
Kommunikation
Kommunikation

Sådan sender du data til ThingSpeak

Funktionen thingspeaksenddata () er ansvarlig for at sende dataene.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Send hastighedsdata til felt1 på min kanal

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Send adressedataene til felt2 på min kanal

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Send til min kanal myChannelNumber, med den skrevne myWriteAPIKey API angivet af TS. Disse data blev genereret af TS, da du oprettede din konto og kanal.

På billederne ovenfor kan du se, hvordan ThingSpeak viser de modtagne data.

I dette link kan du få adgang til dataene fra mit projekt i den offentlige kanal på ThingSpeak.

Trin 5: Hovedvariabler

vindvinge parametre

  • MUX_A D5 - mux pi A til Nodemcu pin D5
  • MUX_B D4 - mux pin B til Nodemcu pin D4
  • MUX_C D3 - mux pin C til Nodemcu pin D3
  • READPIN 0 - Analog input på NodeMcu = A0
  • NO_PINS 8 - antal mux pins
  • val [NO_PINS] - porte 0 til 7 på mux
  • wind_Direction_Angle - vindretningen på vindretningen
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - cardenals, collaterals og sub -collaterals
  • windAng [16] = {0, 22,5, 45, 67,5, 90, 112,5, 135, 157,5, 180, 202,5, 225, 247,5, 270, 292,5, 315, 337,5} - vinkler i hver retning
  • Ciffer [16] [NO_PINS] - Vejviser Matrix
  • muxABC [8] [3] - ABC mux -kombinationer

vindmålerparametre

  • rpmcount - tæl hvor mange fulde rotationer der lavede vindmåleren i den tildelte tid
  • tidsmåling = 25,00 - målingstid i sekunder
  • timetoSleep = 1 - Nodemcu vågen tid i minutter
  • sleepTime = 15 - tid til at blive ved med at sove på få minutter
  • rpm, rps - rotationsfrekvenser (rotationer pr. minut, rotationer pr. sekund)
  • radius - meter - målet for længden af vindmålervinge
  • linear_velocity - lineær hastighed i m/seg
  • linear_velocity_kmh - lineær hastighed i km/t
  • omega - radial hastighed i rad/seg

Nedenfor kan du finde den komplette skitse. Opret en ny mappe i Arduino -mappen på din computer med samme navn som hovedprogrammet (Anemometer_Instructables) og sæt dem alle sammen.

Indtast dataene for dit wifi -netværk og ThingSpeak ID og API Writer Key i delen Credentials.h og gem. Upload til Nodemcu, og det er alt.

For at teste systemets funktion anbefaler jeg en god roterende ventilator.

For at få adgang til dataene via mobiltelefon skal du downloade applikationen til IOS eller Android kaldet ThingView, som heldigvis stadig er gratis.

Konfigurer dine kontoindstillinger, og du vil være klar til at se vindene i dit hjem, uanset hvor du er.

Hvis du har en interesse, skal du få adgang til min ThingSpeak Channel ID -kanal: 438851, som er offentlig, og der finder du vind- og retningsmålinger i mit hus.

Jeg håber virkelig, at du har det sjovt.

Hvis du er i tvivl, tøv ikke med at kontakte mig.

Hilsen

Anbefalede: