INHOUDSOPGAWE:

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)
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)

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)

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)
Video: Hoe de zool aan de schoen te lijmen? 2024, Junie
Anonim
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffek sensor en 'n paar stukkies op Nodemcu - Deel 2 - sagteware
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffek sensor en 'n paar stukkies op Nodemcu - Deel 2 - sagteware
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffek sensor en 'n paar stukkies op Nodemcu - Deel 2 - sagteware
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffek sensor en 'n paar stukkies op Nodemcu - Deel 2 - sagteware

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, ESP8266 borde en biblioteke en u ThingSpeak -rekening
Die installering van Arduino IDE, ESP8266 borde en biblioteke en u ThingSpeak -rekening
Die installering van Arduino IDE, ESP8266 borde en biblioteke en u ThingSpeak -rekening
Die installering van 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

Verken die skets
Verken die skets
Verken die skets
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 …

Verduidelikings oor…
Verduidelikings oor…
Verduidelikings oor…
Verduidelikings oor…
Verduidelikings oor…
Verduidelikings oor…
Verduidelikings oor…
Verduidelikings 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

Kommunikasie
Kommunikasie
Kommunikasie
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: