Структурированные компьютерные системы

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.02.2021
Размер файла 3,0 M

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

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

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

Перечень условных обозначений, сокращений и терминов

Микроконтроллер (МК) - микросхема, предназначенная для управления электронными устройствами.

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

ESP8266 - микроконтроллер китайского производителя Espressif с интерфейсом Wi-Fi.

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

Blynk - приложение, которое позволяет превратить обычный смартфон под управлением Android или iOS в настоящий пульт управления самостоятельно разработанной электроники.

Введение

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

И именно в рамках дисциплины «Программирование СКС» можно получить теоретические знания, а также практические навыки принципов работы микропроцессора и микропроцессорных устройств, а также приобретаются новые знания по таким смежным дисциплинам таким как: электроника, программирование, физика, электротехника, архитектура микроконтроллеров и другие.

Основное назначение микроконтроллеров - это управление различными электронными устройствами. Таким образом, они применяются не только в персональных компьютерах, но и почти во всей бытовой технике, автомобилях, телевизорах, промышленных роботах, даже в военных радиолокаторах. Можно сказать, что микроконтроллер - это универсальный инструмент управления электронными устройствами, причем алгоритм управления вы закладываете в него сами и можете в любое время его поменять в зависимости от задачи, возложенной на микроконтроллер. В ходе изучения данной дисциплины было принято решение реализовать собственный, учебный проект на базе микроконтроллера ESP8266 (Node MCU V3). Темой данного курсового проекта является разработка системы контроля показателей окружающей среды с помощью датчика DHT11.

1. Теоретические сведения

1.1 Анализ предметной области проекта

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

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

Электронные градусники пришли на замену аналоговым (ртутным). Они становятся все более распространенными, поскольку являются безопасней, долговечней и точней. А развитие микроконтроллеров позволило стать этим устройствам очень демократичными по цене.

1.2 Анализ аналогов

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

В качестве первого аналога рассмотрим Цифровой Термогигрометр Htc Htc-1 Lcd (рис 1.1). Предназначен для измерения уровня относительной влажности воздуха и температуры воздуха в помещениях. Идеален для применения в детских комнатах и в других помещениях, требующих повышенного внимания к уровню влажности. Обладает большим ЖК(LCD) экраном, функцией часов и будильника.

Рисунок 1.1 - Цифровой Термогигрометр Htc Htc-1 Lcd

Среди технических характеристик Htc-1 Lcd выделим основные:

– Диапазон измерения относительной влажности: 20%-80%RH;

– Диапазон измерения температуры: -20 C~+60 °C;

– Электропитание: батарейка тип AAA.

В качестве второго аналога выступит беспроводной датчик температуры Lifesos TP-3 (рис 1.2). Встроенная в датчик схема позволяет определять уровень температуры и передавать его по беспроводному радиосигналу на центральный блок. При превышении определенного нижнего или верхнего уровня температуры, может срабатывать не только тревога, а и элементы автоматизации, например, при низкой температуре будет включаться система отопления, а при высокой, кондиционер.

Рисунок 1.2 - Датчик температуры Lifesos TP-3

Характеристики:

– Дальность передачи беспроводного сигнала: 300 м;

– Частота передачи: 868 МГц;

– Мощность радиопередатчика датчиков: 10 мВт;

– Тип элемента питания: батарея CR2 3В;

– Рабочее напряжение: 3 B;

– Потребляемый ток в режиме бездействия/тревоги: 0,5/20 Ма;

– Диапазон рабочих температур: -55 °С ~ +127 °С;

– Рабочая влажность: не более 95%;

– Размеры: 109Ч28,5Ч23 мм;

Метеостанция EA2 BL501 SLIM (рис1.3) - третий пример, являющийся скорее не аналогом, а показателем возможностей подобных систем. Производит измерение температуры в помещении и на улице. Измерение на улице возможно благодаря беспроводному термодатчику, который очень легко установить. Информацию передает на термометр при помощи радиосигнала. Радиус действия 30 м, поэтому можно установить его в любом удобном месте. К станции можно подключить до 3-х таких датчиков для одновременного измерения. Также есть функция часов, будильника и календаря.

Рисунок 1.3 - Метеостанция EA2 BL501 SLIM

Заявленные характеристики:

– Тип элемента питания: 2 батарейки ААА;

– Подключение: до 3-х датчиков;

– Единица измерения: °C или °F;

– Частота радиопередачи: 433 МГц;

– Радиус передачи: 30 метров;

– Количество каналов: 3;

– Габариты станции: 15.8 x 8 x 1.9 см;

На основании рассмотренных аналогов можно составить сравнительную таблицу существующих аналогов и разрабатываемого проекта (таб. 1.1).

Таблица 1.1 - Сравнительная таблица существующих аналогов и разрабатываемого проекта.

Название устройства

Цена устройства

Функциональные возможности

Htc Htc-1 Lcd

130 грн

Большой ЖК дисплей

LIFESOS TP-3

286 грн

Срабатывание тревоги

EA2 BL501 SLIM

649 грн

Беспроводное подключение нескольких датчиков, дисплей

Разрабатываемая система

150 грн

Возможность просмотра показаний в веб браузере и приложении

2. Проектирование светомузыкальной установки

Назначением данного курсового проекта является учебная реализация системы мониторинга температуры и влажности с подключение по WiFi.

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

Проанализировав существующие аналоги, можно сказать, что необходим микроконтроллер со встроенным WiFi модулем, поскольку внешний модуль усложнит конструкцию, увеличит количество проводов для подключения. Для реализации такого проекта могут подойти такие платформы как: Arduino MKR WiFi 1010 / ABX00023, Raspberry Pi или ESP8266. Недостаточно иметь лишь одну платформу, на которой будет реализовываться проект. Также необходимо определить дополнительные периферийные устройства, с помощью которых будут считываться показания.

Таким образом, для реализации задуманного проекта, понадобятся такие технические устройства как:

· плата для реализации;

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

2.1 Выбор платформы

2.1.1 Платформа Arduino

Плата Arduino MKR WIFI 1010 (рис 2.1) это усовершенствованная MKR 1000 WIFI. Она оснащена модулем ESP32 от компании U-BLOX. Именно благодаря данному модулю, создание IoT приложений на базе WiFi становится значительно проще и быстрее. Ко всему прочему, данная плата отличается ещё и своим низким энергопотреблением.

Данная плата состоит из трех основных блоков:

- SAMD21 Cortex-M0+ 32bit Low Power ARM MCU;

- U-BLOX NINA-W10 Series Low Power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi;

- ECC508 Crypto Authentication.

Плата MKR WIFI 1010 построена на базе 32-битного микроконтроллера SAMD21. Данная модель имеет богатый набор I/O интерфейсов, энергоэкономичный Wi-Fi с крипточипом использующим метод шифрования SHA-256. В дополнение, ARDUINO предлагает собственную среду разработки Arduino Software, которая значительно упрощает весь трудоемкий процесс программирования. Все выше перечисленное делает эту платформу наиболее предпочтительной для создания новых IoT проектов с батарейным питанием.

Данное устройство способно заряжать Li-Po батареи, а значит, что помимо зарядки от внешнего источника питания через USB-порт (5В), плата может работать и от аккумулятора. Переключение с одного источника на другой происходит автоматически.

Цена данной платы составляет 1 122 грн.

Рисунок 2.1 - Arduino MKR WIFI 1010

2.1.2 Платформа Raspberry Pi

Raspberry Pi (рис. 2.2) - одноплатный компьютер размером с банковскую карту, изначально разработанный как бюджетная система для обучения информатике, впоследствии получивший намного более широкое применение и популярность.

Рисунок 2.2 - Raspberry Pi

Raspberry Pi выпускается в нескольких комплектациях: «A», «A+», «B», «B+», «2B», «Zero», «Zero W», «3B» и «3B+». Модели «Zero W», «3B» и «3B+» поддерживают Wi-Fi и Bluetooth. Первые три версии оснащены ARM11 процессором Broadcom BCM2835 с тактовой частотой 700 МГц и модулем оперативной памяти на 256МБ/512 МБ, размещенными по технологии «package-on-package» непосредственно на процессоре. Модель «2B» оснащается процессором с 4 ядрами Cortex-A7 с частотой 1 ГГц и оперативной памятью размером 1 ГБ. Модель «A» оснащается одним USB 2.0 портом, модель «B» - двумя, а модели «B+» и «2B» - четырьмя. Также в моделях «B», «B+», «2B» и «3B» присутствует порт Ethernet. Помимо основного ядра, BCM2835 включает в себя графическое ядро с поддержкой OpenGL ES 2.0, аппаратного ускорения и FullHD-видео и DSP-ядро. Одной из особенностей является отсутствие часов реального времени.

Вывод видеосигнала возможен через композитный разъём RCA или через цифровой HDMI-интерфейс. В версии «B+», «2B» и «3B» вывод возможен через аудиоразьем 3.5. Корневая файловая система, образ ядра и пользовательские файлы размещаются на карте памяти SD, MMC (в моделях A и B), в новых моделях начиная с «B+» используется microSD, в «3B» и «3B+» появилась возможность загружаться с USB носителя или по сети, так же можно использовать SDIOruen.

Одной из самых интересных особенностей Raspberry Pi является наличие портов GPIO. Благодаря этому «малиновый» компьютер можно использовать для управления различными устройствами.

Стоимость Raspberry Pi составляет 45-70 $.

2.1.3 Модуль ESP-12E, установленный на плате проекта NodeMCU

ESP8266 (рис. 2.3) - микроконтроллер китайского производителя Espressif Systems с интерфейсом Wi-Fi. Помимо Wi-Fi, микроконтроллер отличается отсутствием флеш-памяти в SoC, программы пользователя исполняются из внешней флеш-памяти с интерфейсом SPI.

Рисунок 2.3 - плата NodeMCU на основе ESP8266

Микроконтроллер привлек внимание в 2014 году в связи с выходом первых продуктов на его базе по необыкновенно низкой цене.

Весной 2016 года началось производство ESP8285, совмещающей ESP8266 и флеш-память на 1 МБайт. Осенью 2015 года Espressif представила развитие линейки -- микросхему ESP32 и модули на её основе

Типовое применение ESP8266 как аппаратной основы Internet of Things чаще всего подразумевает установку в домах или офисах. При этом сетевое подключение осуществляется к домашней/офисной локальной сети с выходом в интернет через роутер. Пользователь устройства может контролировать его с помощью планшета или компьютера через свою локальную сеть либо удаленно, через Интернет.

Wi-Fi ESP8266 может работать как в роли точки доступа так и оконечной станции. При нормальной работе в локальной сети ESP8266 конфигурируется в режим оконечной станции. Для этого устройству необходимо задать SSID Wi-Fi сети и, в закрытых сетях, пароль доступа.

Для первоначального конфигурирования этих параметров удобен режим точки доступа. В режиме точки доступа устройство видно при стандартном поиске сетей в планшетах и компьютерах. Остается подключиться к устройству, открыть HTML страничку конфигурирования и задать сетевые параметры. После чего устройство штатно подключится к локальной сети в режиме оконечной станции.

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

Цена платы NodeMcu V3 составляет 3-4$.

2.2 Выбор датчика

2.2.1 Датчик DHT11

Датчик DHT11 (рис. 2.4) - это цифровой датчик температуры и влажности, позволяющий калибровать цифровой сигнал на выходе. Состоит из емкостного датчика влажности и термистора. Также, датчик содержит в себе АЦП для преобразования аналоговых значений влажности и температуры.

Рисунок 2.4 - Датчик DHT11

Датчики DHT11 и DHT22 - очень популярны в среде Ардуино и часто используются в проектах метеостанций и умного дома. Датчик состоит из двух частей - емкостного датчика температуры и гигрометра. Первый используется для измерения температуры, второй - для влажности воздуха. Находящийся внутри чип может выполнять аналого-цифровые преобразования и выдавать цифровой сигнал, который считывается посредством микроконтроллера.

В большинстве случаев DHT11 или DHT22 доступен в двух вариантах: как отдельный датчик в виде пластикового корпуса с металлическими контактами или как готовый модуль с датчиком и припаянными элементами обвязки. Второй вариант гораздо проще использовать в реальных проектах и крайне рекомендуется для начинающих.

Основные характеристики датчика DHT11:

· Потребляемый ток - 2,5 мА (максимальное значение при преобразовании данных);

· Измеряет влажность в диапазоне от 20% до 80%. Погрешность может составлять до 5%;

· Применяется при измерении температуры в интервале от 0 до 50 градусов (точность - 2%)

· Габаритные размеры: 15,5 мм длина; 12 мм широта; 5,5 мм высота;

· Питание - от 3 до 5 Вольт;

· Одно измерение в единицу времени (секунду). То есть, частота составляет 1 Гц;

Цена составляет 40 - 60 грн.

2.2.2 Датчик DHT22

Датчик DHT22 (рис. 2.5) используется для измерения температуры и влажности воздуха с повышенной точностью. Передача данных осуществляется по одному проводу с использованием собственного протокола. Может быть использован в устройствах на Arduino, AVR, PIC, ARM и др. Для работы с Arduino существуют готовые библиотеки.

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

Рисунок 2.5 - Датчик DHT22

Датчик DHT22

· Питание - от 3 до 5 Вольт;

· Максимальный ток при преобразовании - 2,5 мА;

· Способен измерять влажность в интервале от 0% до 100%. Точность измерений колеблется от 2% до 5%;

· Минимальная измеряемая температура - минус 40, максимальная - 125 градусов по Цельсию (точность измерений - 0,5);

· Устройство способно совершать одно измерение за 2 секунд. Частота - до 0,5 ГЦ;

· Присутствует 4 коннектора. Расстояние между соседними - 0,1;

Цена составляет 100 - 120 грн.

2.5 Выводы ко второму разделу

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

В качестве основной платы для реализация выбрана плата NodeMcu V3 на базе ESP8266. Поскольку она является наиболее дешевой и простой в использовании, но при этом предоставляет достаточно широкий функционал, и способна покрыть все требования, которые ставятся перед нашим проектом.

В качестве датчика был выбран DHT11, который также является дешевле конкурента. Хоть и технические характеристики хуже, но не значительно и в ситуациях, где предусматривается его применение, этого будет вполне достаточно, а цена отличается весьма существенно (почти в 2 раза).

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

– плата NodeMcu V3 на базе микроконтроллера ESP8266;

– датчик DHT11;

3. Реализация системы контроля температуры и влажности воздуха

3.1 Структурная схема проекта

Таким образом, имея представления о выбранных и используемых блоках, их параметрах, технологических характеристиках и правилах подключения, получаем общую схему разрабатываемого проекта электронного градусника (рис. 3.1):

Рисунок 3.1 - Структурная схема проекта

Схема работы состоит в следующем: датчик получает данные о температуре и влажности воздуха и передает их микроконтроллеру. После этого они преобразовываются, вычисляется температура в Фаренгейтах. Далее все показания передаются на локальный веб-сервер, а также приложение Blynk.

Более детально рассмотрим каждый блок.

3.2 Блок первый. Датчик DHT11

Рисунок 3.2 - Типичная схема подключения

Формат данных с одной шиной используется для связи и синхронизации между МК и датчиком DHT11. Один коммуникационный процесс занимает около 4 мс.

Данные состоят из десятичной и целой частей. Полная передача данных составляет 40 бит, а датчик сначала отправляет старший бит данных.

Формат данных: 8-битные интегральные данные RH + 8-битные десятичные данные RH + 8-битные интегральные данные T + 8-битные десятичные T данные + 8-битная контрольная сумма.

Если передача данных правильная, контрольная сумма должна быть последними 8 битами «8-битные интегральные данные RH + 8-битные десятичные данные RH + 8-битные интегральные данные T + 8-битные десятичные данные T».

Когда МК отправляет сигнал запуска, DHT11 переходит из режима низкого энергопотребления в рабочий режим.

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

Пользователи могут выбрать чтение некоторых данных. Без стартового сигнала от МК, DHT11 не будет давать ответный сигнал МК. После сбора данных DHT11 перейдет в режим низкого энергопотребления, пока снова не получит сигнал запуска от МК.

Рисунок 3.3 - Общий коммуникационный процесс

В нашем случае датчик распаян на плате уже с резистором. Схема подключения к ESP8266 изображена на рисунке 3.4

Рисунок 3.4 - Схема подключения DHT11 к ESP8266

3.3 Блок второй. ESP8266

Описание и назначение выводов NodeMCU V3 ESP8266

* GND -- общий, "земля";

Выводы питания:

* Vin -- вывод для подключения внешнего источника питания 5V. Стабилизатор AMS1117-3.3 позволяет подавать питание на Vin в широком диапазоне от 5 до 10 V.

