Tartalomjegyzék:

Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver: 5 lépés (képekkel)
Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver: 5 lépés (képekkel)

Videó: Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver: 5 lépés (képekkel)

Videó: Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver: 5 lépés (képekkel)
Videó: WeatherFlow szélmérő iPhone, iPad és Android telefonokhoz 2024, Június
Anonim
Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver
Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver
Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver
Hogyan építsünk saját szélmérőt Reed kapcsolók, Hall Effect érzékelő és néhány törmelék segítségével a Nodemcu -n - 2. rész - Szoftver

Bevezetés

Ez a folytatása az első bejegyzésnek "Hogyan építsünk saját szélmérőt nádkapcsolókkal, Hall -effektus -érzékelővel és néhány törmelékkel a Nodemcu -n - 1. rész - Hardver" - ahol bemutatom a szélsebesség- és iránymérő eszközök összeszerelését. Itt az Arduino IDE -t használó Nodemcu -ban való használatra tervezett mérésvezérlő szoftvert fogjuk használni.

A projekt leírása

Az előző bejegyzésben a Nodemcu -hoz élesített és csatlakoztatott eszközök képesek mérni a szél sebességét és irányát. A vezérlőszoftvert úgy tervezték, hogy egy ideig leolvassa a szélsebességmérő forgását, kiszámítja a lineáris sebességet, leolvassa a lapát irányát, megjeleníti az eredményeket az OLED -ben, közzéteszi az eredményeket a ThingSpeak -ben és 15 percig alszik, amíg a következő mérés.

Jogi nyilatkozat: Ezt a szélmérőt nem szabad professzionális célokra használni. Csak tanulmányi vagy otthoni használatra alkalmas.

Megjegyzés: Az angol nem a természetes nyelvem. Ha olyan nyelvtani hibákat talál, amelyek akadályozzák a projekt megértésében, kérjük, tudassa velem, hogy kijavítsam azokat. Nagyon szépen köszönöm.

1. lépés: Az Arduino IDE, ESP8266 táblák és könyvtárak, valamint a ThingSpeak -fiók telepítése

Az Arduino IDE, ESP8266 táblák és könyvtárak, valamint a ThingSpeak -fiók telepítése
Az Arduino IDE, ESP8266 táblák és könyvtárak, valamint a ThingSpeak -fiók telepítése
Az Arduino IDE, ESP8266 táblák és könyvtárak, valamint a ThingSpeak -fiók telepítése
Az Arduino IDE, ESP8266 táblák és könyvtárak, valamint a ThingSpeak -fiók telepítése

Az Arduino IDE és a Nodemcu telepítése

Ha még soha nem telepítette az Arduino IDE -t, olvassa el az oktatóanyagot a linken - Az Arduino IDE telepítése -, ahol megtalálja a teljes utasításokat.

A következő lépés a Nodemcu tábla telepítéséhez használja ezt az oktatóanyagot a Magesh Jayakumar Instructables programból, amely nagyon teljes. A Nodemcu no Arduino IDE telepítése

Könyvtárak telepítése

A következő lépésben telepítenie kell a vázlat által használt könyvtárakat. Gyakoriak, és követheti az alábbi lépéseket.

ThingSpeak könyvtár -

ESP8266 Könyvtár -

ThingSpeak -fiók létrehozása

A ThingSpeak (https://thingspeak.com/) használatához létre kell hoznia egy fiókot (bizonyos számú interakció esetén továbbra is ingyenes), ahol el tudja menteni a szélmérőjében mért adatokat, és figyelemmel kíséri az otthoni szélviszonyokat, akár mobiltelefonon keresztül. A ThingSpeak használatával nyilvános hozzáférést biztosíthat az összegyűjtött adatokhoz annak, akit érdekel. Ez a ThingSpeak jó előnye. Lépjen be a kezdőlapra, és kövesse a fiók létrehozásához szükséges lépéseket.

A fiók létrehozása után adja meg ezt az oktatóanyagot - ThingSpeak Getting Started - a csatornák létrehozásához. Elég jól meg van magyarázva. Összefoglalva, létre kell hoznia egy csatornát, ahol az adatok tárolódnak. Ez a csatorna rendelkezik egy azonosítóval és egy kulcs API -val, amelyre minden alkalommal, amikor adatokat kíván rögzíteni, hivatkozni kell a vázlatra. A ThingSpeak tárolja az összes adatot egy bankban, és minden alkalommal megjeleníti őket, amikor belép a fiókjába, a beállított módon.

2. lépés: A vázlat feltárása

A vázlat feltárása
A vázlat feltárása
A vázlat feltárása
A vázlat feltárása

Folyamatábra

A diagramon megértheti a vázlat fluxogramját. Amikor felébreszti (összekapcsolja) a Nodemcu-t, az csatlakozik a Wi-Fi hálózatához, amelynek paramétereit konfigurálta, és elkezdi számolni az 1 perces időt a mérések elvégzéséhez. Először 25 másodpercig számolja az anemométer forgásait. a lineáris sebességet és olvassa el a szél irányát. Az eredmények az OLED -en jelennek meg. Végezze el ugyanazokat a lépéseket, és a második olvasáshoz a ThingSpeak továbbítja.

Ezután a Nodemcu 15 percig alszik, hogy kímélje az akkumulátort. Mivel kicsi napelemet használok, feltétlenül ezt kell tennem. Ha 5 V -os forrást használ, módosíthatja a programot, hogy ne aludjon, és folyamatosan mérheti az adatokat.

A programok felépítése

Az ábrán látható a vázlat felépítése.

Anemometer_Instructables

Ez a fő program, amely betölti a könyvtárakat, elindítja a változókat, vezérli a csatolás megszakítását, meghívja az összes funkciót, kiszámítja a szélsebességet, meghatározza annak irányát és elaltatja.

kommunikáció

Csatlakoztassa a WiFi -t, és küldje el az adatokat a ThingSpeak -nek.

hitelesítő adatok.h

A WiFi hálózat kulcsait és a fiók azonosítóit a ThingSpeak alkalmazásban. Itt módosíthatja a kulcsazonosítókat és az API -kat.

meghatározza.h

Ez tartalmazza a program összes változóját. Itt módosíthatja az olvasási időt vagy azt, hogy a nodemcu mennyi ideig aludjon.

funkciókat

Ez tartalmazza a paraméterek kombinálására és a multiplexer kiolvasására szolgáló funkciókat, valamint a szellőzőmérő forgásának olvasására szolgáló funkciót.

oledDisplay

A szél sebességének és irányának képernyőn megjelenített eredményei.

3. lépés: Magyarázatok a…

Magyarázatok a…
Magyarázatok a…
Magyarázatok a…
Magyarázatok a…
Magyarázatok a…
Magyarázatok a…
Magyarázatok a…
Magyarázatok a…

Csatolja a megszakítást

Az anemométer forgását a attachInterrupt () (és detachInterrupt ()) függvény méri a Nodemcu GPIO 12-ben (D6-os érintkező) (megszakítási funkciója van a D0-D8 érintkezőin).

A megszakítások olyan események vagy feltételek, amelyek miatt a mikrokontroller leállítja az általa végrehajtott feladat végrehajtását, ideiglenesen más feladatban dolgozik, és visszatér a kezdeti feladathoz.

A funkció részleteit az Arduino oktatóanyagának linkjén olvashatja. Lásd: attachInterrupt ().

Szintaxis: attachInterrupt (pin, visszahívási funkció, megszakítás típusa/mód);

csap = D6

visszahívási funkció = rpm_anemometer - minden impulzust számlál egy változón.

megszakítás típusa/mód = RISING - megszakítás, amikor a csap alacsonyról magasra emelkedik.

A Hall -érzékelő mágnese által előállított minden impulzusnál a tű alacsonyról magasra emelkedik, és a számláló funkció aktiválódik, és az impulzus egy változóban összeáll a 25 másodperc alatt. Az idő letelte után a számláló lekapcsolódik (detachInterrupt ()), és a rutin kiszámítja a sebességet lekapcsolás közben.

A szélsebesség kiszámítása

Miután meghatároztuk, hogy az anemométer hány fordulatot tett 25 másodperc alatt, kiszámítjuk a sebességet.

  • A RÁDIÓ az anemométer középtengelyétől a pingponglabda csúcsáig terjedő mérés. Biztos nagyon jól mérted a tiedet (lásd ezt a 10 cm -es ábrán).
  • RPS (fordulat másodpercenként) = fordulat / 25 másodperc
  • RPM (fordulat percenként) = RPS * 60
  • OMEGA (szögsebesség - radián másodpercenként) = 2 * PI * RPS
  • Lineáris_sebesség (méter / másodperc) = OMEGA * RÁDIÓ
  • Linear_Velocity_kmh (Km per hour) = 3.6 * Linear_Velocity, és ezt fogják küldeni a ThingSpeak -nek.

Olvassa el a szélkapu irányát

A széllapát helyzetének leolvasásához és a szél irányának meghatározásához a program alacsony és magas jeleket küld a multiplexernek az A, B, C paraméterek összes kombinációjával (muxABC mátrix), és várja meg, hogy megkapja az eredményt az A0 tűn Ez bármilyen feszültség lehet 0 és 3,3 V között. A kombinációkat a diagram mutatja.

Például, ha C = 0 (alacsony), B = 0 (alacsony), A = 0 (alacsony), a multiplexer megadja neki a 0 -as adat adatait, és elküldi a jelet A0 -nak, amelyet a Nodemcu olvas; ha C = 0 (alacsony), B = 0 (alacsony), A = 1 (magas), akkor a multiplexer elküldi az 1. tű és így tovább adatait, amíg a 8 csatorna leolvasása befejeződik.

Mivel a jel analóg, a program átalakul digitálisvá (0 vagy 1), ha a feszültség kisebb vagy egyenlő, mint 1,3 V, akkor a jel 0; ha nagyobb, mint 1.3V, akkor a jel 1. Az 1.3V érték tetszőleges, és számomra nagyon jól működött. Mindig vannak kis áramszivárgások, és ez védi, hogy nincsenek hamis pozitív eredmények.

Ezeket az adatokat egy vektor [8] tárolja, amelyet összehasonlítanak a címberemmel, mint iránytűvel. Lásd a diagram mátrixát. Például, ha a kapott vektor [0, 0, 1, 0, 0, 0, 0, 0, 0], akkor a mátrixban az E irányt jelzi, és 90 fokos szögnek felel meg; ha [0, 0, 0, 0, 0, 0, 1, 1] jelzi a mátrixban a WNW címet, és 292,5 fokos szögnek felel meg. Az N megfelel [1, 0, 0, 0, 0, 0, 0, 0, 0] és 0 fokos szögnek.

Amit a ThingSpeak küld, az szögben van, mert csak számokat fogad el.

4. lépés: Kommunikáció

Kommunikáció
Kommunikáció
Kommunikáció
Kommunikáció

Hogyan lehet adatokat küldeni a ThingSpeaknek

A thingspeaksenddata () függvény felelős az adatok küldéséért.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - A sebességadatok elküldése a csatornám 1. mezőjébe

ThingSpeak.setField (2, float (wind_Direction_Angle)) - A címadatok elküldése a csatornám 2. mezőjébe

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Küldés a csatornámra myChannelNumber, a TS által megjelölt írott myWriteAPIKey API -val. Ezeket az adatokat a TS generálta a fiók és a csatorna létrehozásakor.

A fenti képeken láthatja, hogyan mutatja a ThingSpeak a kapott adatokat.

Ezen a linken elérheti projektem adatait a ThingSpeak nyilvános csatornáján.

5. lépés: Fő változók

szélkapu paraméterek

  • MUX_A D5 - mux pi A - Nodemcu D5 tű
  • MUX_B D4 - B -típusú dugasz - Nodemcu D4 tű
  • MUX_C D3 - mux C csap - Nodemcu D3 tű
  • READPIN 0 - Analóg bemenet a NodeMcu -n = A0
  • NO_PINS 8 - mux csapok száma
  • val [NO_PINS] - a mux 0-7 portjai
  • wind_Direction_Angle - Szélirány szöge
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - bíborosok, biztosítékok és részbiztosítékok
  • 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} - az egyes irányok szögei
  • Digit [16] [NO_PINS] - Directions Matrix
  • muxABC [8] [3] - ABC mux kombinációk

anemométer paraméterei

  • rpmcount - számolja meg, hány teljes fordulatot végzett az anemométer a megadott idő alatt
  • időmérés = 25.00 - mérési idő másodpercben
  • timetoSleep = 1 - Nodemcu ébrenléti ideje percben
  • sleepTime = 15 - az alvási idő perceiben
  • ford./perc, ford./perc - forgási gyakoriság (fordulat percenként, fordulat másodpercenként)
  • sugár - méter - az anemométer szárnyának hossza
  • lineáris_sebesség - lineáris sebesség m/szegben
  • linear_velocity_kmh - lineáris sebesség km/h -ban
  • omega - radiális sebesség rad/seg

Az alábbiakban megtalálható a teljes vázlat. Hozzon létre egy új mappát a számítógép Arduino mappájában, ugyanazzal a névvel, mint a fő program (Anemometer_Instructables), és rakja össze őket.

Adja meg a wifi -hálózat adatait, valamint a ThingSpeak azonosítót és az API -író kulcsot a Credentials.h részben, és mentse. Töltsd fel a Nodemcu -ba és ennyi.

A rendszer működésének teszteléséhez jó forgó ventilátort ajánlok.

Az adatok mobiltelefonról történő eléréséhez töltse le az IOS vagy az Android ThingView nevű alkalmazását, amely szerencsére még mindig ingyenes.

Konfigurálja fiókja beállításait, és készen áll arra, hogy bárhol is láthassa az otthoni szélviszonyokat.

Ha érdekli, nyissa meg a ThingSpeak Channel ID csatornámat: 438851, amely nyilvános, és ott megtalálja a szél- és irányméréseket a házamban.

Nagyon remélem, hogy jól szórakozik.

Ha kétségei vannak, ne habozzon kapcsolatba lépni velem.

Üdvözlettel

Ajánlott: