Обновить

Комментарии 19

А вам это зачем? Вот я понимаю дронов направление распознавать

Вопрос, что там внутри и насколько это будет надежно

Все таки улица, это важность, перепады температуры и пыль

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

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

Если это герметичный датчик, как в парктрониках, то не понятен вообще принцип действия.

Поэтому я и спросил, сто внутри. Несколько пар раздельных приемников/передатчиков повернутых друг от друга, чтобы мерить направление? Открытых или закрытых?

В заводских вариантах закрытые обычно, больше на парктроник похожи, да. А что с ними не так, принцип тот же. Вот довольно старая, но актуальная статья на эту тему с расчетами: https://www.dl1glh.de/ultrasonic-anemometer.html мы как-то в своё время пытались повторить, но повторялка тогда еще не выросла, как оказалось ))

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

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

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

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

Всегда диву даюсь почему встроенщики так не любят enum и switch case и предпочитают копипастить if elfse if.

Патамучта If else написано на человеческом языке, который разберет даже пятиклассник, а все эти enum и switch case - на программистском, который надо изучать специально.

Конкструкции типа этой вроде не выглядят как rocket science, чтобы у пятиклассника остались какие-то принципиальные вопросы.

код
typedef enum {
  N  , // 0,360 С
  NNE, // 22.5  ССВ
  NE , // 45    СВ
  ENE, // 67.5  ВСВ
  E  , // 90    В
  ESE, // 112.5 ВЮВ
  SE , // 135   ЮВ
  SSE, // 157.5 ЮЮВ
  S  , // 180   Ю
  SSW, // 202.5 ЮЮЗ
  SW , // 225   ЮЗ
  WSW, // 247.5 ЗЮЗ
  W  , // 270   З
  WNW, // 292.5 ЗСЗ
  NW , // 315   СЗ
  NNW, // 337,5 ССЗ
} Direction;

byte convert_dir_byte(int degr) //переводим градусы в 16 значений направления
{
  if ((degr>=349)||(degr<= 11)) return ( N   );
  if ((degr>= 12)&&(degr<= 33)) return ( NNE );
  if ((degr>= 34)&&(degr<= 56)) return ( NE  );
  if ((degr>= 57)&&(degr<= 78)) return ( ENE );
  if ((degr>= 79)&&(degr<=101)) return ( E   );
  if ((degr>=102)&&(degr<=123)) return ( ESE );
  if ((degr>=124)&&(degr<=146)) return ( SE  );
  if ((degr>=147)&&(degr<=168)) return ( SSE );
  if ((degr>=169)&&(degr<=191)) return ( S   );
  if ((degr>=192)&&(degr<=213)) return ( SSW );
  if ((degr>=214)&&(degr<=236)) return ( SW  );
  if ((degr>=237)&&(degr<=258)) return ( WSW );
  if ((degr>=259)&&(degr<=281)) return ( W   );
  if ((degr>=282)&&(degr<=303)) return ( WNW );
  if ((degr>=304)&&(degr<=326)) return ( NW  );
  if ((degr>=327)&&(degr<=348)) return ( NNW );
}

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

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

Хотя тут, в принципе, можно обойтись (degr+11)/16

Вы правы, массивом было бы короче всего. А градусы (усеченные до 16 значений) становятся индексами этого массива. У меня со старым механическим датчиком так и было сделано. Однако отлаживать так проще, оно и осталось в таком виде.

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

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

Этому, кстати, подогрев не нужен:
Рабочая среда : -40~80℃, 0~95%RH.

Вот снег, наверное, действительно проблема, но для механических она та же самая.

У меня у одного возникли вопросы, касательно передачи данных от датчика к конечном модулю индикации?

Проясните, если я понял неверно:

1) имеется датчик анемометра, ультразвуковой с возможностью контроля направления ветра.

2) есть ардуинка (промежуточная), которая программный сериалом, через конвертом rs-485 - UART подключена к датчику, проводом. Сигнальный + питание. Эта ардуинка стоит под крышей, но на улице.

3) на Ардуинку (промежуточную) прикручен тупо передатчик 433МГц, который просто транслирует в эфир пару-тройку байт, которые кодирует ардуинка, основываясь на данных с датчика, которые читает через rs-485.

4) приёмная часть, диапазона 433МГц реализовано банальным приемником, с которого мы просто читаем байты и ждём пакеты. Дисплей - просто есть и все, остальное не важно.

Вопрос: а для чего вся эта промежуточная лабуда? Ведь есть максимально дешевые решения типа "Беспроводной приемопередатчик eletechsup RT48D02_RT59E02_RT6AF02_RT39D01 за 208,05 ₽ - https://ali.click/guwvh1b

Насколько я понял, с одной стороны можно поставить модуль с rs-485, а с другой - TTL, такто вообще идеальное решение!

Основные технические характеристики

Рабочая частота: диапазон 2,4 ГГц (2400–2525 МГц).

Рабочее напряжение: DC 5V ~ 15V.

Потребляемый ток: около 50 мА при передаче (+11 дБм) и 25 мА в режиме приема. Рекомендуется использовать стабильный источник питания.

Дальность связи: 80–100 метров в условиях прямой видимости (на открытом пространстве).

Интерфейс подключения: физический RS-485 (линии A+ и B-).

Совместимость в экосистеме: RT48D02 полностью совместим по радиоканалу с другими модулями этой линейки от eletechsup — например, с моделью RT39D01 (версия с USB) или RT59E02 (версия с RS-232). Это позволяет легко связать ПК по USB с удаленным промышленным датчиком на RS-485

Пара таких модулей и всё. Полный доступ к датчику и хоть на графическом дисплее можно рисовать направление ветра, показывать порывы и так далее, а не эти односторонний дискретные данные. И по цене дешевле, причём сильно!

Я бы так сделал!

  1. Ваша ссылка выдает "Такой страницы нет". Девайс находится через поиск по названию "eletechsup". Почему-то по ссылкам он называется не как у вас, а RT38B01 и стоит:

    wildberries: 1 812 ₽

    market.yandex.ru: 7 944 ₽

    aliexpress: 6 249  ₽

    Цена 208 р в таком контексте меня все равно бы насторожила, потому как велика в такой ситуации вероятность нарваться на отсев после отбраковки.

  2. Дальность 80-100 м на открытом пространстве - это вообще ни о чем. 2,4 ГГц для таких целей выбирать не следует, адназначна - он на листве, стенках и перегородках сядет. У меня, например, Wi-Fi теряется просто на двойном стеклопакете.

  3. Есть 100500 методов обмена данными по радио. Есть радиоудлинители UART, Wi-fi, всех этих RS (232, 485, 422), Bluetooth. Есть еще LoRa и даже просто Ethernet. Перепробовать их все нереально и не нужно - больше денег потратишь на испытания, как говорит мне многолетний опыт. Сэкономишь на контроллере - потеряешь на стабилизаторах питания или еще на чем-нибудь не непредусматриваемом заранее.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации