Урок по отображению температуры и влажности на смартфоне wemos

Урок 16. Подключение датчика DHT11 к Arduino UNO. Выводим температуру и влажность на LCD 1602 I2C дисплей

В этом уроке мы рассмотрим самый популярный датчик температуры DHT11. Научимся считывать показания датчика и выводить на LCD 1602 I2C дисплей.

Нам понадобится:

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

Схема подключения:

Этом уроке к arduino uno будет подключено два модуля, датчик температуры и влажности DHT11 и символьный дисплей LCD1602 IIC/I2.

1) Датчик DHT11 с помощью которого будем получать данные о температуре и влажности окружающей среды, подключается следующим образом.

Описание подключения DHT11 к Arduino:

DHT11 Arduino
1 контакт 5V
2 контакт Pin 2
3 контакт Через резистор 10 kOm к 5V
4 контакт GND

2) Теперь подключаем символьный дисплей LCD1602 IIC/I2C к Arduino uno, на который будет выводиться информация о температуре и влажности.

Arduino LCD1602 IIC/I2C Цвет проводов на фото
GND GND Черный
5V VCC Красный
A4 SDA Коричневый
A5 SCL Серый

Скетч:

Не забудьте установить библиотеки указанные в начале урока.

Демонстрация работы:

Метеостанция на Ардуино с дисплеем

Метеостанция на Arduino с дисплеем ► это один из самых популярных проектов. Рассмотрим, как сделать метеостанцию на DHT11 с выводом температуры на LCD монитор.

Метеостанция на Ардуино с дисплеем 1602 и DHT11 (DHT22) — это один из самых популярных проектов у начинающих мейкеров на Arduino. Рассмотрим, как сделать домашнюю метеостанцию с выводом температуры, влажности и давления на LCD монитор I2C. В скетче будут использованы русские буквы для вывода информации, все необходимые библиотеки можно будет скачать на этой странице одним архивом.

Если у вас есть в наличии Bluetooth модуль HC-06, то вы можете сделать его прошивку и получать данные со своей метеостанции уже на своем смартфоне. Данный модуль может обеспечивать передачу сигнала до 30 метров, что вполне достаточно для небольших квартир и частных домов. Пример такой метеостанции с датчиком DHT11 подробно рассмотрен в еще одном проекте Метеостанция на Ардуино и Андроид.

Сборка метеостанции с дисплеем 1602 и DHT11

Для этого проекта нам потребуется:

  • плата Arduino UNO (NANO);
  • жидкокристаллический дисплей 1602 с I2C;
  • цифровой датчик DHT11 или DHT22;
  • провода «папа-мама», «папа-папа»;
  • макетная плата (при необходимости).

К Arduino Nano и Uno все датчики и дисплей подключаются по одной схеме — распиновка и подключение уже рассматривались на нашем сайте, поэтому не будем подробно останавливаться на этом моменте. Если у вас есть вопросы, то посмотрите следующие записи: Подключение DHT11 к Ардуино и Подключение LCD 1602 к Ардуино. Соберите метеостанцию на Ардуино с дисплеем 1602 и dht11, как на схеме ниже.

Ардуино. Метеостанция на LCD 1602 и DHT11

После сборки схемы, загрузите в микроконтроллер следующий скетч (здесь ссылка на скачивание архива со скетчем для метеостанции и необходимыми библиотеками). Информация с датчика DHT22 выводиться будет на монитор порта Arduino IDE и на жидкокристаллический дисплей 1602a, для отображения информации использован русский шрифт для LCD и символы (в скетче есть подробные комментарии).

Скетч для метеостанции с DHT11 на Ардуино

Пояснения к коду:

  1. в скетче можно использовать до 8 русских букв и символов, при необходимости заменяйте буквы из кириллицы — латинскими буквами;
  2. скорость обновления данных замените на необходимое значение.

Заключение. Мы рассмотрели, как сделать простую домашнюю метеостанцию на Ардуино c дисплеем 1602а и датчиком температуры и влажности воздуха DHT11. Данный проект можно доработать, добавив к схеме еще больше датчиков для анализа метеоусловий. Также можно сделать беспроводную метеостанцию на Arduino Uno, используя блютуз или радио модули для передачи информации на расстояние.

Вывод температуры и влажности DTH11 на смартфон через сеть

В этом примере покажем, как при помощи сервиса RemoteXY легко вывести на экран смартфона или планшета показания датчика DTH11: температуру и влажность. Датчик подключается к контроллеру Arduino, который передает показания датчика по локальной сети на смартфон. На смартфоне необходимо установить мобильное приложение RemoteXY. В качестве модуля связи в данном примере использован Ethernet W5100 шильд для Arduino. Однако вы можете выбрать наиболее подходящий для вас модуль связи, который поддерживается сервисом RemoteXY, например Bluetooth или Wi-Fi.

Для реализации проекта вам понадобится:

  • контроллер Arduino UNO;
  • Ethernet W5100 шильд;
  • датчик DTH11.

Ethernet W5100 шильд соединяется с Arduino, разместив их одну над другой. Необходимо обеспечить подключение Ethernet шильда к локальной сети.

Выход датчика подключен к контакту 2 платы Arduino. Питание датчика осуществляется от платы Arduino. Схема подключения датчика приведена на рисунке.

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

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

Шкала влажности имеет зеленый цвет.

Для удобства можно переопределить имена элементов интерфейса. Эти имена в дальнейшем будут назначены переменным в исходном коде интерфейса. На рисунке изображен пример графического интерфейса.

Так же в редакторе RemoteXY необходимо настроить конфигурацию проекта, установив способ связи Ethernet и выбрав модуль связи Ethernet W5100 шильд.

После нажатия кнопки «Получить исходный код» необходимо скачать код реализации интерфейса. Загруженный исходный код вы можете скомпилировать и загрузить в Arduino. Вы уже сможете подключиться к интерфейсу со смартфона, используя приложение RemoteXY. Однако интерфейс еще не показывает данные температуры и влажности. Далее нам предстоит доработать код и интегрировать в интерфейс нашу задачу — опрос датчика и передачу полученных данных для отображения.

Для опроса датчика DTH-11 используется библиотека “DHT.h”. Скачать актуальную версию библиотеки можно по ссылке. В код проекта добавляем подключение этой библиотеки. Подключаем и настраиваем датчик на контакт 2 Arduino тем же самым способом, которым рекомендует это делать библиотека.

Опрос датчиков и преобразование данных для отображения в графическом интерфейсе выполняется в каждом цикле функции loop(). Ниже приведен код опроса датчика.

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

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

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

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

/* RemoteXY select connection mode and include library */
#define REMOTEXY_MODE__W5100_SPI
#include
/* Ethernet shield used pins: 10(SS) */
#include
/* SPI interface used pins: 11(MOSI), 12(MISO), 13(SCK) */

/* RemoteXY connection settings */
#define REMOTEXY_ETHERNET_MAC “DE:AD:BE:EF:EF:ED”
#define REMOTEXY_SERVER_PORT 6377

/* RemoteXY configurate */
unsigned char RemoteXY_CONF[] =
< 0,25,88,0,4,5,67,4,53,14
,30,6,0,11,67,4,53,34,30,6
,0,11,66,193,15,21,34,4,6,66
,129,49,21,34,4,1,66,129,15,41
,68,4,4,129,0,14,14,38,6,0
,84,101,109,112,101,114,97,116,117,114
,101,58,0,129,0,15,34,28,6,0
,72,117,109,105,100,105,116,121,58,0
,129,0,44,25,10,6,0,48,194,176
,67,0 >;

/* this structure defines all the variables of your control interface */
struct <

/* output variable */
char text_temp[11]; /* string end zero UNICODE */
char text_hum[11]; /* string end zero UNICODE */
signed char level_temp_down; /* =0..100 level position */
signed char level_temp_up; /* =0..100 level position */
signed char level_hum; /* =0..100 level position */

/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */

#include “DHT.h”
#define DHTPIN 2
DHT dht(DHTPIN, DHT11);

void setup()
<
RemoteXY_Init ();

// TODO you setup code

void loop()
<
RemoteXY_Handler ();

// TODO you loop code
// use the RemoteXY structure for data transfer
float temp = dht.readTemperature();
float hum = dht.readHumidity();
dtostrf(temp, 0, 1, RemoteXY.text_temp);
dtostrf(hum, 0, 1, RemoteXY.text_hum);

if (temp 0) <
RemoteXY.level_temp_up = min(temp*2,100);
RemoteXY.level_temp_down = 0;
>
else <
RemoteXY.level_temp_up = 0;
RemoteXY.level_temp_down = 0;
>
RemoteXY.level_hum = hum;
>

Для подключения к Arduino со смартфона или планшета необходимо использовать мобильное приложение RemoteXY. В приложении выбирается вариант соединения Net. В открывшемся окне необходимо указать IP адрес, который был выдан Ethernet шильду DHCP сервером вашего роутера. Этот IP адрес можно узнать из web-панели настройки роутера, из таблицы подключенных сетевых устройств. Устройство можно идентифицировать по MAC адресу, который был задан в скетче.

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

Отправляем температуру и влажность в приложение Blynk (Wemos D1 Mini Pro)

Этот урок показывает, как использовать Wemos D1 Mini Pro для отправки данных (температура и влажность) в приложение Blynk.

Шаг 1: Начало работы

Мы в итоге получим показания температуры и влажности, которые будут добавлены в ваше приложение Blynk на вашем телефоне. Подключите светодиод, как показано ниже:

Мы использовал синий модуль DHT11 (температура и влажность), который имеет три контакта. Другие аналогичные модули от разных поставщиков могут иметь различную компоновку контактов.

Цвета ниже правильны для модуля от компании Banggood:

Синий = сигнал данных (слева)
Красный = Vcc + 5В (средний)
Черный = земля (справа)

Шаг 2: Работа с приложением Blynk

Создание учетную запись Blynk

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

Зачем мне нужно создавать учетную запись?

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

Создание нового проекта

После того, как вы успешно вошли в свою учетную запись, начните с создания нового проекта.

Название / Плата / Соединение

Дайте проекту имя и выберите подходящую плату (Wemos D1 Mini). Теперь нажмите «Создать».

Аутентификация

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

Шаг 3: Виджеты в приложении

Ваш холст проекта пуст, добавим два виджета отображения (Value Display), чтобы показать температуру и влажность. Нажмите в любом месте на холсте, чтобы открыть окно виджетjd Все доступные виджеты расположены здесь.

Перетаскивание (Drag-n-Drop)

Drag-n-Drop – нажмите и удерживайте виджет, чтобы перетащить его в новое место.

Влажность и Температура

Настройки виджетов. У каждого виджета есть свои настройки. Нажмите на виджет и установите их с параметрами показанными выше.

Запускаем проект

Запускам проект, нажав на “play” как показано на скриншоте выше.

Шаг 4: Запускаем код

Теперь давайте рассмотрим пример для Wemos D1 Mini Pro. Обратите внимание, что есть три ключевых компонента, которые вам необходимо включить:

  1. char auth [] = “”; выбирается для вашего проекта (приложение Blynk).
  2. char ss >Шаг 5: Отображение

Вернитесь в приложение Blynk и проверьте свой дисплей. Вы должны увидеть текущую температуру и влажность.

На этом всё! Отличных вам проектов без замыканий.

Источники:

http://xn--18-6kcdusowgbt1a4b.xn--p1ai/%D0%BC%D0%B5%D1%82%D0%B5%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE-%D1%81-%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B5%D0%BC/

http://remotexy.com/ru/examples/dth11/

http://arduinoplus.ru/otpravlyaem-temperaturu-i-vlazhnost-v-prilozhenie-blynk-wemos-d1-mini-pro/

http://xn--18-6kcdusowgbt1a4b.xn--p1ai/%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA/

Ссылка на основную публикацию