* 3.3V -- контакт выходного напряжения внутрисхемного стабилизатора. Может быть использован для питания подключаемых к плате датчиков. Суммарная максимальная нагрузка всех выводов 3.3V не должна превышать 300мА. микропроцессор датчик электронный термометр

Выводы GPIO:

* GPIO (General Purpose Interput Output) -- контакты общего назначения для ввода/вывода данных.

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

Рисунок 3.5 - Распиновка платы NodeMCU V3

Выводы управления:

* RST (Reset) -- вывод используется для сброса микроконтроллера ESP8266.

* EN (Chip Enable) -- при подаче на вывод сигнала высокого уровня, микроконтроллер ESP8266 переходит в рабочий режим, при сигнале низкого уровня -- в режим низкого энергопотребления (режим энергосбережения).

* WAKE -- вывод используется для пробуждения чипа ESP8266 из режима глубокого сна (deep-sleep mode).

АЦП (ADC)

ADC0 / TOUT -- вывод встроенного 10-разрядного аналого-цифрового преобразователя (АЦП). Преобразованные значения лежат в интервале 0-1023.

Плата разработки NodeMCU V2 имеет внутренний делитель напряжения, входной диапазон АЦП составляет 0 -- 3,3 В.

UART -- асинхронный последовательный интерфейс устанавливает связь с другими устройствами по шине UART.

SPI (Serial Peripheral Interface) -- последовательный периферийный интерфейс. NodeMCU имеет два SPI (SPI и HSPI) в ведущем и подчиненном режимах.

SDIO -- интерфейс безопасных цифровых входов/выходов, предназначен для коммутации с внешней флэш-памятью стандарта SD по последовательной шине.

Reserved

Зарезервированные выводы.

FLASH

Кнопка Flash на NodeMCU подключает к земле GPIO0. Ее можно использовать как обычную кнопку.

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

Интерфейс I2C -- последовательная асимметричная шина. I2C используется для подключения датчиков и периферийных устройств. NodeMCU ESP8266 не имеет аппаратных выводов I2C, но интерфейс можно реализовать программно.

Поддерживаются как I2C Master, так и I2C Slave. Обычно в качестве контактов I2C используются следующие выводы.

- GPIO5: SCL

- GPIO4: SDA

PWM (pulse-width modulation) -- широтно-импульсная модуляция (ШИМ) управляет мощностью методом пульсирующего включения и выключения вывода. NodeMCU поддерживает программный ШИМ на выводах, обозначенных на рисунке изгибающейся линией.

Рассмотрим элементы платы более подробно (рис. 3.6)

Рисунок 3.6 - Элементы платы NodeMcu V3

3.4 Выбор среды программирования

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

Рассмотрим ее плюсы и минусы:

Преимущества:

- Arduino IDE основан на AVRGCC. Изучение Arduino поможет вам изучить C++. Если вам не нравится конкретная высокоуровневая команда или библиотека для Arduino, вы почти всегда можете заменить её на аналогичную C++.

- Вы можете питать, программировать и обмениваться сообщениями с Arduino при помощи одного USB кабеля (или FTDI кабеля для некоторых клонов).

- Последовательные и SPI интерфейсы связи сделаны превосходно.

- Подсветка кода

- Быстрая заливка скетча в плату ардуино

- Для того, что бы обозначить определённый пин порта как вход выход достаточно написать функцию pinMode(Имя порта, OUTPUT/INPUT)

- Можно быстро присвоить номер порта к определённой переменной (так сказать соорудить маску)

- Так же можно быстро обозначить состояние порта (LOW или HIGH)

- Имеется куча полезных встроенных функций

Недостатки:

- Загрузчик. Чтобы закончить проект с применением Arduino, вам придется вручную прошить загрузчик в каждый новый микроконтроллер ATmega. Он занимает 2Кб памяти.

- Разнообразные варианты: в официальном модельном ряду есть варианты с памятью 30(32) Кб и 254(256)КБ.

Что делать, если ваш код занимает, допустим, 42 КБ?

Единственным решением является использование полу-совместимого клона Sanguino и др.

- Отсутствие простого способа изменения тактовой частоты. Модель 3,3В/8МГц может спокойно работать на частоте 12МГц!

- digitalWrite() использует для выполнения 56 циклов. По крайней мере, можно легко выяснить причину и переключиться на прямой доступ к порту (вторая вещь которая заменяется после IDE). Arduino не очень удобна для время-зависимых приложений.

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

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

3.5 Использованные библиотеки

При разработке программного кода будет использовано три библиотеки: ESP8266WiFi.h, BlynkSimpleEsp8266.h и DHT.h.

Библиотека ESP8266WiFi.h обеспечивает специфические подпрограммы Wi-Fi ESP8266, которые необходимы для подключения к сети.

Библиотека BlynkSimpleEsp8266.h необходима для обеспечения связи микроконтроллера с мобильным приложением Blynk.

Библиотека DHT.h предназначена для работы с датчиками температуры и влажности.

3.6 Описание разработанного алгоритма

Листинг программного кода будет предоставлен в дополнении А. Ниже приведем блок-схему прошивки.

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

3.7 Особенности реализации. Демонстрация результатов

Рисунок 3.8 - Соединенные плата и датчик

Как было сказано выше, данные можно просматривать двумя способами: в веб-браузере и в приложении Blynk.

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

Рисунок 3.9 - Отображение данных в браузере

В приложении Blynk были выбраны следующие виджеты:

- Label Value для температуры.

– Gauge для влажности.

Рисунок 3.10 - Отображение данных в мобильном приложении Blynk

3.8 Выводы к третьему разделу

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

Выводы

В процессе изучения дисциплины «Микропроцессоры в ИУС» были закреплены как теоретические, так и практические навыки принципов работы микропроцессора и микропроцессорных устройств, а также приобретены новые знания по различным смежным дисциплинам. Также были получены практические навыки программирования микропроцессоров и их периферии.

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

Третьим этапом разработки проекта стало проектирование. Для этого была выбрана плата NodeMcu V3 на базе контроллера ESP8266 в паре с датчиком DHT11. Для разработки алгоритма выбрали язык программирования Си.

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

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

1. Преимущества микроконтроллеров ARM [Электронный ресурс] / Ардуино на русском для начинающих и профессионалов: уроки, статьи, библиотеки. - Режим доступа: https://arduinoplus.ru/preimushhestva-mikrokontrollerov-arm/

2. Raspberry Pi [Электронный ресурс] / Интернет энциклопедия. - Режим доступа: https://ru.wikipedia.org/wiki/Raspberry_Pi.

3. Arduino или Raspberry Pi: какая плата лучше? [Электронный ресурс] / Научно-популярный портал Занимательная Робототехника. - Режим доступа: http://edurobots.ru/2014/09/arduino-ili-raspberry-pi-kakaya-platforma-luchshe/

4.GPIO [Электронный ресурс] / Интернет энциклопедия. - Режим доступа: https://ru.wikipedia.org/wiki/GPIO

5. Нина Глущенко. Что такое интернет вещей? [Електронний ресурс] / Нина Глущенко // ain. - 2017. - Режим доступу до ресурсу: https://ain.ua/special/what-isiot/.

6. Феномен Blynk и его альтернативы [Електронний ресурс] // Многобукфф. - 2017. - Режим доступу до ресурсу: https://blog.kvv213.com/2017/02/fenomenblynk-i-ego-al-ternativy/.

7. Взаимодействие DHT11 DHT22 с ESP8266 NodeMCU с использованием веб-сервера [Електронний ресурс] // Joyta.ru. - 2020. - Режим доступу до ресурсу: http://www.joyta.ru/12679-vzaimodejstvie-dht11-dht22-s-esp8266-nodemcu-sispolzovaniem-veb-servera/.

Приложение

Листинг кода

Файл прошивки Arnautov_ESP8266_DHT11.ino:

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include <DHT.h>

//WiFi credentials.

char ssid[] = "TP-Link_1991";

char password[] = "04070788";

//DHT11 initialization

#define DHTPIN 0// D3

#define DHTTYPE DHT11

char auth[] = "46fBhMK9wgck3DMz1UdBapR-SbpTIb9J";

// веб-сервер на порте 80:

WiFiServer server(80);

DHT dht(DHTPIN, DHTTYPE);

BlynkTimer timer;

// временные переменные:

static char celsiusTemp[7];

