Turinys:

Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis. Programinė įranga: 5 žingsniai (su nuotraukomis)
Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis. Programinė įranga: 5 žingsniai (su nuotraukomis)

Video: Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis. Programinė įranga: 5 žingsniai (su nuotraukomis)

Video: Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis. Programinė įranga: 5 žingsniai (su nuotraukomis)
Video: Kaip sukurti profesionalią internetinę parduotuvę nemokamai (Detali Pamoka) 2024, Lapkritis
Anonim
Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis. Programinė įranga
Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis. Programinė įranga
Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis - programinė įranga
Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos „Nodemcu“iškarpas - 2 dalis - programinė įranga

Įvadas

Tai yra pirmojo įrašo „Kaip sukurti savo anemometrą naudojant nendrių jungiklius, salės efekto jutiklį ir kai kuriuos iškarpas„ Nodemcu “- 1 dalis - aparatūra“tęsinys, kuriame aš parodysiu, kaip surinkti vėjo greičio ir krypties matavimo prietaisus. Čia mes panaudosime matavimo valdymo programinę įrangą, skirtą naudoti „Nodemcu“naudojant „Arduino IDE“.

Projekto aprašymas

Ankstesniame įraše ginkluoti ir prie Nodemcu prijungti prietaisai gali išmatuoti vėjo greitį ir kryptį. Valdymo programinė įranga buvo sukurta tam tikrą laiką nuskaityti anemometro sukimąsi, apskaičiuoti tiesinį greitį, nuskaityti mentės kryptį, parodyti rezultatus OLED, paskelbti rezultatus „ThingSpeak“ir miegoti 15 minučių, kol kitą matavimą.

Atsisakymas: Šis anemometras neturėtų būti naudojamas profesionaliems tikslams. Jis skirtas tik akademiniam ar namų naudojimui.

Pastaba: anglų kalba nėra mano natūrali kalba. Jei radote gramatinių klaidų, trukdančių suprasti projektą, praneškite man, kad jas ištaisytumėte. Labai ačiū.

1 veiksmas: įdiekite „Arduino IDE“, ESP8266 plokštes ir bibliotekas bei „ThingSpeak“paskyrą

„Arduino IDE“, ESP8266 plokščių ir bibliotekų bei „ThingSpeak“paskyros diegimas
„Arduino IDE“, ESP8266 plokščių ir bibliotekų bei „ThingSpeak“paskyros diegimas
„Arduino IDE“, ESP8266 plokščių ir bibliotekų bei „ThingSpeak“paskyros diegimas
„Arduino IDE“, ESP8266 plokščių ir bibliotekų bei „ThingSpeak“paskyros diegimas

„Arduino IDE“ir „Nodemcu“diegimas

Jei niekada neįdiegėte „Arduino“IDE, perskaitykite pamoką nuorodoje - Kaip įdiegti „Arduino IDE“- kur rasite visas instrukcijas.

Kitas žingsnis, norėdami įdiegti „Nodemcu“plokštę, naudokite šią labai išsamią „Magesh Jayakumar Instructables“mokymo programą. Kaip įdiegti „Nodemcu no Arduino IDE“

Bibliotekų diegimas

Kitas žingsnis yra įdiegti eskizo naudojamas bibliotekas. Jie yra įprasti ir galite atlikti toliau nurodytus veiksmus.

„ThingSpeak“biblioteka -

ESP8266 biblioteka -

„ThingSpeak“paskyros kūrimas

Norėdami naudoti „ThingSpeak“(https://thingspeak.com/), turite sukurti paskyrą (ji vis dar nemokama tam tikram skaičiui sąveikų), kurioje galėsite išsaugoti anemometre išmatuotus duomenis ir stebėti vėjo sąlygas namuose, net per mobilųjį telefoną. Naudodami „ThingSpeak“galite suteikti visuomenei prieigą prie surinktų duomenų visiems, kas domisi. Tai yra geras „ThingSpeak“pranašumas. Įveskite pagrindinį puslapį ir atlikite paskyros kūrimo veiksmus.

Sukūrę paskyrą, įveskite šią mokymo programą - „ThingSpeak Getting Started“, kad sukurtumėte savo kanalus. Tai gana gerai paaiškinta. Apibendrinant reikia sukurti kanalą, kuriame bus saugomi duomenys. Šis kanalas turi ID ir pagrindinę API, kuri turėtų būti nurodyta eskize kiekvieną kartą, kai norite įrašyti duomenis. „ThingSpeak“išsaugos visus duomenis banke ir parodys juos kiekvieną kartą, kai prisijungsite prie savo paskyros, taip, kaip sukonfigūravote.

2 žingsnis: ištirkite eskizą

Eskizo tyrimas
Eskizo tyrimas
Eskizo tyrimas
Eskizo tyrimas

Blokinė schema

Diagramoje galite suprasti eskizo fluxogramą. Kai pažadinsite (susiesite) „Nodemcu“, jis prisijungs prie jūsų „Wi-Fi“tinklo, kurio parametrus sukonfigūravote, ir pradės skaičiuoti 1 minutę laiko atlikti matavimus. Pirma, jis skaičiuos anemometro sukimąsi 25 sekundes, apskaičiuokite tiesinį greitį ir perskaityti vėjo kryptį. Rezultatai rodomi OLED. Atlikite tuos pačius veiksmus dar kartą ir per šį antrąjį skaitymą jis bus perduotas „ThingSpeak“.

Tada „Nodemcu“miega 15 minučių, kad taupytų akumuliatorių. Kadangi naudoju mažą saulės kolektorių, tai būtina padaryti. Jei naudojate 5 V šaltinį, galite modifikuoti programą, kad ji neužmigtų, ir toliau matuoti duomenis.

Programų struktūra

Diagramoje galite pamatyti eskizo struktūrą.

Anemometras_instrukcijos

Tai pagrindinė programa, kuri įkelia bibliotekas, paleidžia kintamuosius, valdo priedo pertraukimą, iškviečia visas funkcijas, apskaičiuoja vėjo greitį, nustato jo kryptį ir užmigdo.

ryšiai

Prijunkite „WiFi“ir nusiųskite duomenis į „ThingSpeak“.

įgaliojimai.h

„WiFi“tinklo raktai ir „ThingSpeak“paskyros identifikatoriai. Čia pakeisite raktų ID ir API.

apibrėžia.h

Jame yra visi programos kintamieji. Čia galite pakeisti skaitymo laiką arba tai, kiek laiko nodemcu turėtų miegoti.

funkcijas

Jame yra funkcijos, skirtos sujungti parametrus ir skaityti multiplekserį, taip pat anemometro sukimosi skaitymo funkcija.

oledDisplay

Rodyti vėjo greičio ir krypties rezultatus ekrane.

3 žingsnis: paaiškinimai apie…

Paaiškinimai apie…
Paaiškinimai apie…
Paaiškinimai apie…
Paaiškinimai apie…
Paaiškinimai apie…
Paaiškinimai apie…
Paaiškinimai apie…
Paaiškinimai apie…

Pridėti pertrauką

Anemometro sukimasis matuojamas naudojant funkciją attachInterrupt () (ir detachInterrupt ()) „Nodemcu“GPIO 12 (D6 kaištis) (D0-D8 kaiščiai turi pertraukimo funkciją).

Pertraukos yra įvykiai ar sąlygos, dėl kurių mikrovaldiklis sustabdo vykdomos užduoties vykdymą, laikinai atlieka kitą užduotį ir grįžta prie pradinės užduoties.

Išsamią funkcijos informaciją galite perskaityti „Arduino“pamokos nuorodoje. Žr. AttachInterrupt ().

Sintaksė: attachInterrupt (kaištis, atgalinio ryšio funkcija, pertraukimo tipas/režimas);

smeigtukas = D6

atšaukimo funkcija = rpm_anemometer - skaičiuoja kiekvieną impulsą pagal kintamąjį.

pertraukimo tipas/režimas = RISING - pertraukimas, kai kaištis pereina nuo žemo iki aukščiausio.

Kiekvieno impulso metu, kurį sukuria „Hall“jutiklio magnetas, kaištis pereina nuo mažo iki aukšto, o skaičiavimo funkcija įjungiama ir sumuojamas impulsas kintamajame per 25 sekundes. Pasibaigus laikui, skaitiklis atjungiamas (detachInterrupt ()) ir rutina apskaičiuoja greitį, kai jis atjungiamas.

Vėjo greičio apskaičiavimas

Nustačius, kiek anemometras apsisuko per 25 sekundes, apskaičiuojame greitį.

  • RADIJAS yra matavimas nuo anemometro vidurinės ašies iki stalo teniso kamuoliuko galo. Jūs turėjote labai gerai išmatuoti savo (žr. Tai 10 cm diagramoje).
  • RPS (apsisukimai per sekundę) = apsisukimai / 25 sekundės
  • RPM (apsisukimai per minutę) = RPS * 60
  • OMEGA (kampinis greitis - radianai per sekundę) = 2 * PI * RPS
  • Linear_Velocity (metrai per sekundę) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km per valandą) = 3.6 * Linear_Velocity ir tai bus siunčiama į „ThingSpeak“.

Perskaitykite vėjo mentės kryptį

Norėdami nuskaityti vėjo mentės padėtį ir nustatyti vėjo kryptį, programa siunčia žemus ir aukštus signalus multipleksoriui su visais parametrų A, B, C deriniais („muxABC“matrica) ir laukia, kol A0 kaištyje bus gautas rezultatas Tai gali būti bet kokia įtampa nuo 0 iki 3,3 V. Deriniai parodyti diagramoje.

Pavyzdžiui, kai C = 0 (žemas), B = 0 (žemas), A = 0 (žemas), multiplekseris pateikia jam 0 kaiščio duomenis ir siunčia signalą į A0, kurį skaito Nodemcu; jei C = 0 (žemas), B = 0 (žemas), A = 1 (didelis), multiplekseris atsiųs jums 1 kaiščio duomenis ir pan., kol bus baigtas 8 kanalų nuskaitymas.

