DIY анемометрді қосу схемасы. Жел жылдамдығын өлшеуге арналған үй анемометрі. ДК бағдарламалық қамтамасыз ету

Анемометр - жел жылдамдығын өлшейтін құрылғы. Классикалық шыныаяқ анемометрі желдің жылдамдығын 2-ден 20 м/с диапазонында өлшеуге қабілетті таза механикалық құрылғы болып табылады. Анемометр жұмыс дөңгелегінің айналу санын жай ғана санайды. Желдің жылдамдығын анықтау үшін белгілі бір уақыт аралығындағы айналымдар санын өлшеу керек, мысалы 30 с, содан кейін анемометр инесінің 1 с ішінде өтетін бөлімдер санын есептеу керек. Осыдан кейін желдің жылдамдығын анықтау үшін графикті пайдалану керек.

Оның аналогын құрудың ең оңай жолы - төмен қуатты электр қозғалтқышының негізінде, мысалы, генератор ретінде әрекет ететін DM-03-3AM 3 91. Төрт жүзді анемометрдің дөңгелегі дайын күйінде алынып, Aliexpress-те шамамен 1 долларға сатып алынды.

Доңғалақтың диаметрі 10 см, биіктігі 6 см.

Электр қозғалтқышы суық дәнекерлеу ыдысынан жасалған корпуста орналасқан, оның қақпағында электр қозғалтқышының білігі мен қозғалтқыштан шығатын сымдар үшін тесік кесілген.

1N5817 Schottky диодтары арқылы жиналған VD1 диодты көпірі электр қозғалтқышына қосылған. Диодтық көпірдің шығысына C1 1000 μF x 16 В электролиттік конденсатор қосылған.

Анемометрді қосу схемасы

Шоттки диодтары жұмыс дөңгелегінің айналу жылдамдығы қалыпты жағдайда (егер дауыл болмаса) өте жоғары болмайтындығына байланысты таңдалды. Желдің жылдамдығы шамамен 6 м/с болған кезде құрылғының шығысында шамамен 0,5 В кернеу пайда болады.Мұндай жағдайларда тізбектің барлық элементтеріндегі шығындарды азайту ұтымды. Дәл сол себепті байланыстырушы сымдар ретінде шамадан тыс үлкен көлденең қималардың өткізгіштері қолданылады.

Түзеткіш терминалдарға кез келген 2 В тұрақты ток вольтметрін қосуға болады.Мультиметр өз жұмысын тамаша орындайды. Жеке көрсеткіш құрылғысын пайдалану жел жылдамдығында шкаланы тікелей калибрлеуге мүмкіндік береді.

Құрылғыны ашық ауада пайдалану жоспарланғандықтан, диодтық көпір толтырылды эпоксидті шайыр. Белгілі болғандай, құрылғы кернеудің жылдам төмендеуін және, тиісінше, желдің екпінін байқамауы үшін конденсатор шамадан тыс сыйымдылыққа ие болды. Деневтің шолуы.

DIY жел жылдамдығын өлшегіш

Мәліметтерді USB интерфейсі арқылы компьютерге түсіру үшін бір жоба үшін анемометрді жинау міндеті туындады. Бұл мақалада мәліметтерді өңдеу жүйесіне қарағанда анемометрдің өзіне көбірек назар аударылады:

1. Құрамдас бөліктер

Сонымен, өнімді өндіру үшін келесі компоненттер қажет болды:
Мицуми шарикті тінтуір - 1 дана.
Пинг-понг добы - 2 дана.
Сәйкес өлшемдегі плексигластың бір бөлігі
2,5 мм2 көлденең қимасы бар мыс сым - 3 см
Шарикті қаламды толтыру - 1 дана.
Chupa Chups кәмпит таяқшасы - 1 дана.
Кабель қысқышы - 1 дана.
Қуыс жез бөшке 1 дана.

2. Дөңгелектерді жасау

Әрқайсысының ұзындығы 1 см болатын 3 дана мыс сым жез бөшкеге 120 градус бұрышпен дәнекерленген. Бөшкенің тесігіне мен ұшында жіп бар қытай ойыншысының тұғырын дәнекерледім.

Мен кәмпит түтігін ұзындығы шамамен 2 см болатын 3 бөлікке кесіп тастадым.

Мен 2 шарды екіге бөлдім және сол ойыншының кішкентай бұрандаларын және полистирол желімін (желім пистолетімен) пайдаланып, шарлардың жартысын лолипоп түтіктеріне бекіттім.

Мен шарикті жартысы бар түтіктерді дәнекерленген сым бөліктеріне қойып, бәрін желіммен бекіттім.

3. Негізгі бөлікті дайындау

Анемометрдің тірек элементі - шарикті қаламнан жасалған металл өзек. Мен тінтуірдің дискісін (кодер) таяқшаның төменгі бөлігіне (штепсель салынған жерде) енгіздім. Тінтуірдің дизайнында шифрлағыштың төменгі бөлігі тінтуірдің корпусына тіреліп, нүктелік тірек пайда болды; онда майлаушы бар, сондықтан кодтауыш оңай айналады. Бірақ штанганың үстіңгі бөлігін бекіту керек болды, ол үшін мен диаметрі өзекшенің дәл диаметрі бар тесігі бар қолайлы пластмасса бөлігін таңдадым (мұндай бөлік CD-ROMa каретка шығару жүйесінен кесілген). Бұл шифрлағышы бар штанганың тірек тірегінен құлап кетпеуін қамтамасыз ету мәселесін шешу үшін қалды, сондықтан мен ұстағыш элементтің алдындағы өзекшеге дәнекерлеудің бірнеше тамшысын дәнекерледім. Осылайша, штанга ұстағыш құрылымда еркін айналды, бірақ мойынтіректен құлап кетпеді.

Кодері бар схеманың таңдалуының себебі мынада: Интернеттегі үй анемометрлері туралы барлық мақалалар оларды ойнатқыштан, CD-ROM немесе басқа өнімнен тұрақты ток қозғалтқышына негізделген өндіру сипатталған. Мұндай құрылғылардың мәселесі, біріншіден, желдің төмен жылдамдығында олардың калибрленуі және төмен дәлдігі, екіншіден, шығыс кернеуіне қатысты жел жылдамдығының сызықты емес сипаттамасы, т.б. Ақпаратты компьютерге тасымалдауда белгілі бір проблемалар бар, жел жылдамдығына байланысты кернеудің немесе токтың өзгеру заңын есептеу керек. Кодерді пайдаланған кезде мұндай мәселе болмайды, өйткені тәуелділік сызықтық. Дәлдік ең жоғары болып табылады, өйткені кодер анемометр осінің айналымына шамамен 50 импульс береді, бірақ конвертер тізбегі біршама күрделірек, ол порттардың бірінде секундына импульстардың санын есептейтін және осы мәнді шығаратын микроконтроллерді қамтиды. USB портына.

4. Сынақ және калибрлеу

Калибрлеу үшін зертханалық анемометр пайдаланылды


Өз қолыңызбен өте қарапайым құрылғы жасау және осы қолданбаны пайдалану арқылы сіз желдің жылдамдығын немесе ауа ағынын өлшеуге арналған нақты анемометр аласыз. желдету жүйесі. Сіз өзіңіздің талаптарыңызға сәйкес келетін анемометр дизайнын таңдай аласыз.

Жел жылдамдығын анықтау телефон магнитометрінің көмегімен магниттің айналу жылдамдығын өлшеуге негізделген. Әрбір анемометр конструкциясы үшін айналу жылдамдығының ауа ағынының жылдамдығына тәуелділігі анықталады. Бұл тәуелділіктерді өңдеуге болады.

