Оглавление:
Видео: Погодная станция с Arduino, BME280 и дисплеем для просмотра тренда за последние 1-2 дня: 3 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Привет!
Здесь уже введены метеостанции в инструкциях. Они показывают текущее атмосферное давление, температуру и влажность. Чего им пока не хватало, так это презентации курса в течение последних 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 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: результаты
Одно слово к видео: чтобы сделать расширение графика видимым, я уменьшил временные шаги до 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:
другие проекты по физике:
В этом смысле Эврика…
Рекомендуемые:
3D-ноутбук, который я откладывал последние 6 месяцев: 3 шага
3D-ноутбук, который я откладывал последние 6 месяцев: это 3D-дизайн ноутбука, над которым я перестал работать около 6 месяцев назад. И вот, около недели назад я начал его дорабатывать. Надеюсь, вам понравится!: D
Погодная / матричная лампа: 42 ступени (с изображениями)
Погодная / матричная лампа: в этом руководстве я описываю дизайн, конструкцию и программирование светодиодной матричной лампы. Дизайн напоминает обычный светильник, но в интерьере заменена матрица из светодиодов ws2812. Управление осуществляется с помощью Raspberry Pi, поэтому т
Погодная станция с использованием одноплатной платы - SLabs-32: 5 шагов
Погодная станция с использованием одной платы - SLabs-32: В этом руководстве мы будем создавать метеостанцию, которая измеряет температуру, влажность воздуха и влажность почвы с помощью нашей платы SLabs-32, которая также отправляет эти данные в облако Cayenne для сбора данных. Мы также одновременно получаем валюту
Snowmanthesizer - вещь дня - день 2: 8 шагов (с изображениями)
Snowmanthesizer - вещь дня - день 2: Накануне вечером я вырезал бесконечные листы наклеек на роботов, чтобы порадовать всех детей. Да, просто отрезаю, занимаясь своими делами, и тут наш бесстрашный лидер Эрик передает мне в руки три странно выглядящих пластмассовых предмета. Он сообщает мне, что
Как вернуться к исходному интерфейсу для просмотра инструкций: 3 шага
Как вернуться к исходному интерфейсу для просмотра Instructables: Если вы не поняли, интерфейс Instructables для просмотра вещей был изменен на рекомендуемые, популярные, рейтинговые | последние, просмотры и дух времени. Я видел пару жалоб на то, что им не нравится это изменение, поэтому всем: вот где мы изменились