Измеритель скорости ветра, также известный как анемометр (Anemometer) является обязательным элементом профессиональных метеостанций. И если в сети интернет можно найти огромное количество проектов метеостанций (и на нашем сайте мы рассматривали их создание на основе плат Arduino и Raspberry Pi, а также модуля ESP8266), позволяющих производить измерение температуры и влажности окружающего воздуха, а также и атмосферного давления, то проектов измерителей скорости ветра (анемометров) в сети значительно меньше. Поэтому и решил перевести данный проект анемометра для нашего сайта (ссылка на оригинал приведена в конце статьи).
Профессиональные измерители скорости ветра используют достаточно дорогие датчики для своей работы, применение которых в домашних условиях в большинстве случаев экономически нецелесообразно. Поэтому автор проекта решил использовать для измерения скорости ветра маленький электродвигатель постоянного тока, превратив его в генератор электрической энергии. Напряжение с выхода данного генератора будет поступать на один из контактов платы Arduino, которая будет производить обработку результатов измерения и их передачу на компьютер, на котором будет производиться визуализация работы проекта.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Маленький электродвигатель постоянного тока.
- Светодиод (купить на AliExpress).
Общие принципы работы проекта
Двигатель постоянного тока преобразует электрическую энергию в механическую, тогда как генератор постоянного тока преобразует механическую энергию в электрическую. Таким образом, если электрическая энергия может вращать двигатель постоянного тока, то механическую энергию можно использовать для генерации электричества. Сравнение принципов работы двигателя постоянного тока и генератора электрической энергии приведено на следующем рисунке.
Нам необходимо улавливать энергию ветра, чтобы вращать наш двигатель постоянного тока. В результате его вращения будет генерироваться электричество, величину которого мы можем измерить с помощью платы Arduino и преобразовать его в соответствующий масштаб.
Автор проекта использовал двигатель постоянного тока из радиоуправляемой машины, подсоединил светодиод к двум проводам двигателя постоянного тока и крутанул вал двигателя. В результате этого светодиод загорелся!
Затем он подключил контакт +ve двигателя постоянного тока к аналоговому контакту A0 платы Arduino, а землю (ground) двигателя – к земле платы Arduino.
После этого он приступил к сборке конструкции проекты, этапы которой запечатлены на рисунках ниже.
Он взял у своей жены 4 одинаковые пластиковые ложки-совка и склеил две из них вместе. Затем он приклеил эти две ложки перпендикулярно друг другу на двух концах вала двигателя. Это и явилось основой рассматриваемого нами измерителя скорости ветра (анемометра).
Затем он установил этот узел на длинный карандаш и закрепил его на маленькой подставке для карандашей. Он принял меры для установки платы Arduino на этом стенде. Также он добавил светодиод на вывод PWM 9 платы Arduino, чтобы зажигать его при вращении ветра. Схему проекта можно скачать по следующей ссылке.
Возможные способы улучшения проекта
Поскольку двигатель 5 В использует сравнительно мощные магниты, то для его вращения требуется более сильный ветер. Поэтому для создания анемометра желательно использовать более легкий двигатель, подобный тому, который используется в дронах. Внутри него должны быть постоянные магниты.
Двигатель с низкими оборотами будет генерировать более высокое напряжение при низких скоростях вращения. То есть желательно использовать подобные двигатели для создания нашего анемометра. Однако, используя более крупные шестерни на валу вентилятора, который приводит в движение вал двигателя, мы можем заставить двигатель постоянного тока вращаться быстрее при более низких скоростях ветра.
Низковольтный двигатель постоянного тока, такой как двигатель 3 В, является более безопасным для нашего проекта измерителя скорости ветра, так как максимальное создаваемое им напряжение не будет достигать величины 5 В даже при максимальной скорости ветра и, следовательно, не повредит плату Arduino.
Исходный код программы (скетча)
В коде программы мы будем считывать аналоговое напряжение с контакта A0 платы Arduino и строить его график. Данный график будет строиться с помощью соответствующей опции монитора последовательной связи Arduino IDE (Arduino's graph plotter).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int ledPin = 9; void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A0); //Map 0-1023 to discrete 0-50-100...250 values for LED analogWrite(ledPin, sensorValue * (51.0 / 1023.0) * 50); if(sensorValue > 0){ Serial.println(sensorValue); Serial.print(" "); } } |