Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект Головков И.Е. 12002108.docx
Скачиваний:
13
Добавлен:
26.06.2024
Размер:
309.76 Кб
Скачать

1.2 Требования пользователя и построение функциональной спецификации

Для обработки данных от датчиков BMP280 и DHT11 на основе модуля Arduino Uno R3 и вывода результатов на ЖК- и OLED-дисплеи необходимо решить следующие особенности:

1. Подключение датчиков BMP280 и DHT11 к модулю Arduino Uno R3.

2. Считывание данных о температуре, влажности и атмосферном давлении с датчиков.

3. Обработка и анализ полученных данных.

4. Вывод результатов обработки на ЖК-дисплей и OLED-дисплей.

Для подключения датчиков BMP280 и DHT11 к модулю Arduino Uno R3 необходимо использовать соответствующие библиотеки и драйверы, которые обеспечивают взаимодействие между датчиками и платформой.

Датчик BMP280 имеет следующие выводы: VCC, GND, SCL и SDA. Для подключения датчика к Arduino Uno R3 необходимо соединить VCC с 5V, GND с GND, SCL с пином A5 (аналоговый вход) и SDA с пином A4 (аналоговый вход).

Датчик DHT11 имеет следующие выводы: VCC, DATA и GND. Для подключения датчика к Arduino Uno R3 необходимо соединить VCC с 5V, GND с GND, а DATA с пином 2 (цифровой вход).

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

ЖК-дисплей имеет следующие выводы: VCC, GND, SDA и SCL. Для подключения дисплея к Arduino Uno R3 необходимо соединить VCC с 5V, GND с GND, SDA с пином A4 (аналоговый вход) и SCL с пином A5 (аналоговый вход).

OLED-дисплей имеет следующие выводы: VCC, GND, SDA и SCL. Для подключения дисплея к Arduino Uno R3 необходимо соединить VCC с 3.3V или 5V, GND с GND, SDA с пином A4 (аналоговый вход) и SCL с пином A5 (аналоговый вход).

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

  1. Проектирование системы

2.1 Проектирование аппаратной части

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

  • BMP180

  • DHT11

  • OLED-дисплей

  • LCD-дисплей

  • ARDUINO UNO V3

Датчик BMP180, представляющий собой аналог сенсора BMP280, применяется в качестве барометрического датчика для определения атмосферного давления.

Датчик DHT11 служит для фиксации показателей влажности и температуры воздушной среды.

OLED-дисплей OLED12864I2C используется для визуального представления информации, собранной с датчиков.

ЖК-дисплей JHD-2X16-I2C обладает возможностью отображения информации в символьном виде на двухстрочном дисплее формата 16x2.

Микроконтроллерная плата ARDUINO UNO V3 служит управляющим центром системы, выполняя функции считывания, обработки и передачи данных с датчиков на дисплеи.

Структурная схема представлена на рисунке 1.

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

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

На рисунке 2 представлена принципиальная схема.

Рисунок 2 – Принципиальная схема

    1. Проектирование программной части

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

  1. Подключение библиотек

Участок кода с подключаемыми библиотеками представлен на рисунке 3.

Рисунок 3 – Подключаемые библиотеки

DHT.h позволяет взаимодействовать с датчиком влажности и температуры DHT11. Wire.h необходима для работы с шиной I2C, по которой будут общаться Arduino с OLED-дисплеем и чипом давления BMP180. Adafruit_BMP085.h содержит функции для управления датчиком BMP180. DFRobot_RGBLCD1602.h используется для управления ЖК-дисплеем RGB LCD 1602. iarduino_OLED.h Предназначена для работы с OLED-дисплеем.

  1. Прописывание макросов и создание объектов:

Участок кода с прописанными макросами и объектами представлен на рисунке 4.

Рисунок 4 – Прописываемые макросы и объекты

В этом участке кода пины и типы датчиков определяются для последующего управления и считывания данных, а также создаются экземпляры классов для OLED-дисплея, ЖК-дисплея, BMP180 и DHT11 для их инициализации и управления.

  1. Инициализация компонентов и дисплеев:

Участок кода с инициализацией компонентов и дисплеев представлен на рисунке 5.

Рисунок 5 – Инициализация компонентов и дисплеев

В этом участке кода производится начальная настройка компонентов для общения с датчиками и дисплеями. Настраивается скорость связи через последовательный порт для отладки, инициализируются дисплеи и датчики и очищается ЖК-дисплей.

4. Главный рабочий цикл программы loop():

В этом участке кода в бесконечном цикле с интервалом в 2 секунды выполняется сбор данных с датчиков DHT11 и BMP180. Считанные показатели температуры, влажности и давления выводятся на ЖК- и OLED-дисплеи. Здесь реализовано очищение дисплеев перед каждым новым циклом показа данных, установка курсора, считывание данных и их вывод на экраны.

Участок кода с главным рабочим циклом программы представлен на рисунке 6.

Рисунок 6 – Главный рабочий цикл программы

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