Файл: Метеостанция при помощи платы Arduino.doc

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 281

Скачиваний: 19

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


5. Интеллектуальные системы - с использованием искусственного интеллекта метеостанции могут адаптироваться под конкретные условия и автоматически улучшать качество прогнозов.

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

Выводы


В ходе первого раздела удалось установить определение «метеостанции», узнать о её принципах работы.

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

Обозначили необходимые требования для созданного макета метеостанции.

2 Разработка аппаратной части действующего макета метеостанции

2.1 Архитектура и принцип работы разрабатываемого макета


На рисунке 1 изображена монтажная схема собранного макета.



Рисунок 1 – Монтажная схема системы

После того, как ручка потенциометра(1) делает поворот, плата Ардуино уно считывает данные и запускает программу. Как только данные считываются через датчик температуры(2), на дисплеи(3) отображаются результаты. Так же все данные, полученные с датчика, будут отображаться через светодиод(4) различными цветами в зависимости от значений, которые получены.

2.2 Подбор элементной базы


Для считывания данных о температуре необходим соответствующий датчик. Датчик, используемый в этом проекте, — это относительно дешевая модель DHT11, которая измеряет и влажность, и температуру. В этом модуле используется емкостный датчик влажности и резистивный температурный датчик для считывания параметров окружающей среды. Модуль передает результаты замеров плате Arduino в виде электрических импульсов, а Arduino преобразует их в понятные человеку значения и выводит на дисплей.

Так же понадобится светодиод. Для макета можно взять rgb-светодиод.

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

Таблица 1 – Перечень необходимого оборудования для реализации действующего макета метеостанции:

№ п/п

Наименование оборудования

Цена, руб.

Кол-во, шт.

Сумма, руб.

1.

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

150

1

150

2.

Плата UNO R3

400

1

400

3.

Соединительные провода

70

8

560

4.

Cветодиод RGB 5 мм

31

1

31

5.

Макетная плата SYB-46

300

1

300

6.

Резистор 0,25 w

25

4

100

7.

Потенциометр WH148 5кОм 15мм

170

1

170

8.

OLED дисплей с разрешением 128х64px

800

1

800




ИТОГО:







2511

2.3 Сборка действующего макета


Для успешной работы системы необходимо грамотно подключать все датчики. Установим датчик DHT11 на макетную плату. Контакты датчика DHT11 нумеруются от 1 до 3 справа налево, когда лицевая сторона обращена к нам. Подключим ножку 1 к шине питания 5 В, ножку 2 соединим непосредственно с контактом 8 платы Arduino и подключим ножку 3 к шине заземления.

Далее подключим rgb-светодиод: одну ножку диода следует вывести на землю, а другие три (предварительно добавив в схему резисторы) на цифровые выходы для назначения различных цветов.

Затем установим ЖК-дисплей на макетную плату и подключим его контакты к Arduino. Шины заземления и питания 5 В будут содержать несколько подключений.

Установим потенциометр на макетную плату и подключим его центральный контакт к контакту 3 ЖК-дисплея. Подключим один внешний контакт потенциометра к шине питания 5 В, а другой — к шине заземления.

В завершении подключим шины макетной платы к контактам GND и 5V платы Arduino. Убедимся, что цепь соответствует схеме, показанной на рис. 1.

Выводы


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

3 Разработка программного обеспечения для действующего макета метеостанции

3.1 Архитектура разрабатываемого программного обеспечения


Блок-схема проекта изображена на рисунке 2.



Рисунок 2 - Блок-схема проекта

Объявляем переменную temp (1), в которую будем записывать данные о температуре и влажности. После объявления переменной, выведем на дисплей приветствие “Hello” (2), тем самым проверим работу дисплея. Далее напишем формулу для temp (3). Выведем наши показания на дисплей, попутно обозначив переход на следующую строку после приветствия (4). Затем реализуем работу rgb-светодиода. В пунктах (5) и (7) обозначим условия для того или иного цвета, а в пунктах (6), (8) и (9) – вывод этих цветов.

3.2 Реализация программного обеспечения


До блока setup объявим константы для выходов, а также объявим переменную temp, куда будут записываться показания с датчика.

#include

#define ledB 9

#define ledR 10

#define ledG 8

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

float temp;

В блоке setup обозначим необходимые пины на плате Arduino UNO, функцией Serial.begin начнем считывать данные в монитор порта программы Arduino IDE.

void setup() {

lcd.begin(16, 2);

pinMode(A0, INPUT);

lcd.print("Hello!");

pinMode(ledR,OUTPUT);

pinMode(ledG,OUTPUT);

pinMode(ledB,OUTPUT);}
В блоке loop() считываем показания датчика, после чего записываем их на экран. Затем устанавливаем нужный цвет на rgb-светодиод в зависимости от наших показаний.

void loop() {

temp=-40 + 0.488155 * (analogRead(A0) - 20);

lcd.setCursor(0, 1);

lcd.print("temp=");

lcd.print(temp);

if(temp>0 && temp<=20){

digitalWrite(ledR,HIGH);

digitalWrite(ledG,LOW);

digitalWrite(ledB,LOW);

}

else if(temp>20 && temp<=30){

digitalWrite(ledR,LOW);

digitalWrite(ledG,HIGH);

digitalWrite(ledB,LOW);

}

else{

digitalWrite(ledR,LOW);

digitalWrite(ledG,LOW);

digitalWrite(ledB,HIGH);

}

}

3.3 Тестирование работы стенда


Чтобы убедиться, что стенд работает правильно – протестируем его. Подключим плату Arduino к компьютеру и загрузим программу (рисунок 3).

Рисунок 3 – Макет схемы, собранный в жизни



Заключение


В ходе проделанной работы удалось разработать действующий макет метеостанции.

Были решены следующие задачи:

1) Проведен анализ принципа работы метеостанций, их истории и современного направления развития;

2) Сформированы функциональные требования к действующему макету метеостанции;

3) Выполнено проектирование аппаратной части действующего макета, проведен подбор элементной базы, реализовано размещение элементов на каркасе макета;

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

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

Список использованной литературы


  1. Банк решений умного города // Умный город. [2020—2020]. URL:https://russiasmartcity.ru/ (дата обращения 18.12.2019).

  2. Умный город: развитие в России // TADViser [2005—2020]. URL: http://www.tadviser.ru/index.php/Статья:Умный_город:_развитие_в_России (дата обращения 19.12.2019).

  3. Суржко О.А., Подгурская В.П., Чеботникова Е.А.Климатология и метеорология: Методические указания к лабораторным работам / Юж.-Рос. гос. техн. ун-т(НПИ). − Новочеркасск: ЮРГТУ( НПИ), 2010. – 48с

  4. Восканян К.Л., Кузнецов А.Д., Сероухова О.С. Автоматические метеорологические станции. Часть 1. Тактико-технические характеристики. Учебное пособие. ‒ СПб.: РГГМУ, 2016. – 195 с

  5. Дробжева Я.В., Волобуева О.В. Метеорологические прогнозы и их экономическая полезность. учебное пособие /Дробжева, Волобуева. – СПб.: Адмирал, 2016



Приложения


#include

#define ledB 9

#define ledR 10

#define ledG 8

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

float temp;

void setup(){

lcd.begin(16, 2);

pinMode(A0, INPUT);

lcd.print("Hello!");

pinMode(ledR,OUTPUT);

pinMode(ledG,OUTPUT);

pinMode(ledB,OUTPUT);

}

void loop() {

temp=-40 + 0.488155 * (analogRead(A0) - 20);

lcd.setCursor(0, 1);

lcd.print("temp=");

lcd.print(temp);

if(temp>0 && temp<=20){

digitalWrite(ledR,HIGH);

digitalWrite(ledG,LOW);

digitalWrite(ledB,LOW);}

else if(temp>20 && temp<=30){

digitalWrite(ledR,LOW);

digitalWrite(ledG,HIGH);

digitalWrite(ledB,LOW);}

else{

digitalWrite(ledR,LOW);

digitalWrite(ledG,LOW);

digitalWrite(ledB,HIGH);}

}