Мазмуну:

Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо: 5 кадам (сүрөттөр м
Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо: 5 кадам (сүрөттөр м

Video: Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо: 5 кадам (сүрөттөр м

Video: Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо: 5 кадам (сүрөттөр м
Video: Что с ними случилось? ~ Невероятный заброшенный особняк знатной семьи 2024, Июнь
Anonim
Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп, жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо
Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп, жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо
Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп, жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо
Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп, жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо

Киришүү

Бул биринчи посттун уландысы "Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды кантип колдонуу керек - 1 -бөлүк - Аппаратура" - мен шамалдын ылдамдыгын жана багытын өлчөөчү приборлорду кантип чогултуу керектигин көрсөтөм. Бул жерде биз Arduino IDEди колдонуп Nodemcuдо иштөөгө арналган өлчөө башкаруу программасын колдонобуз.

Долбоордун сүрөттөлүшү

Мурунку постто Nodemcu менен куралданган жана туташкан түзмөктөр шамалдын ылдамдыгын жана багытын өлчөй алышат. Башкаруу программасы анемометрдин айлануусун белгилүү бир убакытка чейин окуу, сызыктуу ылдамдыкты эсептөө, канаттын багытын окуу, OLEDдеги жыйынтыктарды көрсөтүү, ThingSpeakте жыйынтыктарды жарыялоо жана 15 мүнөткө чейин уктоо үчүн иштелип чыккан. кийинки өлчөө.

Disclaimer: Бул анемометр кесиптик максаттар үчүн колдонулбашы керек. Бул академиялык же үйдө колдонуу үчүн гана.

Эскертүү: Англис тили менин тили эмес. Эгерде сиз долбоорду түшүнүүгө тоскоол болгон грамматикалык каталарды тапсаңыз, аларды оңдоо үчүн мага кабарлаңыз. Сизге чоң рахмат.

1 -кадам: Arduino IDE, ESP8266 такталарын жана китепканаларын жана ThingSpeak эсебин орнотуу

Arduino IDE, ESP8266 такталарын жана китепканаларын жана ThingSpeak эсебин орнотуу
Arduino IDE, ESP8266 такталарын жана китепканаларын жана ThingSpeak эсебин орнотуу
Arduino IDE, ESP8266 такталарын жана китепканаларын жана ThingSpeak эсебин орнотуу
Arduino IDE, ESP8266 такталарын жана китепканаларын жана ThingSpeak эсебин орнотуу

Arduino IDE жана Nodemcu орнотуу

Эгерде сиз эч качан IDE Arduino орното элек болсоңуз, шилтемедеги окуу куралын окуңуз - Arduino IDEди кантип орнотуу керек - бул жерден толук нускамаларды таба аласыз.

Кийинки кадам, Nodemcu тактасын орнотуу үчүн, бул окуу куралын Magesh Jayakumar Instructables колдонуңуз, ал абдан толук. Nodemcu no Arduino IDE кантип орнотулат

Китепканаларды орнотуу

Кийинки кадамда эскиз колдонгон китепканаларды орнотушуңуз керек. Алар таралган жана сиз төмөндө көрсөтүлгөн кадамдарды аткара аласыз.

ThingSpeak китепканасы -

ESP8266 китепканасы -

ThingSpeak эсебин түзүү

ThingSpeakти колдонуу үчүн (https://thingspeak.com/) сиз анемометрде өлчөнгөн маалыматтарды сактап, үйүңүздөгү шамалдын шарттарын көзөмөлдөй турган каттоо эсебин түзүшүңүз керек (ал өз ара аракеттенүү үчүн дагы эле акысыз), ал тургай уюлдук телефон аркылуу. ThingSpeakти колдонуу менен, сиз кызыккан адамдарга чогултулган маалыматыңызга жалпыга жеткиликтүүлүктү бере аласыз. Бул ThingSpeakтин жакшы артыкчылыгы. Башкы баракчага кирип, каттоо эсебиңизди түзүү үчүн кадамдарды аткарыңыз.

Аккаунт түзүлгөндөн кийин, каналыңызды түзүү үчүн бул үйрөткүчкө - ThingSpeak Getting Started - кириңиз. Бул абдан жакшы түшүндүрүлгөн. Жыйынтыктап айтканда, сиз маалыматтар сактала турган канал түзүшүңүз керек. Бул каналда идентификатор жана ачкыч API бар, ал маалыматтарды жазгыңыз келген сайын эскизде шилтеме кылынышы керек. ThingSpeak бардык маалыматтарды банкта сактайт жана сиз эсепке кирген сайын, сиз конфигурациялагандай көрсөтөт.

2 -кадам: Эскизди изилдөө

Эскизди изилдөө
Эскизди изилдөө
Эскизди изилдөө
Эскизди изилдөө

Flowchart

Диаграммада эскиздин флюсограммасын түшүнө аласыз. Сиз ойгонгондо (шилтеме) Nodemcu, анын параметрлери конфигурацияланган Wi-Fi тармагыңызга туташат жана өлчөөлөрдү аткаруу үчүн 1 мүнөт убакытты эсептей баштайт. Биринчиден, анемометрдин айлануусун 25 секундга эсептеп, эсептеп чыгат сызыктуу ылдамдык жана шамалдын багытын окуу. Жыйынтыктар OLEDде көрсөтүлөт. Ошол эле кадамдарды дагы бир жолу жасаңыз жана бул экинчи окуу үчүн ал ThingSpeakке өтөт.

Андан кийин Нодемку батареяны үнөмдөө үчүн 15 мүнөт уктайт. Мен кичинекей күн батареясын колдонуп жаткандыктан, мен муну жасашым керек. Эгерде сиз 5В булагын колдонуп жатсаңыз, анда программаны уктай албай тургандай кылып өзгөртө аласыз жана маалыматтарды өлчөй бересиз.

Программалардын структурасы

Диаграммада эскиздин түзүлүшүн көрө аласыз.

Anemometer_Instructables

Бул китепканаларды жүктөгөн, өзгөрмөлөрдү баштоочу, тиркөөнүн үзүлүшүн көзөмөлдөгөн, бардык функцияларды чакырган, шамалдын ылдамдыгын эсептеген, багытын аныктаган жана уктаткан негизги программа.

байланыштар

WiFi туташып, маалыматты ThingSpeakке жөнөтүңүз.

ишеним грамоталары.h

WiFi тармагыңыздын ачкычтары жана ThingSpeak'теги аккаунтуңуздун идентификаторлору. Бул жерде сиз ачкыч идентификаторлоруңузду жана APIлериңизди өзгөртөсүз.

аныктайт.h

Бул программанын бардык өзгөрмөлөрүн камтыйт. Бул жерде сиз окуу убактысын өзгөртө аласыз же nodemcu канча убакыт укташы керек.

функциялар

Бул параметрлерди бириктирүү жана мультиплексорду окуу функцияларын, анемометрдин айлануусун окуу функциясын камтыйт.

oledDisplay

Шамалдын ылдамдыгы жана багыты боюнча экранда жыйынтыктарды көрсөтүү.

3 -кадам: Түшүндүрмөлөр…

Түшүндүрмөлөр…
Түшүндүрмөлөр…
Түшүндүрмөлөр…
Түшүндүрмөлөр…
Түшүндүрмөлөр…
Түшүндүрмөлөр…
Түшүндүрмөлөр…
Түшүндүрмөлөр…

Үзгүлтүккө тиркөө

Анемометрдин айлануусу Nodemcu'нун GPIO 12синде (pin D6) attachInterrupt () (жана detachInterrupt ()) функциясы менен өлчөнөт (Анын D0-D8 төөнөгүчтөрүндө үзгүлтүккө учуроо өзгөчөлүгү бар).

Үзгүлтүктөр - бул микроконтроллер аткарып жаткан тапшырманы аткарууну токтотууга, башка тапшырмада убактылуу иштөөгө жана баштапкы тапшырмага кайтып келүүгө себеп болгон окуялар же шарттар.

Функциянын чоо -жайын Arduino үйрөткүчүнүн шилтемесинен окуй аласыз. AttachInterrupt () караңыз.

Синтаксис: attachInterrupt (пин, кайра чалуу функциясы, үзгүлтүк түрү/режими);

пин = D6

кайра чалуу функциясы = rpm_anemometer - өзгөрмөнүн ар бир импульсун эсептейт.

үзгүлтүк түрү/режими = RISING - пин төмөндөн жогору карай кеткенде үзгүлтүккө учуроо.

Холл сенсорунда магнит чыгарган ар бир импульсте, пин төмөндөн жогору карай кетет жана эсептөө функциясы активдештирилет жана 25 секунд ичинде импульс өзгөрмөлүү түрдө чогултулат. Убакыт аяктагандан кийин, эсептегич ажыратылат (detachInterrupt ()) жана үзгүлтүккө учураганда ылдамдыкты эсептейт.

Шамалдын ылдамдыгын эсептөө

Анемометр 25 секундада канча айлануу жасагандыгы аныкталгандан кийин ылдамдыкты эсептейбиз.

  • RADIO - анемометрдин борбордук огунан стол тенниси боюнча топтун учуна чейинки өлчөө. Сиз өзүңүздүн ченемиңизди абдан жакшы өлчөгөн болушуңуз керек - (диаграммада 10 см деп айтылат).
  • RPS (секундасына айлануу) = айлануу / 25 секунд
  • RPM (мүнөтүнө айлануу) = RPS * 60
  • OMEGA (бурчтук ылдамдык - секундасына радиан) = 2 * PI * RPS
  • Linear_Velocity (секундуна метр) = OMEGA * RADIO
  • Linear_Velocity_kmh (км / саат) = 3.6 * Linear_Velocity жана бул ThingSpeakке жөнөтүлө турган нерсе.

Шамалдын багытын окуу

Шамалдын багытын аныктоо үчүн шамалдын позициясын окуу үчүн, программа А, В, С (muxABC матрицасы) бардык комбинациялары менен мультиплексорго төмөн жана жогорку сигналдарды жөнөтөт жана жыйынтыкты A0 пининде алууну күтөт. бул 0 жана 3.3V ортосундагы каалаган чыңалуу болушу мүмкүн. Айкалыштар диаграммада көрсөтүлгөн.

Мисалы, качан C = 0 (төмөн), В = 0 (төмөн), А = 0 (төмөн) мультиплексор ага пиндин 0 маалыматын берет жана Nodemcu окуган сигналды A0го жөнөтөт; эгер C = 0 (төмөн), В = 0 (төмөн), А = 1 (жогорку) мультиплексор 8 каналды окуу аяктаганга чейин сизге пин 1 жана башка маалыматтарды жөнөтөт.

Сигнал аналогдук болгондуктан, программа санарипке (0 же 1) айланат, эгер чыңалуу 1.3Вга барабар болсо же 0 болсо; ал 1.3Vдан чоң болсо, сигнал 1. 1.3V мааниси өзүм билемдик болуп саналат жана мен үчүн абдан жакшы иштеди. Ар дайым кичинекей агымдар болот жана бул жалган позитивдер жок экенин коргойт.

Бул маалыматтар вектордук валда сакталат [8], ал компас катары даректер массиви менен салыштырылат. Диаграммадан матрицаны караңыз. Мисалы, эгер алынган вектор [0, 0, 1, 0, 0, 0, 0, 0, 0] болсо, ал матрицада Е багытын көрсөтөт жана 90 градус бурчка туура келет; эгер [0, 0, 0, 0, 0, 0, 1, 1] матрицада WNW дарегин көрсөтсө жана 292,5 градус бурчка туура келсе. N [1, 0, 0, 0, 0, 0, 0, 0, 0] жана 0 градустук бурчка туура келет.

ThingSpeakке жөнөтүлө турган нерсе бурчта, анткени ал сандарды гана кабыл алат.

4 -кадам: Байланыш

Байланыштар
Байланыштар
Байланыштар
Байланыштар

ThingSpeakке маалыматты кантип жөнөтүү керек

Thingspeaksenddata () функциясы маалыматтарды жөнөтүү үчүн жооптуу.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - ылдамдык маалыматын менин каналымдын 1 -талаасына жөнөтүү

ThingSpeak.setField (2, калкып жүрүү (wind_Direction_Angle)) - Дарек маалыматтарын менин каналымдын 2 талаасына жөнөтүү

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - TS тарабынан жазылган myWriteAPIKey API менен myChannelNumber каналыма жөнөтүңүз. Бул маалыматтар TS тарабынан каттоо эсебиңизди жана каналыңызды түзүүдө түзүлгөн.

Жогорудагы сүрөттөрдө ThingSpeak алынган маалыматтарды кантип көрсөтөрүн көрө аласыз.

Бул шилтемеден ThingSpeak коомдук каналында менин долбоорумдун маалыматтарына кире аласыз.

5 -кадам: Негизги өзгөрмөлөр

шамал шамалынын параметрлери

  • MUX_A D5 - D5 Nodemcu пин үчүн мух пи А
  • MUX_B D4 - мухам пин B үчүн Nodemcu пин D4
  • MUX_C D3 - мухам пин Cден Nodemcu пин D3кө чейин
  • READPIN 0 - NodeMcu = A0 боюнча аналогдук киргизүү
  • NO_PINS 8 - мух пиндин саны
  • val [NO_PINS] - мухтын 0дон 7ге чейинки порттору
  • wind_Direction_Angle - Шамалдын багыты
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - карденалдар, күрөөлөр жана суб -күрөөлөр
  • 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} - ар бир тараптын бурчтары
  • Сан [16] [NO_PINS] - Багыттар матрицасы
  • muxABC [8] [3] - ABC mux айкалыштары

анемометрдин параметрлери

  • rpmcount - анемометр бөлүнгөн убакытта канча жолу толук айланганын эсептөө
  • timemeasure = 25.00 - секундада өлчөө узактыгы
  • timetoSleep = 1 - Nodemcu мүнөт ичинде ойгонуу убактысы
  • sleepTime = 15 - бир нече мүнөттө уктоо үчүн убакыт
  • rpm, rps - айлануу жыштыктары (мүнөтүнө айлануу, секундасына айлануу)
  • радиус - метр - анемометрдин канатынын узундугу
  • linear_velocity - м/сегменттеги линиялык ылдамдык
  • lineer_velocity_kmh - км/саатта линиялык ылдамдык
  • омега - рад/сегмдеги радиалдык ылдамдык

Төмөндө толук эскизди таба аласыз. Компьютериңиздин Arduino папкасында негизги программанын аты менен жаңы папка түзүңүз (Anemometer_Instructables) жана алардын бардыгын чогуңуз.

Wifi тармагыңыздын маалыматтарын жана ThingSpeak ID жана API Жазуучу Ачкычын Credentials.h бөлүгүнө киргизиңиз жана сактаңыз. Nodemcuго жүктөңүз жана баары ушул.

Системанын ишин текшерүү үчүн мен жакшы айлануучу желдеткичти сунуштайм.

Уюлдук телефон аркылуу маалыматка жетүү үчүн, ThingView деп аталган IOS же Android тиркемесин жүктөп алыңыз, бактыга жараша дагы эле бекер.

Аккаунтуңуздун жөндөөлөрүн конфигурациялаңыз, кайда болсоңуз да үйүңүздөгү шамалдын шарттарын көрүүгө даяр болосуз.

Эгерде сизде кызыкчылык болсо, менин ThingSpeak Channel ID каналыма кириңиз: 438851, ал жалпыга ачык жана ал жерден менин үйүмдө шамалдын жана багыттын өлчөөлөрүн таба аласыз.

Мен чынында эле көңүл ачам деп үмүттөнөм.

Эгерде кандайдыр бир шектенүүңүз болсо, мага кайрылуудан тартынбаңыз.

Урматтоо менен

Сунушталууда: