Kazalo:

Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hallovih učinkov in nekaj zapiskov na Nodemcu - 2. del - Programska oprema: 5 korakov (s slikami)
Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hallovih učinkov in nekaj zapiskov na Nodemcu - 2. del - Programska oprema: 5 korakov (s slikami)

Video: Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hallovih učinkov in nekaj zapiskov na Nodemcu - 2. del - Programska oprema: 5 korakov (s slikami)

Video: Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hallovih učinkov in nekaj zapiskov na Nodemcu - 2. del - Programska oprema: 5 korakov (s slikami)
Video: Часть 05 - Аудиокнига «Наш общий друг» Чарльза Диккенса (книга 2, главы 1–4) 2024, November
Anonim
Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hall -ovega učinka in nekaj zapiskov na Nodemcu - 2. del - programska oprema
Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hall -ovega učinka in nekaj zapiskov na Nodemcu - 2. del - programska oprema
Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hall -ovega učinka in nekaj zapiskov na Nodemcu - 2. del - programska oprema
Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hall -ovega učinka in nekaj zapiskov na Nodemcu - 2. del - programska oprema

Uvod

To je nadaljevanje prve objave "Kako zgraditi lasten anemometer z uporabo trstičnih stikal, senzorja Hallovih učinkov in nekaj zapiskov na Nodemcu - 1. del - Strojna oprema" - kjer bom pokazal, kako sestaviti naprave za merjenje hitrosti in smeri vetra. Tu bomo izkoristili programsko opremo za nadzor meritev, namenjeno uporabi v Nodemcuju z uporabo Arduino IDE.

Opis projekta

V prejšnjem prispevku lahko naprave, oborožene in povezane z Nodemcu, izmerijo hitrost in smer vetra. Programska oprema za krmiljenje je bila zasnovana tako, da za določen čas odčita vrtenje anemometra, izračuna linearno hitrost, prebere smer, v kateri je lopatica, prikaže rezultate v OLED -u, objavi rezultate v ThingSpeaku in spi 15 minut, dokler naslednjo meritev.

Izjava o omejitvi odgovornosti: Tega anemometra ne smete uporabljati v poklicne namene. Uporablja se samo za akademsko ali domačo uporabo.

Opomba: angleščina ni moj naravni jezik. Če ugotovite slovnične napake, ki vam preprečujejo razumevanje projekta, mi to sporočite, da jih popravim. Najlepša hvala.

1. korak: Namestitev plošč in knjižnic Arduino IDE, ESP8266 in vašega računa ThingSpeak

Nameščanje plošč in knjižnic Arduino IDE, ESP8266 in vašega računa ThingSpeak
Nameščanje plošč in knjižnic Arduino IDE, ESP8266 in vašega računa ThingSpeak
Namestitev plošč in knjižnic Arduino IDE, ESP8266 in vašega računa ThingSpeak
Namestitev plošč in knjižnic Arduino IDE, ESP8266 in vašega računa ThingSpeak

Namestitev Arduino IDE in Nodemcu

Če IDU -ja še niste namestili, preberite vadnico na povezavi - Kako namestiti Arduino IDE - kjer najdete popolna navodila.

Naslednji korak, da namestite ploščo Nodemcu, uporabite to vadnico iz Magesh Jayakumar Instructables, ki je zelo popolna. Kako namestiti Nodemcu brez Arduino IDE

Namestitev knjižnic

Naslednji korak morate namestiti knjižnice, ki jih uporablja skica. So pogosti in lahko sledite spodnjim korakom.

Knjižnica ThingSpeak -

Knjižnica ESP8266 -

Ustvarjanje računa ThingSpeak

Če želite uporabljati ThingSpeak (https://thingspeak.com/), morate ustvariti račun (še vedno je brezplačen za določeno število interakcij), kamor lahko shranite podatke, izmerjene v vašem anemometru, in spremljate razmere vetra v vašem domu, tudi prek mobilnega telefona. Z uporabo ThingSpeak lahko vsem, ki jih zanimate, omogočite javni dostop do zbranih podatkov. To je dobra prednost ThingSpeaka. Vnesite domačo stran in sledite korakom za ustvarjanje računa.

Ko ustvarite račun, vnesite to vadnico - ThingSpeak Getting Started - za ustvarjanje svojih kanalov. Je precej dobro razloženo. Če povzamemo, morate ustvariti kanal, kjer bodo shranjeni podatki. Ta kanal ima ID in ključ API, na katerega se morate skicirati vsakič, ko želite posneti podatke. ThingSpeak bo vse podatke shranil v banki in jih prikazal ob vsakem dostopu do računa na način, ki ste ga nastavili.

2. korak: Raziščite skico

Raziskovanje skice
Raziskovanje skice
Raziskovanje skice
Raziskovanje skice

Diagram poteka

Na diagramu lahko razumete fluksogram skice. Ko se zbudite (povežete) Nodemcu, se bo povezal z vašim omrežjem Wi-Fi, katerega parametre ste konfigurirali in začeli šteti 1 minuto časa za izvedbo meritev. Najprej bo 25 sekund štel vrtenja anemometra, izračunali linearno hitrostjo in prebrati smer vetra. Rezultati so prikazani na OLED. Ponovite iste korake in za to drugo branje bo poslano v ThingSpeak.

Nato Nodemcu spi 15 minut, da prihrani baterijo. Ker uporabljam majhno sončno ploščo, je to nujno potrebno. Če uporabljate vir 5V, lahko program spremenite tako, da ne spi, in še naprej merite podatke.

Struktura programov

Na diagramu si lahko ogledate strukturo skice.

Anemometer_Instructables

To je glavni program, ki naloži knjižnice, zažene spremenljivke, nadzira prekinitev priklopa, pokliče vse funkcije, izračuna hitrost vetra, določi njegovo smer in ga uspava.

komunikacije

Povežite WiFi in pošljite podatke v ThingSpeak.

poverilnice.h

Ključi vašega omrežja WiFi in identifikatorji vašega računa v ThingSpeak. Tu boste spremenili svoje ID -je ključev in API -je.

definira.h

Vsebuje vse spremenljivke programa. Tu lahko spremenite čas branja ali kako dolgo naj vozlišče spi.

funkcije

Vsebuje funkcije za združevanje parametrov in branje multiplekserja ter funkcijo za branje vrtenja anemometra.

oledDisplay

Na zaslonu prikažite rezultate hitrosti in smeri vetra.

3. korak: Pojasnila o…

Pojasnila o…
Pojasnila o…
Pojasnila o…
Pojasnila o…
Pojasnila o…
Pojasnila o…
Pojasnila o…
Pojasnila o…

Pripni Prekinitev

Vrtenje anemometra se meri s funkcijo attachInterrupt () (in detachInterrupt ()) v GPIO 12 (pin D6) Nodemcu (na nožicah D0-D8 ima funkcijo prekinitve).

Prekinitve so dogodki ali pogoji, zaradi katerih mikrokrmilnik ustavi izvajanje naloge, ki jo izvaja, začasno dela v drugi nalogi in se vrne na začetno nalogo.

Podrobnosti o funkciji si lahko preberete na povezavi do vadnice Arduino. Glejte attachInterrupt ().

Sintaksa: attachInterrupt (pin, funkcija povratnega klica, vrsta/način prekinitve);

pin = D6

funkcija povratnega klica = rpm_anemometer - šteje vsak impulz na spremenljivki.

vrsta/način prekinitve = RISING - prekinite, ko pin preide iz nizkega v visoko.

Pri vsakem impulzu, ki ga proizvede magnet v Hall -ovem senzorju, se nožica preusmeri od nizkega do visokega, funkcija štetja pa se v nastavljenih 25 sekundah aktivira in sešteje impulz v spremenljivki. Ko je čas potekel, se števec odklopi (detachInterrupt ()) in rutina izračuna hitrost, ko je odklopljen.

Izračun hitrosti vetra

Ko ugotovimo, koliko vrtljajev je anemometer opravil v 25 sekundah, izračunamo hitrost.

  • RADIO je merjenje od osne anemometra do konice žoge za namizni tenis. Gotovo ste svojega zelo dobro izmerili - (glejte to v diagramu, ki pravi 10 cm).
  • RPS (vrtljaji na sekundo) = rotacije / 25 sekund
  • RPM (vrtljaji na minuto) = RPS * 60
  • OMEGA (kotna hitrost - radiani na sekundo) = 2 * PI * RPS
  • Linearna_Velocity (metri na sekundo) = OMEGA * RADIO
  • Linearna_Velocity_kmh (Km na uro) = 3,6 * Linearna_Velocity in to je tisto, kar bo poslano v ThingSpeak.

Preberite smer vetrnice

Za branje položaja vetrnice za določitev smeri vetra program pošilja nizke in visoke signale multiplekserju z vsemi kombinacijami parametrov A, B, C (matrika muxABC) in počakajte, da na pin A0 prejmete rezultat to je lahko katera koli napetost med 0 in 3,3 V. Kombinacije so prikazane na diagramu.

Na primer, ko je C = 0 (nizko), B = 0 (nizko), A = 0 (nizko), mu multiplekser poda podatke nožice 0 in pošlje signal A0, ki ga prebere Nodemcu; če je C = 0 (nizko), B = 0 (nizko), A = 1 (visoko), vam bo multiplekser poslal podatke o zatiču 1 in tako naprej, dokler se odčitavanje 8 kanalov ne zaključi.

Ker je signal analogen, se program pretvori v digitalni (0 ali 1), če je napetost manjša ali enaka 1,3 V, je signal 0; če je večji od 1,3 V, je signal 1. Vrednost 1,3 V je poljubna in zame je delovala zelo dobro. Vedno pride do majhnih uhajanj toka in to ščiti, da ni lažno pozitivnih rezultatov.

Ti podatki so shranjeni v vektorski val [8], ki jo bomo primerjali z matrico naslovov kot kompasom. Oglejte si matriko na diagramu. Na primer, če je sprejeti vektor [0, 0, 1, 0, 0, 0, 0, 0, 0], v matrici označi smer E in ustreza kotu 90 stopinj; če [0, 0, 0, 0, 0, 0, 1, 1] v matrici označi naslov WNW in ustreza kotu 292,5 stopinj. N ustreza [1, 0, 0, 0, 0, 0, 0, 0, 0] in kot 0 stopinj.

Kaj bo poslano v ThingSpeak, je pod kotom, ker sprejema samo številke.

4. korak: Komunikacija

Komunikacije
Komunikacije
Komunikacije
Komunikacije

Kako poslati podatke v ThingSpeak

Za pošiljanje podatkov je odgovorna funkcija thingspeaksenddata ().

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Pošlji podatke o hitrosti v polje 1 mojega kanala

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Pošlji podatke o naslovu v polje 2 mojega kanala

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Pošlji na moj kanal myChannelNumber s pisnim API -jem myWriteAPIKey, ki ga označuje TS. Te podatke je ustvarila TS pri ustvarjanju vašega računa in kanala.

Na zgornjih slikah lahko vidite, kako ThingSpeak prikazuje prejete podatke.

Na tej povezavi lahko dostopate do podatkov mojega projekta v javnem kanalu ThingSpeak.

5. korak: glavne spremenljivke

parametri vetrnice

  • MUX_A D5 - mux pi A do Nodemcu pin D5
  • MUX_B D4 - mux pin B do Nodemcu pin D4
  • MUX_C D3 - mux pin C do Nodemcu pin D3
  • READPIN 0 - Analogni vhod na NodeMcu = A0
  • NO_PINS 8 - število mux zatičev
  • val [NO_PINS] - vrata 0 do 7 vmesnika
  • wind_Direction_Angle - kot smeri vetra
  • Niz windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardenali, zavarovanja s premoženjem in podzavarovanja
  • 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} - koti v vsako smer
  • Številka [16] [NO_PINS] - Matrika navodil
  • muxABC [8] [3] - kombinacije mux ABC

parametri anemometra

  • rpmcount - preštejte, koliko polnih obratov je anemometer opravil v predvidenem času
  • timemeasure = 25.00 - čas trajanja meritve v sekundah
  • timetoSleep = 1 - Nodemcu čas bujenja v minutah
  • sleepTime = 15 - čas za spanje v minutah
  • rpm, rps - frekvence vrtenja (vrtljaji na minuto, rotacije na sekundo)
  • polmer - metri - merilo dolžine krila anemometra
  • linearna hitrost - linearna hitrost v m/seg
  • linearna_hitrost_kmh - linearna hitrost v km/h
  • omega - radialna hitrost v rad/seg

Spodaj najdete celotno skico. Ustvarite novo mapo v mapi Arduino v računalniku z istim imenom kot glavni program (Anemometer_Instructables) in jih združite.

V del Credentials.h vnesite podatke o svojem omrežju wifi ter ID in ključ za pisanje API -ja ThingSpeak in shranite. Naloži v Nodemcu in to je vse.

Za preizkus delovanja sistema priporočam dober vrtljiv ventilator.

Za dostop do podatkov po mobilnem telefonu prenesite aplikacijo za IOS ali Android, imenovano ThingView, ki je na srečo še vedno brezplačna.

Konfigurirajte nastavitve računa in pripravljeni boste videti pogoje vetra doma, kjer koli že ste.

Če vas zanima, dostopajte do mojega kanala kanala ThingSpeak Channel ID: 438851, ki je javen in tam boste našli meritve vetra in smeri v moji hiši.

Resnično upam, da se boste zabavali.

Če dvomite, me ne oklevajte.

S spoštovanjem

Priporočena: