Обзор различных видов анемометров и их применение.

Обзор различных видов анемометров и их применение. Анемометр

Ветер, скорость, сила и направление. роза ветров. типы ветров.

Перемещение воздуха над поверхностью Земли в горизонтальном направлении называетсяветром. Ветер всегда дует из области высокого давления в область низкого. Ветер характеризуется скоростью, силой и направлением.

Скорость ветра измеряется в метрах в секунду и километрах в час. Сила ветра измеряется в баллах (один балл приблизительно равен 2 м/с). Скорость зависит от барического градиента: чем больше барический градиент, тем выше скорость ветра. От скорости зависит сила ветра. Чем больше разность атмосферного давления между соседними участками земной поверхности, тем сильнее ветер.

Различают сглаженную скорость ветра

за некоторый небольшой промежуток времени, в течение которого производятся наблюдения, имгновенную скорость ветра, которая вообще сильно колеблется и временами может быть значительно ниже или выше сглаженной скорости.

У земной поверхности чаще всего приходится иметь дело с ветрами, скорости которых порядка 4—8 м/сек и редко превышают 12—15 м/сек. Но все же в штормах и ураганах умеренных широт скорости могут превышать 30 м/сек, а в отдельных порывах достигать 60 м/сек.

В тропических ураганах скорости ветра доходят до 65 м/сек, а отдельные порывы — до 100 м/сек. В маломасштабных вихрях (смерчи, тромбы) возможны скорости и более 100 м/сек. В так называемых струйных течениях в верхней тропосфере и в нижней стратосфере средняя скорость ветра за длительное время и на большой площади может доходить до 70—100 м/сек.

Шкала Бофорта — условная шкала для визуальной оценки силы (скорости) ветра в баллах по его действию на наземные предметы или по волнению на море. Была разработана английским адмиралом Ф. Бофортом в 1806 г. и сначала применялась только им самим. В 1874 г.

Баллы БофортаСловесное определение силы ветраСкорость ветра, м/сДействие ветра
на сушена море
Штиль0-0,2Штиль. Дым поднимается вертикальноЗеркально гладкое море
Тихий0,3-1,5Направление ветра заметно но относу дыма, но не по флюгеруРябь, пены на гребнях нет
Легкий1,6-3,3Движение ветра ощущается на лице, шелестят листья, приводится в движение флюгерКороткие волны, гребни не опрокидываются и кажутся стекловидными
Слабый3.4-5,4Листья и тонкие ветви деревьев все время колышутся, ветер развевает верхние флагиКороткие, хорошо выраженные волны. Гребни, опрокидываясь, образуют стекловидную пену, изредка образуются маленькие белые барашки
Умеренный5,5-7,9Ветер поднимает пыль и бумажки, приводит в движение тонкие ветви деревьевВолны удлиненные, белые барашки видны во многих местах
Свежий8,0-10,7Качаются тонкие стволы деревьев, на воде появляются волны с гребнямиХорошо развитые в длину, но не очень крупные волны, повсюду видны белые барашки (в отдельных случаях образуются брызги)
Сильный10.8-13,8Качаются толстые ветви деревьев, гудят телеграфные проводаНачинают образовываться крупные волны. Белые пенистые гребни занимают значительные плошали (вероятны брызги)
Крепкий13,9-17,1Качаются стволы деревьев, идти против ветра трудноВолны громоздятся, гребни срываются, пена ложится полосами по ветру
Очень крепкий17,2-20,7Ветер ломает сучья деревьев, идти против ветра очень трудноУмеренно высокие длинные волны. По краям гребней начинают взлетать брызги. Полосы пены ложатся рядами по направлению ветра
Шторм20.8-24,4Небольшие повреждения; ветер срывает дымовые колпаки и черепицуВысокие волны. Пена широкими плотными полосами ложится по ветру. Гребни волн начинают опрокидываться и рассыпаться в брызги, которые ухудшают видимость
Сильный шторм24.5-28,4Значительные разрушения строений, деревья вырываются с корнем. На суше бывает редкоОчень высокие волны с длинными загибающимися вниз гребнями. Образующаяся пена выдувается ветром большими хлопьями в виде густых белых полос. Поверхность моря белая от пены. Сильный грохот волн подобен ударам. Видимость плохая
Жестокий шторм28,5-32,6Большие разрушения на значительном пространстве. На суше наблюдается очень редкоИсключительно высокие волны. Суда небольшого и среднего размера временами скрываются из вида. Море все покрыто длинными белыми хлопьями пены, располагающимися по ветру. Края волн повсюду сдуваются в пену. Видимость плохая
Ураган32,7 и болееВоздух наполнен пеной и брызгами. Море все покрыто полосами пены. Очень плохая видимость

Направление ветра

Нужно хорошо запомнить, что, говоря о направлении ветра, имеют в виду направление, откуда он дует. Указать это направление можно, назвав либо точку горизонта, откуда дует ветер, либо угол, образуемый направлением ветра с меридианом места, т. е. его азимут.

В первом случае различают 8 основных румбов горизонта: север, северо-восток, восток, юго-восток, юг, юго-запад, запад, северо-запад — и 8 промежуточных румбов между ними: север-северо-восток, восток-северо-восток, восток-юго-восток, юг-юго-восток, юг-юго-запад, запад-юго-запад, запад-северо-запад, север-северо-запад (рис. 68). 16 румбов, указывающих направление, откуда дует ветер, имеют следующие сокращенные обозначения, русские и международные:

Если направление ветра характеризуется углом его с меридианом, то отсчет ведется от севера по часовой стрелке. Таким образом, северу будет соответствовать 0° (360°), северо-востоку 45°, востоку 90°, югу 180°, западу 270°. При наблюдениях над ветром в высоких слоях атмосферы направление его, как правило, указывается в градусах, а при наблюдениях на наземных метеорологических станциях — в румбах горизонта.

Направление ветра определяется с помощью флюгера, вращающегося около вертикальной оси. Под действием ветра флюгер принимает положение по направлению ветра. Флюгер обычно соединяется с доской Вильда.

На климатической карте господствующие ветры показаны стрелками.Поверхность суши и воды нагревается по-разному. В летний день поверхность суши нагревается сильнее. От нагревания воздух над сушей расширяется и становится легче. Над водоемом в это время воздух холоднее и, следовательно, тяжелее.

Если водоем сравнительно большой, в тихий жаркий летний день на берегу можно почувствовать легкий ветерок, дующий с воды, над которой атмосферное давление выше, чем над сушей. Такой легкий ветерок называют дневнымбризом. Ночной бриз, наоборот, дует с суши, так как вода охлаждается гораздо медленнее и воздух над ней теплее. Бризы могут возникать и на опушке леса.

Местные ветры могут возникать не только на побережье, но и в горах.

Фён — теплый и сухой ветер, дующий с гор в долину.

Бора — порывистый, холодный и сильный ветер, появляющийся, когда холодный воздух переваливает через невысокие хребты к теплому морю.

Сезонные ветры —муссоны — меняют свое направление два раза в год. Летом суша быстро прогревается, и давление воздуха над ее поверхностью падает. В это время более прохладный воздух начинает перемещаться на сушу. Зимой — все наоборот, поэтому муссон дует с суши на море.

Со сменой зимнего муссона на летний происходит смена сухой малооблачной погоды на дождливую. Действие муссонов сильно проявляется в восточных частях материков, где с ними соседствуют огромные пространства океанов, поэтому такие ветры часто приносят на материки обильные осадки.

итропическиемуссоны.

Внетропические муссоны — муссоны умеренных и полярных широт. Они образуются в результате сезонных колебаний давления над морем и сушей. Наиболее типичная зона их распространения — Дальний Восток, Северо-Восточный Китай, Корея, в меньшей степени — Япония и северо-восточное побережье Евразии.

Тропические муссоны — муссоны тропических широт. Они обусловлены сезонными различиями в нагревании и охлаждении Северного и Южного полушарий. В результате зоны давления смещаются по сезонам относительно экватора в то полушарие, в котором в данное время лето.

Тропические муссоны наиболее типичны и устойчивы в северной части бассейна Индийского океана. Этому в немалой мере способствует сезонная смена режима атмосферного давления над Азиатским материком. С южноазиатскими муссонами связаны коренные особенности климата этого региона.

Образование тропических муссонов в других районах земного шара происходит менее характерно, когда более четко выражается один из них — зимний или летний муссон. Такие муссоны отмечаются в Тропической Африке, в северной Австралии и в приэкваториальных районах Южной Америки.

Постоянные ветры Земли —пассаты изападные ветры — зависят от положения поясов атмосферного давления. Так как в экваториальном поясе преобладает низкое давление, а близ 30° с. ш. и ю. ш. — высокое, у поверхности Земли в течение всего года ветры дуют от тридцатых широт к экватору. Это пассаты.

От поясов высокого давления (25-30° с. ш. и ю. ш.) ветры дуют не только к экватору, но и в сторону полюсов, так как у 65° с. ш. и ю. ш. преобладает низкое давление. Однако вследствие вращения Земли они постепенно отклоняются к востоку и создают воздушные потоки, перемещающиеся с запада на восток. Поэтому в умеренных широтах преобладают западные ветры.

Про анемометры:  Xiro Xplorer V: незаурядный дизайн и выдающиеся характеристики

Роза ветров (в большинстве языков она называется «Роза компаса»), — векторная диаграмма, характеризующая в метеорологии иклиматологии режим ветра в данном месте по многолетним наблюдениям и выглядит как многоугольник, у которого длины лучей, расходящихся от центра диаграммы в разных направлениях (румбах горизонта), пропорциональны повторяемости ветров этих направлений («откуда» дует ветер).

Розу ветров учитывают при строительстве взлётно-посадочных полос аэродромов, автомобильных дорог, планировке населенных мест (целесообразной ориентации зданий и улиц), оценке взаимного расположения жилмассива и промзоны (с точки зрения направления переноса примесей от промзоны) и множества других хозяйственных задач (агрономия, лесное и парковое хозяйство, экология и др.).

Роза ветров, построенная по реальным данным наблюдений, позволяет по длине лучей построенного многоугольника выявить направление господствующего

, илипреобладающеговетра, со стороны которого чаще всего приходит воздушный поток в данную местность. Поэтому настоящая роза ветров, построенная на основании ряда наблюдений, может иметь существенные различия длин разных лучей.

ля того чтобы определить господствующее направление ветра, необходимо построить «розу» ветров. Для построения «розы» ветровпо направлению и повторяемости проводят из одной точки прямые по направлению восьми румбов и на каждой из них откладывают столько единиц, сколько раз в этом направлении за отдельный промежуток времени дул ветер, концы отрезков соединяют прямыми.

Воздушные массы и фронты.

В тропосфере выделяют относительно однородные по температуре, влажности и другим параметрам крупные объемы воздуха — воздушные массы. Протяженность их достигает тысяч километров, вертикальная мощность — вплоть до верхней границы тропосферы. Воздушные массы бывают местные (малоподвижные) идвижущиеся

.Последние по отношению к подстилающей поверхности делят на теплые воздушные массы (приходят на более холодную подстилающую поверхность) и холодные воздушные массы (надвигаются на более теплую поверхность).

— экваториальный — формируется в экваториальной зоне, перемещаясь в северное и южное полушария. И над морем, и над сушей всегда имеет высокую температуру и влажность; поэтому на морской и континентальный не подразделяется. При переходе с океана на более нагретую сушу из экваториального воздуха выпадают тропические дожди. За пределы тропиков экваториальный воздух (ЭВ) не распространяется.

— тропический — воздушная масса, круглый год формирующаяся в тропиках и субтропиках, а летом над сушей на юге умеренных широт (юг Европы, Казахстан, Средняя Азия, Забайкалье и др.). Обычно ТВ вторгается из низких широт в более высокие, вызывая резкое повышение температуры—оттепели зимой и жаркую погоду летом. Морской ТВ отличается высокой влажностью и температурой, континентальный— запыленностью и более высокой температурой.

— полярный — воздух умеренных широт. Название не совсем точное и сохраняется, скорее, по традиции. Очаги ПВ располагаются в средних и субполярных, т. е. во внетропических, широтах обоих полушарий. Он также бывает континентальным и морским.

Зимой континентальный ПВ сильно охлажден. Он отличается небольшим содержанием влаги. С вторжением континентального ПВ устанавливается ясная, морозная погода. Летом он сильно нагрет. Морской ПВ обычно формируется над океанами; он влажный, умеренной температуры; зимой приносит оттепели; летом—пасмурную погоду и похолодание.

— арктический (антарктический) — формируется над ледяной поверхностью полярных стран; характеризуется низкими температурами, малым содержанием влаги, небольшим количеством пыли, большой прозрачностью. Вторгаясь в низкие широты, этот воздух значительно понижает температуры.

Они различаются прежде всего по температуре. Все типы, кроме экваториального, делятся на подтипы: морской и континентальный

в зависимости от характера поверхности, над которой формируется воздух.

Воздушные массы обычно находятся в постоянном движении. На их контакте образуются обширные переходные зоны — атмосферные фронты, ширина их (500-900 км) намного меньше длины (2-3 тыс. км). Плоскость раздела между воздушными массами, всегда наклоненная в сторону холодного воздуха, называется фронтальной поверхностью.

Атмосферные фронты бывают стационарные и движущиеся.

Если воздушные течения направляются с обеих сторон вдоль линии фронта и она не перемещается заметно ни в сторону теплого, ни в сторону холодного воздуха, то фронт называется стационарным.

Движущийся фронт образуется в том случае, если одна из воздушных масс имеет составляющую скорости, перпендикулярную линии фронта. В зависимости от направления перемещения движущиеся фронты подразделяют на теплые и холодные

. Теплый фронт образуется при наступлении теплого воздуха на холодный. Линия фронта при этом перемещается в сторону холодного воздуха. После прохождения теплого фронта наступает потепление. Холодный фронт образуется при подтекании холодного воздуха под теплый.

При этом линия фронта перемещается в сторону теплого воздуха, который вытесняется наверх. После прохождения холодного фронта наступает похолодание. Различают холодные фронтыпервого и второго рода. Холодный фронт первого рода образуется в случае медленного наступания холодного воздуха.

При этом теплый воздух спокойно поднимается по фронтальной поверхности и линия фронта движется медленно. Холодный фронт второго рода возникает при быстром движении холодного воздуха и резком подтекании его под теплый воздух, который подбрасывается вверх.

На фронтах из теплого воздуха развиваются подвижные фронтальные циклоны

-огромные восходящие вихри, а из холодного воздухаантициклоны — огромные нисходящие вихри. С циклонами связаны облачность, осадки, понижение температуры летом, повышение зимой. С антициклонами — ясная, сухая погода, жаркая летом, морозная зимой.

В целом при прохождении атмосферных фронтов происходят резкие изменения погоды: перепады температуры, давления, выпадение осадков, усиление и резкая смена направления ветров и др. В формировании климата нашей страны, расположенной большей частью в умеренных широтах, фронтальной деятельности принадлежит существенная роль, поэтому погода обычно неустойчивая, особенно в зимнее время.

Фронты имеют большое значение для погоды, так как вблизи них образуются облака и часто выпадают осадки В местах встречи теплого и холодного воздуха зарождаются и развиваются циклоны, погода становится не стойкою. Зная расположение атмосферных фронтов, направления и скорости их передвижения, а также имея метеорологические данные, характеризующие воздушные массы, составляют прогнозы погоды.

На климатических картах выделяются зоны, где, по средним многолетним данным, чаще встречаются воздушные массы различных типов и подтипов и где наиболее активно образуются атмосферные фронты. Такие статистически устойчивые фронтальные зоны называются климатическими фронтами.

В этих зонах больших горизонтальных контрастов температуры, давления и сильных ветров концентрируются большие запасы энергии, которые расходуются на образование циклонов и антициклонов. Таким образом, эти зоны отражают среднее многолетнее наиболее типичное положение серий подвижных атмосферных фронтов.

Среди климатических фронтов выделяют главные и вторичные

фронты.

Главные фронтыявляются зонами раздела и взаимодействия основных типов воздушных масс, контрастных прежде всего по температуре. Между арктическим (антарктическим) и полярным (умеренных широт) воздухом они называются соответственно арктическим и антарктическим фронтами,

между полярным и тропическим воздухом –полярным фронтом.Раздел между теплыми воздушными массами – относительно сухой тропической и влажной экваториальной, – считавшийся ранее тропическим фронтом, представляет собой зону сходимости пассатов северного и южного полушарий и называется в настоящее времявнутритропической зоной конвергенции.

Особенности главных фронтов таковы. Во-первых, они прослеживаются вверх до самой стратосферы, часто вызывая образование так называемых струйных течений – очень сильных ветров, которые достигают наибольшей величины близ тропопаузы. Во-вторых, они не образуют на Земле сплошных полос, а разрываются на отдельные ветви (отрезки), которые носят собственные названия.

Особенно это заметно на примере полярного фронта, который разделяется на целый ряд ветвей. В-третьих, эти ветви смещаются по сезонам вслед за Солнцем: летом фронты вместе с возникающими на них сериями циклонов мигрируют в сторону полюсов, зимой – к экватору, причем некоторые из них в определенные сезоны размываются.

Концы полярных фронтов, проникающих далеко в глубь тропиков, называются пассатными фронтами.

Они разделяют в тропиках уже не полярный и тропический воздух, а различные по свойствам массы тропического воздуха, приносимого из разных океанических субтропических максимумов ветрами, называемыми пассатами.Вторичные фронты(фронты второго порядка) образуются обычно между воздушными массами разных подтипов одного и того же географического типа.

Они часто возникают между морским и континентальным полярным воздухом, прежде всего зимой, когда температурная разница между ними достигает наибольших значений. Такой полярный фронт намечается над центром Восточно-Европейской равнины, в связи с чем Москву образно называют «прифронтовым» городом. Вторичные фронты прослеживаются на меньшую высоту, чем главные, – на несколько километров в пределах тропосферы.

Про анемометры:  Windscribe VPN скрывает ваш IP-адрес, поэтому вас нельзя отследить - учебные пособия по Windows

Выносной модуль и измерительная схема датчиков ветра

В качестве фотоизлучателей были выбраны светодиоды ИК-диапазона АЛ-107Б. Эти старинные светодиоды, конечно, не самые лучшие в своем классе, зато имеют миниатюрный корпус диаметром 2,4 мм и способны пропускать ток до 600 мА в импульсе. Между прочим, при испытаниях выяснилось, что образец этого светодиода около 1980 года выпуска (в корпусе красного цвета) имеет примерно вдвое большую эффективность (выразившуюся в дальности уверенной работы фотоприемника), чем современные экземпляры, купленные в «Чипе-Дипе» (они имеют прозрачный желтовато-зеленый корпус).

Через светодиод в датчике скорости пропускался постоянный ток около 20 мА (резистор 150 Ом при питании 5 вольт), а в датчике направления — импульсный (меандр со скважностью 2) ток около 65 мА (те же 150 Ом при питании 12 вольт). Средний ток через один светодиод датчика направления при этом около 33 мА, всего через четыре канала — около 130 мА.

В качестве фотоприемников были выбраны фототранзисторы L-32P3C в корпусе диаметром 3 мм. Сигнал снимался с коллектора, нагруженного на резистор 1,5 или 2 кОм от питания 5 В. Эти параметры подобраны так, чтобы на расстоянии ~20 мм между фотоизлучателем и приемником на вход контроллера поступал сразу полноразмерный логический сигнал в 5-вольтовых уровнях без дополнительного усиления.

Токи, фигурирующие здесь, могут показаться вам несоразмерно большими, если исходить из озвученного выше требования минимального энергопотребления, но как вы увидите, фигурируют они в каждом цикле измерения на протяжении максимум нескольких миллисекунд так, что общее потребление остается небольшим.

Основой для крепления приемников и излучателей послужили отрезки кабельного канала (видны на фото датчиков выше), вырезанные так, чтобы у основания образовать «ушки» для крепления на скобе. Для каждого из этих обрезков к запирающей крышке изнутри приклеивалась пластиковая пластинка, по ширине равная ширине канала.

Светодиоды и фототранзисторы закреплялись на нужном расстоянии в отверстиях, просверленных в этой пластинке так, чтобы выводы оказались внутри канала, а наружу выступали только выпуклости на торце корпусов. Выводы распаиваются в соответствии со схемой (см. ниже), внешние выводы делаются обрезками гибкого разноцветного провода.

Резисторы для излучателей датчика направления также размещаются внутри канала, от них делается один общий вывод. После распайки крышка защелкивается на место, все щели герметизируются пластилином и дополнительно липкой лентой, которой также закрывается отверстие со стороны, противоположной выводам, и вся конструкция заливается эпоксидной смолой. Внешние выводы, как можно видеть на фото датчиков, выводятся на клеммную колодку, закрепленную на тыльной стороне скобы.

Принципиальная схема блока обработки датчиков ветра выглядит так:

О том, откуда берется питание 12-14 вольт, см. далее. Кроме компонентов, указанных на схеме, выносной блок содержит датчик температуры-влажности, который на схеме не показан. Делитель напряжения, подключенный к выводу A0 контроллера, предназначен для контроля напряжения источника питания с целью своевременной замены.

В схеме используется «голый» контроллер Atmega328 в DIP-корпусе, запрограммированный через Uno и установленный на панельку. Такие контроллеры с уже записанным Arduino-загрузчиком, продаются, например, в «Чипе-Дипе» (или загрузчик можно записать самостоятельно).

Такой контроллер удобно программировать в привычной среде, но, лишенный компонентов на плате, он во-первых, получается экономичнее, во-вторых, занимает меньше места. Полноценный энергосберегающий режим можно было бы получить, избавившись и от загрузчика тоже (и вообще расписав весь код на ассемблере :), но здесь это не очень актуально, а программирование при этом неоправданно усложняется.

На схеме серыми прямоугольниками обведены компоненты, относящиеся отдельно к каналам скорости и направления. Рассмотрим функционирование схемы в целом.

Работа контроллера в целом управляется сторожевым таймером WDT, включенным в режиме вызова прерывания. WDT выводит контроллер из режима сна через заданные промежутки времени. В случае, если в вызванном прерывании таймер взводится заново, перезагрузки с нуля не происходит, все глобальные переменные остаются при своих значениях. Это позволяет накапливать данные от пробуждения к пробуждению и в какой-то момент обрабатывать их — например, усреднять.

В начале программы сделаны следующие объявления библиотек и глобальных переменных (чтобы не загромождать текст и без того обширных примеров, здесь выпущено все, что относится к датчику температуры-влажности):

#include <VirtualWire.h>
#include <avr/wdt.h>
#include <avr/sleep.h>
. . . . .
#define ledPin 13 //вывод светодиода (PB5 вывод 19 ATmega)
#define IR_Pin 10 //управление транзистором IRLU (PB2 вывод 16 Atmega)
#define in_3p 9 //вход приемника разряд 3
#define in_2p 8 //вход приемника разряд 2
#define in_1p 7 //вход приемника разряд 1
#define in_0p 6 //вход приемника разряд 0
#define IR_PINF 5 //(PD5,11) вывод для ИК-светодиода частоты
#define IN_PINF 4 //(PD4,6) вход обнаружения частоты 

volatile unsigned long ttime = 0;        //Период срабатывания датчика
float ff[4]; //значения частоты датчика скорости для осреднения
char msg[25]; //посылаемый месседж
byte count=0;//счетчик
int batt[4]; //для осреднения батарейки
byte wDir[4]; //массив направлений ветра
byte wind_Gray=0; //байт кода направления ветра

Для инициации режима сна и WDT (пробуждение каждые 4 с) служат следующие процедуры:

// перевод системы в режим сна
void system_sleep() {
  ADCSRA &= ~(1 << ADEN); //экв. cbi(ADCSRA,ADEN); выключим АЦП
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна
  sleep_mode();                        // система засыпает
    sleep_disable(); // система продолжает работу после переполнения watchdog
    ADCSRA |= (1 << ADEN); /экв. sbi(ADCSRA,ADEN); включаем АЦП
}

//****************************************************************
// ii: 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
void setup_watchdog(int ii) {
  byte bb;
  if (ii > 9 ) ii=9;
  bb=ii & 7;
  if (ii > 7) bb|= (1<<5); //в bb - код периода
  bb|= (1<<WDCE);
  MCUSR &= ~(1<<WDRF);
  // запуск таймера
  WDTCSR |= (1<<WDCE) | (1<<WDE);
  // установка периода срабатывания сторожевого таймера
  WDTCSR = bb;
  WDTCSR |= (1<<WDIE); //прерывание WDT  
}
//****************************************************************  
// Обработка прерывания сторожевого таймера 
ISR(WDT_vect) {
        wdt_reset();
}


Датчик скорости выдает частоту прерывания оптического канала, порядок величин — единицы-десятки герц. Мерить такую величину экономичнее и быстрее через период (этому была посвящена публикация автора «

»). Здесь выбран метод через модифицированную функцию pulseInLong(), который не привязывает измерение к определенным выводам контроллера (текст функции periodInLong() можно найти в указанной публикации).

В функции setup() объявляются направления выводов, инициализируются библиотека передатчика 433 МГц и сторожевой таймер (строка для IN_PINF в принципе лишняя, и вставлена для памяти):

void setup() {
  pinMode(IR_PINF, OUTPUT); //на выход
  pinMode(IN_PINF, INPUT); //вывод обнаружения частоты на вход
  pinMode(13, OUTPUT); //светодиод
  vw_setup(1200); // скорость соединения VirtualWire
  vw_set_tx_pin(2);   //D2, PD2(4) вывод передачи VirtualWire
//  Serial.begin(9600); // Serial-порт для контроля при отладке
  setup_watchdog(8); //WDT период 4 c
  wdt_reset();
}


Наконец, в основном цикле программы мы сначала каждый раз при пробуждении (каждые 4 секунды) считываем напряжение и рассчитываем частоту датчика скорости ветра:

void loop() {
  wdt_reset(); //обнуляем таймер
  digitalWrite(ledPin, HIGH); //включаем светодиод для контроля
  batt[count]=analogRead(0); //читаем и сохраняем текущий код батарейки
/*=== частота ==== */ 
  digitalWrite(IR_PINF, HIGH); //включаем ИК-светодиод датчика скорости
  float f=0; //переменная для частоты
      ttime=periodInLong(IN_PINF, LOW, 250000); //ожидание 0,25 сек
//        Serial.println(ttime); //для контроля при отладке
       if (ttime!=0) {//на случай отсутствия частоты
       f = 1000000/float(ttime);} // вычисляем частоту сигнала в Гц
       digitalWrite(IR_PINF, LOW); //выключаем ИК-светодиод
 ff[count]=f; //сохраняем вычисленное значение в массиве    
. . . . .

Время горения ИК-светодиода (потребляющего, напомню, 20 мА) здесь, как видите, будет максимальным при отсутствии вращения диска датчика и составляет при этом условии около 0,25 секунды. Минимальная измеряемая частота, таким образом, составит 4 Гц (четверть оборота диска в секунду при 16 отверстиях).

Как выяснилось при калибровке датчика (см. далее), это соответствует примерно 0,2 м/с скорости ветра Подчеркнем, что это минимальная измеряемая величина скорости ветра, но не разрешающая способность и не порог трогания (который окажется гораздо выше).

Далее следуют процедуры, которые выполняются каждое четвертое пробуждение (то есть каждые 16 секунд). Значение частоты датчика скорости из накопленных четырех значений мы передаем не среднее, а максимальное — как показал опыт, это более информативная величина.

//каждые 16 сек усредняем батарейку и определяем максимальное значение 
//частоты из 4-х значений:
if (count==3){ 
    f=0; //значение частоты
    for (byte i=0; i<4; i  ) if (f<ff[i]) f=ff[i]; //максимальное значение из четырех
    int fi=(int(f*10) 1000); //доводим до 4 дес. разрядов для отправки
    int volt=0; //код батарейки
    for (byte i=0; i<4; i  ) volt=volt batt[i];
    volt=volt/4 100; //средний код на 100 больше = 3 дес.разряда 
    volt=volt*10; //до 4 дес. разрядов
. . . . .

Далее — определение кода Грея направления. Здесь для снижения потребления вместо постоянно включенных ИК-светодиодов на все четыре канала одновременно через ключевой полевой транзистор с помощью функции tone() подается частота 5 кГц. Обнаружение наличия частоты на каждом из разрядов (выводы in_0p – in_3p) производится методом, аналогичным антидребезгу при считывании показаний нажатой кнопки.

Про анемометры:  Анемометры цифровые в Курске купить недорого в интернет магазине с доставкой | Compumir

Сначала в цикле дожидаемся, имеется ли на выводе высокий уровень, и затем проверяем его через 100 мкс. 100 мкс есть полпериода частоты 5 кГц, то есть при наличии частоты минимум со второго раза мы опять попадем на высокий уровень (на всякий случай повторяем четыре раза) и это означает, что он точно там есть. Эту процедуру повторяем для каждого из четырех бит кода:

/* ===== Wind Gray ==== */
//направление:
  tone(IR_Pin,5000);//частоту 5 кГц на транзистор
  boolean yes = false;
  byte i=0;
  while(!yes){ //разряд 3
    i  ;
    boolean state1 = (digitalRead(in_3p)&HIGH);
    delayMicroseconds(100); // задержка в 100 микросекунд 
    yes=(state1 & !digitalRead(in_3p));
    if (i>4) break; //пробуем четыре раза
  } 
  if (yes) wDir[3]=1; else wDir[3]=0;
    yes = false;
    i=0;
  while(!yes){ //разряд 2
    i  ;
    boolean state1 = (digitalRead(in_2p)&HIGH);
    delayMicroseconds(100); // задержка в 100 микросекунд 
    yes=(state1 & !digitalRead(in_2p));
    if (i>4) break; //пробуем четыре раза
  } 
  if (yes) wDir[2]=1; else wDir[2]=0;
    yes = false;
    i=0;
  while(!yes){ //разряд 1
    i  ;
    boolean state1 = (digitalRead(in_1p)&HIGH);
    delayMicroseconds(100); // задержка в 100 микросекунд 
    yes=(state1 & !digitalRead(in_1p));
    if (i>4) break; //пробуем четыре раза
  } 
  if (yes) wDir[1]=1; else wDir[1]=0;
    yes = false;
    i=0;
  while(!yes){ //разряд 0
    i  ;
    boolean state1 = (digitalRead(in_0p)&HIGH);
    delayMicroseconds(100); // задержка в 100 микросекунд 
    yes=(state1 & !digitalRead(in_0p));
    if (i>4) break; //пробуем четыре раза
  } 
  if (yes) wDir[0]=1; else wDir[0]=0;
  noTone(IR_Pin); //выключаем частоту
  //собираем в байт в коде Грея:
  wind_Gray=wDir[0] wDir[1]*2 wDir[2]*4 wDir[3]*8; //прямой перевод в дв. код
  int wind_G=wind_Gray*10 1000; //дополняем до 4-х дес. разрядов
. . . . .

Максимальная длительность одной процедуры будет при отсутствии частоты на приемнике и равна 4×100 = 400 микросекунд. Максимальное время горения 4-х светодиодов направления будет тогда, когда не засвечен ни один приемник, то есть 4×400 = 1,6 миллисекунды.

Алгоритм, кстати, точно так же будет работать, если вместо частоты, период которой кратен 100 мкс, просто подать постоянный высокий уровень на светодиоды. При наличии меандра вместо постоянного уровня мы просто экономим питание вдвое. Мы можем еще сэкономить, если завести каждый ИК-светодиод через отдельную линию (соответственно, через отдельный вывод контроллера со своим ключевым транзистором), но зато при этом усложняется схема, разводка и управление, а ток в 130 мА в течение 2 мс каждые 16 секунд — это, согласитесь, немного.

Наконец, беспроводная передача данных. Для передачи данных от места установки датчиков до табло метеостанции был выбран самый простой, дешевый и надежный способ: пара передатчик/приемник на частоте 433 МГц. Согласен, способ не самый удобный (из-за того, что девайсы рассчитаны на передачу битовых последовательностей, а не целых байтов, приходится изощряться в конвертации данных между нужными форматами), и уверен, что многие со мной захотят поспорить в плане его надежности. Ответ на последнее возражение простой: «ты просто не умеешь их готовить!».

Секрет в том, что обычно остается за кадром различных описаний обмена данными по каналу 433 МГц: поскольку приборы эти чисто аналоговые, то питание приемника должно быть очень хорошо очищено от любых посторонних пульсаций. Ни в коем случае не следует питать приемник от внутреннего 5-вольтового стабилизатора Arduino!

В данном случае передатчик работал непосредственно от напряжения аккумулятора 12 В, приемник и передатчик были снабжены стандартными самодельными антеннами в виде отрезка провода длиной 17 см. (Напомню, что провод для антенн пригоден только одножильный, а размещать антенны в пространстве необходимо параллельно друг другу.)

Пакет информации длиной в 24 байта (с учетом влажности и температуры) без каких-то проблем уверенно передавался со скоростью 1200 бит/с по диагонали через садовый участок 15 соток (около 40-50 метров), и затем через три бревенчатых стенки внутрь помещения (в котором, например, сотовый сигнал принимается с большим трудом и не везде).

Условия, практически недостижимые для любого стандартного способа на 2,4 ГГц (типа Bluetooth, Zig-Bee и даже любительский Wi-Fi), притом, что потребление передатчика здесь составляет жалкие 8 мА и только в момент собственно передачи, остальное время передатчик потребляет сущие копейки. Передатчик конструктивно размещен внутри выносного блока, антенна торчит сбоку горизонтально.

Объединяем все данные в один пакет (в реальной станции к нему добавятся еще температура и влажность), состоящий из единообразных 4-байтных частей и предваряемый сигнатурой «DAT», отправляем его на передатчик и завершаем все циклы:

/*=====Transmitter=====*/
  String strMsg="DAT"; //сигнатура - данные
  strMsg =volt; //присоединяем батарейку 4 разряда
  strMsg =wind_G; //присоединяем wind 4 разряда
  strMsg =fi; //присоединяем частоту 4 разряда
  strMsg.toCharArray(msg,16); //переводим строку в массив
//  Serial.println(msg); //для контроля
  vw_send((uint8_t *)msg, strlen(msg)); // передача сообщения
  vw_wait_tx(); // ждем завершения передачи - обязательно!
  delay(50); //  еще на всякий случай задержка
   count=0; //обнуляем счетчик
}//end count==3 
else count  ;
  digitalWrite(ledPin, LOW); //гасим сигнальный светодиод
  system_sleep(); //систему — в сон
} //end loop

Размер пакета можно сократить, если отказаться от требования представления каждой из величин разнообразных типов в виде единообразного 4-байтового кода (например, для кода Грея, конечно, хватит и одного байта). Но универсализации ради я оставил все как есть.

Питание и особенности конструкции выносного блока. Потребление выносного блока подсчитываем таким образом:

— 20 мА (излучатель) ~20 мА (контроллер со вспомогательными цепями) в течение примерно 0,25 с каждые четыре секунды — в среднем 40/16 = 2,5 мА; — 130 мА (излучатели) ~20 мА (контроллер со вспомогательными цепями) в течение примерно 2 мс каждые 16 секунд — в среднем 150/16/50 ≈ 0,2 мА;

Накинув на этот расчет потребление контроллера при съеме данных с датчика температуры-влажности и при работе передатчика, смело доводим среднее потребление до 4 мА (при пиковом около 150 мА, заметьте!). Батарейки (которых, кстати, потребуется аж 8 штук для обеспечения питания передатчика максимальным напряжением!) придется менять слишком часто, потому возникла идея питать выносной блок от 12-вольтовых аккумуляторов для шуруповерта — их у меня образовалось как раз две штуки лишних.

Емкость их даже меньше, чем соответствующего количества АА-батареек — всего 1,3 А•часа, но зато никто не мешает их менять в любое время, держа наготове второй заряженный. При указанном потреблении 4 мА емкости 1300 мА•часов хватит примерно на две недели, что получается не слишком хлопотно.

Отметим, что напряжение свежезаряженного аккумулятора может составить до 14 вольт. На этот случай поставлен входной стабилизатор 12 вольт — чтобы не допустить перенапряжений питания передатчика и не перегружать основной пятивольтовый стабилизатор.

Выносной блок в подходящем пластиковом корпусе размещается под крышей, к нему на разъемах подведен кабель питания от аккумулятора и соединения с датчиками ветра. Основная сложность в том, что схема оказалась крайне чувствительной к влажности воздуха: в дождливую погоду уже через пару часов начинает сбоить передатчик, измерения частоты показывают полную кашу, а измерения напряжения аккумулятора показывают «погоду на Марсе».

Поэтому после отладки алгоритмов и проверки всех соединений корпус необходимо тщательно герметизировать. Все разъемы в месте входа в корпус промазываются герметиком, то же самое касается всех головок винтов, торчащих наружу, выхода антенны и кабеля питания.

Стыки корпуса промазываются пластилином (с учетом того, что их придется разнимать), и дополнительно проклеиваются сверху полосками сантехнического скотча. Неплохо дополнительно аккуратно укрепить эпоксидкой используемые разъемы внутри: так, указанный на схеме выносного модуля DB-15 сам по себе не герметичен, и между металлическим обрамлением и пластиковой основой будет медленно просачиваться влажный воздух.

Но все эти меры сами по себе дадут только кратковременный эффект — даже если не будет подсоса холодного влажного воздуха, то сухой воздух из комнаты легко превращается во влажный при падении температуры снаружи корпуса (вспомните про явление, называемое «точка росы»).

Чтобы этого избежать, необходимо внутри корпуса оставить патрончик или мешочек с влагопоглотителем — силикагелем (мешочки с ним иногда вкладывают в коробки с обувью или в некоторые упаковки с электронными устройствами). Если силикагель неизвестного происхождения и долго хранился, его перед использованием необходимо прокалить в электродуховке при 140-150 градусах несколько часов. Если корпус герметизирован как следует, то менять влагопоглотитель придется не чаще, чем в начале каждого дачного сезона.

Оцените статью
Анемометры
Добавить комментарий