Obsah:

Ako vytvoriť vlastný anemometer pomocou jazýčkových spínačov, snímača Hallovho efektu a niektorých odkazov na Nodemcu - časť 2 - Software: 5 krokov (s obrázkami)
Ako vytvoriť vlastný anemometer pomocou jazýčkových spínačov, snímača Hallovho efektu a niektorých odkazov na Nodemcu - časť 2 - Software: 5 krokov (s obrázkami)

Video: Ako vytvoriť vlastný anemometer pomocou jazýčkových spínačov, snímača Hallovho efektu a niektorých odkazov na Nodemcu - časť 2 - Software: 5 krokov (s obrázkami)

Video: Ako vytvoriť vlastný anemometer pomocou jazýčkových spínačov, snímača Hallovho efektu a niektorých odkazov na Nodemcu - časť 2 - Software: 5 krokov (s obrázkami)
Video: ako si vyrobit srandovny VIRUS 2024, November
Anonim
Ako si zostrojiť vlastný anemometer pomocou jazýčkových spínačov, senzora Hallovho efektu a niektorých zápiskov v Nodemcu - časť 2 - Software
Ako si zostrojiť vlastný anemometer pomocou jazýčkových spínačov, senzora Hallovho efektu a niektorých zápiskov v Nodemcu - časť 2 - Software
Ako si zostrojiť vlastný anemometer pomocou jazýčkových spínačov, senzora Hallovho efektu a niektorých zápiskov v Nodemcu - časť 2 - Software
Ako si zostrojiť vlastný anemometer pomocou jazýčkových spínačov, senzora Hallovho efektu a niektorých zápiskov v Nodemcu - časť 2 - Software

Úvod

Toto je pokračovanie prvého príspevku „Ako si vytvoriť vlastný anemometer pomocou jazýčkových spínačov, senzora Hallovho efektu a niektorých kúskov na Nodemcu - časť 1 - Hardvér“- kde ukážem, ako zostaviť zariadenia na meranie rýchlosti a smeru vetra. Tu použijeme softvér na ovládanie merania navrhnutý na použitie v Nodemcu pomocou Arduino IDE.

Popis projektu

V predchádzajúcom príspevku sú zariadenia vyzbrojené a pripojené k Nodemcu schopné merať rýchlosť a smer vetra. Riadiaci softvér bol navrhnutý tak, aby odčítal otáčanie anemometra za určité časové obdobie, vypočítal lineárnu rýchlosť, prečítal smer, v ktorom je lopatka, ukázal výsledky v OLED, publikoval výsledky v ThingSpeak a spal 15 minút, kým ďalšie meranie.

Disclaimer: Tento anemometer by nemal byť používaný na profesionálne účely. Je len na akademické alebo domáce použitie.

Poznámka: Angličtina nie je môj prirodzený jazyk. Ak nájdete gramatické chyby, ktoré vám bránia porozumieť projektu, dajte mi prosím vedieť a opravte ich. Ďakujem ti veľmi pekne.

Krok 1: Inštalácia dosiek a knižníc Arduino IDE, ESP8266 a vášho účtu ThingSpeak

Inštalácia dosiek a knižníc Arduino IDE, ESP8266 a vášho účtu ThingSpeak
Inštalácia dosiek a knižníc Arduino IDE, ESP8266 a vášho účtu ThingSpeak
Inštalácia dosiek a knižníc Arduino IDE, ESP8266 a vášho účtu ThingSpeak
Inštalácia dosiek a knižníc Arduino IDE, ESP8266 a vášho účtu ThingSpeak

Inštalácia Arduino IDE a Nodemcu

Ak ste nikdy nenainštalovali IDE Arduino, prečítajte si návod v odkaze - Ako nainštalovať Arduino IDE - kde nájdete kompletné pokyny.

Ďalším krokom je nainštalovanie dosky Nodemcu pomocou tohto tutoriálu z Magesh Jayakumar Instructables, ktorý je veľmi kompletný. Ako nainštalovať Nodemcu no Arduino IDE

Inštalácia knižníc

V ďalšom kroku musíte nainštalovať knižnice, ktoré skica používa. Sú bežné a môžete postupovať podľa nižšie uvedených krokov.

Knižnica ThingSpeak -

Knižnica ESP8266 -

Vytvorenie účtu ThingSpeak

Ak chcete používať ThingSpeak (https://thingspeak.com/), musíte si vytvoriť účet (pre určitý počet interakcií je stále bezplatný), kde môžete ukladať údaje namerané vo vašom anemometri a monitorovať veterné podmienky vo vašom dome, dokonca aj cez mobil. Použitím ThingSpeak môžete poskytnúť verejnosti prístup k svojim zhromaždeným údajom komukoľvek, koho to zaujíma. To je dobrá výhoda ThingSpeak. Zadajte domovskú stránku a vytvorte si účet podľa týchto pokynov.

Akonáhle je účet vytvorený, zadajte tento návod - ThingSpeak Začíname - a vytvorte si kanály. Je to celkom dobre vysvetlené. Stručne povedané, musíte vytvoriť kanál, kde budú uložené údaje. Tento kanál má ID a API kľúča, na ktoré by sa v náčrte malo odkazovať vždy, keď chcete zaznamenávať údaje. ThingSpeak uloží všetky údaje do banky a zobrazí ich pri každom prístupe k vášmu účtu spôsobom, ktorý ste nakonfigurovali.

Krok 2: Preskúmanie náčrtu

Prieskum náčrtu
Prieskum náčrtu
Prieskum náčrtu
Prieskum náčrtu

Vývojový diagram

V diagrame môžete pochopiť fluxogram náčrtu. Keď Nodemcu zobudíte (prepojíte), pripojí sa k vašej sieti Wi-Fi, ktorej parametre ste nakonfigurovali, a začne počítať 1 minútu času na vykonanie meraní. Najprv bude počítať otáčky anemometra na 25 sekúnd, vypočítať lineárnu rýchlosť a odčítajte smer vetra. Výsledky sú uvedené na OLED. Vykonajte rovnaké kroky znova a pri tomto druhom čítaní sa to prenesie do ThingSpeak.

Potom Nodemcu spí 15 minút, aby šetril batériu. Keďže používam malý solárny panel, je nevyhnutné, aby som to urobil. Ak používate zdroj 5 V, môžete program upraviť tak, aby nespal a naďalej meral údaje.

Štruktúra programov

Na diagrame vidíte štruktúru náčrtu.

Anemometer_Instructables

Je to hlavný program, ktorý načítava knižnice, spúšťa premenné, riadi prerušenie pripojenia, volá všetky funkcie, vypočítava rýchlosť vetra, určuje jeho smer a uspáva.

komunikácie

Pripojte WiFi a odošlite údaje do ThingSpeak.

poverenia.h

Kľúče vašej WiFi siete a identifikátory vášho účtu v ThingSpeak. Tu zmeníte svoje ID kľúčov a rozhrania API.

definuje.h

Obsahuje všetky premenné programu. Tu môžete zmeniť časy čítania alebo ako dlho by mal nodemcu spať.

funkcie

Obsahuje funkcie na kombináciu parametrov a čítanie multiplexora, ako aj funkciu na čítanie otáčok anemometra.

oledDisplej

Zobraziť na obrazovke výsledky rýchlosti a smeru vetra.

Krok 3: Vysvetlenia o …

Vysvetlenia o…
Vysvetlenia o…
Vysvetlenia o…
Vysvetlenia o…
Vysvetlenia o…
Vysvetlenia o…
Vysvetlenia o…
Vysvetlenia o…

Pripojiť prerušenie

Otáčanie anemometra sa meria pomocou funkcie attachInterrupt () (a detachInterrupt ()) v GPIO 12 (pin D6) Nodemcu (na svojich kolíkoch D0-D8 má funkciu prerušenia).

Prerušenia sú udalosti alebo podmienky, ktoré spôsobia, že mikrokontrolér zastaví vykonávanie úlohy, ktorú vykonáva, dočasne zapracuje inú úlohu a vráti sa k pôvodnej úlohe.

Podrobný popis funkcie si môžete prečítať v odkaze na návod k Arduinu. Pozrite attachInterrupt ().

Syntax: attachInterrupt (pin, funkcia spätného volania, typ/režim prerušenia);

kolík = D6

funkcia spätného volania = rpm_anemometer - spočíta každý impulz na premennej.

typ/režim prerušenia = RISING - prerušenie, keď kolík prejde z nízkej na vysokú.

Pri každom impulze, ktorý vyrobí magneto v Hallovom senzore, kolík prejde z nízkeho na vysoký a aktivuje sa funkcia počítania a sčítava impulz v premennej počas nastavených 25 sekúnd. Po uplynutí času sa počítadlo odpojí (detachInterrupt ()) a rutina vypočíta rýchlosť, keď je odpojený.

Výpočet rýchlosti vetra

Keď bolo určené, koľko otáčok anemometer vykonal za 25 sekúnd, vypočítame rýchlosť.

  • RADIO je meranie od stredovej osi anemometra po špičku pingpongovej loptičky. Určite ste si ten svoj zmerali veľmi dobre - (pozrite si to na diagrame, ktorý hovorí 10 cm).
  • RPS (otáčky za sekundu) = otáčky / 25 sekúnd
  • RPM (otáčky za minútu) = RPS * 60
  • OMEGA (uhlová rýchlosť - radiány za sekundu) = 2 * PI * RPS
  • Lineárna_rýchlosť (metre za sekundu) = OMEGA * RÁDIO
  • Linear_Velocity_kmh (Km za hodinu) = 3,6 * Linear_Velocity a toto bude odoslané do ThingSpeak.

Prečítajte si smer veternej lopatky

Na prečítanie polohy veternej lopatky na určenie smeru vetra program pošle nízke a vysoké signály do multiplexora so všetkými kombináciami parametrov A, B, C (matica muxABC) a čaká na prijatie výsledku na kolíku A0. môže to byť akékoľvek napätie medzi 0 a 3,3 V. Kombinácie sú znázornené na diagrame.

Napríklad, keď C = 0 (nízky), B = 0 (nízky), A = 0 (nízky), multiplexor mu poskytne údaje o pine 0 a pošle signál do A0, ktorý je prečítaný Nodemcu; ak je C = 0 (nízka), B = 0 (nízka), A = 1 (vysoká), multiplexor vám bude odosielať údaje z kolíka 1 a tak ďalej, kým sa čítanie 8 kanálov nedokončí.

Keďže signál je analógový, program sa transformuje na digitálny (0 alebo 1), ak je napätie menšie alebo rovné 1,3 V, signál je 0; ak je väčší ako 1,3 V, signál je 1. Hodnota 1,3 V je ľubovoľná a pre mňa to fungovalo veľmi dobre. Vždy dochádza k malým únikom prúdu, čo chráni, že neexistujú žiadne falošne pozitívne výsledky.

Tieto údaje sú uložené vo vektorovom val [8], ktorý bude porovnaný s adresovým poľom ako kompasom. Pozrite si maticu v diagrame. Ak je napríklad prijatý vektor [0, 0, 1, 0, 0, 0, 0, 0, 0], indikuje v matici smer E a zodpovedá uhlu 90 stupňov; ak [0, 0, 0, 0, 0, 0, 1, 1] označuje v matici adresu SZN a zodpovedá uhlu 292,5 stupňa. N zodpovedá [1, 0, 0, 0, 0, 0, 0, 0, 0] a uhlu 0 stupňov.

To, čo bude odoslané do ThingSpeak, je pod uhlom, pretože prijíma iba čísla.

Krok 4: Komunikácia

Komunikácia
Komunikácia
Komunikácia
Komunikácia

Ako odosielať údaje na ThingSpeak

Za odosielanie údajov je zodpovedná funkcia thingspeaksenddata ().

ThingSpeak.setField (1, float (linear_velocity_kmh)) - odoslať údaje o rýchlosti do poľa1 môjho kanála

ThingSpeak.setField (2, float (wind_Direction_Angle)) - odoslať údaje o adrese do poľa2 môjho kanála

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Odoslať na môj kanál myChannelNumber s napísaným rozhraním API myWriteAPIKey označeným TS. Tieto údaje vygenerovala spoločnosť TS pri vytváraní vášho účtu a kanála.

Na obrázkoch vyššie vidíte, ako ThingSpeak zobrazuje prijaté údaje.

V tomto odkaze máte prístup k údajom o mojom projekte vo verejnom kanáli ThingSpeak.

Krok 5: Hlavné premenné

parametre veternej lopatky

  • MUX_A D5 - mux pi A na kolík Nodemcu D5
  • MUX_B D4 - mux pin B na pin Nodemcu D4
  • MUX_C D3 - mux pin C na pin Nodemcu D3
  • READPIN 0 - Analógový vstup na NodeMcu = A0
  • NO_PINS 8 - počet mux pinov
  • val [NO_PINS] - porty 0 až 7 muxu
  • wind_Direction_Angle - uhol smeru vetra
  • Reťazec windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", „WSW“, „W“, „WNW“, „NW“, „NNW“} - kardinály, zástavy a podzáložky
  • 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} - uhly každého smeru
  • Číslica [16] [NO_PINS] - matica smerov
  • muxABC [8] [3] - kombinácie muxov ABC

