Полная метеостанция DIY Raspberry Pi с программным обеспечением: 7 шагов (с изображениями)
Полная метеостанция DIY Raspberry Pi с программным обеспечением: 7 шагов (с изображениями)
Anonim
Полная метеостанция DIY Raspberry Pi с программным обеспечением
Полная метеостанция DIY Raspberry Pi с программным обеспечением
Полная метеостанция DIY Raspberry Pi с программным обеспечением
Полная метеостанция DIY Raspberry Pi с программным обеспечением

Еще в конце февраля я увидел этот пост на сайте Raspberry Pi.

www.raspberrypi.org/school-weather-station-…

Они создали метеостанции Raspberry Pi для школ. Я очень хотел одну! Но в то время (и я считаю, что до сих пор на момент написания этого) они не были общедоступными (вы должны быть в избранной группе тестировщиков). Что ж, я хотел, и мне не хотелось тратить сотни долларов на существующую стороннюю систему.

Итак, как хороший пользователь с инструкциями, я решил сделать свою собственную !!!

Я провел небольшое исследование и нашел несколько хороших коммерческих систем, на которых я мог бы основать свою работу. Я нашел несколько хороших инструкций, которые помогут с некоторыми концепциями Sensor или Raspberry PI. Я даже нашел этот сайт, который был платным, они разрушили существующую систему Maplin:

www.philpot.me/weatherinsider.html

Перенесемся примерно на месяц, и у меня есть базовая рабочая система. Это полная система Raspberry Pi Weather с базовым оборудованием Raspberry Pi, камерой и некоторыми различными аналоговыми и цифровыми датчиками для проведения наших измерений. Не нужно покупать готовые анемометры или дождемеры, мы делаем свои собственные! Вот его особенности:

  • Записывает информацию в RRD и CSV, поэтому ее можно изменять или экспортировать / импортировать в другие форматы.
  • Использует Weather Underground API, чтобы получать полезную информацию, такую как исторические максимумы и минимумы, фазы луны и восход / закат.
  • Использует камеру Raspberry Pi для фотосъемки раз в минуту (затем вы можете использовать их для создания таймлапсов).
  • Имеет веб-страницы, на которых отображаются данные о текущих условиях и некоторые исторические данные (последний час, день, 7 дней, месяц, год). Тема сайта меняется в зависимости от времени суток (4 варианта: восход, закат, день и ночь).

Все программное обеспечение для записи и отображения информации находится в Github, я даже сделал там отслеживание ошибок, запросы функций:

github.com/kmkingsbury/raspberrypi-weather…

Этот проект был для меня отличным опытом обучения, я действительно погрузился в возможности Raspberry Pi, особенно с GPIO, и я также столкнулся с некоторыми проблемами в обучении. Я надеюсь, что вы, читатель, сможете извлечь уроки из некоторых моих испытаний и невзгод.

Шаг 1: материалы

Материалы
Материалы
Материалы
Материалы
Материалы
Материалы
Материалы
Материалы

Электроника:

  • 9 язычковых переключателей (8 для направления ветра, 1 для датчика дождя, опционально 1 для скорости ветра вместо датчика Холла), я использовал их:
  • 1 датчик Холла (для скорости ветра, называемый анемометром) -
  • Температура (https://amzn.to/2RIHf6H)
  • Влажность (многие датчики влажности поставляются с датчиком температуры), я использовал DHT11:
  • Давление (BMP также поставлялся с датчиком температуры), я использовал BMP180, https://www.adafruit.com/product/1603, этот продукт сейчас снят с производства, но есть эквивалент BMP280 (https://amzn.to/2E8nmhi)
  • Фоторезистор (https://amzn.to/2seQFwd)
  • Чип GPS или USB GPS (https://amzn.to/36tZZv3).
  • 4 сильных магнита (2 для анемометра, 1 для направления, 1 для датчика дождя), я использовал редкоземельные магниты, настоятельно рекомендую) (https://amzn.to/2LHBoKZ).
  • Горстка разных резисторов, у меня есть этот набор, который со временем оказался чрезвычайно полезным:
  • MCP3008 - для преобразования аналоговых входов в цифровые для Raspberry Pi -

Аппаратное обеспечение

  • Raspberry Pi - изначально я использовал 2 с адаптером беспроводной связи, теперь я также получил комплект 3 B + с адаптером питания. (https://amzn.to/2P76Mop)
  • Камера Pi
  • Надежный адаптер питания на 5 В (это оказалось мучительно раздражающим, в конце концов я получил адаптер Adafruit, иначе камера вытягивает слишком много сока и может / повесит Pi, он здесь: https://www.adafruit.com/products / 501)

Материалы:

  • 2 упорных подшипника (или подшипники для скейтборда или роликовых коньков тоже подойдут), я получил их на Amazon:
  • 2 водонепроницаемых корпуса (я использовал электрический шкаф из местного магазина больших коробок), не имеет большого значения, просто нужно найти корпус хорошего размера, в котором будет достаточно места и который защитит все).
  • Некоторые трубы и заглушки из ПВХ (различных размеров).
  • Монтажные кронштейны из ПВХ
  • Пара листов тонкого оргстекла (ничего особенного).
  • пластиковые стойки
  • мини-винты (я использовал болты и гайки №4).
  • 2 Пластиковые украшения для рождественской елки - используются для анемометра, я купил свой в местном вестибюле для хобби.
  • Малый дюбель
  • Небольшой кусок фанеры.

Инструменты:

  • Дремель
  • Клей-пистолет
  • Паяльник
  • Мультиметр
  • Дрель

Шаг 2: основной корпус - Pi, GPS, камера, свет

Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет
Основной корпус - Pi, GPS, камера, свет

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

Шаги:

Выберите корпус, я использовал распределительную коробку, различные проектные коробки и водонепроницаемые корпуса тоже подойдут. Ключевым моментом является то, что в нем достаточно места, чтобы вместить все.

Мой корпус содержит:

  • Raspberry Pi (на стойках) - Требуется чип WIFI, не хочу запускать Cat5e на задний двор!
  • Камера (также на противостояниях)
  • Чип GPS, подключенный через USB (с помощью кабеля FTDI sparkfun: https://www.sparkfun.com/products/9718) - GPS обеспечивает широту и долготу, что приятно, но, что более важно, я могу получить точное время с GPS!
  • два разъема Ethernet / Cat 5 для подключения основного корпуса к другому корпусу, в котором находятся другие датчики. Это был просто удобный способ прокладки кабелей между двумя коробками, у меня примерно 12 проводов, а два cat5 обеспечивают 16 возможных соединений, так что у меня есть место для расширения / изменения вещей.

В передней части моего корпуса есть окно, через которое камера может видеть. Корпус с этим окном защищает камеру, но у меня были проблемы, когда красный светодиод на камере (когда она делает снимок) отражается от оргстекла и появляется на фотографии. Я использовал черную ленту, чтобы смягчить это, и попытался заблокировать его (и другие светодиоды от Pi и GPS), но это еще не 100%.

Шаг 3: «Удаленный корпус» для температуры, влажности и давления

«Удаленный корпус» для температуры, влажности и давления
«Удаленный корпус» для температуры, влажности и давления
«Удаленный корпус» для температуры, влажности и давления
«Удаленный корпус» для температуры, влажности и давления
«Удаленный корпус» для температуры, влажности и давления
«Удаленный корпус» для температуры, влажности и давления

Здесь я хранил датчики температуры, влажности и давления, а также «подключения» для датчика дождя, направления и скорости ветра.

Все очень просто, контакты здесь подключаются через кабели Ethernet к нужным контактам на Raspberry Pi.

Я пытался использовать цифровые датчики там, где мог, а затем к MCP 3008 добавлялись любые аналоговые, для этого требуется до 8 аналогов, что было более чем достаточно для моих нужд, но дает возможность улучшать / расширять.

Этот корпус открыт для воздуха (он должен обеспечивать точную температуру, влажность и давление). Нижние отверстия выскочили наружу, поэтому я обработал некоторые схемы спреем для силиконового конформного покрытия (вы можете получить его в Интернете или в другом месте, например, в Fry's Electronics). Надеюсь, он должен защитить металл от любой влаги, хотя вы должны быть осторожны и не использовать его на некоторых датчиках.

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

Шаг 4: датчик дождя

Дождемер
Дождемер
Дождемер
Дождемер
Дождемер
Дождемер

Я в основном следовал этой инструкции, чтобы сделать фактический калибр:

www.instructables.com/id/Arduino-Weather-St…

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

Ключевые моменты:

  • Датчик представляет собой простой геркон и магнит, который в коде RaspberryPi обрабатывается как нажатие кнопки. Я просто считаю ведра с течением времени, а затем делаю преобразование в «дюймы дождя».
  • Сделайте его достаточно большим, чтобы в нем было достаточно воды, чтобы опрокинуть его, но не настолько, чтобы он мог опрокинуться в большом количестве. На первом проходе я сделал каждый лоток недостаточно большим, чтобы он заполнялся и начинал стекать через край, прежде чем опрокинулся.
  • Я также обнаружил, что остаточная вода может добавить некоторую погрешность в измерения. Это означает, что для полного высыхания потребовалось X капель, чтобы заполнить сторону и опрокинуть ее, после намокания потребовалось Y капель (что меньше X), чтобы заполнить и опрокинуть. Не очень много, но оно сказалось при попытке откалибровать и получить хорошее измерение «1 нагрузка равна количеству».
  • Сбалансируйте его, вы можете обмануть, добавив клей для пистолета-распылителя на нижние концы, если одна сторона намного тяжелее другой, но вам нужно, чтобы это было как можно ближе к сбалансированному.
  • Вы можете видеть на фотографии, что я установил небольшой испытательный стенд, используя несколько губок и деревянный держатель, чтобы проверить и правильно сбалансировать его перед установкой.

Шаг 5: направление ветра

Направление ветра
Направление ветра
Направление ветра
Направление ветра
Направление ветра
Направление ветра

Это был простой флюгер. Я основал электронику на системе Maplin:

www.philpot.me/weatherinsider.html

Ключевые моменты:

Это аналоговый датчик. Восемь герконов в сочетании с различными резисторами делят выходной сигнал на части, чтобы я мог определить, в какой координате находится датчик, по значению. (Концепция объясняется в этом руководстве:

  • После прикручивания части флюгера вам необходимо откалибровать его так, чтобы «это направление было тем, что указывает на север».
  • Я сделал испытательный стенд из дерева, чтобы я мог легко включать и выключать резисторы, которые покрывали для меня весь диапазон значений, что было очень полезно!
  • Я использовал упорный подшипник, он отлично справился, уверен, что обычный подшипник для скейтборда или роликовых коньков тоже подошел бы.

Шаг 6: Скорость ветра

Скорость ветра
Скорость ветра
Скорость ветра
Скорость ветра
Скорость ветра
Скорость ветра

Я снова обратился к сообществу Instructable и нашел его и следил за ним:

www.instructables.com/id/Data-Logging-Anemo…

Ключевые моменты:

  • Вы также можете использовать датчик Холла или переключиться на геркон. Датчик Холла больше похож на аналоговый датчик, поэтому, если вы используете его цифровым способом, например, нажатием кнопки, вам необходимо убедиться, что показание / напряжение достаточно высокое, чтобы оно действовало как истинное нажатие кнопки, а не недостаточное..
  • Размер чашки имеет решающее значение, так же как и длина палочки! Изначально я использовал шары для пинг-понга, и они были слишком маленькими. Я также надел их на длинные палки, которые тоже не сработали. Я был очень расстроен, а затем наткнулся на это поучительное, Пторелли отлично объяснил, и это помогло мне, когда мой первоначальный дизайн не работал.

Шаг 7: Программное обеспечение

Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение

Программное обеспечение написано на Python для записи данных с датчиков. Я использовал некоторые другие сторонние библиотеки Git от Adafruit и других, чтобы получить информацию от датчиков и GPS. Есть также некоторые задания cron, которые также извлекают некоторую информацию API. Большинство объяснено / описано в документации Git в docs / install_notes.txt.

Веб-программное обеспечение написано на PHP, чтобы отображать его на веб-странице, а также использует YAML для файлов конфигурации и, конечно же, инструмент RRD для хранения и графического отображения данных.

Он использует API Weather Underground для получения некоторых интересных данных, которые датчики не могут получить: запись высоких и низких значений, фаз луны, времени заката и восхода солнца, в их API также доступны приливы, которые, как мне показалось, были действительно удобными, но я живу в Остине, штат Техас, очень далеко от воды.

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

Программа проходит смену темы в зависимости от времени суток, всего 4 этапа. Если текущее время составляет + или - 2 часа до восхода или заката, тогда вы получите темы восхода и заката соответственно (сейчас просто другой фон, я, вероятно, сделаю другие цвета шрифта / границы в будущем). Точно так же за пределами этих диапазонов задается дневная или ночная тема.

Спасибо за чтение, если вы хотите увидеть больше фото и видео моих проектов, чем загляните на мой канал в Instagram и YouTube.

Конкурс Pi / e Day
Конкурс Pi / e Day
Конкурс Pi / e Day
Конкурс Pi / e Day

Третий приз в конкурсе Pi / e Day Contest