Ұсынылған дизайнды жақсартуға немесе өзіңіз жасап, оны калибрлеуге болады.

Бірліктерді (м/с, км/сағ, фут/с, миль/сағ, түйіндер, Bft, Гц (секундына айналымдар), RPM (минутына айналымдар)) немесе орташа мәнді («Орташа 1» – соңғы мән, «Орт.3) таңдау үшін « » және «Орт.7» – орташа мән) жеті сегментті дисплейді басыңыз.

Қорғаныс телефон қорабын назардан тыс қалдырмаңыз.

«Көше» анемометрі




Жел жылдамдығын өлшеу қажет болса ашық ауада, онда бұл түр осы үшін ең қолайлы. Өзгерістер желдің бағытына әсер етпейді (флюгерлі анемометр) және жұмыс дөңгелегі қатты жел соғып кетпейді («Сезімтал» анемометр).

Техникалық сипаттама:
Өлшеу диапазоны 0,5 м/с-тен 15 м/с дейін.
Дәлдігі 0,5 м/с.


Анемометр жасау үшін алюминий банкадан 3х3 дюйм (7,6х7,6 см) шаршыны кесу керек.








Алынған парақта белгілерді жасау керек.




Белгілерге қайшымен кесу жасаңыз.




Оны өте мұқият беріңіз қажетті пішін. Дөңгелек бірден қажетті пішінді алмаса, орталықта тесік жасағаннан кейін ол өзін теңестіре алады.










Барлық өткір бұрыштарды кесіп тастау керек. Бұл кесілген бұрыш біреудің көзіне түспеуі үшін жасалуы керек.




Доңғалақ шарикті қаламның білігіне бұрандалы. Штанганың ішкі диаметрі айтарлықтай өзгеруі мүмкін. Сондықтан қандай өлшемді бұранданың қолайлы екенін жазу қиын. Фотосуретте 2x6 мм жіп өлшемі бар бұранда қолданылады. Бұранданың басы тегіс болуы керек (қарсылы), өйткені магнит оған жақсы тірелуі керек. Pozidriv (PZ) бұрандалы ұясы қолайлы, себебі Мұндай ұяшық басқа анемометр дизайнында қажет.




Бұранданың орнына өте кішкентай бұрандаларды, шегелерді қолдануға немесе тіпті жұмыс дөңгелегі мен магнитті желімдеуге болады. Сағыз(сағыз кептіруге уақыт қажет). Егер шегелер қажет болғаннан сәл кішірек болса, онда ойықтар жасаңыз.








Енді ортасында кішкене ойығы бар 1/2 дюймдік (1,2 см) шаршыдан кішкене крест жасау керек. Сіз кішірек шаршыны пайдалана аласыз, мысалы, тұтқаның ішкі диаметрі кішірек болса.




Крест тұтқаға мұқият салынып, бүкіл жолға итеріледі.






Анемометр дерлік дайын. Егер сіз оған үрлесеңіз, ол оңай айналуы керек. ШЫБАҚ АЙШҚА ТЕК ДОП МЕН ТИІСІ КЕРЕК (бұл үшін крестті сәл кішірейту керек болуы мүмкін). БҰНДЫ КӨРУ ҮШІН ШАРТЫҚ ҚАЛАМ МӨЛДІР БОЛУЫ КЕРЕК.


Енді штанганың тұтқада салбырап тұрмайтынына көз жеткізу керек. Мұны істеу үшін тығынның жоғарғы бөлігі штанга еркін айналатын кезде саңылау өлшеміне дейін қабат-қабат кесіледі.






Тек магнитті бекіту ғана қалады, ал анемометр дайын. Қолданылған неодимді магнитӨлшемі 4x4x4 мм (үлкенірек неодим магниті бұранданың басына нашар орналасқан және оны желімдеу керек). Магниттік полюстер радиалды бағытталуы керек. Басқа магнит текшенің полюстерін табуға көмектеседі. Егер сізде маркер болса, онымен магнитте белгілерді жасауды ұмытпаңыз.




Қатты жел кезінде жұмыс дөңгелегінің тұтқадан ұшып кетуіне жол бермеу үшін тесікке сәйкес келмейтін тығынның диаметріне бірнеше қабат жабысқақ таспаны орауға болады. Тұтқаны айналу кезінде ұсталып қалмас үшін тым көп қабаттарды орау мүмкін емес.




Анемометрді жасау үшін тұтқалардың басқа түрлерін қолдануға болады (мысалы, «Bic Cristal»).


Штепсельді алу үшін фотосуретте көрсетілгендей пышақ жүзін қойып, қысым жасаңыз.


Бұл қалам үшін 3/8 дюймдік (9 мм) шаршыдан жасалған кішірек крестті пайдалану керек.










Қолданылатын бұранданың өлшемі 2,5x6 мм (№3) (немесе 1,8 мм тістелген шеге).


Егер шағын неодим магнитін сатып алу мүмкін болмаса, онда сіз маркер тақтасы үшін магниттерді пайдалана аласыз.








Иілгіш магниттер өте әлсіз және оларды пайдалану мүмкін емес.


Айналу жылдамдығының жел жылдамдығына тәуелділігі:
2 Гц - 1,5 м/с
4 Гц - 2,7 м/с
6 Гц - 3,8 м/с

«Сезімтал» анемометр


Техникалық сипаттама:
Өлшеу диапазоны 0,5 м/с-тен 3,5 м/с дейін.
Дәлдігі 0,5 м/с.
Жаңарту аралығы 2-5 секунд.


3x2 дюйм (7,6x5,1 см) тіктөртбұрышты кесіңіз.






Ені 1 дюймдік (2,53 см) үш төртбұрышты белгілеңіз.






















Pozidriv (PZ) саңылаулары бар бұранданы пайдалану өте маңызды. Өйткені мұндай ұяшықта ине бүйір қабырғаларына тимейді. Магнит мүмкіндігінше төмен болуы үшін бұранданың ұзындығы мүмкіндігінше қысқа болуы керек. Фотосуретте 2x6 мм бұранда қолданылады.


Бұранданы қатайтқаннан кейін «қанаттар» мұқият бөлініп, жұмыс дөңгелегіне қажетті пішін беріледі.










Магниттің бұрандада жақсы ұсталуы үшін сізге басқа гайканы бұрау керек. Бірақ оны бұрамаңыз.




Неодим магнитінің (өлшемі 4х4х4 мм) бекітілуіне байланысты жұмыс дөңгелегінің ауырлық центрі көтеріліп, инеде тұрақсыз болады. Ауырлық центрін төмендету үшін салмақтарды «қанаттардың» ІШКІ бөлігіне желімдеу керек (4 мм бұрандаға арналған шайбалар қолданылады).


Жұмыс дөңгелегі тек қана иілгіште ғана емес, сонымен қатар ӨТЕ ЖАҚСЫ ұшталған қарындаштарда немесе қарындашқа бекітілген тігін инесіне де айнала алады. Жұмыс дөңгелегі тігін инесінде жақсы айналады, бірақ бұл опция өте сақтықты қажет етеді және БАЛАЛАР ҮШІН ҚОЙЫЛМАЙДЫ.




Айналу жылдамдығының жел жылдамдығына тәуелділігі (механикалық қарындашта 0,5 мм):
1,5 Гц - 1,4 м/с
4 Гц - 2,85 м/с
6 Гц - 3,4 м/с

Қалақшалы анемометр


Желдету жүйелеріндегі ауа ағынының жылдамдығын өлшеуге арналған.

Техникалық сипаттама:
Өлшеу диапазоны 1,75 м/с-тан 3,0 м/с дейін.
Дәлдігі 0,2 м/с.
Жаңарту аралығы 2-5 секунд.

Бұл анемометр айналмалы мойынтіректері бар желдеткіштен жасалған. Сіз кез келген өлшемдегі желдеткішті таңдай аласыз, бірақ желдеткіш неғұрлым аз болса, анемометрдің сезімталдығы аз болатынын есте ұстаған жөн. Мұнда пайдаланылатын желдеткіш 80x80x25 мм.


Желдеткіш оңай айналуы үшін одан сақиналы магнитті алып тастау керек.




Бекіткіш сақинаны алып тастағанда, ол ұшып кетпеуі немесе жоғалып кетпеуі үшін оны қолыңызбен ұстау керек.






Сақина магнитін алу үшін оның астына жалпақ бұрауышты салып, бұрағышты сәл бұру керек. Бұл магниттің сәл қозғалуына себеп болуы керек. Бұл әрекетті қайталау арқылы сіз бүкіл магнитті біркелкі көтеруіңіз керек.




Магнит бұрауышпен көтеруге болмайтын күйге көтерілгенде, бұранданы (4x30(>30) мм) пайдалану керек.









Қазір желдеткіш жиналды. Егер сіз құлыптау сақинасын қоймасаңыз, онда желдеткіш оңайырақ айналады, бірақ жұмыс дөңгелегі құлап кетуі мүмкін.

Айналу жылдамдығының ауа ағынының жылдамдығына тәуелділігі:
4 Гц - 1,85 м/с
6 Гц - 2,3 м/с
8 Гц - 2,55 м/с
12 Гц - 2,7 м/с
18 Гц - 2,8 м/с

Егер бірдеңе түсініксіз болса, электрондық поштаға жазуды ұмытпаңыз.

Ауа ағынының жылдамдығын өлшейтін құрылғы жасау үшін сізге қолжетімді құралдар қажет. Мысалы, анемометр пышақтары ретінде пластикалық Пасха жұмыртқаларының жартысын пайдалануға болады. Сондай-ақ сізге щеткасыз ықшам тұрақты магнитті қозғалтқыш қажет болады. Ең бастысы, қозғалтқыш білігіндегі мойынтіректердің кедергісі ең аз. Бұл талап желдің өте әлсіз болуы мүмкін екеніне байланысты, содан кейін қозғалтқыш білігі жай айналмайды. Анемометрді жасау үшін ескі қатты дискідегі қозғалтқыш жұмыс істейді.

Анемометрді құрастырудың негізгі қиындығы теңдестірілген роторды жасау болып табылады. Қозғалтқышты массивтік негізге орнату керек, ал оның роторына қалың пластикалық диск орнатылады. Содан кейін пластикалық жұмыртқалардан үш бірдей жарты шарды мұқият кесіп алу керек. Олар түйреуіштер немесе болат шыбықтар арқылы дискіге бекітіледі. Бұл жағдайда алдымен дискіні 120 градус секторларға бөлу керек.

Жел қозғалысы мүлдем жоқ бөлмеде теңгерімдеуді жүргізу ұсынылады. Анемометрдің осі көлденең күйде болуы керек. Салмақты реттеу әдетте ине файлдарының көмегімен жүзеге асырылады. Идеясы ротордың бірдей емес, кез келген күйде тоқтауы.

Құралды калибрлеу

Үйде жасалған құрылғыны калибрлеу керек. Калибрлеу үшін көлікті қолданған дұрыс. Бірақ автокөлік жасаған бұзылған ауа аймағына түспеу үшін сізге қандай да бір діңгек қажет болады. Әйтпесе, көрсеткіштер қатты бұрмаланады.

Калибрлеу тек тыныш күнде жүргізілуі керек. Сонда процесс кешіктірілмейді. Жел соқса, жол бойымен ұзақ жүруге және желдің орташа жылдамдығын есептеуге тура келеді. Спидометрдің жылдамдығы км/сағ, ал жел жылдамдығы м/с-пен өлшенетінін ескеру қажет. Олардың арасындағы қатынас 3,6 құрайды. Бұл спидометр көрсеткішін осы санға бөлу керек дегенді білдіреді.

Кейбір адамдар калибрлеу процесі кезінде дауыс жазу құрылғысын пайдаланады. Сіз жай ғана электронды құрылғыға спидометр мен анемометр көрсеткіштерін жаза аласыз. Үйде жасалған анемометр үшін жаңа таразы жасай аласыз. Тек дұрыс калибрленген құрылғының көмегімен ғана қажетті аймақтағы жел жағдайлары туралы сенімді деректерді алуға болады.

Метеорологиялық станция Revolution Education Ltd фирмасының Picaxe микроконтроллерінде құрастырылған және екі негізгі бөліктен тұрады: сыртқы блок, ол өз деректерін 433 МГц таратқыш арқылы әрбір 2 секунд сайын жібереді. Ал алынған деректерді 20 x 4 СКД дисплейде көрсететін ішкі блок, сонымен қатар ішкі блокта жергілікті түрде өлшенетін атмосфералық қысым.

Мен дизайнды мүмкіндігінше қарапайым және функционалды етіп сақтауға тырыстым. Құрылғы компьютермен COM порты арқылы байланысады. Қазіргі уақытта компьютер алынған мәндерден графиктерді үздіксіз құрастырады, сонымен қатар мәндерді әдеттегі көрсеткіштер бойынша көрсетеді. Графиктер мен сенсордың көрсеткіштері кірістірілген веб-серверде қол жетімді, барлық деректер сақталады және т.б. Сіз кез келген уақыт кезеңі үшін деректерді көре аласыз.

Метеостанцияның құрылысы жобадан бастап аяқталғанға дейін бірнеше айға созылды, мен жалпы нәтижеге өте ризамын. Мен кәдімгі құралдардың көмегімен бәрін нөлден бастап құрастыра алғаныма өте қуаныштымын. Мен оған толығымен қанағаттандым, бірақ жетілдіруге шектеу жоқ, бұл әсіресе графикалық интерфейске қатысты. Мен метеостанцияны коммерцияландыруға ешқандай әрекет жасаған жоқпын, бірақ егер сіз өзіңізге метеостанция салуды ойласаңыз, онда бұл жақсы таңдау.

Көше сенсорлары

Датчиктер температураны, ылғалдылықты, жауын-шашынды, желдің бағытын және жылдамдығын өлшеу үшін қолданылады. Датчиктер – механикалық және электронды құрылғылардың қосындысы.

Температура және салыстырмалы ылғалдылық сенсоры

Температураны өлшеу, мүмкін, ең оңай. Ол үшін DS18B20 сенсоры қолданылады. Ылғалдылықты өлшеу үшін 0%-дан 100%-ға дейінгі ылғалдылықта 0,8 - 3,9 В кернеу беретін HIH-3610 пайдаланылды.

Мен екі сенсорды да кішкентайға орнаттым баспа схемасы. Тақта жаңбырдың және басқа сыртқы факторлардың әсерін болдырмайтын үй корпусының ішіне орнатылады.

Сенсорлардың әрқайсысы үшін жеңілдетілген код төменде көрсетілген. Мәндерді оннан бір дәлдікке дейін оқитын дәлірек код Питер Андерсонның сайтында көрсетілген. Оның коды метеостанцияның соңғы нұсқасында қолданылады.

Температура сенсоры ±0,5 °C дәлдігін қамтамасыз етеді. Ылғалдылық сенсоры ±2% дәлдікпен жұмыс істейді, сондықтан қанша ондық таңба бар екені маңызды емес!

ДК-де жұмыс істейтін бағдарламалық құралдан мысал схемасы.

Температура

Негізгі: readtemp B.6, b1 ; мәнді b1 ішіне оқу, егер b1 > 127 болса теріс; теріс sertxd сынағы (#b1, cr, lf) ; PE терминалына жіберу мәнін кідірту 5000 негізгі теріске өту: b1 = b1 - 128 ; sertxt теріс мәнін реттеу («-»); теріс таңбаны жіберу sertxt (#b1, cr, lf); PE терминалына мәнді жіберу 5000 негізгі кідіріс

Ылғалдылық

Негізгі: readadc B.7,b1 ; ылғалдылық мәнін оқу b1 = b1 - 41 * 100/157; %RH sertxd (#b1, "%", cr, lf) кідіртуге өзгерту 5000 ; 5 секунд күтіңіз, негізгіге өтіңіз

Ылғалдылық сенсорының көрсеткіштерін есептеу

Есептеулер Honeywell HIH-3610 сенсорлық құжаттамасынан алынған. График 0 °C температурадағы стандартты тәуелділікті көрсетеді.

Датчиктен келетін кернеу Picaxe 18M2 микроконтроллерінің ADC (B.7) кірісінде өлшенеді. Жоғарыда көрсетілген кодта 0 мен 255 (яғни 256 мән) арасындағы сан ретінде көрсетілген мән b1 айнымалысында сақталады.

Біздің тізбегіміз 5 В-тан қоректенеді, сондықтан әрбір ADC қадамы мынаған тең:
5/256 = 0,0195 В.

График 0,8 В бастапқы ADC мәнін көрсетеді:
0.8 / 0.0195 = 41

Графиктен мәндерді алсақ, графиктің еңісі (ығысуды ескере отырып) шамамен:
Шығу кернеуі/%RH немесе
(2,65 - 0,8) / 60 = 0,0308 В% RH
(0,0306 құжаттамада)

1% ылғалдылық кезінде ADC қадамдарының санын есептейік:
(% RH үшін V) / (ADC қадамы)
0.0308 / 0.0195 = 1.57

%RH = ADC мәні - ADC ауытқуы / (ADC қадамдары %RH) немесе
% RH = ADC бар мән - 41 / 1,57

Микроконтроллер үшін соңғы есептеу формуласы келесідей болады: % RH = ADC бар мән - 41 * 100/157

Қорғаныс корпусы

Әр панельді екі бөлікке кесу арқылы бастаңыз. Бір бөліктегі тақтайшалар екі жағынан, ал екінші бөлікте тек бір жағынан мықтап бекітіледі. Бұл бөліктерді тастамаңыз - олар пайдаланылады.

Екі бөлікке тұтастай бекітіңіз ағаш жолақтарҮстіңгі және астыңғы жағында 20 мм x 20 мм және басқа бөліктерді оларға бұраңыз.

Бөлшектердің біреуін бір жағы бүтін өлшеміне қарай кесіңіз де, жабыстырыңыз ішіндетараптардың бірі. Тақталардың желімделгеніне көз жеткізіңіз, сонда олар «^» пішінін құрайды. Мұны барлық жағынан жасаңыз.

Жел жылдамдығы мен бағытын өлшегіш

Механикалық бөлік

Жел жылдамдығы мен бағыты сенсорлары механикалық және электронды компоненттердің жиынтығы болып табылады. Механикалық бөлік екі сенсор үшін де бірдей.

ПВХ құбыры мен тот баспайтын болаттан жасалған дискінің арасында құбырдың жоғарғы жағындағы 12 мм теңіз қабаты салынған. Мойынтірек тот баспайтын болаттан жасалған дискіге желімделген және тот баспайтын пластинамен бекітілген.

Барлығы толығымен жиналып, орнатылғаннан кейін, ашық жерлер су өткізбейтін етіп тығыздауышпен тығыздалады.

Фотосуреттегі қалған үш саңылау пышақтарға арналған. Ұзындығы 80 мм пышақтар 95 мм бұрылу радиусын береді. Диаметрі 50 мм шыныаяқтар. Олар үшін мен пішіні сфералық дерлік кесілген одеколон бөтелкелерін қолдандым. Мен олардың сенімділігіне сенімді емеспін, сондықтан мен оларды оңай ауыстыратын етіп жасадым.

Электрондық бөлік

Жел жылдамдығы сенсорына арналған электроника тек транзисторлық қосқыштан, фотодиодтан және екі резистордан тұрады. Олар диаметрі 32 мм шағын дөңгелек ПХД-ге орнатылады. Олар құбырға еркін орнатылады, егер ылғал ішке енсе, ол электроникаға тигізбестен төмен ағып кетеді.

Анемометр - калибрлеуді қажет ететін үш сенсордың бірі (қалған екеуі жауын-шашын өлшегіш және барометрлік қысым сенсоры)

Фотодиод бір айналымға екі импульс береді. Мен мақсат еткен қарапайым «дәйекті» жүйеде (барлық сенсорлар кезекпен сұралды), әрбір сенсорды сұрауға жұмсалған уақыт ұзақтығы (бұл жағдайда импульстарды санау) мен жүйенің жауап беру қабілеті арасында айырбас болуы керек. тұтас. Ең дұрысы, барлық сенсорларды сұраудың толық циклі 2-3 секундтан аспауы керек.

Жоғарыдағы фотода реттелетін жылдамдығы бар қозғалтқыштың көмегімен сенсорды тексеру.

; СКД-арнайы пәрмендер көк hsersetup B9600_4, % 10000 ; LCD PIN 1 пайдаланыңыз, hserin hserout 0 жоқ, (13) : кідірту 100 ; LCD hserout 0, (13) инициализация : кідірту 100 hserout 0, (13) : кідірту 100 кідірту 500 hserout 0, ("ac1", 13) ; Таза дисплей кідірісі 50 hserout 0, ("acc", 13) hserout 0, ("ac81", 13, "adcount: ", 13) ; Тақырыптарды кідірту 10 hserout 0, («ac95», 13, «adpulsin: «, 13) басып шығару; Тақырыптарды кідірту 10 санау C.2, 1000, w0 басып шығару; Импульстарды санаңыз (әр айналымға екі) w1 = 0 b8 = 1-ден 2-ге дейін; Импульс ұзындығын екі рет пульсинді өлшеңіз C.2, 1, w2 ; бір айналым және... w1 = w1 + w2 келесі w1 = w1 / 2 ; ...орташа hserout 0, ("ac89", 13, "ad ", #w0, " ", 13) ;Санау мәнін басып шығару hserout 0, ("ac9d", 13, "ad ", #w1, " ", 13) ;Импульс ұзындығының мәнін кідірту 100 циклін басып шығару

Мен оны көлік жүргізіп жатқанда калибрлеуді қалаймын, бірақ оған уақыт болмады. Мен бірнеше шақырым жерде әуежайы бар салыстырмалы түрде тегіс жерде тұрамын, сондықтан жел жылдамдығының көрсеткіштерін әуежай көрсеткіштерімен салыстыру арқылы сенсорды калибрледім.

Егер бізде 100% тиімділік болса және қалақтар жел жылдамдығымен айналса, онда:
Ротор радиусы = 3,75"
Ротор диаметрі = 7,5" = 0,625 фут
Ротор шеңбері = 1,9642 фут

1 фут/мин = 0,0113636 м/сағ,
1,9642 фут/мин = 1 айналым = 0,02232 м/сағ
1 м/сағ = 1 / 0,02232 айн/мин

1 м/сағ = 44,8 айн/мин
? м/сағ = айн/мин / 44,8
= (айн/мин * 60) / 44,8

Өйткені бұрылыстан екі импульс шығады
? м/сағ = (секундына импульстар * 30) / 44,8
= (секундына импульс) / 448

Жел бағытының сенсоры - механикалық бөлік

Жел бағытының сенсорында алюминий пластинасының орнына магнит қолданылады, ал оптоэлектрондық блоктың орнына арнайы чип AS5040 (магниттік кодтаушы) қолданылады.

Төмендегі фотосуретте орталық бұранданың ұшына орнатылған 5 мм магнит көрсетілген. Чипке қатысты магниттің туралануы өте маңызды. Магнит чиптен шамамен 1 мм биіктікте дәл ортасында орналасуы керек. Барлығы дұрыс реттелгеннен кейін сенсор дұрыс жұмыс істейді.

Жел бағытының сенсоры - электронды бөлік

Жел бағытын өлшеудің әртүрлі схемалары бар. Негізінен олар айналатын магниттің аралықтарында 45 градус бұрышта орналасқан 8 тісті қосқыштан немесе толығымен айналдыруға болатын потенциометрден тұрады.

Екі әдістің де артықшылықтары мен кемшіліктері бар. Негізгі артықшылығы - екеуін де іске асыру оңай. Кемшілігі - олар тозуға ұшырайды - әсіресе потенциометрлер. Механикалық тозуды шешу үшін холл әсерінің сенсорын пайдалану қамыс қосқыштарын пайдаланудың баламасы болар еді, бірақ олар әлі де 8 түрлі позициямен шектеледі... Ең дұрысы, мен басқа нәрсені сынап көргім келеді және соңында айналмалы магниттік IC сенсоры туралы шешім қабылдадым. Бұл жер үсті құрылғысы болса да (мен одан аулақ болуға тырысамын), оның пайдалануды тартымды ететін бірқатар артықшылықтары бар!

Оның бірнеше түрлі шығыс пішімдері бар, олардың екеуі біздің мақсатымызға ең қолайлы. Ең жақсы дәлдікке SSI интерфейсі арқылы қол жеткізіледі. AS5040 0° кезінде 1 мкс пен 359,6° кезінде 1024 мкс аралығындағы импульстарды шығарады.

Жел бағыты сенсорының калибрленуін тексеру:

Readadc10 B.3, w0 орындаңыз; AS5040 магниттік подшипниктің үзілісінен оқу 100 w0 = w0 * 64 / 182 ; 0 - 360 (градус) күйін келтіруге түрлендіру ; Бағдарлама/Өңдеу отладтау терезесінің циклінде көрсету

Жауын-шашын өлшегіш

Мүмкіндігінше мен жаңбыр өлшегішін пластиктен және тот баспайтын болаттан жасадым, негізі қаттылық үшін қалыңдығы 3 мм алюминийден жасалған.

Жауын-шашын өлшегіште екі шелек бар. Әрбір шелек ауырлық центрі ауысқанға дейін 6 мл суды сақтайды, бұл оның контейнерге су құйып, сенсорға сигнал жіберуіне әкеледі. Шелек төңкерілгенде, алюминий жалаушасы сыртқы блок электроникасына сигнал жіберетін оптикалық сенсор арқылы өтеді.

Әзірге мен оны анық жақтарымен қалдырдым (өйткені оның жұмыс істеуін көру қызық!). Бірақ мен оның булануын болдырмау үшін жазда жылуды көрсету үшін оны ақ түске бояу керек деп ойлаймын. Кішкентай шұңқырды таба алмадым, сондықтан өзім жасауым керек болды. Шұңқырдың ішіндегі және шұңқырдың ортасындағы сымға назар аударыңыз. Бұл шұңқырдағы судың беткі керілуін тоқтатуға және судың тамшылауына көмектеседі. Сымсыз жаңбыр «айналуға» бейім және оның жолын болжау мүмкін емес еді.

Жақыннан оптоценсорлар:

Жаңбыр өлшегіштің электронды бөлігі

Сенсор жұмысының кездейсоқ сипатына байланысты сыртқы блоктың микроконтроллеріндегі бағдарламалық құралдың үзілуі логикалық тәсіл болып көрінді. Өкінішке орай, кейбір бағдарлама командалары орындалып жатқанда үзу механизмін өшіреді, яғни. сигналдың ешқайда кетпеу мүмкіндігі бар. Осы себептерге байланысты жаңбыр өлшегіште өзінің 08M Picaxe микроконтроллері бар.

Бөлек чипті пайдалану оны сағатына шелектерді санау үшін жеткілікті дәлдікпен 1 ​​сағаттық кідіріс жасау үшін пайдалануға мүмкіндік береді.

Калибрлеу

Picaxe 18m2 сағатына ағымдағы шелек санын алады және оны дисплейде және компьютерде көрсетеді.

Бастапқы нүкте ретінде мен келесі деректерді пайдаланамын:
Шұңқыр диаметрі 120мм және контейнер ауданы 11,311мм2
1 мм жаңбыр = 11,311 мм3 немесе 11,3 мл.
Әр шелек 5,65 мл. Осылайша, 2 шелек 2 x 5,65 = 11,3 мл (немесе 1 мм) жауын-шашын. Бір шелек = 0,5 мм жауын-шашын.

Тексеру үшін мен арзан жаңбыр шынысын сатып алдым.

Жоғарыдағы схема және 08M Picaxe сенсорының схемасы бірдей ПХД топологиясын пайдаланады. Құрылғы 7805 тұрақтандырғышы арқылы 12V 7Ah батареядан қуат алады.
Мен 433 МГц сымсыз байланыс үшін RF Connect жинағын қолдандым. Жинақта арнайы бағдарламаланған PIC контроллері бар. Тестілеу кезінде сымсыз модульдер жиынтығы жеткілікті сенімді болды.

PP 08M Picaxe және 18м2 жабдықталған. Олардың әрқайсысында өзінің бағдарламалау қосқышы бар. Температура мен ылғалдылықты қоспағанда, әрқайсысының +5 В болатын бөлек қосқыштар әрбір сенсорға арналған.

Мен сызбаны Paintshop Pro бағдарламасында салғанымды ескеріңіз, сондықтан түйреуіш аралығының дәлдігіне кепілдік бере алмаймын.

Ішкі блок

Ішкі блок 18 м2 Picaxe, қысым сенсоры және СКД дисплейді пайдаланады. Сондай-ақ 5В кернеу тұрақтандырғышы бар.

Қысым датчигі

Бірнеше сәтсіз әрекеттерден кейін мен MPX4115A-ға орналастым. Басқа сенсорлардың өлшеу диапазоны сәл үлкенірек болса да, оларға қол жеткізу қиын. Сонымен қатар, басқа сенсорлар, әдетте, 3,3 В жұмыс істейді және қосымша тұрақтандырғышты қажет етеді. MPX4115A қысымға пропорционал 3,79-дан 4,25 В-қа дейінгі аналогтық кернеуді шығарады. Бұл 1 мбар қысымның өзгеруін анықтау үшін жеткілікті дерлік рұқсат болса да, форумда біраз талқылаудан кейін мен MCP3422 ADC қостым. Ол Picaxe 10 биттік режимімен салыстырғанда 16 биттік режимде (немесе одан жоғары) жұмыс істей алады. MCP3422 сенсордан аналогтық кіріске дифференциалды режимде қосылуы мүмкін (біздің схемадағыдай). Негізгі артықшылығы - бұл сенсор шығысын реттеуге мүмкіндік береді, осылайша MPX4115A қателерін оңай өтейді және сенсорды калибрлеудің оңай жолын қамтамасыз етеді.

MPC3422-де екі дифференциалды кіріс бар, бірақ біреуі пайдаланылмағандықтан, олар жабық. MCP3422 шығысында I2C интерфейсі бар және 18 м2 Picaxe құрылғысындағы SDA және SCL түйреуіштеріне - сәйкесінше B.1 және B.4 түйреуіштеріне қосылады. Менің көзқарасым бойынша, MCP3422 пайдаланудың жалғыз кемшілігі - бұл шағын беткі құрылғы, бірақ мен оны адаптерге дәнекерледім. I2C интерфейсіне қоса, MCP3422 18m2 433 МГц сымсыз қабылдағыштан түсетін деректерді жай ғана өңдейді, деректерді көрсетеді және деректерді ДК-ге жібереді. Компьютер жұмыс істемей тұрғанда ішкі блок қателерін болдырмау үшін ДК жауап бермейді. Ішкі блокдеректерді жібереді және қозғалады. Ол деректерді шамамен 2 секундтық аралықпен жібереді, осылайша деректер жоғалуы келесі жолы тез өтеледі. Мен алдыңғы панель түймесін қосу үшін пайдаланылмаған 18 м2 порттарды қолдандым. S1 қосқышы (C.5 кірісі) СКД дисплейінің артқы жарығын қосу үшін пайдаланылады. S2 қосқышы (C.0 кірісі) СКД дисплейдегі қысым мәнін (мбар) қалпына келтіреді. S3 қосқышы (C.1 кірісі) СКД дисплейде көрсетілген жауын-шашынды алдыңғы сағаттағы жиынтық пен ағымдағы сағат арасында ауыстырады. Жауап беру үшін түймелерді 1 секундтан артық ұстап тұру керек.

Ішкі блокты құрастыру

Сыртқы блокқа арналған ПХД сияқты, мен макетті Paintshop Pro арқылы қолмен сыздым, сондықтан қашықтықтарда қателер болуы мүмкін.

Тақта алюминий корпусындағы ұяшықтарға қондыру үшін қажетті мөлшерден сәл үлкенірек.
Мен бағдарламалау қосқышын корпусқа тигізбеу үшін тақтаның шетінен әдейі «ішке қарай» жасадым. СКД дисплейінің кесіндісі бұрғыланып, нақты өлшемдерге реттеледі.

Фотосуретте корпуста орнатылғанның бәрі көрсетілген.

Тақтадағы түйреуіштер корпусқа орнатуды қиындатады, сондықтан мен оларды дәнекерлеуге және дисплейді тақтаға сымдармен дәнекерлеуге тура келді.

Сыртқы блок - Picaxe коды

; ================================================== === ================ ; Picaxe ауа райы станциясының сыртқы (таратқыш) құрылғысының негізгі 18M2 коды ; Ондық дәлдік Ылғалдылық және температура режимдері, ; авторлық құқық, Питер Х Андерсон, Балтимор, MD, қаңтар, «04 ; ; ================================= =============== ================================= #Picaxe 18M2 Таңба HMalue = w0 Symbol HighWord = w1 Symbol LowWord = w2 Symbol RH10 = w3 Symbol HQuotient = b0 Symbol HFract = b1 Symbol X = b0 Symbol aDig = b1 Symbol TFactor = b2 Symbol Tc = b3 TV Symbol Symbol Symbol w B3 Symbol Symbol w. = b10 Таңба TFract = b11 Таңба TempC_100 = w6 Таңба MagDir = w7 Таңба MagDirLo = b14 Таңба MagDirHi = b15 Таңба ЖелЖылдамдығы = w8 Таңба ЖелЖылдамдығыLo = b16 Таңба b7 Жел жылдамдығы b1 SH = Соңғы b1 SH19 ymbol RainRequest = b20 ; Аппараттық құрал Таңба HumidRaw = B.7 Таңба TempRaw = B.6 Таңба DirRaw = B. 3 Таңба Жылдамдығы = B.0 орындаңыз; Ылғалдылықты оқыңызADC10 HumidRaw, HValue; Ылғалдылықты алыңыз (HValue) HighWord = 1613 ** HValue; есептеңіз RH Төмен = 1613 * HValue RH10 = LowWord / 1024 LowWord = Highword * 64 RH10 = RH10 + LowWord RH10 = RH10 - 258 үзіліс 100 ; Температураны оқу температурасын оқу12 TempRaw, TValue ; Температураны алыңыз SignBit = TValue / 256/128, егер SignBit = 0 болса, оң болады; Ол теріс, сондықтан TValue = TValue ^ $ffff + 1 ; екі қос оңды қабылдаңыз: TempC_100 = TValue * 6 ; TC = мән * 0,0625 TValue = TValue * 25 / 100 TempC_100 = TempC_100 + TValue TQuotient = TempC1_10 / TempC1_10 % 100/10 X = TQuotient / 10; SignBit = 0 болса, Ылғалдылық үшін температураны түзету коэффициентін есептеңіз, SignBit = " " else SignBit = "-" endif егер SignBit = "-" болса, X = 4 - X басқа X = X + 4 endif GoSub TempCorrection ; RH HQuotient = RH10 / 10 орнын толтырыңыз ; RH HQuotient мәнін есептеңіз және... HFract = RH10 % 10 ; ...ондық орын. HQuotient > 99 болса, онда ; Ауқымнан жоғары HQuotient = 99 HFract = 9 > endif, егер H1Quot содан кейін; HQuotient диапазонында = 0 HFract = 0 endif; Жел бағыты үшін AS540 магниттік кодтаушыны оқыңыз readadc10 DirRaw, MagDir; AS5040 магниттік мойынтіректерінің үзілісінен оқыңыз 100; Жел жылдамдығын есептейтін айн / минді оқыңыз Жылдамдық, 1000, Желдің 3-ші циклі шамамен 1 минут), егер RainRequest >= 30 болса, RainRequest inc 08M жаңбыр өлшеуіш деректерін сұрау, содан кейін жоғары C.1 serin , C.0, N2400, («r»), LastHour, ThisHour ; Жаңбыр есептегіштері төмен C.1 RainRequest = 0 endif; Деректерді ішкі блокқа 8 байт блокпен жіберу; Бірінші топқа калибрлеу қажет емес, сондықтан есептеулер алдымен осында жасалады. ; Екінші топқа «твеакт» қажет болады - үй ішінде оңайырақ жасалады. serout C.2, N2400, ("t", SignBit, TQuotient, TFract, HQuotient, HFract, "A", "B") кідірту 100 serout C.2, N2400, ("m", MagDirHi, MagDirLo, WindSpeedHi, WindSpeedLo, LastHour, ThisHour, "C") циклі TempCorrection: іздеу X, (87, 89, 91, 93, 95, 97, 99, 101, 103, 106, 108, 110, 113, 116, 112, ), TFactor " -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 егер TFactor< 100 then aDig = TFactor / 10 RH10 = RH10 * aDig / 10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 else TFactor = TFactor % 100 aDig = TFactor / 10 RH10 = RH10 * aDig / 10 + RH10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 endif return

Пайдаланылған жад = 295 байт 2048

Жауын-шашын өлшегіш - 08М коды

#picaxe 08M Таңбасы Бұл сағат = b2 ; Ағымдағы сенсорлар санын b2 ішінде сақтаңыз Символ LastHour = b3 ; Алдыңғы сағаттар санын b3 ішінде сақтаңыз; Аппараттық құрал анықтамалары Symbol DataRequest = pin3 Symbol BucketSensor = pin4 орнату %00010000, %00010000 ; pin4 негізгі үзу пин: for w0 = 1 - 60000 ; Бұл цикл келесі 1 сағатта = Соңғы 6 сағ. ; ThisHour = 0 арқылы соңғы сағаттар санын жаңарту; ағымдағы сағат & ағымдағы сағатты қалпына келтіру негізгіге өту; Келесі сағаттық үзіліс жасаңыз: setint % 00010000, % 00010000 ; DataRequest = 1 болса үзуді қайта орнатыңыз, содан кейін ; Үзіліс 18М2 болды ма? serout 2, N2400, ("r", LastHour, ThisHour) ; Иә, сондықтан алдыңғы сағаттар мен ағымдағы есептерді жіберіңіз. Do: циклы кезінде DataRequest = 1 ; Егер BucketSensor = 1 болса, endif жалғастырмас бұрын 18M2 сұрауды тоқтатқанша күтіңіз; Үзіліс жаңбыр сенсорынан болды ма? Inc ThisHour ; Иә, сондықтан көбейтіңіз шелек ұшының саны істеу: цикл кезінде BucketSensor = 1 ; Endif қайтаруын жалғастырмас бұрын жалаушаның сенсорды тазалағанына көз жеткізіңіз

Ішкі блок - Picaxe коды

;================================================= == ============================ ; Негізгі ішкі (қабылдағыш) бағдарламасы. ; ; Сыртқы блоктан деректерді қабылдайды, СКД экранында көрсетеді және деректерді ДК-ге береді; Сондай-ақ барометрлік қысымды өлшейді («matherp» арқасында) ;==================================== ======================================== #PICAXE 18M2 ; Айнымалы анықтамалар (b2-ден b5-ке дейін қол жетімді болған кезде mBar коды үшін қайта пайдаланылады) символы Бөлшек = b2 таңбасы Бөлшек = b3 таңбасы SignBit = b4 таңбасы Ылғалдылық = b5 таңбасы HFract = b14 белгісі Dir = w5 таңбасы DirLo = b10 таңбасы DirHi = b11 символы Жылдамдық = w3 символы SpeedLo = b6 символы SpeedHi = b7 символы RainCountThisHour = b12 символы RainCountLastHour = b13 символы LCDRainWhole = b21 символы LCDRainFract = b22 символы LastOrThis = b23 ; MCP3422 ADC айнымалылар таңбасы mb900 = 17429 ; 900 Мбар үшін ADC оқуы, содан кейін мбар символына 72,288 санды қосыңыз adj0 = 72 таңба mBarADCValue = w0 символы adj1 = b4 ; әрбір 4 мбар символына 1 санды қосу үшін пайдаланылады adj2 = b5 ; әрбір 24 ​​мбар символына 1 санды қосу үшін пайдаланылады mBar = w4 ; Тұрмыстық айнымалылар символы lastmbar = w8 ; Алдыңғы mBar оқу белгісін есте сақтаңыз RiseFall = b18 ; Қысымның жоғарылауы немесе төмендеуі көрсеткіші (жоғары немесе төмен көрсеткі) белгішесі белсенді = b19 ; Telltale СКД экранында белсенділікті көрсетеді LCD_Status = b20; СКД артқы жарығы қосулы немесе өшірулі ме (0 немесе 1)? ; Аппараттық құрал анықтамаларының белгісі Сымсыз = C.7 ; Сымсыз ресиверден/декодер белгісінен кіріс қосылым Компьютер = C.2 ; Компьютерге шығыс сериялық қосылым символы LCD = pinC.5; Бос / бос СКД артқы жарық белгісі үшін алдыңғы панель түймесі ClearRiseFall = pinC.0 ; Қысымды тазарту үшін алдыңғы панельдегі түйме «көтеру/төмендеу» индикатор белгісі LastOrThisSwitch = pinC.1 ; Ағымдағы немесе алдыңғы сағаттың жауын-шашынын көрсету үшін алдыңғы панельдегі түймешік Бастау: hsersetup B9600_4, %10000 ; СКД 1 істікшесін пайдаланыңыз, hserin жоқ ; ByVac 20x4 IASI-2 Serial LCD hi2csetup i2cmaster, %11010000, i2cfast, I2CBYCP; i2cfast, I2C Inal. ADC чипі.hi2cout (%00011000) ; 16 бит үздіксіз түрлендіру кідірісі үшін MCP3422 орнатыңыз 500 hserout 0, (13) : кідірту 100 ; LCD hserout 0, (13) : кідірту 100 hserout 0, (1310 кідірту) hserout 0, ("ac50", 13) hserout 0, ("жарнама", 32, 32, 32, 32, 49, 42, 36, 32, 13) ; Төмен көрсеткі таңбасын анықтаңыз (10 таңба) hserout 0, (" ac1", 13) ; Дисплейді өшіру кідірісі 50 hserout 0, ("acc", 13) ; Курсорды жасыру hserout 0, ("ac81", 13, "ad", $df, "C", 13) ; Тақырыптарды басып шығару hserout 0, ("ac88", 13, "admBar", 13) hserout 0, ("ac8e", 13, "adRH %", 13) hserout 0, ("acd5", 13, "ad", "dir" , 13) ; Негіздерді басып шығару hserout 0, ("acdc", 13, "ad", "mph", 13) ; hserout 0, ("ace3", 13, "ad", "mm", 13) lastmbar = 0 ;Айнымалы мәндерді инициализациялау LastOrThis = "c" ;======================================== ============== ================================== ; Негізгі цикл;============================================== ================================================= ====== негізгі: ; Алдыңғы панель қосқышының басылғанын тексеріңіз. Picaxe үзу механизмі болып табылады; serin және serout командаларының көп болуына байланысты біржола дерлік ажыратылған ; сондықтан коммутатор күйін тексеру үшін бағдарламаны «gosub коммутаторларымен» себу көбірек ; үзетін тиімді. қосқыштар; 433 МГц радио байланысы арқылы сыртқы блоктан мәндердің бірінші тобын алыңыз. serin Wireless, N2400, («t»), SignBit, Quotient, Fract, Humidity, HFract, b15, b15 ; Белсенділік пен сымсыз желіден сәтті «серін» көрсету үшін СКД экранында «айтқыш» жарқылы. gosub әңгімелер; Бірінші топты СКД дисплейінде hserout 0, ("acc0", 13) hserout 0, ("жарнама", SignBit, #Quotient, ".", #Fract, " ", 13) hserout 0, ("acce", 13) hserout 0, ("жарнама", #Hamidity,".", #HFract, " ", 13) gosub қосқыштары ; Бірінші топты компьютердің COM портына жіберу; Әрбір топтың бастапқы идентификаторы, деректері және аяқталу идентификаторы бар: ; Бастау = "xS", Соңы - "xE", мысалы, желдің басы - WS, желдің соңы - WE ; Бірнеше деректер бір бос орын таңбасымен бөлінген. serout Computer, N2400, ("TS", SignBit, #Quotient," ", #Fract, "TE"); Температура serout Компьютер, N2400, ("HS", #Hamidity, " ", #HFract, "HE"); Ылғалдылық; Ажыратқыштарды қайта және бағдарлама барысында тұрақты аралықпен тексеріңіз. қосқыштар; Сыртқы құрылғының радио сілтемесінен мәндердің екінші тобын алыңыз. serin Wireless, N2400, ("m"), DirHi, DirLo, SpeedHi, SpeedLo, RainCountLastHour, RainCountThisHour, b15 gosub көрсеткіші Жылдамдық = Жылдамдық * 300 / 448 ; Импульс/сек-тен миль/сағ-қа есептелген түрлендіру Dir = Dir * 64/182 ; 0 - 1023 мәнін 0 - 359 градусқа айналдырыңыз; Дәлдікті сақтау үшін жаңбыр өлшегішін реттеу арқылы калибрлеу керек; 1 ұшы 0,5 мм жаңбыр болатындай етіп аударғыш шелектегі механикалық тоқтайды. if LastOrThis = "c" болса, онда ; Алдыңғы сағатты LCDRainWhole = RainCountThisHour / 2; жауын-шашын немесе ағымдағы сағатты көрсетуді шешіңіз. LCDRainFract = RainCountThisHour * 5 // 10 басқа LCDRainWhole = RainCountLastHour / 2; LCDRainFract = RainCountLastHour * 5 // 10 endif ; Екінші топты СКД экранына жіберу hserout 0, ("ac95", 13) hserout 0, ("ad", #Dir, " ", 13) hserout 0, ("ac9c", 13) hserout 0, ("ad", # Жылдамдық, " ", 13) hserout 0, ("aca1", 13) hserout 0, ("жарнама", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) ; Екінші топты компьютерге жіберу COM порты serout Computer, N2400, ("WS", #Dir," ", #Speed, "WE"); Wind serout Computer, N2400, ("RS", #RainCountLastHour," ", #RainCountThisHour, "RE"); Жаңбырға қарсы қосқыштар; mbar-код циклі үшін Picaxe форумындағы "matherp" арқасында: ; MPX4115A көмегімен атмосфералық қысымды өлшеу; MCP3422 көмегімен аналогты сандық түрлендіру; MPX шығысы V+, 2. 5В - V- ; 16 бит режиміндегі ADC hi2cin (b1,b0,b2) ; ADC оқуында оқыңыз жәнекүй байты MCP3422 adj1 = 0 adj2 = 0 w1 = mb900 mbar = 900 орындаңыз, mBarADCValue > w1; mBarADCValue = w0 = b1:b0 inc mbar w1 = w1 + adj0 inc adj1, егер adj1 = 4 болса, онда inc adj2 w1 = w1 + 1 adj1 = 0 endif, егер adj2 = 6 болса, w1 = w1 + 1 adj2 = 0 endif циклі gosub ауысады айту; Компьютерге қысым жіберу COM порты serout Компьютер, N2400, («PS:», #mbar, «PE»); Алдыңғы қысым көрсеткішін (соңғы мбар) инициализациялаңыз, егер әлі орнатылмаған болса, lastmbar = 0 болса, lastmbar = mbar RiseFall = " " endif ; Егер қысым өзгерсе, жоғары көрсеткі немесе төмен көрсеткіні көрсетіңіз, егер мбар > соңғы мбар болса, содан кейін RiseFall = "^" ; ^ lastmbar = mbar endif, егер мбар болса< lastmbar then RiseFall = 10 ; Custom LCD character. Down arrow lastmbar = mbar endif hserout 0, ("acc7", 13) hserout 0, ("ad", RiseFall, #mbar, " ",13) gosub telltale goto main ; Check if one of the front panel buttons is pressed. switches: if LCD = 1 then ; LCD Backlight on/off Button is pressed if LCD_Status = 0 then ; Backlight is on so... hserout 0, ("ab0", 13) ; Turn it off LCD_Status = 1 else hserout 0, ("ab1", 13) ; Else turn it on. LCD_Status = 0 endif do: loop while LCD = 1 ; Don"t return while button is pressed endif if ClearRiseFall = 1 then ; Pressure rise/fall button is pressed RiseFall = " " ; Clear indicator and... hserout 0, ("acc7", 13) ; ... update display. hserout 0, ("ad", RiseFall, #mbar, " ",13) do: loop while ClearRiseFall = 1 endif if LastOrThisSwitch = 1 then ; Rain Previous Hour / Last Hour button. if LastOrThis = "c" then LastOrThis = "p" LCDRainWhole = RainCountLastHour / 2 ; Recalculate values and re-display to LCDRainFract = RainCountLastHour * 5 // 10 ; give visual confirmation of button-press else LastorThis = "c" LCDRainWhole = RainCountThisHour / 2 ; LCDRainFract = RainCountThisHour * 5 // 10 endif hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) do: loop while LastOrThisSwitch = 1 endif return ; Flash "tell-tale" on LCD display to show activity telltale: if active = "*" then active = " " else active = "*" endif hserout 0, ("ac80", 13, "ad", active, 13) return

Пайдаланылған жад = 2048 байттан 764 байт

ДК бағдарламалық қамтамасыз ету

ДК-де жұмыс істейтін бағдарламалық жасақтама Borland Delphi 7 көмегімен жазылған. Ол қазіргі түрінде өте қарапайым, бірақ кем дегенде Picaxe-дің компьютерге қосылуын көрсетеді.

Графиктерді 1 сағат немесе 12 сағаттық кезеңде көрсету үшін таңдауға болады. Графиктерді тінтуірдің көмегімен алға және артқа айналдыруға болады. Оларды құтқаруға болады. Ол үшін оларды тінтуірдің оң жақ түймешігімен басып, атын және мән файлын көрсету керек. APRS.TXT файлының жолына минутына бір рет жазылатын және Weather.exe файлымен бір қалтада сақталған APRS деректерінің шектеулі жинағын конфигурациялауға болады. Температура Фаренгейт градусында және жауын-шашын мөлшері дюймге 1/100 болатынын ескеріңіз.

Радиоэлементтердің тізімі

Белгі Түр Номиналы Саны ЕскертуДүкенМенің блокнотым
Температура және салыстырмалы ылғалдылық сенсоры
температура сенсоры

DS18B20

1 Блокнотқа
Ылғалдылық сенсорыHIH-36101 Блокнотқа
Резистор

4,7 кОм

1 Блокнотқа
Жел жылдамдығы мен бағытын өлшегіш
ФототранзисторIR1 Блокнотқа
Жарық диодIR1 Блокнотқа
Резистор

220 Ом

1 Блокнотқа
Резистор

4,7 кОм

1 Блокнотқа
Магниттік кодтаушы1 Блокнотқа
Электролиттік конденсатор10 мкФ4 Блокнотқа
Конденсатор100 нФ1 Блокнотқа
Резистор

4,7 кОм

1 Блокнотқа
Резистор

10 кОм

1 Блокнотқа
Жауын-шашын өлшегіш
MK PICAXE

PICAXE-08M

1 Блокнотқа
Түзеткіш диод

1N4148

2 Блокнотқа
Конденсатор100 нФ1 Блокнотқа
Резистор

4,7 кОм

1 Блокнотқа
Резистор

10 кОм

4 Блокнотқа
Резистор

22 кОм

1 Блокнотқа
Резистор

220 Ом

2 Блокнотқа
Жарық диодIR1
Жоғары