Sisukord:

Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara: 5 sammu (koos piltidega)
Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara: 5 sammu (koos piltidega)

Video: Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara: 5 sammu (koos piltidega)

Video: Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara: 5 sammu (koos piltidega)
Video: Рецепт Храйме Пикантная Рыба По-Мароккански. Секрет приготовления 2024, November
Anonim
Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara
Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara
Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara
Kuidas luua oma anemomeetrit pilliroo lülitite, Halli efekti anduri ja mõne Nodemcu sissekande abil - 2. osa - Tarkvara

Sissejuhatus

See on järg esimesele postitusele "Kuidas ehitada oma anemomeetrit, kasutades pilliroo lüliteid, saaliefekti andurit ja mõningaid sissekannet Nodemcu - 1. osa - riistvara" - kus näitan, kuidas tuule kiiruse ja suuna mõõtmise seadmeid kokku panna. Siin kasutame mõõtmiste juhtimistarkvara, mis on mõeldud kasutamiseks Arduino IDE abil Nodemcus.

Projekti kirjeldus

Eelmises postituses on Nodemcuga relvastatud ja ühendatud seadmed võimelised mõõtma tuule kiirust ja suunda. Juhtimistarkvara oli mõeldud anemomeetri pöörlemise lugemiseks teatud aja jooksul, lineaarse kiiruse arvutamiseks, labade suuna lugemiseks, OLED -i tulemuste kuvamiseks, tulemuste avaldamiseks ThingSpeak'is ja magamiseks 15 minutit, kuni järgmine mõõtmine.

Vastutusest loobumine: seda anemomeetrit ei tohiks kasutada professionaalsetel eesmärkidel. See on mõeldud ainult akadeemiliseks või koduseks kasutamiseks.

Märkus: inglise keel pole minu loomulik keel. Kui leiate grammatilisi vigu, mis takistavad teil projektist aru saada, andke mulle teada, et need parandada. Tänan sind väga.

Samm: Arduino IDE, ESP8266 tahvlite ja raamatukogude ning oma ThingSpeaki konto installimine

Arduino IDE, ESP8266 tahvlite ja raamatukogude ning teie ThingSpeaki konto installimine
Arduino IDE, ESP8266 tahvlite ja raamatukogude ning teie ThingSpeaki konto installimine
Arduino IDE, ESP8266 tahvlite ja raamatukogude ning teie ThingSpeaki konto installimine
Arduino IDE, ESP8266 tahvlite ja raamatukogude ning teie ThingSpeaki konto installimine

Arduino IDE ja Nodemcu installimine

Kui te pole kunagi Arduino IDE -d installinud, lugege õpetust lingilt - Kuidas Arduino IDE installida - kust leiate täielikud juhised.

Järgmine samm Nodemcu plaadi installimiseks kasutage seda õpetust Magesh Jayakumar Instructables'ist, mis on väga täielik. Kuidas installida Nodemcu no Arduino IDE

Raamatukogude installimine

Järgmise sammuna peate installima visandis kasutatavad teegid. Need on tavalised ja saate järgida alltoodud samme.

ThingSpeaki raamatukogu -

ESP8266 raamatukogu -

ThingSpeaki konto loomine

ThingSpeaki (https://thingspeak.com/) kasutamiseks peate looma konto (see on teatud arvu interaktsioonide jaoks endiselt tasuta), kuhu saate salvestada anemomeetris mõõdetud andmed ja jälgida oma kodu tuuleolusid. isegi mobiiltelefoni kaudu. ThingSpeaki kasutades saate anda huvilistele avaliku juurdepääsu oma kogutud andmetele. See on ThingSpeaki hea eelis. Sisestage koduleht ja järgige oma konto loomise juhiseid.

Kui konto on loodud, sisestage oma kanalite loomiseks see õpetus - ThingSpeak Getting Started. See on päris hästi lahti seletatud. Kokkuvõttes peate looma kanali, kuhu andmed salvestatakse. Sellel kanalil on ID ja võtme API, millele tuleks visandis viidata iga kord, kui soovite andmeid salvestada. ThingSpeak salvestab kõik andmed panka ja kuvab need iga kord, kui oma kontole juurde pääsete, teie konfigureeritud viisil.

2. samm: visandi uurimine

Eskiisi uurimine
Eskiisi uurimine
Eskiisi uurimine
Eskiisi uurimine

Vooskeem

Diagrammil saate aru visandi fluxogrammist. Kui ärkate (linkite) Nodemcu, loob see ühenduse teie WiFi-võrguga, mille parameetrid olete konfigureerinud ja hakkab mõõtmiste tegemiseks loendama 1 minut aega. Esiteks loendab see anemomeetri pöördeid 25 sekundit, arvutage lineaarset kiirust ja loe tuule suunda. Tulemused kuvatakse OLED -il. Tehke samad toimingud uuesti ja teisel lugemisel edastatakse see ThingSpeakile.

Seejärel magab Nodemcu aku säästmiseks 15 minutit. Kuna kasutan väikest päikesepaneeli, pean seda kindlasti tegema. Kui kasutate 5 V allikat, saate programmi muuta nii, et see ei magaks, ja jätkata andmete mõõtmist.

Programmide ülesehitus

Diagrammil näete visandi struktuuri.

Anemomeeter_juhendid

See on põhiprogramm, mis laadib raamatukogud sisse, käivitab muutujad, juhib manuse katkestust, kutsub kõiki funktsioone, arvutab tuule kiiruse, määrab selle suuna ja paneb selle magama.

side

Ühendage WiFi ja saatke andmed ThingSpeaki.

volikirjad.h

WiFi -võrgu võtmed ja ThingSpeaki konto identifikaatorid. Siin saate muuta oma võtmete ID -sid ja API -sid.

määratleb.h

See sisaldab kõiki programmi muutujaid. Siin saate muuta lugemisaegu või seda, kui kaua nodemcu peaks magama.

funktsioone

See sisaldab funktsioone parameetrite ühendamiseks ja multiplekseri lugemiseks, samuti anemomeetri pöörete lugemise funktsiooni.

oledDisplay

Näidake ekraanil tuule kiiruse ja suuna tulemusi.

Samm: selgitused…

Selgitused…
Selgitused…
Selgitused…
Selgitused…
Selgitused…
Selgitused…
Selgitused…
Selgitused…

Manusta katkestus

Anemomeetri pöörlemist mõõdetakse Nodemcu GPIO 12 (tihvt D6) funktsiooni attachInterrupt () (ja detachInterrupt ()) abil (D0-D8 tihvtidel on katkestusfunktsioon).

Katkestused on sündmused või tingimused, mis põhjustavad mikrokontrolleri poolt täidetava ülesande täitmise peatamise, ajutiselt mõne muu ülesande täitmise ja lähteülesande juurde naasmise.

Funktsiooni üksikasju saate lugeda Arduino õpetuse lingilt. Vt attachInterrupt ().

Süntaks: attachInterrupt (pin, tagasihelistamise funktsioon, katkestuse tüüp/režiim);

tihvt = D6

tagasihelistamise funktsioon = rpm_anemometer - loeb iga impulsi muutujale.

katkestuse tüüp/režiim = RISING - katkestada, kui tihvt liigub madalalt kõrgele.

Iga Halli anduri magneto tekitatud impulsi korral läheb tihvt madalalt kõrgele ning loendusfunktsioon aktiveeritakse ja summeeritakse impulss muutujaga 25 sekundi jooksul. Kui aeg on möödas, lülitatakse loendur lahti (detachInterrupt ()) ja rutiin arvutab kiiruse lahtiühendamise ajal.

Tuule kiiruse arvutamine

Kui on kindlaks tehtud, mitu pööret anemomeeter 25 sekundi jooksul andis, arvutame kiiruse.

  • RADIO on mõõtmine anemomeetri keskteljest kuni pingpongi palli otsani. Olete oma omad väga hästi mõõtnud - (vaadake seda 10 cm joonisel).
  • RPS (pööret sekundis) = pööret / 25 sekundit
  • RPM (pööret minutis) = RPS * 60
  • OMEGA (nurkkiirus - radiaanid sekundis) = 2 * PI * RPS
  • Lineaarne_kiirus (meetrit sekundis) = OMEGA * RADIO
  • Linear_Velocity_kmh (km tunnis) = 3,6 * Linear_Velocity ja see saadetakse ThingSpeakile.

Lugege tuulelipu suunda

Tuulelaba asendi lugemiseks tuule suuna määramiseks saadab programm multiplekserile kõik parameetrite A, B, C kombinatsioonid (muxABC maatriks) madalad ja kõrged signaalid ning ootab, kuni tulemus A0 on saadud. See võib olla mis tahes pinge vahemikus 0 kuni 3,3 V. Kombinatsioonid on näidatud diagrammil.

Näiteks kui C = 0 (madal), B = 0 (madal), A = 0 (madal), annab multiplekser talle pin 0 andmed ja saadab signaali A0 -le, mida loeb Nodemcu; kui C = 0 (madal), B = 0 (madal), A = 1 (kõrge), saadab multiplekser teile pin 1. andmed ja nii edasi, kuni 8 kanali lugemine on lõpetatud.

Kuna signaal on analoog, muutub programm digitaalseks (0 või 1), kui pinge on väiksem või võrdne 1,3 V, on signaal 0; kui see on suurem kui 1,3 V, on signaal 1. Väärtus 1.3V on meelevaldne ja minu jaoks töötas see väga hästi. Voolu lekkeid on alati vähe ja see kaitseb valepositiivsete tulemuste puudumise eest.

Need andmed salvestatakse vektorisse [8], mida võrreldakse kompassina aadressimassiiviga. Vaadake diagrammi maatriksit. Näiteks kui vastuvõetud vektor on [0, 0, 1, 0, 0, 0, 0, 0, 0], näitab see maatriksis suunda E ja vastab 90 -kraadisele nurgale; kui [0, 0, 0, 0, 0, 0, 1, 1] näitab maatriksis WNW aadressi ja vastab nurgale 292,5 kraadi. N vastab [1, 0, 0, 0, 0, 0, 0, 0, 0] ja nurgale 0 kraadi.

ThingSpeakile saadetav on nurga all, kuna see aktsepteerib ainult numbreid.

4. samm: suhtlemine

Kommunikatsioonid
Kommunikatsioonid
Kommunikatsioonid
Kommunikatsioonid

Kuidas andmeid ThingSpeakile saata

Funktsioon thingspeaksenddata () vastutab andmete saatmise eest.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - saatke kiiruse andmed minu kanali 1. väljale

ThingSpeak.setField (2, float (wind_Direction_Angle)) - saatke aadressiandmed minu kanali väljale 2

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - saatke minu kanalile myChannelNumber koos kirjaliku myWriteAPIKey API -ga, mille tähistab TS. Need andmed genereeris TS teie konto ja kanali loomisel.

Ülaltoodud piltidel näete, kuidas ThingSpeak näitab saadud andmeid.

Sellel lingil pääsete juurde minu projekti andmetele ThingSpeaki avalikus kanalis.

Samm: peamised muutujad

tuulelippude parameetrid

  • MUX_A D5 - mux pi A kuni Nodemcu tihvt D5
  • MUX_B D4 - mux pin B kuni Nodemcu pin D4
  • MUX_C D3 - mux pin C kuni Nodemcu pin D3
  • READPIN 0 - NodeMcu analoogsisend = A0
  • NO_PINS 8 - mux -tihvtide arv
  • val [NO_PINS] - pordid 0 kuni 7 mux
  • wind_Direction_Angle - tuule suuna nurk
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardinalid, tagatised ja alamtagatised
  • 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} - iga suuna nurgad
  • Number [16] [NO_PINS] - juhiste maatriks
  • muxABC [8] [3] - ABC muxi kombinatsioonid