parametre anemometra

  • rpmcount - spočítajte, koľko plných otáčok vykonal anemometer v stanovenom čase
  • časové meradlo = 25,00 - doba trvania merania v sekundách
  • timetoSleep = 1 - Čas prebudenia v minútach
  • sleepTime = 15 - čas na spánok v minútach
  • rpm, rps - frekvencie otáčania (otáčky za minútu, otáčky za sekundu)
  • polomer - metre - miera dĺžky krídla anemometra
  • linear_velocity - lineárna rýchlosť v m/seg
  • linear_velocity_kmh - lineárna rýchlosť v km/h
  • omega - radiálna rýchlosť v rad/seg

Nižšie nájdete kompletný náčrt. Vytvorte v počítači v priečinku Arduino nový priečinok s rovnakým názvom ako hlavný program (Anemometer_Instructables) a spojte ich všetky dohromady.

Do časti Credentials.h zadajte údaje svojej wifi siete a kľúč ThingSpeak ID a API Writer Key a uložte. Nahrajte do Nodemcu a to je všetko.

Na testovanie prevádzky systému odporúčam dobrý rotačný ventilátor.

Na prístup k dátam z mobilného telefónu si stiahnite aplikáciu pre IOS alebo Android s názvom ThingView, ktorá je, našťastie, stále bezplatná.

Nakonfigurujte si nastavenia účtu a budete pripravení vidieť stav domáceho vetra, nech ste kdekoľvek.

Ak máte záujem, navštívte môj kanál ID kanála ThingSpeak: 438851, ktorý je verejný a nájdete tu merania vetra a smeru v mojom dome.

Naozaj dúfam, že sa pobavíte.

Ak máte akékoľvek pochybnosti, neváhajte ma kontaktovať.

S pozdravom

Odporúča: