Оглавление:

Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня: 3 шага (с изображениями)
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня: 3 шага (с изображениями)

Видео: Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня: 3 шага (с изображениями)

Видео: Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня: 3 шага (с изображениями)
Видео: BME280 | ОБЗОР и ИСПОЛЬЗОВАНИЕ | Arduino 2024, Ноябрь
Anonim
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня
Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня

Привет!

Здесь уже введены метеостанции в инструкциях. Они показывают текущее атмосферное давление, температуру и влажность. Чего им пока не хватало, так это презентации курса в течение последних 1-2 дней. Этот процесс будет иметь то преимущество, что вы можете не только графически прочитать текущие значения, но и сразу увидеть, как они изменились за последние 1-2 дня. В результате, например, распознается возможное изменение погоды, поскольку давление воздуха сильно меняется. Однако также признаются общие отношения между измеряемыми величинами.

Например, влажность уменьшается при повышении температуры воздуха. Это потому, что теплый воздух может поглощать больше влаги, чем холодный. Если относительная влажность составляет около 60% при 20 ° C, то при 25 ° C воздух может абсорбировать больше влажности в абсолютном выражении. Таким образом, относительная влажность больше не 60%, а, например, всего 50%.

Также вы можете видеть, в какое время суток следует ожидать самых высоких или низких температур. Или что влажность резко повышается, когда идет дождь. Идеально подходит для метеоролога-любителя. Буду очень рад, если вы поделитесь своим опытом в комментариях.

Шаг 1: Детали

Запчасти
Запчасти
Запчасти
Запчасти
Запчасти
Запчасти
Запчасти
Запчасти

Для этой метеостанции вам понадобится всего 5 деталей:

* Arduino mega: ebay arduino mega

* Датчик погоды BME280: ebay BME280

* Дисплей 320x480 пикселей для Arduino Mega: дисплей ebay 320x480

* Источник питания + 9 В: источник питания ebay

* Электропровод

Общая стоимость составляет менее 25 долларов.

Шаг 2: Код Arduino

Код Arduino
Код Arduino
Код Arduino
Код Arduino
Код Arduino
Код Arduino

Схема очень простая. Вам просто нужно подключить датчик к Arduino Mega следующим образом:

Вин + 5В

GND GND

SDA контакт 20

SCL контакт 21

Дисплей подключается только к соединительной планке на Arduino Mega.

Вот ссылки на необходимые вам библиотеки arduino:

BME280-библиотека:

общая сенсорная библиотека:

Как я уже сказал, сердцем этой метеостанции является графическое представление данных о погоде. На данный момент значения обновляются каждые 6 минут, а графики сдвинуты на 1 пиксель влево. Таким образом можно записать последние 1,5 дня. Конечно, это можно изменить в любой момент. Только тогда необходимо изменить значение 360000 мс (= 6 минут) и, конечно, ось времени в часах. Вот строки, которые вам нужно изменить:

time_neu = миллис ();

if (time_neu <time_alt) // чтобы избежать проблем после миллис-переполнения

{

time_next = 0 + 360000;

}

if (time_neu> time_next && time_next> = 360000) // новое измерение через 6 минут

{

Я решил оставить шкалы температуры, атмосферного давления и влажности без изменений, поскольку они позволяют быстро оценить, с течением времени, является ли давление воздуха высоким, средним или низким, в зависимости от местоположения текущих показаний. Если бы я снова и снова настраивал шкалу, я бы не узнал этого с первого взгляда. Ось времени расположена в позиции y = 290 пикселей. Метки на оси Y отстоят друг от друга на 45 пикселей. Если вы хотите отображать давление воздуха от 940 мбар до 1000 мбар с шагом 10 мбар, действуйте следующим образом:

Сначала составим общее уравнение y = k * x + d. Теперь вы используете эти 2 пары значений (x = 940, y = 290) и (x = 950, y = 245). Это дает 2 уравнения с двумя неизвестными k и d: 290 = k * 940 + d и 245 = k * 950 + d. Вычитая оба уравнения, получаем: 290 - 245 = k * 940 - k * 950 + d - d. Таким образом, неизвестное d обращается в нуль, и мы получаем для k = - 45/10 = -4,5. Это значение k помещается в одно из двух исходных уравнений: 290 = -4,5 * 940 + d. Таким образом получается значение d, а именно d = 4520.

Если вы хотите, чтобы давление воздуха, например, составляло от 955 до 985 мбар, вы помещаете пары значений (955, 290) и (960, 245) в уравнение прямой линии. Тогда получается для k = -9 и d = 8885. Аналогичным образом вычисляются уравнения прямой линии для температуры и влажности воздуха. Эти 3 уравнения появляются здесь в программе:

для (я = 0; я <= 348; я ++)

{

если (влажность ! = -66)

{

myGLCD.setColor (255, 0, 0);

//myGLCD.drawPixel(81 + i, -4.5 * temperature + 200);

myGLCD.drawLine (81 + i, -4,5 * температура + 200,81 + i + 1, -4,5 * температура [i + 1] + 200);

myGLCD.setColor (0, 255, 0);

//myGLCD.drawPixel(81 + i, -4,5 * влажность + 380);

myGLCD.drawLine (81 + i, -4,5 * влажность + 380,81 + i + 1, -4,5 * влажность [i + 1] + 380);

myGLCD.setColor (0, 0, 255);

//myGLCD.drawPixel(81 + i, -4.5 * pressure + 4520);

myGLCD.drawLine (81 + i, -9.0 * давление + 8885, 81 + i + 1, -9.0 * давление [i + 1] + 8885);

}

}

Шаг 3: результаты

Image
Image
Результаты, достижения
Результаты, достижения
Результаты, достижения
Результаты, достижения

Одно слово к видео: чтобы сделать расширение графика видимым, я уменьшил временные шаги до 1 секунды. Поэтому дисплей сильно мерцает. На самом деле шаги по времени составляют 6 минут. Так что мерцания не видно…

Буду рад, если тот или иной метеоролог-любитель попробует переделать мою метеостанцию. Сравнение с официальными измерительными станциями (например, Университет Граца / Австрия) показывает удобство использования измерительных кривых.

Кроме того, я был бы рад, если бы вы проголосовали за меня в конкурсе датчиков и за другие мои инструкции в конкурсе по науке в классе:

  • https://www.instructables.com/id/DIY-LED-photomete…
  • www.instructables.com/id/DIY-Wind-Tunnel-a…
  • www.instructables.com/id/Simple-Autorange-…

Большое спасибо за это.

Если вас интересуют другие проекты по физике, вот мой канал на YouTube:

другие проекты по физике:

В этом смысле Эврика…

Рекомендуемые: