Мазмуну:
- 1 -кадам: Arduino IDE, ESP8266 такталарын жана китепканаларын жана ThingSpeak эсебин орнотуу
- 2 -кадам: Эскизди изилдөө
- 3 -кадам: Түшүндүрмөлөр…
- 4 -кадам: Байланыш
- 5 -кадам: Негизги өзгөрмөлөр
Video: Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды колдонуп жеке анемометрди кантип куруу керек - 2 -бөлүк - Программалык камсыздоо: 5 кадам (сүрөттөр м
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Киришүү
Бул биринчи посттун уландысы "Камыш өчүргүчтөрдү, Холл эффекти сенсорун жана Nodemcuдогу кээ бир калдыктарды кантип колдонуу керек - 1 -бөлүк - Аппаратура" - мен шамалдын ылдамдыгын жана багытын өлчөөчү приборлорду кантип чогултуу керектигин көрсөтөм. Бул жерде биз Arduino IDEди колдонуп Nodemcuдо иштөөгө арналган өлчөө башкаруу программасын колдонобуз.
Долбоордун сүрөттөлүшү
Мурунку постто Nodemcu менен куралданган жана туташкан түзмөктөр шамалдын ылдамдыгын жана багытын өлчөй алышат. Башкаруу программасы анемометрдин айлануусун белгилүү бир убакытка чейин окуу, сызыктуу ылдамдыкты эсептөө, канаттын багытын окуу, OLEDдеги жыйынтыктарды көрсөтүү, ThingSpeakте жыйынтыктарды жарыялоо жана 15 мүнөткө чейин уктоо үчүн иштелип чыккан. кийинки өлчөө.
Disclaimer: Бул анемометр кесиптик максаттар үчүн колдонулбашы керек. Бул академиялык же үйдө колдонуу үчүн гана.
Эскертүү: Англис тили менин тили эмес. Эгерде сиз долбоорду түшүнүүгө тоскоол болгон грамматикалык каталарды тапсаңыз, аларды оңдоо үчүн мага кабарлаңыз. Сизге чоң рахмат.
1 -кадам: 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, ал жалпыга ачык жана ал жерден менин үйүмдө шамалдын жана багыттын өлчөөлөрүн таба аласыз.
Мен чынында эле көңүл ачам деп үмүттөнөм.
Эгерде кандайдыр бир шектенүүңүз болсо, мага кайрылуудан тартынбаңыз.
Урматтоо менен
Сунушталууда:
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: 6 кадам (сүрөттөр менен)
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: Бул үйрөткүчтө мен сизге бир эле аналогдук кирүүчү пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окууну көрсөтөм
ПХБда DIY Arduino куруу жана жаңы баштагандар үчүн кээ бир кеңештер: 17 кадам (сүрөттөр менен)
ПХБда DIY Arduino куруу жана башталгычтар үчүн кээ бир кеңештер: Бул A2D Electronicsтен сатып алына турган комплекттен өз Arduino -ны ээриткендерге жол көрсөткүч. Ал ийгиликтүү куруу үчүн көптөгөн кеңештерди жана амалдарды камтыйт. Сиз ошондой эле ар кандай компоненттер жөнүндө биле аласыз
Квадкопторду кантип куруу керек. (NTM 28-30S 800kV 300W жана Arducopter APM 2.6 & 6H GPS 3DR Radio жана FlySky TH9X): 25 кадам (Сүрөттөр менен)
Квадкопторду кантип куруу керек. (NTM 28-30S 800kV 300W жана Arducopter APM 2.6 & 6H GPS 3DR Radio and FlySky TH9X): Бул NTM 28-30S 800kV 300W моторлору жана Arducopter APM 2.6 & Quot аркылуу Quadcopter кантип куруу керектиги боюнча окуу куралы. 6H GPS & 3DR радиосу. Мен ар бир кадамымды көптөгөн сүрөттөр менен түшүндүрүүгө аракет кылдым. Суроолоруңуз же комментарийиңиз болсо, жооп бериңиз
Гитаранын спикери кутучасын кантип куруу керек же стерео үчүн экөөнү кантип куруу керек: 17 кадам (сүрөттөр менен)
Гитаранын спикери кутучасын кантип куруу керек же стерео үчүн экөөнү кантип куруу керек?: Мен куруп жаткан түтүк амп менен жаңы гитаралык спикердин барышын кааладым. Баяндамачы менин дүкөнүмдө калат, андыктан өзгөчө бир нерсенин кереги жок. Толекс жабуусу өтө оңой эле бузулуп калышы мүмкүн, ошондуктан мен кумдун артынан сыртын кара чачтым
Бир MCU пини менен көптөгөн өчүргүчтөрдү кантип окуу керек: 4 кадам
Бир MCU пини менен көптөгөн которуштургучтарды кантип окуу керек: Сиз качандыр бир убакта долбоорду (долбоорлорду) чуркап жүргөнсүзбү жана проект өсө берет, сиз ага дагы көп нерселерди кошосуз (биз муну Feaping Creaturism деп атайбыз)? Акыркы долбоордо мен жыштык ченегичти куруп, беш функцияны коштум