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: Trigonometrija ep 4 - Merenje visine drveta?! 2024, Jun
Anonim
Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver
Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver
Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora i nekih bilješki na Nodemcu - 2. dio - Softver
Kako izgraditi vlastiti anemometar pomoću trskastih prekidača, Hall -ovog senzora 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 Nodemcu -u koristeći Arduino IDE.

Opis projekta

U prethodnom postu, uređaji naoružani i povezani na Nodemcu mogu mjeriti brzinu i smjer vjetra. Kontrolni softver je dizajniran za čitanje rotacije anemometra u određenom vremenskom periodu, 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 sledeće merenje.

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

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

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

Instaliranje Arduino IDE, ESP8266 ploča i biblioteka i vašeg ThingSpeak računa
Instaliranje Arduino IDE, ESP8266 ploča i biblioteka i vašeg ThingSpeak računa
Instaliranje Arduino IDE, ESP8266 ploča i biblioteka i vašeg ThingSpeak računa
Instaliranje Arduino IDE, ESP8266 ploča i biblioteka i vašeg ThingSpeak računa

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 potpuna uputstva.

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

Instaliranje biblioteka

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

Biblioteka ThingSpeak -

ESP8266 biblioteka -

Kreiranje 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 vašem anemometru i pratiti uvjete vjetra u vašem domu, čak i preko mobilnog telefona. Korištenjem ThingSpeak -a možete dati javnosti pristup svojim prikupljenim podacima svima koji su zainteresovani. To je dobra prednost ThingSpeak -a. Unesite početnu stranicu i slijedite korake za kreiranje računa.

Nakon što je račun kreiran, uđite u ovaj vodič - ThingSpeak Getting Started - da biste stvorili svoje kanale. Prilično je 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 pohraniti sve podatke u banku i prikazati ih svaki put kada pristupite svom računu, na način koji ste konfigurirali.

Korak 2: Istražite skicu

Istraživanje skice
Istraživanje skice
Istraživanje skice
Istraživanje skice

Dijagram toka

Na dijagramu možete razumjeti fluksogram skice. Kada 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 će se prenijeti na ThingSpeak.

Zatim Nodemcu spava 15 minuta kako bi uštedio bateriju. Budući da koristim mali solarni panel, imperativ je da to učinim. 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.

Anemometer_Instructables

To je glavni program koji učitava biblioteke, 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 ThingSpeak -u. 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

Rotacija 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 stanja koja 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 vodič Arduino. Pogledajte attachInterrupt ().

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

pin = D6

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

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

Pri svakom impulsu koji proizvodi magneto u Hall -ovom senzoru, pin prelazi s niskog na visoki, a funkcija brojanja se aktivira i sumira puls u promjenljivoj vrijednosti, u toku 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 ping pong loptice. Sigurno ste dobro izmjerili svoje - (pogledajte to na dijagramu koji kaže 10 cm).
  • RPS (rotacije u sekundi) = rotacije / 25 sekundi
  • RPM (rotacije u minuti) = RPS * 60
  • OMEGA (kutna brzina - radijani u sekundi) = 2 * PI * RPS
  • Linearna_Velocity (metri u sekundi) = OMEGA * RADIO
  • Linearna_Velocity_kmh (Km na sat) = 3,6 * Linearna_Velocity i to je ono što će biti poslano na ThingSpeak.

Pročitajte smjer lopatice

Za očitavanje položaja lopatice za vjetar radi određivanja smjera vjetra program šalje niske i visoke signale multiplekseru sa svim kombinacijama parametara A, B, C (muxABC matrica) i pričekajte da primite rezultat na pin A0 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 iz pina 1 i tako dalje, dok se čitanje 8 kanala ne završi.

Kako je signal analogan, 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 vrlo dobro. Uvijek postoje mala curenja struje i to štiti da nema lažno pozitivnih rezultata.

Ti se podaci pohranjuju u vektorski val [8] koji će se porediti s nizom adresa kao kompas. Pogledajte matricu na dijagramu. Na primjer, ako je primljeni vektor [0, 0, 1, 0, 0, 0, 0, 0, 0] on u matrici pokazuje 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 uglu od 292,5 stepeni. N odgovara [1, 0, 0, 0, 0, 0, 0, 0, 0] i ugao od 0 stepeni.

Ono što će biti poslano u ThingSpeak je pod kutom jer prihvaća samo brojeve.

Korak 4: Komunikacija

Komunikacije
Komunikacije
Komunikacije
Komunikacije

Kako poslati podatke u ThingSpeak

Funkcija thingspeaksenddata () je odgovorna 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, sa pisanim API -jem myWriteAPIKey označenim TS. Ove podatke je generirala TS prilikom kreiranja vašeg računa i kanala.

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

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

Korak 5: Glavne varijable

parametri lopatica

  • MUX_A D5 - mux pi A do Nodemcu pina 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] - portovi 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, kolateral i pod -kolateral
  • 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} - uglovi svakog smjera
  • Cifra [16] [NO_PINS] - Matrica smjerova
  • muxABC [8] [3] - ABC mux kombinacije

parametri anemometra

  • rpmcount - izbrojite koliko je punih rotacija anemometar napravio u predviđenom 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 dužine 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 kompletnu skicu. Napravite novu fasciklu na fascikli Arduino na vašem računaru sa istim imenom kao i glavni program (Anemometer_Instructables) i spojite ih sve zajedno.

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

Za testiranje rada sistema 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 javni i tamo ćete pronaći mjerenja vjetra i smjera u mojoj kući.

Zaista se nadam da ćete se zabaviti.

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

Pozdrav

Preporučuje se: