Obsah:

Jak si postavit vlastní anemometr pomocí jazýčkových spínačů, Hallova senzoru a některých kousků na Nodemcu - Část 2 - Software: 5 kroků (s obrázky)
Jak si postavit vlastní anemometr pomocí jazýčkových spínačů, Hallova senzoru a některých kousků na Nodemcu - Část 2 - Software: 5 kroků (s obrázky)

Video: Jak si postavit vlastní anemometr pomocí jazýčkových spínačů, Hallova senzoru a některých kousků na Nodemcu - Část 2 - Software: 5 kroků (s obrázky)

Video: Jak si postavit vlastní anemometr pomocí jazýčkových spínačů, Hallova senzoru a některých kousků na Nodemcu - Část 2 - Software: 5 kroků (s obrázky)
Video: Vynalézavý senior vyřešil zdražování energie. Odmontoval elektroměr a jede „na sebe“ 2024, Červen
Anonim
Jak vytvořit vlastní anemometr pomocí jazýčkových spínačů, senzoru s Hallovým efektem a některých kousků na Nodemcu - Část 2 - Software
Jak vytvořit vlastní anemometr pomocí jazýčkových spínačů, senzoru s Hallovým efektem a některých kousků na Nodemcu - Část 2 - Software
Jak vytvořit vlastní anemometr pomocí jazýčkových spínačů, senzoru s Hallovým efektem a některých kousků na Nodemcu - Část 2 - Software
Jak vytvořit vlastní anemometr pomocí jazýčkových spínačů, senzoru s Hallovým efektem a některých kousků na Nodemcu - Část 2 - Software

Úvod

Toto je pokračování prvního příspěvku „Jak si sestavit vlastní anemometr pomocí jazýčkových spínačů, senzoru Hall Effect a některých scrapů na Nodemcu - část 1 - Hardware“- kde ukazuji, jak sestavit zařízení pro měření rychlosti a směru větru. Zde využijeme software pro řízení měření navržený pro použití v Nodemcu pomocí Arduino IDE.

Popis projektu

V předchozím příspěvku jsou zařízení ozbrojená a připojená k Nodemcu schopna měřit rychlost a směr větru. Řídicí software byl navržen tak, aby snímal otáčení anemometru po určitou dobu, vypočítal lineární rychlost, přečetl směr, ve kterém je lopatka, ukázal výsledky v OLED, publikoval výsledky v ThingSpeak a spal 15 minut, dokud další měření.

Disclaimer: Tento anemometr by neměl být používán pro profesionální účely. Je pouze pro akademické nebo domácí použití.

Poznámka: angličtina není můj přirozený jazyk. Pokud najdete gramatické chyby, které vám brání porozumět projektu, dejte mi prosím vědět a opravte je. Děkuji mnohokrát.

Krok 1: Instalace desek a knihoven Arduino IDE, ESP8266 a vašeho účtu ThingSpeak

Instalace Arduino IDE, desek a knihoven ESP8266 a vašeho účtu ThingSpeak
Instalace Arduino IDE, desek a knihoven ESP8266 a vašeho účtu ThingSpeak
Instalace desek a knihoven Arduino IDE, ESP8266 a vašeho účtu ThingSpeak
Instalace desek a knihoven Arduino IDE, ESP8266 a vašeho účtu ThingSpeak

Instalace Arduino IDE a Nodemcu

Pokud jste nikdy nenainstalovali IDE Arduino, přečtěte si návod v odkazu - Jak nainstalovat Arduino IDE - kde najdete kompletní pokyny.

Další krok k instalaci desky Nodemcu použijte tento návod z Magesh Jayakumar Instructables, který je velmi kompletní. Jak nainstalovat Nodemcu no Arduino IDE

Instalace knihoven

V dalším kroku musíte nainstalovat knihovny, které skica používá. Jsou běžné a můžete postupovat podle níže uvedených kroků.

Knihovna ThingSpeak -

Knihovna ESP8266 -

Vytvoření účtu ThingSpeak

Chcete -li používat ThingSpeak (https://thingspeak.com/), musíte si vytvořit účet (pro určitý počet interakcí je stále zdarma), kde můžete ukládat naměřená data do vašeho anemometru a sledovat větrné podmínky ve vašem domě, dokonce přes mobil. Pomocí ThingSpeak můžete poskytnout veřejný přístup ke svým shromážděným údajům komukoli, koho to zajímá. To je dobrá výhoda ThingSpeak. Zadejte domovskou stránku a vytvořte si účet podle uvedených pokynů.

Jakmile je účet vytvořen, vytvořte si kanály pomocí tohoto kurzu - ThingSpeak Začínáme -. Je to docela dobře vysvětleno. Stručně řečeno, musíte vytvořit kanál, kde budou data uložena. Tento kanál má ID a klíčové API, na které by měl být náčrtek odkazován pokaždé, když chcete zaznamenávat data. ThingSpeak uloží všechna data do banky a zobrazí je při každém přístupu k vašemu účtu způsobem, který jste nakonfigurovali.

Krok 2: Prozkoumání náčrtu

Prozkoumání náčrtu
Prozkoumání náčrtu
Prozkoumání náčrtu
Prozkoumání náčrtu

Vývojový diagram

V diagramu můžete pochopit fluxogram skici. Když probudíte (propojíte) Nodemcu, připojí se k vaší síti Wi-Fi, jejíž parametry jste nakonfigurovali, a začne počítat 1 minutu času k provedení měření. Nejprve bude počítat otáčky anemometru po dobu 25 sekund, vypočítat lineární rychlost a odečtěte směr větru. Výsledky jsou zobrazeny na OLED. Proveďte stejné kroky znovu a pro toto druhé čtení se to přenese do ThingSpeak.

Poté Nodemcu spí 15 minut, aby šetřil baterii. Jelikož používám malý solární panel, je nutné, abych tak učinil. Pokud používáte zdroj 5 V, můžete program upravit tak, aby nespal, a pokračovat v měření dat.

Struktura programů

V diagramu vidíte strukturu náčrtu.

Anemometr_Instructables

Je to hlavní program, který načítá knihovny, spouští proměnné, ovládá přerušení připojení, vyvolává všechny funkce, vypočítává rychlost větru, určuje jeho směr a uspává.

komunikace

Připojte WiFi a odešlete data do ThingSpeak.

pověření. h

Klíče vaší WiFi sítě a identifikátory vašeho účtu v ThingSpeak. Zde změníte ID klíčů a rozhraní API.

definuje. h

Obsahuje všechny proměnné programu. Zde můžete změnit časy čtení nebo jak dlouho by měl nodemcu spát.

funkce

Obsahuje funkce pro kombinování parametrů a čtení multiplexeru a také funkci pro čtení otáček anemometru.

oledDisplej

Zobrazit na obrazovce výsledky rychlosti a směru větru.

Krok 3: Vysvětlení o …

Vysvětlení o…
Vysvětlení o…
Vysvětlení o…
Vysvětlení o…
Vysvětlení o…
Vysvětlení o…
Vysvětlení o…
Vysvětlení o…

Připojte přerušení

Otáčení anemometru se měří pomocí funkce attachInterrupt () (a detachInterrupt ()) v GPIO 12 (pin D6) Nodemcu (na pinech D0-D8 má funkci přerušení).

Přerušení jsou události nebo podmínky, které způsobí, že mikrokontrolér zastaví provádění úlohy, kterou provádí, dočasně pracuje v jiném úkolu a vrátí se k původnímu úkolu.

Podrobnosti o funkci si můžete přečíst v odkazu na tutoriál Arduina. Viz attachInterrupt ().

Syntaxe: attachInterrupt (pin, funkce zpětného volání, typ/režim přerušení);

kolík = D6

funkce zpětného volání = rpm_anemometer - počítá každý puls na proměnné.

typ/režim přerušení = RISING - přerušení, když kolík přejde z nízkého na vysoký.

Při každém pulzu vytvořeném magneto v Hallově senzoru jde kolík z nízkého na vysoký a během 25 sekund je aktivována funkce počítání a sečtený puls v proměnné. Jakmile vyprší čas, počítadlo se odpojí (detachInterrupt ()) a rutina vypočítá rychlost, když je odpojena.

Výpočet rychlosti větru

Jakmile bylo určeno, kolik otáček anemometr provedl za 25 sekund, vypočítáme rychlost.

  • RADIO je měření od středové osy anemometru ke špičce pingpongového míčku. Určitě jste ten svůj změřili velmi dobře - (viz to na diagramu, který říká 10 cm).
  • RPS (otáčky za sekundu) = otáčky / 25 sekund
  • RPM (otáčky za minutu) = RPS * 60
  • OMEGA (úhlová rychlost - radiány za sekundu) = 2 * PI * RPS
  • Linear_Velocity (metry za sekundu) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km za hodinu) = 3,6 * Linear_Velocity a toto bude odesláno do ThingSpeak.

Přečtěte si směr větru

Aby program přečetl polohu větrné lopatky a určil směr větru, vysílá nízké a vysoké signály do multiplexoru se všemi kombinacemi parametrů A, B, C (matice muxABC) a čeká na přijetí výsledku na kolíku A0 to může být jakékoli napětí mezi 0 a 3,3 V. Kombinace jsou uvedeny v diagramu.