Kadangi signalas yra analoginis, programa virsta skaitmenine (0 arba 1), jei įtampa yra mažesnė arba lygi 1,3 V, signalas yra 0; jei jis yra didesnis nei 1.3V, signalas yra 1. 1.3V vertė yra savavališka ir man tai labai gerai veikė. Visada yra nedidelis srovės nuotėkis ir tai apsaugo, kad nebūtų klaidingų teigiamų rezultatų.

Šie duomenys saugomi vektoriniame val [8], kuris bus lyginamas su adresų masyvu kaip kompasu. Žiūrėkite diagramos matricą. Pavyzdžiui, jei gautas vektorius yra [0, 0, 1, 0, 0, 0, 0, 0, 0], tai matricoje nurodo kryptį E ir atitinka 90 laipsnių kampą; jei [0, 0, 0, 0, 0, 0, 1, 1] matricoje nurodo WNW adresą ir atitinka 292,5 laipsnių kampą. N atitinka [1, 0, 0, 0, 0, 0, 0, 0, 0] ir 0 laipsnių kampą.

„ThingSpeak“bus išsiųsta kampu, nes ji priima tik skaičius.

4 žingsnis: komunikacija

Ryšiai
Ryšiai
Ryšiai
Ryšiai

Kaip siųsti duomenis į „ThingSpeak“

Funkcija thingspeaksenddata () yra atsakinga už duomenų siuntimą.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Siųsti greičio duomenis į mano kanalo 1 lauką

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Siųsti adreso duomenis į mano kanalo 2 lauką

„ThingSpeak.writeFields“(„myChannelNumber“, „myWriteAPIKey“) - siųskite į mano kanalą „myChannelNumber“su parašyta „myWriteAPIKey“API, kurią nurodys TS. Šiuos duomenis TS sukūrė kurdama paskyrą ir kanalą.

Aukščiau esančiose nuotraukose galite pamatyti, kaip „ThingSpeak“rodo gautus duomenis.

Šioje nuorodoje galite pasiekti mano projekto duomenis viešame „ThingSpeak“kanale.

5 žingsnis: pagrindiniai kintamieji

vėjo mentės parametrai

  • MUX_A D5 - mux pi A į Nodemcu kaištį D5
  • MUX_B D4 - mux kaištis B į Nodemcu kaištį D4
  • MUX_C D3 - mux kaištis C į Nodemcu kaištį D3
  • READPIN 0 - analoginis įėjimas „NodeMcu“= A0
  • NO_PINS 8 - mux kaiščių skaičius
  • val [NO_PINS] - nuo 0 iki 7 mux prievadų
  • wind_Direction_Angle - vėjo krypties kampas
  • Stygos windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardinolai, užstatas ir papildomas įkaitas
  • 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} - kiekvienos krypties kampai
  • Skaitmuo [16] [NO_PINS] - krypčių matrica
  • muxABC [8] [3] - ABC mux deriniai

anemometro parametrai

  • rpmcount - suskaičiuokite, kiek pilnų apsisukimų atliko anemometras per nustatytą laiką
  • timemeasure = 25.00 - matavimo trukmė sekundėmis
  • timetoSleep = 1 - Nodemcu pabudimo laikas minutėmis
  • sleepTime = 15 - laikas toliau miegoti minutėmis
  • aps / min, aps / min - sukimosi dažnis (apsisukimai per minutę, apsisukimai per sekundę)
  • spindulys - metrai - anemometro sparno ilgio matas
  • linear_velocity - tiesinis greitis m/seg
  • linear_velocity_kmh - linijinis greitis km/h
  • omega - radialinis greitis rad/seg

Žemiau galite rasti visą eskizą. Sukurkite naują aplanką kompiuterio „Arduino“aplanke tuo pačiu pavadinimu kaip pagrindinė programa („Anemometer_Instructables“) ir sudėkite juos visus kartu.

Įveskite savo „Wi -Fi“tinklo duomenis ir „ThingSpeak“ID bei API rašytojo raktą dalyje „Credentials.h“ir išsaugokite. Įkelkite į „Nodemcu“ir viskas.

Norėdami patikrinti sistemos veikimą, rekomenduoju gerą besisukantį ventiliatorių.

Norėdami pasiekti duomenis mobiliuoju telefonu, atsisiųskite „iOS“ar „Android“skirtą programą „ThingView“, kuri, laimei, vis dar nemokama.

Konfigūruokite savo paskyros nustatymus ir būsite pasiruošę matyti namų vėjo sąlygas, kad ir kur būtumėte.

Jei susidomėjote, apsilankykite mano „ThingSpeak“kanalo ID kanale: 438851, kuris yra viešas ir ten rasite vėjo ir krypties matavimus mano namuose.

Labai tikiuosi, kad tau smagu.

Jei turite kokių nors abejonių, nedvejodami susisiekite su manimi.

Pagarbiai

Rekomenduojamas: