Ветроанемометр с тензодатчиком
Делюсь с вами своим несколько странным проектом измерения скорости и направления ветра без движущихся частей. К вашему сведению: английский не мой язык, поэтому извините за возможные ошибки.
Контекст: у меня есть две самодельные метеостанции, обе используют анемометры от Davis Instruments, но с одной из них начались проблемы. Когда солнце сильное, скорости ветра нет. После небольшого обмена мнениями между н��ми выяснилось, что проблема связана с анемометром. Анемометры Дэвиса очень хорошие, выдерживают очень сильный ветер, но мне с ними не везет. На одной из моих станций он у меня стоит более 5 лет, а на другой уже дважды заменен, при этом стоит он недешево.
Итак, я хотел сделать что-то другое. Целью был анемометр без движущихся частей. Ультразвуковая м��дель показалась мне правильным выбором, но, как правило, максимальная скорость ветра у них редко превышает 150 км/ч, и я не был уверен в устойчивости к влажному, жаркому и агрессивному климату Карибского моря.
Более того, я больше предпочитал решение «сделай сам», даже если это означало создание полностью напечатанного на 3D-принтере чашечного анемометра, но зачем упрощать его, если можно усложнить?
Я задавался вопросом, можно ли измерить скорость ветра с помощью датчиков нагрузки. После некоторых исследований в сети он существует, но это явно не лучшее решение.
А в мире DIY я через несколько месяцев понял, что меня обогнал ютубер «Умные решения для дома» ( https://www.youtube.com/watch?v=VRTdikyyJBE ) и его аналогичный проект с использованием датчиков деформации. Его видео великолепно, а идея оригинальна, но мне явно не подходит такая конструкция из-за ряда ограничений и прочности.
По моей идее я больше думал об использовании тензодатчика ( https://www.amazon.com/dp/B09VYTQK9G?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1 ), он сам по себе более точен и более устойчив, чем использование тензодатчика при 3D-печати.
Поэтому я запланировал один для измерения Север-Юг, а другой для Восток-Запад с ESP32, чтобы всем управлять.
Первоначальную метеостанцию не собирались физически модифицировать для этого, но она получала через CSV информацию о скорости, порывах и направлении ветра. И наоборот, анемометр будет получать через CSV информацию о температуре, влажности и давлении с этой станции.
Я не профессионал в программировании, но мне удалось закодировать свою станцию в то время, но в данном случае Chat GPT мне очень помог понять уравнения и закодировать этот анемометр.
Краткое объяснение кода:
Функция updateWindDirectionAndForce получает вес, измеренный датчиком нагрузки, и преобразует его в скорость и направление ветра.
Функции getMedian и getMedianGust извлекают из полученных значений медианное значение скорости ветра за одну минуту и максимальные порывы ветра за 2,5 секунды.
Медиана позволяет отбросить выбросы, которые могут зафиксировать датчики нагрузки, особенно если что-то ударяется/касается датчиков или опоры. Медиана для порывов ветра корректируется так, чтобы пропустить более высокие значения, игнорируя при этом верхнюю 1/8 выбросов данных.
Функция tareSensor позволяет калибровать тару во время работы, стараясь при этом не учитывать слишком сильное отклонение тары в случае, если во время измерения дует ветер.
В моем случае фиксированная тара невозможна, поскольку мачта закреплена на деревянной конструкции, а дневная жара, деформирующая древесину, наклоняет мачту настолько, что добавляется смещение к измерению.
Тара каждые 15 минут позволяет избежать этого явления (я понимаю, почему этот метод измерения ветра никогда не используется: слишком много переменных окружающей среды, которые нужно учитывать, но мне нравятся сложные задачи).
Остальные просто управляют веб-страницей и создают CSV или считывают CSV со станции.
Вы увидите некоторые снимки графиков скорости, порывов и направления ветра. Синие графики соответствуют моей второй станции с анемометром Дэвиса, красные соответствуют станции, подключенной к анемометру тензодатчика.
Мы очень близки между собой