Indholdsfortegnelse:
- Trin 1: Installation af Arduino IDE, ESP8266 boards og biblioteker og din ThingSpeak -konto
- Trin 2: Udforsk skitsen
- Trin 3: Forklaringer om …
- Trin 4: Kommunikation
- Trin 5: Hovedvariabler
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)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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 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
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 …
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
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:
Sådan opbygges et plantevandingssystem ved hjælp af Arduino: 7 trin
Sådan opbygges et plantevandingssystem ved hjælp af Arduino: I denne vejledning lærer vi, hvordan man laver et plantevandingssystem ved hjælp af en fugtighedsføler, vandpumpe og blinker en grøn LED, hvis alt er ok, og OLED Display og Visuino. Se videoen
Tutorial: Sådan opbygges rækkevidde detektor ved hjælp af Arduino Uno og ultralydssensor: 3 trin
Tutorial: Hvordan man opbygger afstandsdetektor ved hjælp af Arduino Uno og ultralydssensor: Beskrivelse: Denne vejledning viser, hvordan man laver en simpel rækkevidde detektor, der kan måle afstanden mellem ultralydssensor (US-015) og forhindring foran den. Denne ultralydssensor US-015 er din perfekte sensor til afstandsmåling og
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
Sådan opbygges en Rc Drone og senderen ved hjælp af Arduino: 11 trin
Sådan bygger du en Rc Drone og senderen ved hjælp af Arduino: At lave en drone er en simpel opgave i disse dage, men det vil koste dig meget. Så jeg vil fortælle dig, hvordan du bygger en drone ved hjælp af arduino til lave omkostninger. Også jeg Jeg vil også fortælle dig, hvordan du bygger en drone -sender. så denne drone er fuldstændig hjemmelavet. Du ville
Hall Effect Sensor på Arduino ved hjælp af Fidget Spinner: 3 trin (med billeder)
Hall Effect Sensor på Arduino Brug af Fidget Spinner: Abstract I dette projekt forklarer jeg om, hvordan hall effect sensor fungerer til at måle fidget spinner hastighed med arduino board. arbejder: -En Hall-effektføler er en transducer, der varierer sin udgangsspænding som reaktion på et magnetfelt. Hall effekt