Украинский кайт форум Мы в Facebook
Мы Вконтакте
Магазин Кайт-Шоп  ::  SUP форум  :: Магазин ProSUP
18 Декабря, 2017, 14:25:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   Начало   ПРАВИЛА Помощь Поиск Галерея Войти Регистрация  
 Реклама
Страниц: [1] 2 3
  Печать  
Онлайн анемометр на коленке Тема:

Онлайн анемометр на коленке

Прочитано 5894 раз
0 Пользователей и 1 Гость смотрят эту тему.
Alezz
« : 19 Августа, 2015, 12:48:29 »

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

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

http://www.scarlet.com.tw/smart-wind-meter

Но минус в цене: 199$ анемометр + 199$ указатель направления ветра. К тому же, насколько мне известно, программа в комплекте с  данным устройством умеет рисовать графики, но не умеет выкладывать данные в сеть. Стало интересно, можно ли собрать аналогичное устройство на коленке? К сожалению программирование под android мне абсолютно не знакомо, но к счастью на github случайно был обнаружен интереснейший проект Arduino-Android-Sensors, который вполне мог послужить основой устройства https://github.com/HarryGoodwin/Arduino-Android-Sensors. Выкристаллизовалась идея:
 

 Но для начала был изготовлен датчик ветра.
Датчик ветра был изготовлен на основе вот этого материала: http://skootsone.yolasite.com/wind-pow-02.php В качестве основы датчика используется компьютерный вентилятор любого размера, главное условие наличие в нем двух подшипников (хотя и одного верхнего возможно будет достаточно учитывая установку датчика) и трех (или 4х) проводной интерфейс. Я препарировал имеющийся в хозяйстве боксовый кулер Intel.

 
 
Процесс изготовления подробно описан в статье указанной выше, если в двух словах: снимаем крыльчатку (для боксового кулера Intel этот процесс может быть не тривиальным), удаляем обмотку (удалял варварским методом, кусачками выгрыз обмотки, потом снял пластину за пластиной сердечник), удалил 4й провод (осталось 3: черный - минус, желтый - питание, зеленый - тахометр). Плату залил лаком, для предотвращения замыкания в случае дождя. Дальше удалил крылья на крыльчатке, на этом подготовка закончена. Новую крыльчатку сначала сделал как у автора статьи (вырезал из CD диска), однако был ошарашен его чувствительностью. Не знаю как у автора получилась чувствительность 0.4м/с, у меня датчик с трудом стартовал от 4м/с. Что было сделано не так, разобраться не удалось, поэтому пошел другим путем - купил пару теннисных шариков, которые были разрезаны канцелярским ножом на 2 части. Полученный полусферы были посажены на термоклей прямо на цилиндр крыльчатки (фото не сохранилось). Стало гораздо лучше, датчик спокойно стартует от 3 м/с чего уже вполне достаточно, по крайней мере для кайтеров.  В принципе на этом можно было закончить, но чисто из спортивного интереса посадил полусферы на ножки (нейлоновые стойки + винт) и снова приклеил термоклеем. Стало еще лучше - стартуем с 1.5-2 м/с. Крыльчатку желательно отбалансировать, для это ставим ее вертикально (боком как автомобильное колесо) и вращаем. Крыльчатка должна останавливатся в произвольной позиции. Если одна из лопастей всегда оказывается внизу (оказалась тяжелее других) то на противоположную добавляем камельку термоклея. Повторяем процесс до достижения требуемого результата.

Дальше был самый простой этап, работа с Arduino. В качестве контролера была выбрана плата Arduino mini Pro 5V 16MHz(как самый дешевый вариант) http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR0.TRC0.H0.TRS0&_nkw=Arduino+mini+Pro+5V+16MHz&_sacat=0 но подойдет и Arduino nano и любая другая плата на процессоре Atmega 328P.  Arduino мне известно достаточно давно, а пример на github оказался почти тем что нужно. Немножко поработал паяльником:


 
на фото виден Bluetooth модуль BC-02, но подойдет любой модуль с последовательным портом, например HC-06: http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=Bluetooth+Module+RS232+pin&rt=nc&LH_BIN=1 Питание, любое 5В, например от стандартного USB. Поправил немного скетч, загрузил в плату, нет проблем. Контроллер выполняет простейшую работу - считает импульсы от тахометра на входе D4, измеряет напряжение на входах A1, A2, A3 (диапазон 0...+5В, предназначено  для дальнейших расширений, например указатель направления ветра и/или термометр) и передает эти 4 числа в Bluetooth модуль. Скорость модуля по умолчанию 57600bps, но может быть изменена в скетче. Данные по Bluetooth попадают на Android.
Ну а дальше была terra incognita, хотя вряд ли мои проблемы кому-то интересны. Через н-ное количество часов получилось вот такое приложение, ужасное снаружи и доброе внутри:


снова функции только базовые - вывод на экран числовых значений датчиков и загрузка их на ftp сервер с определенным интервалом.  На веб сервере появляется вот такая вот страничка:

 
Дальше эти данные можно использовать для отрисовки красивых страничек с графиками по типу не работающего сейчас wind-online.com.ua либо meteostations.com.ua  Но это уже задача вебмастеров, мне и одного числа было бы достаточно. В принципе загрузка не обязательно, в этом случае весь комплекс превращается в банальный анемометр.
Логичный вопрос, а что с направлением ветра? Как уже говорил, комплекс готов к подключению новых сенсоров (свободны 3 аналоговых входа), осталось только сделать такой указатель. В реальности сделать указатель ветра чуть сложнее чем анемометр, готовых нет, пока самая простая схема которая приходит в голову это 8 герконов и десяток резисторов. Кому интересно могу поделится соображениями отдельно. В принципе на Arduino mini Pro содержит 14 цифровых входов и выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, использовать можно любые. Я уже молчу про готовые датчики за смешные деньги:
температура и влажность http://www.ebay.com/itm/DHT11-Temperature-Sensor-Humidity-Sensor-for-Arduino-3-3V-5V-/381360772172?hash=item58cadf944c
уровень жидкости http://www.ebay.com/itm/Rain-Water-Level-Sensor-Module-Depth-Detection-Liquid-Surface-Height-Arduino-MUS-/391159275594?hash=item5b12e8e04a
и т.д. Но это уже совсем другая история

Подсчитаем расходы:
Arduino mini Pro = 2$
Bluetooth HC-06  = 4$
Кулер с двумя подшипниками = 3$
Б/у телефон на Android (пойдет даже с треснувшим экраном) = 15-20$
плюс мелочовка типа проводов и разъемов. В общем бюджет всего мероприятия порядка 30$, а если в хозяйстве есть ненужный кулер и старый телефон Android то аж 6$ затрат.

По размещению оборудования. Подразумевается, что датчик будет размещается снаружи, остальное оборудование в защищенном от дождя помещении (например дом). Допустимая длинна  кабеля (кабель любой, минимум 3 провода - земля, питание, сигнал), например витая пара для компьютерных сетей,  от датчика до Arduino исчисляется десятками метров. Я проверял на кабеле длинной 20м - все работало без проблем. Теоретически можно и сотни метров, но тогда цена кабеля будет дороже самого комплекса. Arduino и Bluetooth модуль размещаются вместе, смысла разносить их нет. От Arduino до блока питания (например стандартный USB провод и зарядник) можно метров 10, т.к. ток потребления скромный, порядка 60мА. От Bluetooth до телефона, нормально работает тоже метров 10, дальше возможны проблемы. Везде говорил о максимальной длине, а вообще чем короче, тем меньше проблем.
Т.к. объем пересылаемых данных от Android очень скромный, требования к подключению Интернет минимальны, проверено и на Wi-Fi и на EDGE, работает без проблем, даже лимитированные тарифные планы скорее всего подойдут. Конечно все это теория,  практика может оказаться гораздо печальней, типа первый же дождь убьет датчик, но кто не рискует...
P.S. Все необходимые файлы для построения комплекса во вложении
Записан
Alezz
« Ответ #1 : 19 Августа, 2015, 12:55:04 »

необходимые файлы пока выложить не могу, пишет:
Цитировать
Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с Администратором.
хотя в лимиты помещаюсь. Жду пока администратор почистит папку Smiley
Записан
smotors
« Ответ #2 : 20 Августа, 2015, 05:33:27 »

...отлично!. я не прочь порукоблудствовать )
Записан
Alezz
« Ответ #3 : 20 Августа, 2015, 08:49:53 »

на форум выложить не удалось, все необходимое (исходники, hex под ардуино, apk под андроид) здесь: http://alezz.ucoz.ru/Arduino-Android-Sensors.rar
Записан
prohfesor
Administrator
« Ответ #4 : 20 Августа, 2015, 13:23:56 »

Насчет направления ветра - есть модуль компаса, остается только его подвесить на ось и придумать как подвести провода чтобы они могли вращаться.
Записан
Alezz
« Ответ #5 : 20 Августа, 2015, 14:06:34 »

да, кстати, сам компас на Ардуино копейки стоит и есть такого типа штуковины, аккурат на 6 проводов:
http://www.ebay.com/itm/300Rpm-Capsule-Slip-Ring-6-Circuits-Wires-22mm-2A-AC-240V-Test-Equipment-/221849130728?hash=item33a73d16e8
но не совсем понятно как поведут себя эти контакты в условиях улицы. Но как вариант - интересно. В принципе направление можно и по прогнозу посмотреть, тут ошибка и на 45 градусов для болотных кайтеров не критична  Smiley А вот по ветру плюс минус 4-5м/с это уже огого
Записан
prohfesor
Administrator
« Ответ #6 : 20 Августа, 2015, 16:34:05 »

Алекс, а не хотите исходники для андроид выложить на гитхаб?
Я думаю было бы круто.

Да и код для ардуино тоже можно туда, если он читаемый (меня смутило слово hex в предыдущем посте)
Записан
Alezz
« Ответ #7 : 20 Августа, 2015, 16:53:06 »

если честно я не зарегистрирован на гитхабе, лениво разбираться как и куда лить. Если кто-то зальет (даже без ссылки на меня)  - не против. В архиве, как уже сказал выше, есть как оба исходника (для тех кто хочет внести свои правки в код и развивать проект дальше), так уже готовые к загрузке (для тех кто не разбирается или не хочет заморачиваться) hex в ардуинку и apk в андроид. Скачайте, посмотрите, оно не кусается  Smiley
Записан
prohfesor
Administrator
« Ответ #8 : 21 Августа, 2015, 10:35:15 »

Я покопался, но там вроде кое-чего не хватает, типа папки Src или как-то так, в общем, собственно кода для андроид нет в архиве, только сборщик проекта.
Записан
Alezz
« Ответ #9 : 21 Августа, 2015, 10:52:43 »

Прошу прощения, мой косяк - как ни как первое приложение на Андроид. Вроде как положил все необходимое, наверное даже лишнее что-то, залил по старой ссылке, проверь если не тяжело
Записан
prohfesor
Administrator
« Ответ #10 : 21 Августа, 2015, 11:03:56 »

По поводу красивых графиков, есть такая штука - http://narodmon.ru/
Мы с ребятами из sneg.info используем, офигенно удобно, станция меряет температуру и отправляет прямиком туда (там ардуина с ethernet и подключена прямо в роутер)

Кстати могу показать наш код ардуины который отправляет туда:
https://github.com/prohfesor/arduino-meteo/blob/master/Meteo.ino#L186
Записан
prohfesor
Administrator
« Ответ #11 : 21 Августа, 2015, 11:23:47 »

Проверил, код есть Smiley
Насколько полностью не могу точно сказать, я сам пока ни одного приложения под него не написал.
 Smiley
Записан
Alezz
« Ответ #12 : 21 Августа, 2015, 11:30:36 »

насколько я понимаю для POST полноценный веб сервер нужен например с поднятым PHP, желательно MySQL и прочими вкусностями, что накладывает требования на хостинг и т.д. Мне кажется на первом этапе, если одного текущего значения мало, можно ограничится экспортом в суточный текстовый файл + джава скриптами типа Google Chart https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart Конечно, если система станет глобальной, в чем есть огромные сомнения, можно развивать в любом направлении. Вот реально работающая станция http://obitochna.zz.mu/ (надеюсь Виталик за ссылку не обидится), по опыту использования скажу что 4х верхних картинок (3 в ряд + 1) с головой хватает оценить ситуацию на споте. Остальные графики, цифры практически бесполезны, по крайней мере для кайтера/виндсерфера. Минималистический сайт http://meteostations.com.ua/ только подтверждает мои мысли
Записан
prohfesor
Administrator
« Ответ #13 : 21 Августа, 2015, 11:45:54 »

Ну вот narodmon это и есть глобальный сервер которым можно пользоваться бесплатно.

А вообще у вас страничка крутая получилась, респект Smiley
Записан
Alezz
« Ответ #14 : 21 Августа, 2015, 11:53:18 »

ну это не совсем моя, это cumulus (на Windows) картинки рисует и данные выдает, я только в кучу собрал. Ну да ладно, речь то не о ней Smiley
Как мне кажется главное сделать станцию которая будет передавать данные, а как обработать эти данные это вопрос даже не вторичный. Главное найти реальный столб, на который привинтить реальный датчик, найти реальную розетку в которую включить реальный андрод телефон который сбросит данные. А потом сидя в мягком кресле неспешно кодить красивые странички с помощью дизайнера Smiley
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

 Реклама
Экстремальный портал VVV.RU Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines | Sitemap