Sadržaj:

Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver: 5 koraka (sa slikama)
Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver: 5 koraka (sa slikama)

Video: Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver: 5 koraka (sa slikama)

Video: Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver: 5 koraka (sa slikama)
Video: ⟦CRO⟧ METEOROLOGIJA 2017 - REUPLOAD 2024, Studeni
Anonim
Kako izgraditi vlastiti anemometar pomoću trska, prekidača Hall efekta i nekih bilješki na Nodemcu - 2. dio - softver
Kako izgraditi vlastiti anemometar pomoću trska, prekidača Hall efekta i nekih bilješki na Nodemcu - 2. dio - softver
Kako izgraditi vlastiti anemometar pomoću trska, prekidača Hall efekta i nekih bilješki na Nodemcu - 2. dio - softver
Kako izgraditi vlastiti anemometar pomoću trska, prekidača Hall efekta i nekih bilješki na Nodemcu - 2. dio - softver

Uvod

Ovo je nastavak prvog posta "Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, senzora Hall efekta i nekih bilješki na Nodemcu - 1. dio - hardver" - gdje pokazujem kako sastaviti uređaje za mjerenje brzine i smjera vjetra. Ovdje ćemo iskoristiti softver za kontrolu mjerenja dizajniran za upotrebu u Nodemcuu pomoću Arduino IDE -a.

Opis projekta

U prethodnom postu, uređaji naoružani i povezani s Nodemcuom mogu mjeriti brzinu i smjer vjetra. Kontrolni softver dizajniran je za čitanje rotacije anemometra u određenom vremenskom razdoblju, izračunavanje linearne brzine, čitanje smjera u kojem se lopatica nalazi, prikaz rezultata u OLED -u, objavljivanje rezultata u ThingSpeaku i spavanje 15 minuta do sljedeće mjerenje.

Odricanje od odgovornosti: Ovaj se anemometar ne smije koristiti u profesionalne svrhe. To je samo za akademsku ili kućnu uporabu.

Napomena: Engleski nije moj prirodni jezik. Ako pronađete gramatičke pogreške koje vas sprječavaju u razumijevanju projekta, obavijestite me da ih ispravim. Puno ti hvala.

Korak 1: Instaliranje Arduino IDE, ESP8266 ploča i knjižnica i vašeg računa ThingSpeak

Instaliranje Arduino IDE, ESP8266 ploča i knjižnica i vašeg računa ThingSpeak
Instaliranje Arduino IDE, ESP8266 ploča i knjižnica i vašeg računa ThingSpeak
Instaliranje Arduino IDE, ESP8266 ploča i knjižnica i vašeg računa ThingSpeak
Instaliranje Arduino IDE, ESP8266 ploča i knjižnica i vašeg računa ThingSpeak

Instaliranje Arduino IDE -a i Nodemcu -a

Ako nikada niste instalirali IDE Arduino, pročitajte vodič na linku - Kako instalirati Arduino IDE - gdje možete pronaći potpune upute.

Sljedeći korak za instaliranje Nodemcu ploče koristite ovaj vodič iz Magesh Jayakumar Instructables koji je vrlo potpun. Kako instalirati Nodemcu bez Arduino IDE -a

Instaliranje knjižnica

Sljedeći korak morate instalirati knjižnice koje skica koristi. Uobičajeni su i možete slijediti dolje navedene korake.

Knjižnica ThingSpeak -

Knjižnica ESP8266 -

Stvaranje ThingSpeak računa

Da biste koristili ThingSpeak (https://thingspeak.com/), morate stvoriti račun (još uvijek je besplatan za određeni broj interakcija) na koji možete spremiti podatke izmjerene u anemometru i pratiti uvjete vjetra u vašem domu, čak i putem mobitela. Korištenjem ThingSpeak -a možete dati javnosti pristup svojim prikupljenim podacima svima koji su zainteresirani. To je dobra prednost ThingSpeaka. Unesite početnu stranicu i slijedite korake za stvaranje računa.

Nakon što je račun stvoren, unesite ovaj vodič - ThingSpeak Getting Started - da biste stvorili svoje kanale. Prilično je dobro objašnjeno. Ukratko, morate stvoriti kanal na kojem će se podaci pohraniti. Ovaj kanal ima ID i API ključa koji se trebaju referencirati u skici svaki put kada želite snimiti podatke. ThingSpeak će sve podatke pohraniti u banku i prikazati ih svaki put kada pristupite svom računu, na način koji ste konfigurirali.

Korak 2: Istražite skicu

Istražujući skicu
Istražujući skicu
Istražujući skicu
Istražujući skicu

Dijagram toka

Na dijagramu možete razumjeti fluksogram skice. Kad se probudite (povežite) Nodemcu, on će se povezati s vašom Wi-Fi mrežom, čije ste parametre konfigurirali i početi odbrojavati 1 minutu vremena za izvođenje mjerenja. Prvo, brojat će rotacije anemometra 25 sekundi, izračunajte linearnu brzinu i očitati smjer vjetra. Rezultati su prikazani na OLED -u. Ponovite iste korake i za ovo drugo čitanje proslijedit će se na ThingSpeak.

Zatim Nodemcu spava 15 minuta kako bi uštedio bateriju. Budući da koristim mali solarni panel, to je neophodno učiniti. Ako koristite izvor od 5 V, možete izmijeniti program tako da ne spava i nastaviti mjeriti podatke.

Struktura programa

Na dijagramu možete vidjeti strukturu skice.

Anemometar_Instruktubilni

To je glavni program koji učitava knjižnice, pokreće varijable, kontrolira prekid pripajanja, poziva sve funkcije, izračunava brzinu vjetra, određuje njegov smjer i uspavljuje.

komunikacije

Povežite WiFi i pošaljite podatke na ThingSpeak.

vjerodajnice.h

Ključevi vaše WiFi mreže i identifikatori vašeg računa u ThingSpeaku. Ovdje ćete promijeniti svoje ključeve ID -ove i API -je.

definira.h

Sadrži sve varijable programa. Ovdje možete promijeniti vrijeme čitanja ili koliko dugo bi čvor trebao spavati.

funkcije

Sadrži funkcije za kombiniranje parametara i očitavanje multipleksera, kao i funkciju za očitavanje rotacija anemometra.

oledDisplay

Prikažite na ekranu rezultate brzine i smjera vjetra.

Korak 3: Objašnjenja o…

Objašnjenja o…
Objašnjenja o…
Objašnjenja o…
Objašnjenja o…
Objašnjenja o…
Objašnjenja o…
Objašnjenja o…
Objašnjenja o…

Priloži prekid

Okretanje anemometra mjeri se pomoću funkcije attachInterrupt () (i detachInterrupt ()) u GPIO 12 (pin D6) Nodemcu-a (Ima značajku prekida na svojim pinovima D0-D8).

Prekidi su događaji ili uvjeti koji uzrokuju da mikrokontroler zaustavi izvršavanje zadatka koji izvršava, privremeno radi u drugom zadatku i vrati se na početni zadatak.

Detalje funkcije možete pročitati na poveznici za udžbenik o Arduinu. Pogledajte attachInterrupt ().

Sintaksa: attachInterrupt (pin, funkcija povratnog poziva, vrsta/način prekida);

pin = D6

funkcija povratnog poziva = rpm_anemometar - broji svaki impuls na varijabli.

vrsta/način prekida = RISING - prekida se kad pin pređe s niskog na visoko.

Pri svakom impulsu koji proizvodi magneto u Hall -ovom senzoru, pin prelazi s niskog na visoko, a funkcija brojanja se aktivira i zbraja puls u varijabli, tijekom utvrđenih 25 sekundi. Nakon što vrijeme istekne, brojač je isključen (detachInterrupt ()) i rutina izračunava brzinu dok je isključen.

Izračunavanje brzine vjetra

Nakon što se utvrdi koliko je okretaja anemometar dao za 25 sekundi, izračunavamo brzinu.

  • RADIO je mjerenje od središnje osi anemometra do vrha loptice za stolni tenis. Sigurno ste dobro izmjerili svoje - (pogledajte to na dijagramu koji kaže 10 cm).
  • RPS (rotacije u sekundi) = rotacije / 25 sekundi
  • RPM (okretaji u minuti) = RPS * 60
  • OMEGA (kutna brzina - radijani u sekundi) = 2 * PI * RPS
  • Linearna_Brzina (metri u sekundi) = OMEGA * RADIO
  • Linearna_Velocity_kmh (Km na sat) = 3,6 * Linearna_Velocity i to je ono što će se poslati na ThingSpeak.

Pročitajte smjer lopatice

Za očitavanje položaja vjetrobrana radi određivanja smjera vjetra, program šalje niske i visoke signale multiplekseru sa svim kombinacijama parametara A, B, C (muxABC matrica) i pričeka da na pin A0 primi rezultat to može biti bilo koji napon između 0 i 3.3V. Kombinacije su prikazane na dijagramu.

Na primjer, kada je C = 0 (nisko), B = 0 (nisko), A = 0 (nisko), multiplekser mu daje podatke o pinu 0 i šalje signal A0 koji čita Nodemcu; ako je C = 0 (nisko), B = 0 (nisko), A = 1 (visoko), multiplekser će vam poslati podatke o pinu 1 i tako dalje, sve dok čitanje 8 kanala ne završi.

Kako je signal analogni, program se pretvara u digitalni (0 ili 1), ako je napon manji ili jednak 1,3 V signal je 0; ako je veći od 1,3V signal je 1. Vrijednost 1,3V je proizvoljna i za mene je radila jako dobro. Uvijek postoje mala curenja struje i to štiti da nema lažno pozitivnih rezultata.

Ti se podaci spremaju u vektorski val [8] koji će se uspoređivati s nizom adresa kao kompasom. Pogledajte matricu na dijagramu. Na primjer, ako je primljeni vektor [0, 0, 1, 0, 0, 0, 0, 0, 0] on označava u matrici smjer E i odgovara kutu od 90 stupnjeva; ako [0, 0, 0, 0, 0, 0, 1, 1] označava u matrici WNW adresu i odgovara kutu od 292,5 stupnjeva. N odgovara [1, 0, 0, 0, 0, 0, 0, 0, 0] i kutu od 0 stupnjeva.

Ono što će se poslati na ThingSpeak je pod kutom jer prihvaća samo brojeve.

Korak 4: Komunikacija

Komunikacije
Komunikacije
Komunikacije
Komunikacije

Kako poslati podatke u ThingSpeak

Funkcija thingspeaksenddata () odgovorna je za slanje podataka.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Pošalji podatke o brzini u polje1 mog kanala

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Pošaljite podatke o adresi u polje 2 mog kanala

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Pošalji na moj kanal myChannelNumber, s pisanim API -jem myWriteAPIKey označenim TS -om. Ove je podatke generirala TS prilikom izrade vašeg računa i kanala.

Na gornjim slikama možete vidjeti kako ThingSpeak prikazuje primljene podatke.

Na ovoj poveznici možete pristupiti podacima mog projekta na javnom kanalu ThingSpeak -a.

Korak 5: Glavne varijable

parametri lopatica za vjetar

  • MUX_A D5 - mux pi A do Nodemcu pin D5
  • MUX_B D4 - mux pin B na Nodemcu pin D4
  • MUX_C D3 - mux pin C na Nodemcu pin D3
  • READPIN 0 - Analogni ulaz na NodeMcu = A0
  • NO_PINS 8 - broj mux pinova
  • val [NO_PINS] - priključci 0 do 7 mux
  • wind_Direction_Angle - Kut smjera vjetra
  • Niz windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardenali, kolaterali i pod -kolaterali
  • 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} - kutovi svakog smjera
  • Znamenka [16] [NO_PINS] - Matrica smjerova
  • muxABC [8] [3] - ABC mux kombinacije

parametri anemometra

  • rpmcount - izbrojite koliko je punih okretaja anemometar napravio u zadanom vremenu
  • timemeasure = 25.00 - vrijeme trajanja mjerenja u sekundama
  • timetoSleep = 1 - Nodemcu vrijeme buđenja u minutama
  • sleepTime = 15 - vrijeme za spavanje u minutama
  • o / min, rps - frekvencije rotacije (rotacije u minuti, rotacije u sekundi)
  • radijus - metri - mjera duljine krila anemometra
  • linearna_ brzina - linearna brzina u m/seg
  • linearna_brzina_kmh - linearna brzina u km/h
  • omega - radijalna brzina u rad/seg

Ispod možete pronaći cijelu skicu. Napravite novu mapu na mapi Arduino na vašem računalu s istim imenom kao i glavni program (Anemometer_Instructables) i sve ih spojite.

Unesite podatke svoje WiFi mreže i ThingSpeak ID i API Writer ključ u dio Credentials.h i spremite. Prenesite na Nodemcu i to je sve.

Za provjeru rada sustava preporučujem dobar rotirajući ventilator.

Za pristup podacima mobilnim telefonom preuzmite aplikaciju za IOS ili Android pod nazivom ThingView, koja je, na sreću, još uvijek besplatna.

Konfigurirajte postavke računa i bit ćete spremni vidjeti uvjete vjetra kod kuće gdje god se nalazili.

Ako vas zanima, pristupite mom kanalu ThingSpeak Channel ID: 438851, koji je javan i tamo ćete pronaći mjerenja vjetra i smjera u mojoj kući.

Iskreno se nadam da ćete se zabaviti.

Ako imate bilo kakvih nedoumica, ne ustručavajte se kontaktirati me.

Pozdrav

Preporučeni: