Метеостанция на аэродром

Осваивая Arduino, сделал один из первых проектов - метеостанцию. Поскольку типовые не устраивали, сделал по-своему.

Задачи:
- Измерять температуру, давление (в мм рт.ст и гПа), влажность
- Силу и направление ветра
- Считать точку росы, высоту конденсации облаков, синусы-косинусы ветра по полосе, порывы ветра за 5 минут. Осреднять показания флюгера.
- Отправлять данные в интернет на сайт Народного мониторинга каждые 2 мин
- Видеть показания на компьютере, в виджетах на телефоне
- Видеть историю и динамику показаний
- Подключаться к серверу Народного мониторинга, получать значения, показывать их на табло в штабе, на СКП, в клубах и т.д.
- Крупно выводить ветер, чтобы было видно пилотам на рулении (в планах)
- Включать голосовую передачу данных по радио по запросу пилота (пятикратное нажатие тангенты) - в планах.

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

Устройство:
Arduino Mega 2560 R3 – 790 руб
Arduino Ethernet Shield W5100 – 650 руб
BME280 – 227 руб
Флюгер – 2000 руб
Анемометр – 1900 руб
3G роутер (достаточно Ethernet любого вида).

Табло работает на модуле NodeMCU 8266 (130 руб)
Индикаторы и микросхемы MAX7219  (до 1000 руб)

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

Вложения

  • meteostation.rar
    meteostation.rar
    11,6 КБ · Просмотры: 368
  • IMG_20190810_173757.jpg
    IMG_20190810_173757.jpg
    89 КБ · Просмотры: 458
  • Screenshot_20191011-141647.png
    Screenshot_20191011-141647.png
    42,7 КБ · Просмотры: 477
Автомобиль стоит точно на севере (совпадает GPS долгота) - калибровка физической установки флюгера.
 

Вложения

  • IMG_20190727_150010.jpg
    IMG_20190727_150010.jpg
    86,6 КБ · Просмотры: 519
  • IMG_20190819_131952.jpg
    IMG_20190819_131952.jpg
    51,9 КБ · Просмотры: 459
  • meteostancija.jpg
    meteostancija.jpg
    97,4 КБ · Просмотры: 482
Еще фото
 

Вложения

  • Screenshot_20191011-141700.png
    Screenshot_20191011-141700.png
    47,1 КБ · Просмотры: 422
  • IMG_20190613_163010.jpg
    IMG_20190613_163010.jpg
    80,2 КБ · Просмотры: 432
  • IMG_20191004_102742.jpg
    IMG_20191004_102742.jpg
    71,5 КБ · Просмотры: 420
Планы насчет радио:

- Имеется радиостанция, в которой при появлении несущей загорается зеленая лампочка
- Имеется модуль с фотодиодом, определяющий её включение
- Программа умеет определять пятикратное появление сигнала за 4 сек, игнорируя слишком короткие и длинные сигналы
- Имеется mp3-модуль, который воспроизводит аудиоролики с наговоренными фразами насчет давления и ветра. Какие ролики воспроизводить - определяет программа на основе полученный из И-нета данных.
- Выход mp3-плеера нужно согласовать с микрофонным входом радиостанции и с помощью реле "нажимать тангенту".

Пока всё получается, но еще не закончено.
 
Очень  хорошее устройство  и  правильно, что  озаботились  .Наверняка будет  иметь  спрос на  малых точках.Грамотное и  своевременное освещение атмосферных  процессов должно быть  постоянным  и  любой  пилот  всегда опираясь  на его данные  сможет  принять  правильное решение на  вылет. [smiley=thumbsup.gif]
 
Только собрался делать метеостанцию для аэродрома, а оказывается уже подобный проект существует. Если Вы не против, то повторю конструкцию, а там уже буду дорабатывать под возникающие потребности. У Вас, смотрю, BME280 поднят землёй, какова разница высот относительно ВПП? Коррекцию не вводили?

Точность BME280 - 20 см воздушного столба. Но такая точность в нашем случае не нужна, обычные анероидные приборы измеряют до 0.5 мм.рт.ст, диспетчеры дают точность 1 мм (т.е. 10 м высоты) и этого достаточно. Опять же точность важна для динамики значений, при полётах ПВП очень точно измерять не требуется.

В нашем случае, строго говоря, нужно провести измерения в точке установки датчика и в торце ВПП, разницу вычесть из результата, если это надо. Я не делал.
 
Замечательная штука. А на заказ такую сделаете?

Не ))
Её любой может сделать, кто дружен с паяльником, напильником и компьютером. Это очень просто. Сейчас этому детей учат в кружках робототехники.
Из относительно сложного - сделать плату табло, но его можно и не делать, взять TFT-экранчик и вывести на него цифры.
 
Хоть кто то попытался монополию метеостанций "Бошунг" оспорить - кстати Бошунг тоже летчик и коллекция самолетов у него знатная.
 
Шикарная станция. Приделать светолокацию для измерения нижней границы облачности с накоплением результатов и видимость горизонтальную. Бесценно.  :~~)
 
Схемой не поделитесь?

По модулю измерения и отправки данных - схема как таковая не нужна. Один шилд (Ethernet W5100) вставляется в другой шилд (Arduino Mega), можно UNO - и готово. В скетче написано на какие ножки подключить светодиоды (показывают статус), датчик и анемометр-флюгер (там три провода - плюс 12, GND и 0-5 В данных).
Из важного: Ethernet шилд штатно запитывается от стабилизатора Arduino и его не хватает - устройство зависало. Нужно подвести 5В от внешнего источника.

Насчет табло - думается, что здесь главное программа, которая получает данные с сервера Народного мониторинга. Если есть желание сделать индикаторное табло - высылаю плату в Sprint Layout. Схема тоже не нужна - известен способ управления индикаторами с помощью нескольких микросхем MAX7219, подключенных последовательно. Потребовались небольшие дополнения - добавить конденсаторов (10 и 0.1 мкф) на питание, но это обычные правила включения микросхем.
Надо обратить внимание на соответствие платы и цоколевки ножек конкретного типа индикаторов, они бывают разные. Я брал здесь.
https://ru.aliexpress.com/item/32951277334.html
https://ru.aliexpress.com/item/32556868790.html
 

Вложения

А где покупали датчики направление и скорости ветра?
 
https://m.ru.aliexpress.com/item/32668695668.html
https://m.ru.aliexpress.com/item/32965024429.html

При заказе возможны варианты связи с датчиками - RS485, или 0-5 В. Я использую 0-5 вольт. Это требует отдельного питания датчиков  12-20В и двух АЦП на Ардуино, что не проблема.
Можно попробовать RS-485, тогда всю конструкцию можно сделать на NodeMCU 8266 (у неё нет АЦП).
 
Я  так понял у  NodeMCU 8266 на борту есть wi-fi, не планируете заменить проводной интернет на wi-fi, это позволит датчики вынести в поле подальше от препятствий? Так же неплохо иметь связь станции на прямую без  привязки к интернету, не у всех он есть. То есть передавать прямо на табло, если это возможно.
 
Я  так понял у  NodeMCU 8266 на борту есть wi-fi, не планируете заменить проводной интернет на wi-fi, это позволит датчики вынести в поле подальше от препятствий? Так же неплохо иметь связь станции на прямую без  привязки к интернету, не у всех он есть. То есть передавать прямо на табло, если это возможно.

Всё верно. Станция начиналась с NodeMCU+BME280, которые успешно работали. Осталось поставить ветродатчики. Когда они приехали, оказалось, что на NodeMCU нет нормального АЦП, как он есть на любых других Ардуино. И понеслось... То, что я рассказал - это уже конец всех моих экспериментов.

Для связи устройств между собой можно использовать модуль Nrf24L01 - до 200 метров передача вполне устойчивая.

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

Версия 1.0
Оборудование: NodeMCU 8266 + BME280
Это решение несколько месяцев успешно работало, измеряя и считая всё кроме ветра. Подключалось к сети WiFi, выходило в интернет, получало по NTP дату-время, отправляло данные на Народный мониторинг. Оставалось только прикрутить анемометр-флюгер
Попытка №1 – изготовление на 3D-принтере.
Были изучены вопросы:
- Определение положения оси флюгера по диску с отверстиями с помощью оптопар.
- Расчет кода Грея на диске (или барабане), преобразование его в двоичный.
- Спроектированы и напечатаны крыльчатка, корпус анемометра, оптический счетчик сигнала (а также вариант с датчиком холла)
Выводы:

1) Для флюгера не требуется высокая точность (и разрядность). Купленный имеет 16 положений (22,5 град) - этого достаточно.
2) Самодельный - трудоемко, не надежно
3) Подшипники нельзя разносить по длине вала в напечатанном пластмассовом корпусе. Малейший перекос зажимает вал, анемометр плохо вращается и нечувствителен.
Попробовали вместо вала 5 мм и подшипников применить иглу, вращающуюся в глухих отверстиях головок болтов. Рамка была спаяна из полипропиленовых труб. Датчик – вращающиеся магниты и датчик Холла. Работает нормально, но в итоге от решения отказались, купили на Алиэкспресс готовые.
Сейчас иногда возникают сомнения в правильности показаний флюгера. ДОСААФовский - большой и с двумя хвостами. Наш - маленький и шустрый. Его крутит ветром слишком легко. Возможно проблема в месте установки (говорили, что нельзя ставить близко к крыше - будут роторы). Возможно в размерах и форме. Будем разбираться.

Версия 1.2
Купленные флюгер и анемометр предлагались в вариантах RS-485, 0-5В, 4-20 мА. В момент выбора было очевидным решением 0-5В. Как работает АЦП в Ардуино известно, с потенциометром экспериментировали, код был написан. Не учли, что NodeMCU трехвольтовая, АЦП на ней только один (!) и работает он от 0 до 1 В. Кроме того, на него есть жалобы, в отличие от UNO или NANO.

Вывод – прикрутить к NodeMCU Ардуино Nano, передавать данные между ними по I2C. Не получилось. На I2C «сидят» датчик, экран и «связь». Возможно из-за подтягивающих резисторов, или чего-то еще, но шина не заработала. Получилось выполнить обмен данными по UART, экран и датчик остались на разных устройствах, только нужно было рассоединять контакты UART при прошивке модулей и подключении к компьютеру. Кроме того пришлось не пользоваться выводом в Serial-порт. Решение не понравилось нестабильностью и ненадежностью.

Версия 1.3
Arduino NANO+ENC28j60
Хорошо работало измерение, расчеты, отправка на сервер. НО по-отдельности в виде экспериментов! На общий код не хватает памяти. Шилд на этом чипе не имеет аппаратной поддержки TCP, стандартная библиотека не работает. Нестандартные – либо непонятны, либо занимают огромную часть и без того небольшой памяти, ничего не оставляя на пользовательский код и переменные. Код оптимизировал, сократил, таки запустил, но с урезанным функционалом. Такое мне не нужно. Вывод – использовать Ethernet W5100 и для верности Arduino Mega 2560.
После того, как научились получать значения датчиков из интернета, отменилась задача вывода значений на индикатор одним устройством (а также получение даты-времени из интернета и расчеты разного рода) . Индикатор (или табло) стал автономным модулем. Метеостанция должна только измерять и отправлять данные. Это сильно упростило код, так что можно снова вернуться к дешевым NANO и ENC28j60.

Эксперимент с радиомодулями Nrf24L01
Для передачи показаний в пределах аэродрома пробовал использовать эти радиомодули (дальнобойные, с антенной). Чтобы их запустить пришлось потратить несколько дней и прочитать 50 страниц форума. Оказалось, что стандартными средствами модуль прекрасно передает данные, но только если делает это непрерывно. Если возникает пауза в передаче – засыпает и больше не просыпается, хотя должен это делать. Имеется ошибка в библиотеке. Как оказалось перед передачей надо поставить команды PowerUp (); delay (2) – только в этом случае корректно просыпается и начинает передавать. Радиус на местности получается более 200 метров, сквозь стены помещения – более 30 м. Это больше, чем WiFi. Вывод – решили не пользоваться. Первый вариант – наладить везде Wi-Fi и провести общую локальную сеть, передавая данные в формате TCP. Второй вариант – получать данные уже с Народного мониторинга.

Табло на семисегментных индикаторах.
Для него освоил изготовление печатных плат: проектирование в Layout Sprint, работу с фоторезистом, травление, сверление, пайку (и выпаивание!) микросхем. Крайний раз делал это в детстве с отцом, с тех пор всё сильно изменилось и упростилось. Собранное табло работать отказывалось. Причин было несколько: неисправная микросхема, КЗ на дорожках. Но это не всё. После исправления оно «глючило» - самопроизвольно отказывали микросхемы, погасали, мигали, сбоили индикаторы. Знающий человек выяснил, что микросхемы «шумные». Напаял на питание правильные конденсаторы, погасил сигнал, врезав в сигнальные линии резисторы. Вывод – табло достаточно трудоемкое изделие. Но самое главное – индикаторы не видны на солнце! Так что место ему только в помещении. Надо смотреть планшет и работу с WEB-страницами или ЖК-индикаторы.

Планы по проговариванию в эфир:
Рассказывали, что таким образом за границей автоматически включают огни полосы. Планируется сделать так: В радиостанции типа FL-760 имеется светодиод, который загорается при появлении несущей в эфире. Несложно к нему подключиться (оптопарой или просто фотодиодом) определить пятикратное включение за 2-3 секунды. После этого метеостанция может включить реле передачи и воспроизвести заранее записанные на карточку MP3 файлы – про ветер и давление QFE. Пока остановился на том, что нет лишней радиостанции, а имеющаяся от ZLINа не имеет нужной лампочки…

Продолжение (радиостанцию нашли). Первая проблема с электропитанием. Нужно запитывать от 12 В. Источник питания – отдельная проблема. Все стандартные импульсные – шумят и свистят в эфире. БП от компьютера – тоже. Трансформаторный блок питания, вероятно, подойдет, но имеющийся - на 18 В, а стабилизатор 7812 – не тянет, при передаче рация «гаснет». Пока обходимся АКБ 12В 7АЧ.

Вторая проблема – фотодиод, «смотрящий» на лампочку появления несущей. Написан код, который распознает нажатия, он работает с модулем фотодиода, все прекрасно. При нажатии тангенты – загорается красная лампочка – все хорошо. Но на зеленый светодиод он не реагирует. СПЕКТР не тот! Фотодиод чувствителен к инфракрасному. Припаяли перемычку на радиостанции между этими светодиодами - теперь загораются оба сразу, фотодиод реагирует нормально.
Записали голос, нарезали на файлы. Воспроизводится хорошо. Голос обычной женщины был "неубедительный", поехали в аэропорт к диспетчеру. У неё правильно звучат "гектопаскали" и обороты типа "ветер у земли".
Занимаемся согласованием mp3-плеера и микрофонного входа.
Пока всё...
 
Не было идеи компас HMC5883L установить на флюгер, а на его ось магнит?
Можно резать кусками под себя.

Я резать ничего не могу , я могу только повторить готовый и работающий проект. Не способен на так :'(ое
 
Не было идеи компас HMC5883L установить на флюгер, а на его ось магнит?

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

Есть вот такое устройство, изготавливалось для экспрементов с компасом в качестве датчика.
Ось установлена на двух подшипниках, на конце оси магнит. Могу переслать.
 

Вложения

  • IMG_20191022_122857.jpg
    IMG_20191022_122857.jpg
    105,1 КБ · Просмотры: 378
Назад
Вверх