Innholdsfortegnelse:
- Trinn 1: Installere Arduino IDE, ESP8266 Boards and Libraries og din ThingSpeak -konto
- Trinn 2: Utforske skissen
- Trinn 3: Forklaringer om …
- Trinn 4: Kommunikasjon
- Trinn 5: Hovedvariabler
Video: Hvordan bygge ditt eget vindmåler ved hjelp av Reed Switches, Hall Effect Sensor og noen rester på Nodemcu - Del 2 - Programvare: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Introduksjon
Dette er oppfølgeren til det første innlegget "How to Build Your Own Anemometer Using Reed Switches, Hall Effect Sensor and Some Scraps on Nodemcu - Part 1 - Hardware" - hvor jeg viser hvordan jeg monterer måleinstrumenter for vindhastighet og retning. Her vil vi utnytte målekontrollprogramvaren designet for bruk i en Nodemcu ved bruk av Arduino IDE.
Prosjektbeskrivelse
I forrige innlegg kan enhetene som er bevæpnet og koblet til Nodemcu, måle vindens hastighet og retning. Kontrollprogramvaren ble designet for å lese rotasjonen av vindmåleren i en periode, beregne den lineære hastigheten, lese retningen som bladet er i, vise resultatene i OLED, publisere resultatene i ThingSpeak og sove i 15 minutter til neste måling.
Ansvarsfraskrivelse: Dette vindmåleren skal ikke brukes til profesjonelle formål. Det er bare for akademisk eller hjemmebruk.
Merk: Engelsk er ikke mitt naturlige språk. Hvis du finner grammatiske feil som hindrer deg i å forstå prosjektet, vennligst gi meg beskjed for å rette dem. Tusen takk.
Trinn 1: Installere Arduino IDE, ESP8266 Boards and Libraries og din ThingSpeak -konto
Installere Arduino IDE og Nodemcu
Hvis du aldri har installert IDE the Arduino, vennligst les opplæringen i lenken - Hvordan installere Arduino IDE - hvor du kan finne de fullstendige instruksjonene.
Neste trinn, for å installere Nodemcu -kortet, bruker denne opplæringen fra Magesh Jayakumar Instructables som er veldig komplett. Slik installerer du Nodemcu no Arduino IDE
Installere biblioteker
Neste trinn må du installere bibliotekene som skissen bruker. De er vanlige, og du kan følge trinnene vist nedenfor.
ThingSpeak Library -
ESP8266 Library -
Opprette en ThingSpeak -konto
For å bruke ThingSpeak (https://thingspeak.com/) må du opprette en konto (den er fortsatt gratis for et visst antall interaksjoner) der du kan lagre dataene målt i vindmåleren og overvåke vindforholdene i hjemmet ditt, selv via mobiltelefon. Ved å bruke ThingSpeak kan du gi publikum tilgang til dine innsamlede data til den som er interessert. Det er en god fordel med ThingSpeak. Skriv inn hjemmesiden og følg trinnene for å opprette kontoen din.
Når kontoen er opprettet, skriver du inn denne opplæringen - ThingSpeak Komme i gang - for å opprette kanalene dine. Det er ganske godt forklart. Oppsummert må du opprette en kanal der dataene vil bli lagret. Denne kanalen har en ID og et nøkkel -API som det skal vises til i skissen hver gang du vil registrere data. ThingSpeak lagrer alle dataene i en bank og viser dem hver gang du får tilgang til kontoen din, på den måten du har konfigurert.
Trinn 2: Utforske skissen
Flytskjema
I diagrammet kan du forstå skissens fluxogram. Når du våkner (kobler) Nodemcu, kobles den til Wi-Fi-nettverket, hvis parametere du har konfigurert og begynner å telle 1 minutt for å utføre målingene. Først vil det telle vindmålerotasjonene i 25 sekunder, beregne den lineære hastigheten og les vindens retning. Resultatene er vist på OLED. Gjør de samme trinnene igjen, og for denne andre behandlingen vil den overføres til ThingSpeak.
Deretter sover Nodemcu i 15 minutter for å spare batteri. Siden jeg bruker et lite solcellepanel, er det viktig at jeg gjør det. Hvis du bruker en 5V -kilde, kan du endre programmet slik at det ikke sover og fortsette å måle dataene.
Oppbygning av programmene
I diagrammet kan du se strukturen til skissen.
Anemometer_Instructables
Det er hovedprogrammet som laster inn bibliotekene, starter variablene, styrer vedleggsavbruddet, kaller alle funksjonene, beregner vindhastigheten, bestemmer retningen og setter den i dvale.
kommunikasjon
Koble til WiFi og send dataene til ThingSpeak.
legitimasjon.h
Nøklene til ditt WiFi -nettverk og identifikatorene til kontoen din i ThingSpeak. Det er her du vil endre nøkkel -ID -er og API -er.
definerer. h
Den inneholder alle variablene i programmet. Det er her du kan endre lesetiden eller hvor lenge nodemcu skal sove.
funksjoner
Den inneholder funksjonene for å kombinere parametrene og lese multiplexeren, samt funksjonen til å lese rotasjonene til vindmåleren.
oledDisplay
Vis resultater på vinduet med vindhastighet og retning.
Trinn 3: Forklaringer om …
Legg til Avbryt
Anemometerets rotasjon måles med funksjonen attachInterrupt () (og detachInterrupt ()) i GPIO 12 (pin D6) på Nodemcu (den har avbruddsfunksjon på D0-D8-pinnene).
Avbrudd er hendelser eller forhold som får mikrokontrolleren til å stoppe utførelsen av oppgaven den utfører, arbeide midlertidig i en annen oppgave og komme tilbake til den opprinnelige oppgaven.
Du kan lese detaljene i funksjonen i lenken for opplæringen av Arduino. Se vedleggInterrupt ().
Syntaks: attachInterrupt (pin, tilbakeringingsfunksjon, avbryt type/modus);
pin = D6
tilbakeringingsfunksjon = rpm_anemometer - teller hver puls på en variabel.
avbryt type/modus = RISING - avbryt når pinnen går fra lav til høy.
Ved hver puls produsert av magneto i Hall -sensoren går pinnen fra lav til høy, og tellefunksjonen aktiveres og summeres puls i en variabel i løpet av de 25 sekundene som er etablert. Når tiden er utløpt, blir telleren koblet fra (detachInterrupt ()) og rutinen beregner hastigheten mens den er frakoblet.
Beregner vindhastigheten
Når det er bestemt hvor mange rotasjoner vindmåleren ga på 25 sekunder, beregner vi hastigheten.
- RADIO er målingen fra senteraksen til vindmåleren til spissen av bordtennisballen. Du må ha målt din veldig godt - (se det i diagrammet som sier 10 cm).
- RPS (rotasjoner per sekund) = rotasjoner / 25 sekunder
- RPM (rotasjoner per minutt) = RPS * 60
- OMEGA (vinkelhastighet - radianer per sekund) = 2 * PI * RPS
- Linear_Velocity (meter per sekund) = OMEGA * RADIO
- Linear_Velocity_kmh (Km per time) = 3.6 * Linear_Velocity og dette er det som skal sendes til ThingSpeak.
Les vindskovlretningen
For å lese vindbladets posisjon for å bestemme vindretningen sender programmet lave og høye signaler til multiplexeren med alle kombinasjonene av parameterne A, B, C (muxABC -matrise) og venter på å motta resultatet på pin A0 som kan være hvilken som helst spenning mellom 0 og 3,3V. Kombinasjonene er vist i diagrammet.
For eksempel, når C = 0 (lav), B = 0 (lav), A = 0 (lav) gir multiplekseren dataene til pin 0 og sender signalet til A0 som leses av Nodemcu; hvis C = 0 (lav), B = 0 (lav), A = 1 (høy) vil multiplexeren sende deg dataene til pin 1 og så videre, til avlesningen av de 8 kanalene er fullført.
Ettersom signalet er analogt, forvandles programmet til digitalt (0 eller 1), hvis spenningen er mindre enn eller lik 1.3V er signalet 0; hvis det er større enn 1,3V er signalet 1. Verdien 1,3V er vilkårlig og for meg fungerte det veldig bra. Det er alltid små lekkasjer av strøm, og dette beskytter at det ikke er falske positive.
Disse dataene er lagret i en vektorval [8] som vil bli sammenlignet med adressearrayet som kompasset. Se matrisen i diagrammet. For eksempel, hvis den mottatte vektoren er [0, 0, 1, 0, 0, 0, 0, 0, 0] angir den i matrisen retningen E og tilsvarer en vinkel på 90 grader; hvis [0, 0, 0, 0, 0, 0, 1, 1] angir WNW -adressen i matrisen og tilsvarer en vinkel på 292,5 grader. N tilsvarer [1, 0, 0, 0, 0, 0, 0, 0, 0] og vinkel på 0 grader.
Det som skal sendes til ThingSpeak er i vinkelen fordi den bare godtar tall.
Trinn 4: Kommunikasjon
Slik sender du data til ThingSpeak
Funksjonen thingspeaksenddata () er ansvarlig for å sende dataene.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Send hastighetsdata til felt1 på kanalen min
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Send adressedataene til felt2 på kanalen min
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Send til kanalen min myChannelNumber, med den skrevne myWriteAPIKey API angitt av TS. Disse dataene ble generert av TS da du opprettet kontoen og kanalen din.
På bildene ovenfor kan du se hvordan ThingSpeak viser mottatte data.
I denne lenken kan du få tilgang til dataene fra prosjektet mitt i den offentlige kanalen til ThingSpeak.
Trinn 5: Hovedvariabler
vindvinge parametere
- 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 inngang på NodeMcu = A0
- NO_PINS 8 - antall mux -pinner
- val [NO_PINS] - porter 0 til 7 av mux
- wind_Direction_Angle - Vinkelen 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
- Siffer [16] [NO_PINS] - Veibeskrivelsesmatrise
- muxABC [8] [3] - ABC mux -kombinasjoner
vindmålerparametere
- rpmcount - teller hvor mange fulle rotasjoner som vindmåleren gjorde på den tildelte tiden
- tidsmål = 25,00 - målingstid i sekunder
- timetoSleep = 1 - Nodemcu våken tid i minutter
- sleepTime = 15 - tid for å fortsette å sove på få minutter
- rpm, rps - rotasjonsfrekvenser (rotasjoner per minutt, rotasjoner per sekund)
- radius - meter - mål på lengden på anemometervinge
- linear_velocity - lineær hastighet i m/seg
- linear_velocity_kmh - lineær hastighet i km/t
- omega - radiell hastighet i rad/seg
Nedenfor finner du hele skissen. Lag en ny mappe i Arduino -mappen på datamaskinen din med samme navn som hovedprogrammet (Anemometer_Instructables) og sett dem alle sammen.
Skriv inn dataene til wifi -nettverket og ThingSpeak ID og API Writer Key i delen Credentials.h og lagre. Last opp til Nodemcu og det er alt.
For å teste driften av systemet anbefaler jeg en god roterende vifte.
For å få tilgang til dataene med mobiltelefon, last ned programmet for IOS eller Android som heter ThingView, som heldigvis fortsatt er gratis.
Konfigurer kontoinnstillingene, og du vil være klar til å se vindforholdene i hjemmet ditt uansett hvor du er.
Hvis du har interesse, kan du få tilgang til min ThingSpeak Channel ID -kanal: 438851, som er offentlig, og der finner du vind- og retningsmålinger i huset mitt.
Jeg håper virkelig du koser deg.
Hvis du er i tvil, ikke nøl med å kontakte meg.
Hilsen
Anbefalt:
Opplæring: Hvordan bygge rekkevidde detektor ved hjelp av Arduino Uno og ultralyd sensor: 3 trinn
Opplæring: Hvordan bygge avstandsdetektor ved hjelp av Arduino Uno og ultralydssensor: Beskrivelse: Denne opplæringen viser hvordan du lager en enkel avstandsdetektor som kan måle avstanden mellom ultralydsensor (US-015) og hindring foran den. Denne ultralydsensoren US-015 er din perfekte sensor for avstandsmåling og
Hvordan lage en drone ved hjelp av Arduino UNO - Lag en quadcopter ved hjelp av mikrokontroller: 8 trinn (med bilder)
Hvordan lage en drone ved hjelp av Arduino UNO | Lag en Quadcopter ved hjelp av mikrokontroller: Introduksjon Besøk min Youtube -kanal En Drone er en veldig dyr gadget (produkt) å kjøpe. I dette innlegget skal jeg diskutere hvordan jeg får det billig? Og hvordan kan du lage din egen slik til en billig pris … Vel, i India er alle materialer (motorer, ESCer
Hvordan bygge ditt eget 3D -trykte quadcopter: 4 trinn
Hvordan bygge ditt eget 3D -trykte quadcopter: I dag skal vi lage et fullt funksjonelt quadcopter av 3D -trykte deler, motorer og elektronikk
Hall Effect Sensor på Arduino ved hjelp av Fidget Spinner: 3 trinn (med bilder)
Hall Effect Sensor på Arduino Bruke Fidget Spinner: Abstract I dette prosjektet forklarer jeg om hvordan hall effect sensor fungerer som måler fidget spinner hastighet med arduino board. fungerer: -En Hall-effekt-sensor er en transduser som varierer utgangsspenningen som respons på et magnetfelt. Hall effekt
Hvordan bygge ditt eget nettsted: 16 trinn
Hvordan bygge ditt eget nettsted: En fullstendig dekket guide for å komme fra papir til nettet, gratis hvis du vil, spesielt hvis noen vennlige nettredaktører skylder deg noen fordeler, men selv med liten erfaring og kunnskap kan du bygge et nettsted og få det på nettet slik: