Разработка цифровой метеостанции
Регистрация и передача метеопараметров на смартфон под управлением 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