anemomeetri parameetrid

  • rpmcount - loendage, mitu täispööret anemomeeter määratud aja jooksul tegi
  • aja mõõtmine = 25.00 - mõõtmisaeg sekundites
  • timetoSleep = 1 - Nodemcu ärkveloleku aeg minutites
  • sleepTime = 15 - aeg magada minutites
  • rpm, rps - pöörlemissagedused (pööret minutis, pööret sekundis)
  • raadius - meetrit - anemomeetri tiiva pikkuse mõõt
  • lineaarne kiirus - lineaarne kiirus m/seg
  • linear_velocity_kmh - lineaarne kiirus km/h
  • oomega - radiaalne kiirus rad/seg

Allpool leiate täieliku visandi. Looge oma arvuti Arduino kausta uus kaust, millel on sama nimi kui põhiprogrammil (Anemometer_Instructables) ja pange need kõik kokku.

Sisestage oma wifi võrgu andmed ning ThingSpeak ID ja API kirjutaja võti ossa Credentials.h ja salvestage. Laadige Nodemcu üles ja see on kõik.

Süsteemi töö testimiseks soovitan head pöörlevat ventilaatorit.

Mobiiltelefoniga andmetele juurde pääsemiseks laadige alla IOS -i või Androidi rakendus ThingView, mis on õnneks endiselt tasuta.

Konfigureerige oma konto seaded ja olete valmis nägema oma kodu tuuleolusid kõikjal.

Kui teil on huvi, avage minu ThingSpeak Channel ID kanal: 438851, mis on avalik ja sealt leiate minu maja tuule ja suuna mõõtmised.

Loodan väga, et teil on lõbus.

Kui teil on kahtlusi, ärge kartke minuga ühendust võtta.

Lugupidamisega

Soovitan: