Talaan ng mga Nilalaman:

Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software: 5 Hakbang (na may Mga Larawan)
Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software: 5 Hakbang (na may Mga Larawan)

Video: Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software: 5 Hakbang (na may Mga Larawan)

Video: Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software: 5 Hakbang (na may Mga Larawan)
Video: Part 05 - Our Mutual Friend Audiobook by Charles Dickens (Book 2, Chs 1-4) 2024, Hunyo
Anonim
Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software
Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software
Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software
Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 2 - Software

Panimula

Ito ang sumunod na pangyayari sa unang post na "Paano Bumuo ng Iyong Sariling Anemometer Gamit ang Reed Switches, Hall Effect Sensor at Ilang Mga Points sa Nodemcu - Bahagi 1 - Hardware" - kung saan ipinapakita ko kung paano tipunin ang bilis ng hangin at mga aparato sa pagsukat ng direksyon. Sasamantalahin namin dito ang software ng pagsukat sa pagsukat na idinisenyo para magamit sa isang Nodemcu gamit ang Arduino IDE.

Paglalarawan ng Proyekto

Sa nakaraang post, ang mga aparato na armado at konektado sa Nodemcu ay maaaring masukat ang bilis at direksyon ng hangin. Ang control software ay dinisenyo upang basahin ang pag-ikot ng anemometer para sa isang tagal ng panahon, kalkulahin ang tulin na tulin, basahin ang direksyon kung saan ang vane ay, ipakita ang mga resulta sa OLED, i-publish ang mga resulta sa ThingSpeak at matulog ng 15 minuto hanggang sa ang susunod na pagsukat.

Pagwawaksi: Ang anemometer na ito ay hindi dapat gamitin para sa mga propesyonal na layunin. Para lamang ito sa paggamit sa akademiko o tahanan.

Tandaan: Hindi Ingles ang aking likas na wika. Kung makakita ka ng mga error sa gramatika na pumipigil sa iyo na maunawaan ang proyekto, mangyaring ipaalam sa akin upang maitama ang mga ito. Maraming salamat.

Hakbang 1: Pag-install ng Arduino IDE, ESP8266 Mga Lupon at Aklatan at ang Iyong ThingSpeak Account

Pag-install ng Arduino IDE, ESP8266 Mga Lupon at Aklatan at Iyong ThingSpeak Account
Pag-install ng Arduino IDE, ESP8266 Mga Lupon at Aklatan at Iyong ThingSpeak Account
Pag-install ng Arduino IDE, ESP8266 Mga Lupon at Aklatan at Iyong ThingSpeak Account
Pag-install ng Arduino IDE, ESP8266 Mga Lupon at Aklatan at Iyong ThingSpeak Account

Pag-install ng Arduino IDE at Nodemcu

Kung hindi mo pa na-install ang IDE ang Arduino mangyaring basahin ang tutorial sa link - Paano i-install ang Arduino IDE - kung saan mo mahahanap ang kumpletong mga tagubilin.

Susunod na hakbang, upang mai-install ang board ng Nodemcu gamitin ang tutorial na ito mula sa Magesh Jayakumar Instructables na kung saan ay napaka kumpleto. Paano i-install ang Nodemcu no Arduino IDE

Pag-install ng Mga Aklatan

Susunod na hakbang ay dapat mong i-install ang mga aklatan na ginagamit ng sketch. Karaniwan ang mga ito at maaari mong sundin ang mga hakbang na ipinakita sa ibaba.

ThingSpeak Library -

ESP8266 Library -

Lumilikha ng ThingSpeak Account

Upang magamit ang ThingSpeak (https://thingspeak.com/) dapat kang lumikha ng isang account (libre pa rin ito para sa isang tiyak na bilang ng mga pakikipag-ugnayan) kung saan maaari mong i-save ang data na sinusukat sa iyong anemometer at subaybayan ang mga kondisyon ng hangin sa iyong tahanan, kahit sa pamamagitan ng cellphone. Sa pamamagitan ng paggamit ng ThingSpeak, maaari mong bigyan ang pampublikong pag-access sa iyong nakolektang data sa sinumang interesado. Ito ay isang mabuting bentahe ng ThingSpeak. Ipasok ang homepage at sundin ang mga hakbang upang likhain ang iyong account.

Kapag nilikha ang account, ipasok ang tutorial na ito - ThingSpeak Getting Started - upang likhain ang iyong mga channel. Medyo napaliwanag ito nang maayos. Bilang buod, dapat kang lumikha ng isang channel kung saan maiimbak ang data. Ang channel na ito ay may isang ID at isang Key API na dapat na sanggunian sa sketch tuwing nais mong magtala ng data. Itatago ng ThingSpeak ang lahat ng data sa isang bangko at ipapakita sa kanila sa tuwing maa-access mo ang iyong account, sa paraang na-configure mo.

Hakbang 2: Pagtuklas sa Sketch

Paggalugad sa Sketch
Paggalugad sa Sketch
Paggalugad sa Sketch
Paggalugad sa Sketch

Flowchart

Sa diagram, maaari mong maunawaan ang fluxogram ng sketch. Kapag gisingin mo (link) ang Nodemcu, makakonekta ito sa iyong Wi-Fi network, na ang mga parameter ay na-configure mo at nagsisimulang magbilang ng 1 minuto ng oras upang maisagawa ang mga sukat. Una, bibilangin nito ang mga pag-ikot ng anemometer sa loob ng 25 segundo, kalkulahin ang linear na tulin at basahin ang direksyon ng hangin. Ang mga resulta ay ipinapakita sa OLED. Gawin muli ang parehong mga hakbang at para sa pangalawang pagbabasa na ito, magpapadala ito sa ThingSpeak.

Pagkatapos ay natutulog si Nodemcu ng 15 minuto upang mai-save ang baterya. Habang gumagamit ako ng isang maliit na solar panel kinakailangan na gawin ko ito. Kung gumagamit ka ng isang mapagkukunan ng 5V maaari mong baguhin ang programa upang hindi ito makatulog at panatilihin ang pagsukat ng data.

Istraktura ng mga programa

Sa diagram, maaari mong makita ang istraktura ng sketch.

Anemometer_Instructables

Ito ang pangunahing programa na naglo-load ng mga aklatan, sinisimulan ang mga variable, kinokontrol ang nakakagambala, tinawag ang lahat ng mga pag-andar, kinakalkula ang bilis ng hangin, natutukoy ang direksyon nito at natutulog ito.

mga komunikasyon

Ikonekta ang WiFi at ipadala ang data sa ThingSpeak.

mga kredensyal.h

Ang mga susi ng iyong WiFi network at ang mga identifier ng iyong account sa ThingSpeak. Dito mo babaguhin ang iyong mga Keys ID at API.

tumutukoy.h

Naglalaman ito ng lahat ng mga variable ng programa. Dito mo mababago ang mga oras ng pagbabasa o kung gaano katagal dapat makatulog ang nodemcu.

pagpapaandar

Naglalaman ito ng mga pag-andar upang pagsamahin ang mga parameter at basahin ang multiplexer pati na rin ang pagpapaandar upang mabasa ang mga pag-ikot ng anemometer.

oledDisplay

Ipakita ang mga resulta sa screen ng bilis at direksyon ng hangin.

Hakbang 3: Mga Paliwanag Tungkol sa…

Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…
Mga Paliwanag Tungkol sa…

Maglakip ng Nakagambala

Ang pag-ikot ng anemometer ay sinusukat ng pagpapaandar na attachInterrupt () (at detachInterrupt ()) sa GPIO 12 (pin D6) ng Nodemcu (Mayroon itong makagambala na tampok sa mga D0-D8 na pin).

Ang mga pagkagambala ay mga kaganapan o kundisyon na sanhi ng microcontroller upang ihinto ang pagpapatupad ng gawain na ginagawa nito, pansamantalang magtrabaho sa ibang gawain at bumalik sa paunang gawain.

Maaari mong basahin ang detalye ng pagpapaandar sa link para sa tutorial ng Arduino. Tingnan ang attachInterrupt ().

Syntax: attachInterrupt (pin, function ng callback, makagambala na uri / mode);

pin = D6

function ng callback = rpm_anemometer - binibilang ang bawat pulso sa isang variable.

makagambala uri / mode = RISING - makagambala kapag ang pin ay napupunta mula sa mababa hanggang sa mataas.

Sa bawat pulso na ginawa ng magneto sa sensor ng Hall, ang pin ay napupunta mula mababa hanggang mataas at ang pag-andar ng pagbibilang ay pinapagana at na-summed ang pulso sa isang variable, habang itinatag ang 25 segundo. Kapag nag-expire na ang oras, ang counter ay naka-disconnect (detachInterrupt ()) at kinakalkula ng nakagawian ang bilis habang naka-disconnect.

Kinakalkula ang Bilis ng Hangin

Kapag natukoy kung gaano karaming mga pag-ikot ang ibinigay ng anemometer sa loob ng 25 segundo, kinakalkula namin ang bilis.

  • Ang RADIO ay ang pagsukat mula sa gitnang axis ng anemometer hanggang sa dulo ng bola ng ping pong. Dapat na nasukat mo ng mabuti - (tingnan iyon sa diagram na nagsasabing 10 cm).
  • RPS (pag-ikot bawat segundo) = pag-ikot / 25 segundo
  • RPM (pag-ikot bawat minuto) = RPS * 60
  • OMEGA (anggular na tulin - radian bawat segundo) = 2 * PI * RPS
  • Linear_Velocity (metro bawat segundo) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km bawat oras) = 3.6 * Linear_Velocity at ito ang ipapadala sa ThingSpeak.

Basahin ang direksyon ng wind vane

Upang mabasa ang posisyon ng wind vane upang matukoy ang direksyon ng hangin ang programa ay nagpapadala ng mababa at mataas na signal sa multiplexer kasama ang lahat ng mga kumbinasyon ng mga parameter na A, B, C (muxABC matrix) at maghintay na matanggap sa pin A0 ang resulta na maaaring maging anumang boltahe sa pagitan ng 0 at 3.3V. Ang mga kumbinasyon ay ipinapakita sa diagram.

Halimbawa, kapag ang C = 0 (mababa), B = 0 (mababa), A = 0 (mababa) ay binibigyan ito ng multiplexer ng data ng pin 0 at ipinapadala ang signal sa A0 na nabasa ng Nodemcu; kung ang C = 0 (mababa), B = 0 (mababa), A = 1 (taas) ay magpapadala sa iyo ang multiplexer ng data ng pin 1 at iba pa, hanggang sa makumpleto ang pagbabasa ng 8 mga channel.

Tulad ng signal ay analog, ang programa ay nagbabago sa digital (0 o 1), kung ang boltahe ay mas mababa sa o katumbas ng 1.3V ang signal ay 0; kung ito ay mas malaki kaysa sa 1.3V ang signal ay 1. Ang halaga ng 1.3V ay arbitrary at para sa akin, gumana ito nang napakahusay. Palaging may maliliit na tagas ng kasalukuyang at pinoprotektahan na walang maling positibo.

Ang data na ito ay nakaimbak sa isang vector val [8] na ihahambing sa array ng address bilang compass. Tingnan ang matrix sa diagram. Halimbawa, kung ang natanggap na vector ay [0, 0, 1, 0, 0, 0, 0, 0, 0] ipinapahiwatig nito sa matrix ang direksyon na E at tumutugma sa isang anggulo ng 90 degree; kung ang [0, 0, 0, 0, 0, 0, 1, 1] ay nagpapahiwatig sa matrix ng WNW address at tumutugma sa isang anggulo ng 292.5 degree. Ang N ay tumutugma sa [1, 0, 0, 0, 0, 0, 0, 0, 0] at angulo ng 0 degree.

Ang ipapadala sa ThingSpeak ay nasa anggulo sapagkat ang mga numero lamang ang tinatanggap nito.

Hakbang 4: Mga Komunikasyon

Mga Komunikasyon
Mga Komunikasyon
Mga Komunikasyon
Mga Komunikasyon

Paano magpadala ng data sa ThingSpeak

Ang function na bagaypeaksenddata () ay responsable para sa pagpapadala ng data.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Ipadala ang data ng tulin sa field1 ng aking channel

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Ipadala ang data ng address sa field2 ng aking channel

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Ipadala sa aking channel myChannelNumber, kasama ang nakasulat na myWriteAPIKey API na ipinahiwatig ng TS. Ang data na ito ay nilikha ng TS noong lumilikha ng iyong account at channel.

Sa mga larawan sa itaas makikita mo kung paano ipinapakita ng ThingSpeak ang natanggap na data.

Sa link na ito maaari mong ma-access ang data ng aking proyekto sa pampublikong channel ng ThingSpeak.

Hakbang 5: Pangunahing Mga variable

mga parameter ng wind vane

  • MUX_A D5 - mux pi A hanggang Nodemcu pin D5
  • MUX_B D4 - mux pin B sa Nodemcu pin D4
  • MUX_C D3 - mux pin C sa Nodemcu pin D3
  • READPIN 0 - Pag-input ng analog sa NodeMcu = A0
  • NO_PINS 8 - bilang ng mga mux pin
  • val [NO_PINS] - mga port 0 hanggang 7 ng mux
  • wind_Direction_Angle - Angle ng direksyon ng hangin
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - mga cardenal, collateral at sub-collateral
  • 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} - mga anggulo ng bawat direksyon
  • Digit [16] [NO_PINS] - Mga Direksyon Matrix
  • muxABC [8] [3] - Mga kumbinasyon ng mux ng ABC

mga parameter ng anemometer

  • rpmcount - bilangin kung gaano karaming buong pag-ikot ang ginawa ng anemometer sa itinakdang oras
  • timemeasure = 25.00 - pagsukat ng oras ng durantion sa mga segundo
  • timetoSleep = 1 - Nodemcu oras ng paggising sa ilang minuto
  • oras ng pagtulog = 15 - oras upang mapanatili ang pagtulog sa ilang minuto
  • rpm, rps - mga frequency ng pag-ikot (pag-ikot bawat minuto, pag-ikot bawat segundo)
  • radius - metro - ang sukat ng haba ng pakpak ng anemometer
  • linear_velocity - linya ng tulin sa m / seg
  • linear_velocity_kmh - linya ng tulin sa km / h
  • omega - bilis ng radial sa rad / seg

Sa ibaba makikita mo ang kumpletong sketch. Lumikha ng isang bagong folder sa Arduino folder ng iyong computer na may parehong pangalan bilang pangunahing programa (Anemometer_Instructables) at isama silang lahat.

Ipasok ang data ng iyong wifi network at ang ThingSpeak ID at API Writer Key sa bahaging Mga Kredensyal.h at i-save. Mag-upload sa Nodemcu at iyon lang.

Upang subukan ang pagpapatakbo ng system inirerekumenda ko ang isang mahusay na umiikot na fan.

Upang ma-access ang data sa pamamagitan ng mobile phone, i-download ang application para sa IOS o Android na tinatawag na ThingView, na sa kabutihang palad, libre pa rin.

I-configure ang mga setting ng iyong account at handa ka nang makita ang iyong mga kondisyon sa hangin sa bahay nasaan ka man.

Kung mayroon kang interes, i-access ang aking ThingSpeak Channel ID channel: 438851, na pampubliko at doon mo mahahanap ang mga sukat ng hangin at direksyon sa aking bahay.

Sana talaga masaya ka.

Kung mayroon kang alinlangan huwag mag-atubiling makipag-ugnay sa akin.

Pagbati

Inirerekumendang: