Комплекс для измерения метеорологических условий

XI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Комплекс для измерения метеорологических условий

Горелкин А.В. 1
1МБОУ "Гимназия № 11 г. Ельца"
Австриевских Н.М. 1
1МБОУ "ГИМНАЗИЯ № 11 Г. ЕЛЬЦА"


Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

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

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

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

Для достижения поставленной цели были сформулированы следующие задачи:

изучить методы и способы прогнозирования погоды;

создать алгоритм, способный решить данную задачу;

создать устройство, способное измерять и выводить на экран показания и прогноз погодных условий;

оценить возможность применения на практике.

Методика исследования

Arduino - это удобная платформа быстрой разработки электронных устройств. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования.

Аппаратная часть включает в себя большое количество видов плат Arduino со встроенными программируемыми микроконтроллерами, а также дополнительные модули.

Программирование микроконтроллеров Arduino осуществляется на языке программирования С/C++. На данный момент Arduino — это, пожалуй, самый удобный способ создания устройств на микроконтроллерах.

Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера или батареи.

Теоретическая часть

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

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

Также был изучен процесс прогнозирования погодный условий.

Проведя анализ информации из дополнительных источников, мною было выявлено, что для прогнозирования изменения погоды необходимо иметь датчик давления и следить за изменением его показаний.

За основу устройства было взята идея коммерческого решения, которое было описано ранее в данном разделе. Для возможности измерения атмосферного давления был применён датчик BMP180, а для вывода данных был использован экран MT-16S2H-2YLG. А также снижена общая стоимость за счет использования алгоритма устройства.

Практическая часть

2.1 Описание комплектующих

К комплектующим устройства относятся:

Arduino Uno

Модуль измерения давления BMP180

Экран MT-16S2H-2YLG

Датчик температуры и влажности DHT-11

Провода

2
.2 Схема устройства

Рисунок 1 – Схема устройства

2.3 Код программы

Импорт библиотек, инициализация датчиков, экрана, переменных, констант, массивов, подключение экрана:

#include <LiquidCrystal.h>

#include <SFE_BMP180.h>

#include <DHT.h>

#define DHTPIN 2

#define DHTTYPE DHT11

SFE_BMP180 pressure;

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lod(3, 4, 8, 9, 10, 11);

char string_lcd[] = " ";

float pressure_arr[100];

unsigned long long start_time;

int count = 1;

bool flag = false;

void setup() {

pressure.begin();

lod.begin(16, 2);

lod.setCursor(0, 0);

lod.print(" Hello!");

delay(3000);

lod.setCursor(0, 0);

lod.print(string_lcd);

dht.begin();

Serial.begin(9600);

pressure_arr[0] = getPressure();

}

Считывание и вывод температуры:

void loop() {

int temp = dht.readTemperature();

lod.setCursor(0, 0);

lod.print(string_lcd);

lod.setCursor(0, 0);

lod.print("Temp: ");

lod.print(temp);

lod.print(" C");

delay(3000);

Считывание и вывод влажности:

int hum = dht.readHumidity();

lod.setCursor(0, 0);

lod.print(string_lcd);

lod.setCursor(0, 0);

lod.print("Humidity: ");

lod.print(hum);

lod.print(" %");

delay(3000);

Считывание и вывод атмосферного давления:

int pressure;

pressure = round(getPressure());

lod.setCursor(0, 0);

lod.print(string_lcd);

lod.setCursor(0, 0);

lod.print("APress: ");

lod.print(pressure);

lod.print(" mmHg");

delay(3000);

Обновление времени старта:

if (!flag){

start_time = millis();

flag = !flag;

}

Сброссчётчика:

if(count > 99){

count = 1;

}

Замена элемента списка на новое значение давления:

if (millis() - start_time > 60000) {

pressure_arr[count] = getPressure();

flag = !flag;

Вычисление и вывод на экран значения изменения давления:

lod.setCursor(0, 1);

lod.print("Diff: ");

lod.print(pressure_arr[count] - pressure_arr[count - 1]);

}

}

Функция получения атмосферного давления:

double getPressure() {

char status;

double T, P, p0, a;

status = pressure.startTemperature();

if (status != 0) {

// ожидание замера температуры

delay(status);

status = pressure.getTemperature(T);

if (status != 0) {

status = pressure.startPressure(3);

if (status != 0) {

// ожидание замера давления

delay(status);

status = pressure.getPressure(P, T);

if (status != 0) {

return (P * 0.75);

}

}

}

}

}

2.4Принципработыустройства

Данное устройство работает по следующему алгоритму - человек включает устройство, затем устройство включается и приступает к работе. Оно выводит на экран данные, полученные с датчиков и предполагаемую погоду. Алгоритм работы представлен на рисунке 2.

Рисунок 2 – Блок-схема «Принцип работы устройства»

Заключение

Проектная работа посвящена созданию устройства для прогнозирования погоды.

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

Данное устройство было испытано. Результаты показали возможность использования инженерного решения на практике.

 

Список литературы

Хромов, Петросянц. Метеорология и климатология – 2006 г.

Васильев А. А. Вильфанд Р. М. Прогноз погоды – 2008г.

Просмотров работы: 72