Satura rādītājs:

Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra: 5 soļi (ar attēliem)
Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra: 5 soļi (ar attēliem)

Video: Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra: 5 soļi (ar attēliem)

Video: Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra: 5 soļi (ar attēliem)
Video: Kā izveidot savu mājas lapu ātri un viegli, ar Mozello 2024, Jūnijs
Anonim
Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra
Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra
Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra
Kā izveidot savu anemometru, izmantojot Nedemcu slēdžus, Halles efekta sensoru un dažus atgriezumus - 2. daļa - Programmatūra

Ievads

Šis ir turpinājums pirmajam ierakstam "Kā izveidot savu anemometru, izmantojot niedru slēdžus, zāles efekta sensoru un dažus atgriezumus Nodemcu - 1. daļa - aparatūra" - kur es parādīšu, kā salikt vēja ātruma un virziena mērīšanas ierīces. Šeit mēs izmantosim mērījumu kontroles programmatūru, kas paredzēta lietošanai Nodemcu, izmantojot Arduino IDE.

Projekta apraksts

Iepriekšējā ierakstā ierīces, kas ir bruņotas un savienotas ar Nodemcu, spēj izmērīt vēja ātrumu un virzienu. Vadības programmatūra tika izstrādāta, lai noteiktu laiku nolasītu anemometra rotāciju, aprēķinātu lineāro ātrumu, nolasītu lāpstiņas virzienu, parādītu rezultātus OLED, publicētu rezultātus ThingSpeak un gulētu 15 minūtes, līdz nākamais mērījums.

Atruna: šo anemometru nedrīkst izmantot profesionāliem mērķiem. Tas ir paredzēts tikai akadēmiskai vai mājas lietošanai.

Piezīme: angļu valoda nav mana dabiskā valoda. Ja atrodat gramatiskas kļūdas, kas neļauj jums izprast projektu, lūdzu, informējiet mani, lai tās labotu. Liels tev paldies.

1. darbība: instalējiet Arduino IDE, ESP8266 plates un bibliotēkas un savu ThingSpeak kontu

Arduino IDE, ESP8266 dēļu un bibliotēku un jūsu ThingSpeak konta instalēšana
Arduino IDE, ESP8266 dēļu un bibliotēku un jūsu ThingSpeak konta instalēšana
Arduino IDE, ESP8266 dēļu un bibliotēku un jūsu ThingSpeak konta instalēšana
Arduino IDE, ESP8266 dēļu un bibliotēku un jūsu ThingSpeak konta instalēšana

Arduino IDE un Nodemcu instalēšana

Ja jūs nekad neesat instalējis Arduino IDE, lūdzu, izlasiet apmācību saitē - Kā instalēt Arduino IDE -, kur varat atrast pilnīgas instrukcijas.

Nākamais solis, lai instalētu Nodemcu plati, izmantojiet šo apmācību no Magesh Jayakumar Instructables, kas ir ļoti pilnīga. Kā instalēt Nodemcu no Arduino IDE

Bibliotēku instalēšana

Nākamais solis ir jāinstalē skicē izmantotās bibliotēkas. Tie ir izplatīti, un jūs varat veikt tālāk norādītās darbības.

ThingSpeak bibliotēka -

ESP8266 bibliotēka -

ThingSpeak konta izveide

Lai izmantotu ThingSpeak (https://thingspeak.com/), jums ir jāizveido konts (noteiktam mijiedarbību skaitam tas joprojām ir bez maksas), kurā varat saglabāt anemometrā izmērītos datus un uzraudzīt vēja apstākļus mājās, pat caur mobilo tālruni. Izmantojot ThingSpeak, ikvienam interesentam varat piešķirt publisku piekļuvi saviem apkopotajiem datiem. Tā ir laba ThingSpeak priekšrocība. Ievadiet sākumlapu un veiciet darbības, lai izveidotu kontu.

Kad konts ir izveidots, ievadiet šo apmācību - ThingSpeak Getting Started - lai izveidotu savus kanālus. Tas ir diezgan labi izskaidrots. Rezumējot, jums ir jāizveido kanāls, kurā dati tiks glabāti. Šim kanālam ir ID un atslēgas API, uz kuru skicē ir jāatsaucas ikreiz, kad vēlaties ierakstīt datus. ThingSpeak saglabās visus datus bankā un parādīs tos katru reizi, kad piekļūstat savam kontam, jūsu konfigurētajā veidā.

2. darbība: skices izpēte

Skices izpēte
Skices izpēte
Skices izpēte
Skices izpēte

Blokshēma

Diagrammā jūs varat saprast skices fluxogrammu. Kad jūs pamodināt (saite) Nodemcu, tas izveidos savienojumu ar jūsu Wi-Fi tīklu, kura parametrus esat konfigurējis, un sāks skaitīt 1 minūti laika, lai veiktu mērījumus. Pirmkārt, tas skaitīs anemometra apgriezienus 25 sekundes, aprēķiniet lineāro ātrumu un nolasīt vēja virzienu. Rezultāti tiek parādīti OLED. Veiciet tās pašas darbības vēlreiz, un šim otrajam lasījumam tas tiks pārsūtīts uz ThingSpeak.

Tad Nodemcu guļ 15 minūtes, lai taupītu akumulatoru. Tā kā es izmantoju nelielu saules paneli, tas ir obligāti jādara. Ja izmantojat 5 V avotu, varat modificēt programmu tā, lai tā negulētu, un turpināt mērīt datus.

Programmu struktūra

Diagrammā varat redzēt skices struktūru.

Anemometrs_Instrukcijas

Tā ir galvenā programma, kas ielādē bibliotēkas, sāk mainīgos, kontrolē pielikuma pārtraukšanu, izsauc visas funkcijas, aprēķina vēja ātrumu, nosaka tā virzienu un iemidzina.

sakarus

Pievienojiet WiFi un nosūtiet datus uz ThingSpeak.

akreditācijas dati.h

Jūsu WiFi tīkla atslēgas un jūsu ThingSpeak konta identifikatori. Šeit jūs mainīsit atslēgu ID un API.

definē.h

Tas satur visus programmas mainīgos. Šeit jūs varat mainīt lasīšanas laiku vai to, cik ilgi nodemcu vajadzētu gulēt.

funkcijas

Tajā ir funkcijas parametru apvienošanai un multipleksora nolasīšanai, kā arī funkcija anemometra griešanās nolasīšanai.

oledDisplay

Ekrānā parādiet vēja ātruma un virziena rezultātus.

3. darbība. Paskaidrojumi par…

Skaidrojumi par…
Skaidrojumi par…
Skaidrojumi par…
Skaidrojumi par…
Skaidrojumi par…
Skaidrojumi par…
Skaidrojumi par…
Skaidrojumi par…

Pievienojiet pārtraukumu

Anemometra rotāciju mēra, izmantojot funkciju attachInterrupt () (un detachInterrupt ()) Nodemcu GPIO 12 (pin D6) (tā D0-D8 tapās ir pārtraukšanas funkcija).

Pārtraukumi ir notikumi vai apstākļi, kuru dēļ mikrokontrolleris pārtrauc izpildītā uzdevuma izpildi, īslaicīgi strādā citā uzdevumā un atgriežas pie sākotnējā uzdevuma.

Funkcijas detaļas varat izlasīt Arduino apmācības saitē. Skatiet attachInterrupt ().

Sintakse: attachInterrupt (pin, atzvanīšanas funkcija, pārtraukuma veids/režīms);

tapa = D6

atzvanīšanas funkcija = rpm_anemometer - skaita katru impulsu uz mainīgā.

pārtraukšanas veids/režīms = RISING - pārtrauciet, kad tapa kļūst no zemas uz augstu.

Pie katra impulsa, ko rada Hallo sensora magneto, tapa tiek pārsniegta no zemas uz augstu, un skaitīšanas funkcija tiek aktivizēta un summētais impulss mainīgā 25 sekunžu laikā. Kad laiks ir beidzies, skaitītājs tiek atvienots (detachInterrupt ()) un rutīna aprēķina ātrumu, kamēr tas ir atvienots.

Vēja ātruma aprēķināšana

Kad ir noteikts, cik daudz apgriezienu anemometrs deva 25 sekundēs, mēs aprēķinām ātrumu.

  • RADIO ir mērījums no anemometra centra ass līdz galda tenisa bumbiņas galam. Jūs noteikti ļoti labi esat izmērījis savējo - (skatiet to diagrammā, kurā teikts 10 cm).
  • RPS (apgriezieni sekundē) = rotācijas / 25 sekundes
  • RPM (apgriezieni minūtē) = RPS * 60
  • OMEGA (leņķiskais ātrums - radiāni sekundē) = 2 * PI * RPS
  • Linear_Velocity (metri sekundē) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km stundā) = 3.6 * Linear_Velocity, un tas tiks nosūtīts uz ThingSpeak.

Izlasiet vēja lāpstiņas virzienu

Lai nolasītu vēja lāpstiņas stāvokli, lai noteiktu vēja virzienu, programma nosūta zemus un augstus signālus multipleksoram ar visām parametru A, B, C kombinācijām (muxABC matrica) un gaida rezultātu, lai saņemtu rezultātu A0 kas var būt jebkurš spriegums no 0 līdz 3.3V. Kombinācijas ir parādītas diagrammā.

Piemēram, ja C = 0 (zems), B = 0 (zems), A = 0 (zems), multipleksors sniedz tam 0 tapu datus un nosūta signālu uz A0, ko nolasa Nodemcu; ja C = 0 (zems), B = 0 (zems), A = 1 (augsts), multipleksors nosūtīs jums 1. kontakta datus un tā tālāk, līdz tiks pabeigta 8 kanālu nolasīšana.

Tā kā signāls ir analogs, programma tiek pārveidota par ciparu (0 vai 1), ja spriegums ir mazāks vai vienāds ar 1,3 V, signāls ir 0; ja tas ir lielāks par 1.3V, signāls ir 1. Vērtība 1.3V ir patvaļīga, un man tas darbojās ļoti labi. Vienmēr ir nelielas strāvas noplūdes, un tas pasargā, ka nav viltus pozitīvu rezultātu.

Šie dati tiek glabāti vektorā val [8], kas tiks salīdzināts ar adrešu masīvu kā kompasu. Skatiet matricu diagrammā. Piemēram, ja saņemtais vektors ir [0, 0, 1, 0, 0, 0, 0, 0, 0], tas matricā norāda virzienu E un atbilst 90 grādu leņķim; ja [0, 0, 0, 0, 0, 0, 1, 1] matricā norāda WNW adresi un atbilst 292,5 grādu leņķim. N atbilst [1, 0, 0, 0, 0, 0, 0, 0, 0] un 0 grādu leņķim.

Tas, kas tiks nosūtīts uz ThingSpeak, ir leņķī, jo tas pieņem tikai ciparus.

4. solis: komunikācija

Sakari
Sakari
Sakari
Sakari

Kā nosūtīt datus uz ThingSpeak

Funkcija thingspeaksenddata () ir atbildīga par datu nosūtīšanu.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - nosūtīt ātruma datus uz mana kanāla 1. lauku

ThingSpeak.setField (2, float (wind_Direction_Angle)) - nosūtīt adreses datus uz mana kanāla 2. lauku

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - nosūtīt manam kanālam myChannelNumber ar rakstisku myWriteAPIKey API, ko norāda TS. Šos datus TS ģenerēja, veidojot jūsu kontu un kanālu.

Iepriekš redzamajos attēlos varat redzēt, kā ThingSpeak parāda saņemtos datus.

Šajā saitē jūs varat piekļūt mana projekta datiem ThingSpeak publiskajā kanālā.

5. solis: galvenie mainīgie

vēja lāpstiņu parametri

  • MUX_A D5 - mux pi A līdz Nodemcu tapa D5
  • MUX_B D4 - mux tapa B līdz Nodemcu tapa D4
  • MUX_C D3 - mux tapa C līdz Nodemcu tapa D3
  • READPIN 0 - analogā ieeja NodeMcu = A0
  • NO_PINS 8 - mux tapu skaits
  • val [NO_PINS] - ostas no 0 līdz 7 mux
  • wind_Direction_Angle - vēja virziena leņķis
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardināli, nodrošinājumi un apakšķīlas
  • 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} - katra virziena leņķi
  • Cipars [16] [NO_PINS] - virzienu matrica
  • muxABC [8] [3] - ABC mux kombinācijas

anemometra parametri

  • rpmcount - saskaitiet, cik pilnu apgriezienu veica anemometrs atvēlētajā laikā
  • timemeasure = 25.00 - mērīšanas ilgums sekundēs
  • timetoSleep = 1 - Nodemcu nomoda laiks minūtēs
  • sleepTime = 15 - laiks, lai turpinātu gulēt minūtēs
  • rpm, rps - rotācijas frekvences (apgriezieni minūtē, apgriezieni sekundē)
  • rādiuss - metri - anemometra spārna garuma mērs
  • lineārais ātrums - lineārais ātrums m/seg
  • linear_velocity_kmh - lineārais ātrums km/h
  • omega - radiālais ātrums rad/seg

Zemāk varat atrast pilnu skici. Izveidojiet jaunu mapi datora mapē Arduino ar tādu pašu nosaukumu kā galvenajai programmai (Anemometer_Instructables) un salieciet tās visas kopā.

Ievadiet sava wifi tīkla datus un ThingSpeak ID un API rakstītāja atslēgu daļā Credentials.h un saglabājiet. Augšupielādējiet Nodemcu un viss.

Lai pārbaudītu sistēmas darbību, es iesaku labu rotējošu ventilatoru.

Lai piekļūtu datiem, izmantojot mobilo tālruni, lejupielādējiet IOS vai Android lietojumprogrammu ar nosaukumu ThingView, kas, par laimi, joprojām ir bezmaksas.

Konfigurējiet sava konta iestatījumus, un jūs būsit gatavs redzēt savas mājas vēja apstākļus, lai kur jūs atrastos.

Ja jums ir interese, piekļūstiet manam ThingSpeak kanāla ID kanālam: 438851, kas ir publisks, un tur jūs atradīsit vēja un virziena mērījumus manā mājā.

Es ļoti ceru, ka jums ir jautri.

Ja jums ir kādas šaubas, nevilcinieties sazināties ar mani.

Sveicieni

Ieteicams: