Как собрать метеостанцию на dht11

от admin

Arduino Weather Station with DHT11 and BMP180

In the previous tutorial I showed you how to build a weather station using only the DHT11 sensor and I said the readings from this sensor is fairly accurate. In this tutorial, I will be using the DHT11 to measure only the humidity and BMP180 to measure pressure and temperature. That’s because its readings are more accurate than the DHT11 temperature readings.

Project Parts

I will be adding only the BMP180 sensor to the list in the previous tutorial.

The BMP180 is the new digital barometric pressure sensor from Bosch Sensortec, with a very high performance and it uses the I2C (pronounced I-squared- C or I-two- C) protocol. This digital sensor can measure barometric pressure, temperature and altitude.

BMP180

This sensor is a four pin device, the first pin is labelled VCC, second pin GND and the last two are the clock (SCL) and data (SDA) pins. You can purchase this sensor here.

The DHT11 is something we are familiar with, it has been used in couple of our tutorials here as a low cost temperature and humidity sensor that operates using the 1-wire protocol. It costs about $2 and you can get it here.

DHT11 Temperature and Humidity Sensor

The readings from this sensor are fairly accurate, so we will be using this sensor to only measure humidity since the BMP180 gives more accurate temperature readings.

This sensor has three pins, the first which is the power pin VCC, next pin which is the middle one, which is the signal out or DATA pin and lastly the ground pin labelled GND.

Yes, we will also be using the 16×2 LCD keypad shield as used in the previous tutorial. This shield makes connecting the 16×2 LCD module to any system quite easy, as it simply just plugs on the Arduino mega which is being used for this project. You can get this shield here.

LCD Keypad Shield

Schematics

Wire up your component as shown in the image below.

Schematics

LCD Connection

Note that the RW pin is connected to GND because we will be writing only to the LCD and not to read from it, for this to be possible the RW pin has to be pulled LOW.

If you are Using the LCD shield it will look like the image below after mounting.

/> LCD Shield Mounted on the Arduino Mega

BMP180 Connection

The pin connection of the BMP180 is as illustrated below. The SCL pin of the sensor will go to the SCL pin on the Arduino Mega which is on pin 21. Likewise the SDA pin will go to the SDA pin of the Mega on pin 20.

DHT11 Connection

Pin connection of the DHT11 to the arduino is as illustrated below. All DHT11 sensors have three main functional pins. The DHT types with four pins always have a void pin which is never connected to anything.

With our connections all done, its time to write the code for this project.

Before writing the code, we need to download two libraries. One for the BMP180 which can be downloaded from github. Click on download zip and when done extract it. Open the extracted file and then go to software, double-click on Arduino and then on libraries. Rename the folder “SFE_BMP180” to something simpler like “BMP180”, copy this folder and paste it in your Arduino libraries folder.

If you followed the previous tutorial then you don’t need to download DHT11 library. If you don’t have the library you can download it from github.

When done extract it into Arduino libraries folder, then open Arduino IDE.

The first thing to be done is to include all the dependencies the code needs to run fine, libraries in this case.

Next, we create an object called pressure and also create a global variable temperature of type float.

Next, we define altitude in other to get the correct measurement of the barometric pressure and we enter the value in meters. it is 216.0 meters in Sparta, Greece. I also defined the DHT pin and the type.

We create a DHT object and then pass in the pin number (DHTPIN) and the sensor type (DHTTYPE). The last line we create an LCD object, passing in the pin number our LCD pins are connected to as follows (lcd (RS, E, D4, D5, D6, D7)).

In the setup function, we call the LCD begin method passing in the LCD size which is a 16×2. Next, we print on the first line of the LCD then call the DHT.begin() and the pressure.begin() methods.

In the loop function, the first line I created two variables “humidity” and “pressure” both of type int which will hold the humidity and pressure value.

The second line I added 10.0 to value got from the dht.readHumidity() method because I noticed my DHT11 sensor humidity value is off about 10 percent. In the third line, I called the function readPressureAndTemperatue() to read the pressure and temperature.

This function updates the global temperature variable and also returns the pressure value.
Next, in the loop function, I gave it a delay of two seconds after reading and then clear the LCD.

Next we create three character arrays, two of size six and the last one of size 7. I used the dtostrf function to convert our temperature, humidity and pressure value from type float to string and then print it on the LCD. Note that the explicit typecasting used in the lcd.print() function ((char)223) is used to print the degree symbol on the display.

After getting the humidity, temperature and pressure we print it out on the LCD in a nicely formatted way.

Here is the complete code for this project.

Save your code, connect your Mega to your computer and make sure under your tools menu the board picked is “Arduino/Genuino Mega or Mega 2560” and also the right COM port is selected. Click upload when done.

Читать:
Как собрать аккумулятор из 18650 банок на 12в

After uploading the code to your Arduino, You should see something like the Image shown below.

Датчик DHT11 подключение к Ардуино

Как подключить датчик температуры и влажности DHT11 к Arduino, проанализируем конструкцию и назначение датчика. Первый пример программы отправит данные с модуля dht11 на монитор последовательного порта с включением светодиодов. Во втором примере будем выводить данные на дисплее LCD 1602 I2C. Для работы с датчиком температуры и влажности Arduino необходимо будет установить библиотеку DHT.h.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • датчик температуры Ардуино DHT11
  • светодиоды и резисторы
  • дисплей LCD 1602 I2C
  • макетная плата
  • коннекторы
  • библиотека DHT.h и LiquidCrystal_I2C.h

Датчик температуры DHT11 и DHT22 Arduino установлен на модуле и имеет трех контактный разъем — это цифровой датчик, состоящий из термистора и емкостного датчика влажности. Помимо своей низкой стоимости, сенсор имеет приемлемые характеристики: питание от 3,5 до 5 В, измерение температуры от 0 до 50 градусов Цельсия с точностью 2 градуса, а измерение влажности воздуха от 20 до 95 % с точностью 5 %.

DHT11 Arduino распиновка, характеристики

DHT11 Arduino распиновка, характеристики

Датчик DHT11 характеристики

  • Напряжение питания: 3

Термистор (терморезистор) — сопротивление элемента изменяется в зависимости от температуры, т.е. повышение температуры приводит к уменьшению сопротивления. По сути, термистор — это термометр с переменным сопротивлением, изготовленный из смешанных оксидов переходных металлов. Он относится к измерительной технике и может использоваться для автоматического измерения температуры в различных средах.

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

Как подключить датчик температуры и влажности к Ардуино

Как подключить датчик температуры и влажности к Ардуино

В первом примере мы рассмотрим, как измерить температуру воздуха а с помощью Ардуино и DHT 11 с включением светодиодов. Код для работы с модулем не сложен и требует определенной работы. В этом случае проще всего использовать библиотеки, предложенные на сайте Arduino или другими пользователями. Эти библиотеки можно найти, например, на GitHub, который является платформой для обмена ссылками.

Скетч для датчика температуры и влажности DHT11

Подключение к Ардуино DHT11 и дисплея LCD 1602

Подключение к Ардуино DHT11 и дисплея LCD 1602

Для подключения датчика вре11 к микроконтроллеру Arduino можно использовать любой цифровой вывод общего назначения, указав его в программе. Команда Serial.print() отправляет информацию с датчика на монитор порта. В следующем примере температура и влажность воздуха будет выводиться на жидкокристаллический дисплей LCD1602 i2c. Схема подключения показана на картинке выше, а скетч используется следующий:

Скетч для датчика DHT11 Ардуино и дисплея LCD 1602

Заключение. В этом обзоре мы рассмотрели, как подключить DHT11 к Arduino. Мы представили два примера программы для передачи информации с цифрового датчика на монитор порта Arduino IDE и на жк дисплей 1602. Существует множество проектов метеостанций на плате Ардуино с датчиком DHT11, которые вы можете сделать самостоятельно, внимательно изучив информацию на нашем замечательном сайте.

Начало работы с Ардуино. На примере проекта простейшей метеостанции на ардуино.

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

Схема для ардуино УНО:

Схема соединения

Схема для ардуино НАНО:

Схема соединения

Скачиваем с официального сайта и устанавливаем IDE.

И распаковываем их в папку C:\Program Files (x86)\Arduino\libraries

Подключаем ардуино к компьютеру с помощью USB кабеля.

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

Выбираем нашу плату и порт, к которому подключена плата:

Выбор платы Выбор порта

Копируем его в поле для кода IDE:

и жмём загрузить:

Кнопка «загрузить» Загрузка завершена

Ждём несколько секунд и наша метеостанция работает:

Метеостанция работает

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

Метеостанция с дисплеем LCD 1602 и DHT11

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

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

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

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

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

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

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

Метеостанция на DHT22 и LCD 1602

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

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

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

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

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

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

Похожие публикации