Například když C = 0 (nízké), B = 0 (nízké), A = 0 (nízké), multiplexer mu poskytne data na pinu 0 a odešle signál do A0, který je načten Nodemcu; pokud C = 0 (nízké), B = 0 (nízké), A = 1 (vysoké), multiplexer vám pošle data z pinu 1 atd., dokud není čtení 8 kanálů dokončeno.

Protože je signál analogový, program se transformuje na digitální (0 nebo 1), pokud je napětí menší nebo rovné 1,3 V, signál je 0; pokud je větší než 1,3 V, signál je 1. Hodnota 1,3 V je libovolná a pro mě to fungovalo velmi dobře. Vždy dochází k malým únikům proudu, což chrání, že neexistují žádná falešná pozitiva.

Tato data jsou uložena ve vektoru val [8], který bude porovnán s adresním polem jako kompas. Viz matice v diagramu. Pokud je například přijatý vektor [0, 0, 1, 0, 0, 0, 0, 0, 0], indikuje v matici směr E a odpovídá úhlu 90 stupňů; pokud [0, 0, 0, 0, 0, 0, 1, 1] označuje v matici adresu WNW a odpovídá úhlu 292,5 stupňů. N odpovídá [1, 0, 0, 0, 0, 0, 0, 0, 0] a úhlu 0 stupňů.

To, co bude odesláno do ThingSpeak, je pod úhlem, protože přijímá pouze čísla.

Krok 4: Komunikace

komunikace
komunikace
komunikace
komunikace

Jak odeslat data do ThingSpeak

Za odesílání dat je zodpovědná funkce thingspeaksenddata ().

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Odeslat údaje o rychlosti do pole1 mého kanálu

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Odeslat údaje o adrese do pole2 mého kanálu

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Odeslat na můj kanál myChannelNumber s písemným myWriteAPIKey API označeným TS. Tato data vygenerovala TS při vytváření vašeho účtu a kanálu.

Na výše uvedených obrázcích vidíte, jak ThingSpeak zobrazuje přijatá data.

V tomto odkazu máte přístup k datům mého projektu ve veřejném kanálu ThingSpeak.

Krok 5: Hlavní proměnné

parametry větrné lopatky

  • MUX_A D5 - mux pi A na Nodemcu pin D5
  • MUX_B D4 - mux pin B na pin Nodemcu D4
  • MUX_C D3 - mux pin C na Nodemcu pin D3
  • READPIN 0 - Analogový vstup na NodeMcu = A0
  • NO_PINS 8 - počet mux pinů
  • val [NO_PINS] - porty 0 až 7 muxu
  • wind_Direction_Angle - úhel směru větru
  • Řetězec windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardinály, zástavy a dílčí kolaterály
  • 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} - úhly každého směru
  • Číslice [16] [NO_PINS] - matice směrů
  • muxABC [8] [3] - kombinace muxů ABC

parametry anemometru

  • rpmcount - spočítejte, kolik plných otáček provedl anemometr ve stanoveném čase
  • timemeasure = 25.00 - doba trvání měření v sekundách
  • timetoSleep = 1 - Nodemcu doba probuzení v minutách
  • sleepTime = 15 - čas na spaní v minutách
  • rpm, rps - frekvence otáčení (otáčky za minutu, rotace za sekundu)
  • radius - metry - míra délky křídla anemometru
  • linear_velocity - lineární rychlost v m/seg
  • linear_velocity_kmh - přímá rychlost v km/h
  • omega - radiální rychlost v rad/seg

Níže najdete kompletní skicu. Vytvořte ve svém počítači ve složce Arduino novou složku se stejným názvem jako hlavní program (Anemometer_Instructables) a spojte je všechny dohromady.

Do části Credentials.h zadejte data své wifi sítě a ThingSpeak ID a API Writer Key a uložte. Nahrajte do Nodemcu a to je vše.

K otestování provozu systému doporučuji dobrý rotující ventilátor.

Pro přístup k datům mobilním telefonem si stáhněte aplikaci pro IOS nebo Android s názvem ThingView, která je naštěstí stále zdarma.

Nakonfigurujte si nastavení účtu a budete připraveni sledovat domácí vítr, ať jste kdekoli.

Pokud máte zájem, přejděte na můj kanál ID kanálu ThingSpeak: 438851, který je veřejný a kde najdete měření větru a směru v mém domě.

Opravdu doufám, že se pobavíte.

Pokud máte nějaké pochybnosti, neváhejte mě kontaktovat.

pozdravy

Doporučuje: