INHOUDSOPGAWE:
- Stap 1: Installeer Arduino IDE, ESP8266 borde en biblioteke en u ThingSpeak -rekening
- Stap 2: Verken die skets
- Stap 3: Uitleg oor …
- Stap 4: Kommunikasie
- Stap 5: Hoofveranderlikes
Video: Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffek sensor en 'n paar stukkies op Nodemcu - Deel 2 - Sagteware: 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Inleiding
Dit is die opvolger van die eerste plasing "Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffektsensor en 'n paar stukkies op Nodemcu - deel 1 - hardeware" - waar ek wys hoe u die windspoed- en rigtingmeetapparate kan saamstel. Hier gebruik ons die meetbeheersagteware wat ontwerp is vir gebruik in 'n Nodemcu met die Arduino IDE.
Projek Beskrywing
In die vorige pos kan die toestelle wat gewapen en verbind is met die Nodemcu, die snelheid en rigting van die wind meet. Die beheersagteware is ontwerp om die rotasie van die windmeter vir 'n tydperk te lees, die lineêre snelheid te bereken, die rigting waarin die vaan is, te lees, die resultate in die OLED te wys, die resultate in ThingSpeak te publiseer en 15 minute te slaap totdat die volgende meting.
Disclaimer: Hierdie windmeter moet nie vir professionele doeleindes gebruik word nie. Dit is slegs vir akademiese of huishoudelike gebruik.
Let wel: Engels is nie my natuurlike taal nie. As u grammatikale foute vind wat u verhinder om die projek te verstaan, laat weet my asseblief om dit reg te stel. Baie dankie.
Stap 1: Installeer Arduino IDE, ESP8266 borde en biblioteke en u ThingSpeak -rekening
Die installering van Arduino IDE en Nodemcu
As u nog nooit die IDE die Arduino geïnstalleer het nie, lees die tutoriaal in die skakel - Hoe om Arduino IDE te installeer - waar u die volledige instruksies kan vind.
Die volgende stap, om die Nodemcu -bord te installeer, gebruik hierdie tutoriaal van die Magesh Jayakumar Instructables wat baie volledig is. Hoe om Nodemcu no Arduino IDE te installeer
Die installering van biblioteke
In die volgende stap moet u die biblioteke wat die skets gebruik, installeer. Dit is algemeen en u kan die stappe hieronder volg.
ThingSpeak -biblioteek -
ESP8266 -biblioteek -
Skep 'n ThingSpeak -rekening
Om die ThingSpeak (https://thingspeak.com/) te gebruik, moet u 'n rekening skep (dit is nog steeds gratis vir 'n sekere aantal interaksies) waar u die data wat in u windmeter gemeet is, kan stoor en die windtoestande in u huis kan monitor, selfs via selfoon. Deur ThingSpeak te gebruik, kan u die publiek toegang gee tot u versamelde data aan diegene wat belangstel. Dit is 'n goeie voordeel van die ThingSpeak. Voer die tuisblad in en volg die stappe om u rekening te skep.
Sodra die rekening geskep is, voer hierdie tutoriaal in - ThingSpeak Aan die gang - om u kanale te skep. Dit is redelik goed verduidelik. Samevattend moet u 'n kanaal skep waar die data gestoor word. Hierdie kanaal het 'n ID en 'n sleutel -API waarna in die skets verwys moet word elke keer as u data wil opneem. ThingSpeak stoor al die data in 'n bank en wys dit elke keer as u toegang tot u rekening kry, soos u dit opgestel het.
Stap 2: Verken die skets
Vloeidiagram
In die diagram kan u die skets se fluxogram verstaan. As u die Nodemcu wakker maak (skakel), maak dit verbinding met u Wi-Fi-netwerk waarvan u die parameters gekonfigureer het en 1 minuut begin tel om die metings uit te voer. Eerstens tel dit die windmeter van die windmeter vir 25 sekondes, bereken die lineêre snelheid en lees die rigting van die wind. Die resultate word op die OLED getoon. Doen dieselfde stappe weer, en vir hierdie tweede lesing sal dit na die ThingSpeak oorgedra word.
Dan slaap Nodemcu 15 minute om die battery te bespaar. Aangesien ek 'n klein sonpaneel gebruik, is dit noodsaaklik dat ek dit doen. As u 'n 5V -bron gebruik, kan u die program aanpas sodat dit nie slaap nie en die data bly meet.
Die struktuur van die programme
In die diagram kan u die struktuur van die skets sien.
Anemometer_Instruksies
Dit is die hoofprogram wat die biblioteke laai, die veranderlikes begin, die aanhegtingsonderbreking beheer, al die funksies oproep, die windsnelheid bereken, die rigting daarvan bepaal en aan die slaap raak.
kommunikasie
Koppel die WiFi aan en stuur die data na ThingSpeak.
geloofsbriewe.h
Die sleutels van u WiFi -netwerk en die identifiseerders van u rekening in ThingSpeak. Dit is waar u u sleutels -ID's en API's sal verander.
definieer.h
Dit bevat al die veranderlikes van die program. Hier kan u die leestye verander of hoe lank die nodemcu moet slaap.
funksies
Dit bevat die funksies om die parameters te kombineer en die multiplexer te lees, asook die funksie om die rotasies van die windmeter te lees.
oledWys
Toon resultate op die skerm van windspoed en rigting.
Stap 3: Uitleg oor …
Heg Interrupt aan
Die rotasie van die windmeter word gemeet aan die funksie attachInterrupt () (en los interrupt ()) in die GPIO 12 (pen D6) van die Nodemcu (dit het 'n onderbrekingsfunksie op sy D0-D8-penne).
Onderbrekings is gebeurtenisse of toestande wat veroorsaak dat die mikrobeheerder die uitvoering van die taak wat hy verrig, stop, tydelik in 'n ander taak werk en terugkeer na die aanvanklike taak.
U kan die detail van die funksie lees in die skakel vir die tutoriaal van Arduino. Sien attachInterrupt ().
Sintaksis: attachInterrupt (speld, terugbelfunksie, tipe onderbreking/modus);
speld = D6
terugbelfunksie = rpm_anemometer - tel elke pols op 'n veranderlike.
onderbreek tipe/modus = RISING - onderbreek wanneer die pen van laag na hoog gaan.
By elke pols wat deur die magneto in die Hall -sensor geproduseer word, gaan die pen van laag na hoog en word die telfunksie geaktiveer en die pols saamgevat in 'n veranderlike gedurende die vasgestelde 25 sekondes. Sodra die tyd verstryk het, word die toonbank ontkoppel (detachInterrupt ()) en die roetine bereken die snelheid terwyl dit ontkoppel is.
Berekening van die windsnelheid
Sodra vasgestel is hoeveel rotasies die windmeter in 25 sekondes gegee het, bereken ons die snelheid.
- RADIO is die meting vanaf die middelas van die windmeter tot by die punt van die tafeltennisbal. U moes joune baie goed gemeet het (sien dit in die diagram wat 10 cm sê).
- RPS (rotasies per sekonde) = rotasies / 25 sekondes
- RPM (rotasies per minuut) = RPS * 60
- OMEGA (hoeksnelheid - radiale per sekonde) = 2 * PI * RPS
- Lineêre snelheid (meter per sekonde) = OMEGA * RADIO
- Linear_Velocity_kmh (Km per uur) = 3.6 * Linear_Velocity en dit is wat na ThingSpeak gestuur sal word.
Lees windrigting se rigting
Om die posisie van die windvaan te lees om die rigting van die wind te bepaal, stuur die program lae en hoë seine na die multiplexer met al die kombinasies van die parameters A, B, C (muxABC matriks) en wag om die resultaat op pen A0 te ontvang dit kan enige spanning tussen 0 en 3.3V wees. Die kombinasies word in die diagram getoon.
Byvoorbeeld, wanneer C = 0 (laag), B = 0 (laag), A = 0 (laag) gee die multiplexer dit die data van pen 0 en stuur die sein na A0 wat deur die Nodemcu gelees word; as C = 0 (laag), B = 0 (laag), A = 1 (hoog), stuur die multiplexer die data van pen 1 en so aan totdat die lees van die 8 kanale voltooi is.
Aangesien die sein analoog is, verander die program in digitaal (0 of 1), as die spanning kleiner as of gelyk is aan 1.3V, is die sein 0; As dit groter is as 1.3V, is die sein 1. Die waarde 1.3V is willekeurig en vir my het dit baie goed gewerk. Daar is altyd klein lekkasies van stroom en dit beskerm dat daar geen vals positiewe aspekte is nie.
Hierdie data word gestoor in 'n vektorwaarde [8] wat met die adresreeks as kompas vergelyk word. Sien die matriks in die diagram. Byvoorbeeld, as die ontvangde vektor [0, 0, 1, 0, 0, 0, 0, 0, 0] is, dui dit in die matriks die rigting E aan en stem dit ooreen met 'n hoek van 90 grade; as [0, 0, 0, 0, 0, 0, 1, 1] in die matriks die WNW -adres aandui en ooreenstem met 'n hoek van 292,5 grade. Die N stem ooreen met [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] en hoek van 0 grade.
Wat na die ThingSpeak gestuur sal word, is in die hoek omdat dit slegs getalle aanvaar.
Stap 4: Kommunikasie
Hoe om data na ThingSpeak te stuur
Die funksie thingspeaksenddata () is verantwoordelik vir die stuur van die data.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Stuur die snelheidsdata na veld1 van my kanaal
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Stuur die adresdata na veld2 van my kanaal
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Stuur na my kanaal myChannelNumber, met die geskrewe myWriteAPIKey API aangedui deur TS. Hierdie data is deur TS gegenereer tydens die skep van u rekening en kanaal.
Op die foto's hierbo kan u sien hoe die ThingSpeak die ontvangde data toon.
In hierdie skakel het u toegang tot die data van my projek in die openbare kanaal van ThingSpeak.
Stap 5: Hoofveranderlikes
windvaan parameters
- MUX_A D5 - mux pi A tot Nodemcu -pen D5
- MUX_B D4 - mux pin B tot Nodemcu pin D4
- MUX_C D3 - mux -pen C tot Nodemcu -pen D3
- READPIN 0 - Analoog insette op NodeMcu = A0
- NO_PINS 8 - aantal mux -penne
- val [NO_PINS] - poorte 0 tot 7 van mux
- wind_Direction_Angle - Hoek van windrigting
- String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardinale, collaterale en 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} - hoeke van elke rigting
- Syfer [16] [NO_PINS] - Aanwysingsmatriks
- muxABC [8] [3] - ABC mux kombinasies
windmeter parameters
- rpmcount - tel hoeveel rotasies die windmeter in die toegewese tyd gedoen het
- tydmeting = 25,00 - metingduur in sekondes
- timetoSleep = 1 - Nodemcu wakker tyd in minute
- sleepTime = 15 - tyd om binne enkele minute aan te hou slaap
- rpm, rps - rotasie frekwensies (rotasies per minuut, rotasies per sekonde)
- radius - meter - die maat van die lengte van die windvleuel van die anemometer
- linear_velocity - lineêre snelheid in m/seg
- linear_velocity_kmh - lineêre snelheid in km/h
- omega - radiale snelheid in rad/seg
Hieronder vind u die volledige skets. Skep 'n nuwe gids in die Arduino -lêergids van u rekenaar met dieselfde naam as die hoofprogram (Anemometer_Instructables) en plaas dit almal saam.
Voer die data van u wifi -netwerk en die ThingSpeak ID en API Writer -sleutel in die deel Credentials.h in en stoor. Laai op na Nodemcu en dit is al.
Ek beveel 'n goeie roterende waaier aan om die werking van die stelsel te toets.
Laai die toepassing vir IOS of Android genaamd ThingView af om toegang tot die data per selfoon te verkry, wat gelukkig nog steeds gratis is.
Stel u rekeninginstellings op, en u is gereed om die windtoestande van u huis te sien, waar u ook al is.
As u belangstel, besoek my ThingSpeak Channel ID -kanaal: 438851, wat openbaar is, en daar vind u die wind- en rigtingmetings in my huis.
Ek hoop regtig jy het pret.
As u twyfel, moet asseblief nie huiwer om my te kontak nie.
Groete
Aanbeveel:
Tutoriaal: hoe om 'n afstandsdetektor te bou met behulp van Arduino Uno en ultrasoniese sensor: 3 stappe
Tutoriaal: hoe om 'n afstandsdetektor te bou met behulp van Arduino Uno en ultrasoniese sensor: beskrywing: hierdie handleiding wys hoe u 'n eenvoudige afstandsdetektor kan maak wat die afstand tussen ultrasoniese sensor (US-015) en hindernis voor kan meet. Hierdie US-015 ultrasoniese sensor is u perfekte sensor vir afstandmeting en
Hoe om 'n kragbank op sonkrag te bou met behulp van die battery van Dead Mobile: 4 stappe
Hoe om 'n kragbank op sonkrag te bou met behulp van die battery van Dead Mobile: Hierdie projek is 'n kragbank op sonkrag tuis, met die gebruik van 'n dooie selfoon se battery. Ons kan enige battery gelykstaande aan mobiele batterye met dieselfde skema gebruik. Die sonpaneel laai die battery op en ons kan die krag van die battery laai
Hoe om 'n grijperarm met 'n robot -beheerde bou te bou via Nrf24l01 Arduino: 3 stappe (met foto's)
Hoe om 'n gryparm -robot -beheerde robot gebou te word via Nrf24l01 Arduino: die instruksie " Hoe om 'n gryparm te volg, word 'n robot gestuur deur Nrf24l01 Arduino " sal verduidelik hoe u 'n drie -vryheidsgreeparm kan bou wat geïnstalleer is op 'n wiel met wiel aangedryf deur 'n L298N -module met dubbele motor met behulp van MEG
Hoe om van 0 tot 99 te tel met behulp van 8051 mikrobeheerder met 7 segmentweergawe: 5 stappe (met foto's)
Hoe om van 0 tot 99 te tel Met behulp van 8051 mikrobeheerder met 7 -segmentweergawe: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 99 te tel met twee 7 -segment -skerms
Hoe om u eie jetmotor te bou: 10 stappe (met foto's)
Hoe om u eie jetmotor te bou: U hoef nie Jay Leno te wees om 'n motor met motor te besit nie, en ons sal u wys hoe u u eie jet enigne kan maak om u gekke voertuie aan te dryf. Dit is 'n deurlopende projek, en baie bykomende inligting sal beskikbaar wees op ons webwerf