Разработка цифровой метеостанции

Регистрация и передача метеопараметров на смартфон под управлением android с помощью беспроводной протокола связи Bluetooth. Реализация программного обеспечения контроллера ATmega328 на базе Ардуино на языке объектно-ориентированного программирования.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид статья
Язык русский
Дата добавления 02.04.2019
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Разработка цифровой метеостанции

С.А. Камынин

Д.В. Журавлев

Аннотации

В работе была произведена регистрация и передача метеопараметров на смартфон под управлением android с помощью беспроводной протокола связи Bluetooth. Представлена реализация программного обеспечения контроллера ATmega328 на базе Ардуино на языке объектно-ориентированного программирования С++, применены возможности фреймворка Апп Инвертор.

Ключевые слова: Ардуино; C++; метеостанция; андроид;

development of a DIGITAL WEATHER STATION

S.A. Kamynin1, D.V. Zhuravlev1

1Voronezh State Technical University (VSTU), Voronezh, Russia

Abstract. In the work, the meteorological parameters were registered and transmitted to a smartphone running android using the Bluetooth wireless communication protocol. The implementation of ATmega328 controller software based on the Arduino framework in the language of object-oriented programming with C ++ is presented, the capabilities of the App Invertor framework are AppInvertor смартфон беспроводный программный

Keywords: Arduino; C ++; weather station; android;

Введение

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

Основные технические характеристики применяемых датчиков

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

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

В ходе работы были применены средства представленные ниже:

· Датчик освещенности TEMPT600

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

· Датчик давления BMP280 [1]

· Датчик присутствия HC-SR501

· Bluetooth модуль HC-05 [3]

· Arduino Uno R3

1. Сборка станции

Была произведена сборка всех модулей в единое целое. Таблица подключения датчиков к модулю обработки и управления представлена ниже.

Таблица 1. Подключения датчиков

Название датчиков

Пины Arduino Uno

GND

+5В

A0

+3.3В

4

7

A4

A5

11

10

TEMPT6000

GND

+5В

SIG

-

-

-

-

-

-

-

DHT-11

4

1

-

-

2

-

-

-

-

-

HC-SR502

GND

+5В

-

-

-

OUT

-

-

-

-

BMP280

GND

+5В

-

CSB

-

-

SDA

SCL

-

-

HC-05

GND

+5В

-

-

-

-

-

-

TXD

RXD

Итоги подключения всех датчиков приведены ниже

Рис. 1. - Полная сборка метеостанции

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

Программная реализация проекта

Для управляющего микроконтроллера была реализована программа на языке С++в среде разработки ArduinoIDE [2], позволяющая пересылать снятые с датчиков параметры через Bluetoothна смартфон под управлением Android. Для лучшего восприятия и понимания, весь код был прокомментирован и разбит на блоки

/////////////////////////////////////////////////////////////////////////

//Блок Датчика Освещенности

#define Pin_Osveshhennosti A0

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

//БлокДатчикаПрисутствия

#define signal_prisutstviya 7

#define svetodiod_obnaruzheniya 3

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////

//Блокнастройки Bluetooth

// подключениебиблиотекивиртуального COM порта

#include <SoftwareSerial.h>

#include <Time.h>

//Подключаем выход TX на плате Arduino

int gRxPin = 10;

//Подключаем выход RX на плате Arduino

int gTxPin = 11;

//Инициализация порта

SoftwareSerial BTSerial(gRxPin, gTxPin);

/////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОК ДАТЧИКА Давления и высоты над уровнем моря

#include <Wire.h>

#include <SPI.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BMP280.h>

// работаем по шине I2C

Adafruit_BMP280 bme;

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОК ДАТЧИКА Влажности

#include <TroykaDHT.h>

// создаём объект класса DHT

// передаём номер пина к которому подключён датчик и тип датчика

// типы сенсоров: DHT11, DHT21, DHT22

DHT dht(4, DHT11);

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//Блок объявления переменных управления в программе

// переменная для принятия управляющей цифры со смартфона

int prinyatoe_chislo;

// переменная для хранения управляющей цифры со смартфона

int vibor_datchika;

///////////////////////////////////////////////////////////

void setup() {

/////////////////////////////////////////////////////////////////////////

//БлокДатчикаПрисутствия

//инициализациясветодиода

pinMode(svetodiod_obnaruzheniya, OUTPUT);

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

//Блок для на стройки Bluethooth

// устанавливаем скорость передачи данных для последовательного порта,

// созданного библиотекой SoftwareSerial

// 38400 - для метода №1, 9600 - для метода №2

BTSerial.begin(38400);

Serial.begin(9600);

delay(500);

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

//Блок для на стройки TEMP6000 - датчика освещенности

pinMode(Pin_Osveshhennosti, INPUT);

/////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОК ДАТЧИКА ВЛАЖНОСТИ

dht.begin();

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОК ДАТЧИКА Давления и высоты над уровнем моря

if (!bme.begin(0x76))

{

Serial.println("Не удалось найти действующий датчик BMP280, проверьте подключение!");

while (1);

}

//////////////////////////////////////////////////////////

}

void loop()

{

// проверка условия возврата количество непрочитанных байт (символов),

// принятых через программный последовательный порт.

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

if (BTSerial.available())

{

prinyatoe_chislo = BTSerial.read();

Serial.write(prinyatoe_chislo);

switch(prinyatoe_chislo)

{

case '1':

vibor_datchika = 1;

digitalWrite(svetodiod_obnaruzheniya, LOW);

break;

case '2':

vibor_datchika = 2;

digitalWrite(svetodiod_obnaruzheniya, LOW);

break;

case '3':

vibor_datchika = 3;

digitalWrite(svetodiod_obnaruzheniya, LOW);

break;

case '4':

vibor_datchika = 4;

digitalWrite(svetodiod_obnaruzheniya, LOW);

break;

case '5':

vibor_datchika = 5;

break;

case '6':

vibor_datchika = 6;

digitalWrite(svetodiod_obnaruzheniya, LOW);

break;

}

}

//////////////////////////////////////////////////////////

//БЛОКУРОВНЯОСВЕЩЕННОСТИ

if (vibor_datchika == 1)

{

// считываемуровеньосвещённости.

int light_value = analogRead(Pin_Osveshhennosti);

// пересчетвлюксы

float light = light_value * 0.0976;

BTSerial.println((int)round(light));

Serial.println((int)round(light));

delay(1000);

}

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОКДАТЧИКАВЛАЖНОСТИ

if (vibor_datchika == 2)

{

// считывание данных с датчика

dht.read();

// проверяем состояние данных

if(dht.getState()== DHT_OK)

{

// всё OK

BTSerial.println((int)round(dht.getHumidity()));

Serial.println((int)round(dht.getHumidity()));

delay(1000);

}

}

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОКДАТЧИКАТЕМПЕРАТУРЫ

if (vibor_datchika==3)

{

// считывание данных с датчика

dht.read();

// проверяем состояние данных

if(dht.getState()== DHT_OK)

{

// всё OK

BTSerial.println((int)round(dht.getTemperatureC()));

Serial.println((int)round(dht.getTemperatureC()));

delay(2000);

}

}

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОКДАТЧИКАДавления

if (vibor_datchika==4)

{

BTSerial.println((long)round(bme.readPressure()));

Serial.println((long)round(bme.readPressure()));

delay(1000);

}

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОК ДАТЧИКА Высоты над уровнем моря

if (vibor_datchika==6)

{

//Корректировка высоты для данной геолокациии

BTSerial.println((int)round(bme.readAltitude(1013.25)));

Serial.println((int)round(bme.readAltitude(1013.25)));

delay(1000);

}

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

//БЛОК ДАТЧИКА Обнаружения движения

if (vibor_datchika==5)

{

//Считываем пороговое значение с порта 7

if(digitalRead(signal_prisutstviya))

{

//Сигналсдатчикадвижения

BTSerial.println("Yes");

Serial.println("Yes");

//зажиганиеконтрольногосветодиода

digitalWrite(svetodiod_obnaruzheniya, HIGH);

delay(1000);

}

else

{

//Нетсигнала

BTSerial.println("No");

Serial.println("No");

//гашение контрольного светодиода

digitalWrite(svetodiod_obnaruzheniya, LOW);

delay(1000);

}

}

//////////////////////////////////////////////////////////

}

Также была разработана программа приема и отображения данных, принятых от метеостанции, на экране смартфоне под управлением Android в среде AppInvertor [5]. Добавлены комментарии и алгоритмы работы данного приложения.

Первоначально была собрана общая функциональная схема приложения, основываясь на стандартных элементах управления

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

1) Кнопка "1"

2) Кнопка "2"

3) Кнопка "3"

4) Кнопка "4"

5) Кнопка "5"

6) Кнопка "6"

7) Кнопка "7"

Алгоритм для кнопок с 1 по 7:

· При нажатии на клавишу, она переходит в активное состояние

· Запускается таймер

· Посылается информация запуска необходимого датчика

· Все остальные переходят в состояние по умолчанию

· В Label 2 отображается информация о системе измерения информации поступающей с датчика

· При нажатии на выпадающий список в нем отображаются доступные Bluetooth устройства, из которых мы выбираем метеостанцию

8) Выбор Bluetoothиз списка доступных

Алгоритм работы:

· При нажатии на выпадающий список в нем отображаются доступные Bluetoothустройства, из которых мы вбираем метеостанцию

9) Начальная инициализация экрана и кнопок поле выбора устройства

Алгоритм работы:

· После присоединения к выбранному Bluetooth устройству, мы устанавливаем все кнопки в выключенное положение

· Если подключения не произошло, выводится текст о необходимости пере-подключения.

10) Обработка таймера при включении

Алгоритм работы:

· При включении приложения переводим таймер в режим выключено

11) Обработка таймера при срабатывании таймера

Алгоритм работы:

· При срабатывании таймера проверяется условии подключения смартфона к станции.

· При положительном ответе, сравниваем кол-во передаваемых байтов с 0

· Если больше 0, то записываем передаваемое значение в Label 1 .

Результаты работы приложения приведены ниже

Заключение

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

Литература

1. Brian W.E. Arduino Programming. Notebook.California, San Francisco. 2007 - 40 c.

2. Петин В.А. Проекты с использованием Arduino. СПб.:БХВ-Петербург. 2014 - 401 с

3. Гололобов В.Н. С чего начинаются роботы? СПб.: Наука и Техника СПб. 2018 -368 с.

4. Соммер У. Программирование микроконтроллерных плат Arduino. СПб.:БХВ-Петербург. 2012 - 256 с.

5. Винницкий Ю. Scratch и Arduino для юных программистов и конструкторов /

6. Винницкий Ю., Григорьев А. СПб.: БХВ-Петербург. 2018 - 176 с

References

1. Brian W.E. Arduino Programming. Notebook. California, San Francisco. 2007 - 40 c.

2. Petin V.A. Projects using Arduino. St. Petersburg: BHV-Petersburg. 2014 - 401 s

3. Gololobov V.N. Where do robots begin? SPb .: Science and Technology of St. Petersburg. 2018 -368 pp.

4. Sommer U. Programming of microcontroller boards Arduino. St. Petersburg: BHV-Petersburg. 2012 - 256 with.

Vinnytsky Yu Scratch and Arduino for young programmers and designers /Vinnitsky Yu., Grigoriev A. St. Petersburg: BHV-Petersburg. 2018 - 176 s

Размещено на Allbest.ru

...

Подобные документы

  • Осуществление беспроводной передачи данных по технологиям ближней связи, применяемые в мобильных устройствах. IrDA: преимущества и недостатки. Bluetooth для мобильной связи, потребность в устройствах, частотный конфликт. Системные и технические аспекты.

    реферат [29,3 K], добавлен 23.04.2009

  • Анализ принципов построения сети цифровой связи и структуры комплекса "Обь-128Ц". Принципы построения групповых каналов, схемы их организации и программного обеспечения. Разработка алгоритмов программирования диспетчерских и промежуточных пунктов.

    дипломная работа [7,0 M], добавлен 05.03.2011

  • Упрощенная модель системы регулировки. Стандартный конструктив Ардуино с платами расширения. Внешний вид Ардуино Uno. Среда разработки Arduino. Встроенный текстовый редактор программного кода. Программа управления шаговым двигателем в однофазном режиме.

    курсовая работа [4,5 M], добавлен 02.06.2015

  • Понятие беспроводной связи, организация доступа к сети связи, к интернету. Классификация беспроводных сетей: спутниковые сотовые модемы, инфракрасные каналы, радиорелейная связь, Bluetooth. WI-FI - технология передачи данных по радиоканалу, преимущества.

    реферат [350,6 K], добавлен 06.06.2012

  • Что такое ТСР? Принцип построения транкинговых сетей. Услуги сетей тракинговой связи. Технология Bluetooth - как способ беспроводной передачи информации. Некоторые аспекты практического применения технологии Bluetooth. Анализ беспроводных технологий.

    курсовая работа [139,1 K], добавлен 24.12.2006

  • Что такое Bluetooth? Существующие методы решения отдельных задач. "Частотный конфликт". Конкуренты. Практический пример решения. Bluetooth для мобильной связи. Bluetooth-устройства. Декабрьский бум. Кто делает Bluetooth-чипы? Харольд Голубой Зуб.

    реферат [244,5 K], добавлен 28.11.2005

  • Общие сведения о Bluetooth’е, что это такое. Типы соединения, передача данных, структура пакета. Особенности работы Bluetooth, описание его протоколов, уровня безопасности. Конфигурация профиля, описание основных конкурентов. Спецификации Bluetooth.

    контрольная работа [516,7 K], добавлен 01.12.2010

  • Обзор домашних метеостанций. Тенденции развития домашней метеостанции. Анализ схемы электрической принципиальной. Разработка технического задания. Технологический процесс сборки домашней метеостанции. Технико-экономическое обоснование разработки.

    дипломная работа [438,4 K], добавлен 03.08.2014

  • История создания технологий беспроводного доступа. Описания набора стандартов связи для коммуникации в беспроводной локальной сетевой зоне. Исследование принципа работы беспроводной связи Wi-Fi. Анализ рынка инфраструктуры Wi-Fi операторского класса.

    презентация [854,9 K], добавлен 28.10.2014

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

    курсовая работа [519,6 K], добавлен 05.12.2014

  • История создания, принцип действия Bluetooth. Преимущества технологии Wi-Fi, разновидности соединений. Построение сети беспроводного доступа с установлением точки доступа и беспроводных Wi-Fi адаптеров. Настройка оборудования и проверка работоспособности.

    дипломная работа [3,7 M], добавлен 29.04.2014

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

    отчет по практике [292,1 K], добавлен 12.09.2019

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

    дипломная работа [830,0 K], добавлен 14.10.2010

  • Анализ подходов к построению беспроводных корпоративных сетей связи. Разработка проекта беспроводной сети для управляющей компании "ЭКС" на базе программных и аппаратных решений Cisco. Расчет дополнительных возможностей для блока "С" ТРК "Семья".

    дипломная работа [5,5 M], добавлен 05.07.2012

  • Естественнонаучные открытия в области электротехники. Первые устройства беспроводной связи. Формирование научных основ радиотехники. Начало беспроводной связи. Внедрение радиостанций в массовое производство. История радио и "беспроводной телеграфии".

    реферат [63,2 K], добавлен 10.06.2015

  • Классификация цифровых измерительных приборов, разработка структурной схемы устройства измерения временных величин сигналов. Описание базового микроконтроллера и программного обеспечения. Аппаратно-программные средства контроля и диагностики устройства.

    дипломная работа [647,7 K], добавлен 20.10.2010

  • Методика разработки схемы устройства для преобразования параллельного восьмиразрядного кода в длительность ШИМ-сигнала. Особенности создания программного обеспечения с помощью команд контроллера AT90S2313. Его проверка и отладка в среде AVR Studio 4.0.

    контрольная работа [114,6 K], добавлен 07.08.2013

  • Цифровая последовательность из непрерывного сигнала с помощью алгоритмов работы систем IKM-30. Расчет количества абонентских модулей и плат на центральном узле и выносах. Структура узла связи на базе цифрового коммутационного оборудования SI-2000.

    контрольная работа [369,7 K], добавлен 28.03.2009

  • Современные системы телекоммуникаций; основные стандарты подвижной связи GSM, CDMA 200, UMTS. Использование операторами сотовых сетей новых услуг и технологий 3-го поколения. Характеристики новейших стандартов беспроводного доступа: Wi-Fi, Bluetooth.

    учебное пособие [4,6 M], добавлен 08.11.2011

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

    дипломная работа [3,2 M], добавлен 25.04.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.