static char fahrenheitTemp[7];

static char humidityTemp[7];

void sendSensor()

{

float h = dht.readHumidity();

float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

if (isnan(h) || isnan(t)) {

Serial.println("Failed to read from DHT sensor!");

return;

}

Blynk.virtualWrite(V5, t);

Blynk.virtualWrite(V6, h);

}

void setup()

{

pinMode(LED_BUILTIN, OUTPUT);

Serial.begin(115200);

Blynk.begin(auth, ssid, password);

dht.begin();

// Setup a function to be called every second

timer.setInterval(2000, sendSensor);

// подключаемся к WiFi-сети:

Serial.println("Connecting to ");

// "Подключаемся к "

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi connected");

// запускаем веб-сервер:

server.begin();

Serial.println("Web server running. Waiting for the ESP IP...");

delay(5000);

// печатаем IP-адрес ESP:

Serial.println(WiFi.localIP());

}

void loop()

{

float h = dht.readHumidity();

if (h > 80) {

digitalWrite(LED_BUILTIN, HIGH);

// turn the LED on

}

else {

digitalWrite(LED_BUILTIN, LOW); // turn the LED off

}

delay(2000);

Blynk.run();

timer.run();

// начинаем прослушку новых клиентов:

WiFiClient client = server.available();

if (client) {

Serial.println("New client");

// создаем переменную типа «boolean»,

// чтобы определить конец HTTP-запроса:

boolean blank_line = true;

while (client.connected()) {

if (client.available()) {

char c = client.read();

if (c == '\n' && blank_line) {

int h = dht.readHumidity();

// считываем влажность

int t = dht.readTemperature();

// считываем температуру в Цельсиях:

int f = dht.readTemperature(true); // считываем температуру в Фаренгейта

// проверка данных

if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println("Failed to read from DHT sensor!");

strcpy(celsiusTemp,"Failed");

strcpy(fahrenheitTemp, "Failed");

strcpy(humidityTemp, "Failed");

}

else{

// рассчитываем влажность и градусы в Цельсиях и Фаренгейтах,

int hic = dht.computeHeatIndex(t, h, false);

dtostrf(hic, 2, 0, celsiusTemp);

int hif = dht.computeHeatIndex(f, h);

dtostrf(hif, 2, 0, fahrenheitTemp);

dtostrf(h, 2, 0, humidityTemp);

}

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println("Connection: close");

client.println();

// веб-страница, отображающая температуру и влажность:

client.print("<!DOCTYPE HTML>");

client.print("<html>");

client.print("<head></head> <body style='background: #810840;'> <div style='display: flex; justify-content: center;'><h1>ESP8266 - Temperature and Humidity</h1></div>");

client.print("<div style='display: flex; justify-content: center;'><img src='https://img.icons8.com/clouds/100/000000/temperature.png' style = 'width: 70px; height: 70px; align-self: center;'/><p style = 'font-size: 32px;'>Temperature in Celsius: ");

client.print(celsiusTemp);

client.print("&deg;C</p></div><div style='display: flex; justify-content: center;'><img src='https://img.icons8.com/clouds/100/000000/fahrenheit-symbol.png' style = 'width: 70px; height: 70px; align-self: center;'/><p style = 'font-size: 32px;'>Temperature in Fahrenheit: ");

client.print(fahrenheitTemp);

client.print("&deg;F</p></div><div><div style='display: flex; justify-content: center;'><img src='https://img.icons8.com/ios/50/000000/wet.png' style = 'width: 50px; height: 50px; align-self: center;'/><p style = 'font-size: 32px;'>Humidity: <div id='myProgress' style = 'height: 30px; width: 150px; background-color: white; align-self: center; margin-left: 20px;'><div id='myBar' style = 'width: ");

client.print(humidityTemp);

client.print("%; height: 30px; background-color: #4CAF50; text-align: center; line-height: 30px; color: white;'>");

client.print(humidityTemp);

client.print("%</div></div></p></div>");

client.print("</body></html>");

break;

}

if (c == '\n') {

// если обнаружен переход на новую строку:

blank_line = true;

}

else if (c != '\r') {

// если в текущей строчке найден символ:

blank_line = false;

}

}

}

client.stop();

Serial.println("Client disconnected.");

}

}

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

...

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

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