Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Компоненты и материалы

Arduino Nano R3 1
Датчик температуры и влажности DHT22 1
Датчик давления BMP180 1
LCD-дисплей 16x2 с I2C (синий на белом) 1

Необходимые инструменты

Паяльник

Приложения и онлайн-сервисы

Arduino IDE

О проекте

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Недавно в колледже была научная выставка. Учитель попросил подготовить проект за два дня, чтобы показать школьникам основы электроники. Учитывая переменчивый климат (34–40 °C), решил сделать метеостанцию.

Что делает метеостанция?

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

Цель — создать портативную станцию с функциями:

Шаг 1: Закупка компонентов

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Список деталей и бюджет:

Инструменты: паяльник, кусачки, провода. И немного времени.

Шаг 2: Температура и влажность — DHT22

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Популярные датчики: DHT22, DHT11, SHT1x. DHT22 (AM2302) выдаёт калиброванный цифровой сигнал, имеет малый размер, низкое потребление, дальность передачи до 100 м.

Сравнение:

DHT11: дешевый, быстрый старт, дальность 20 м. Погрешность: ±2 °C, ±5% RH. Диапазон 0–50 °C.

DHT22: чуть дороже, плавная кривая, минимальная погрешность, большой диапазон, дальность 20 м. Чувствителен, медленно отслеживает температуру. Идеален для экологического мониторинга.

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

Подключение DHT22:

Шаг 3: Барометр и датчик давления — BMP180

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

BMP180 — барометрический датчик с I2C-интерфейсом. Измеряет абсолютное давление, которое меняется с погодой и высотой.

Важно: Мой модуль имел стабилизатор 662k на 3.3V, который я сжёг. Приштал подать 3.3V прямо на чип. Питание выше 3.3V убьёт датчик! Проверьте свой модуль.

Подключение (I2C шина Nano/Uno):

Физика: давление, высота и погода

Атмосферное давление меняется из-за вращения Земли, наклона оси и других факторов. Падение давления — приближается дождь/шторм (циклон). Рост — ясная погода (антициклон).

Давление также зависит от высоты: на Эвересте (5400 м) оно ниже, чем в Дели (216 м). Для сравнения используют приведённое к уровню моря давление (1013.25 гПа).

Формула высоты:

alti = 44330 * [1 - (p/p0)^(1/5.255)]

где p — текущее давление, p0 — давление на уровне моря (1013.25 гПа). Результат — высота над морем в метрах.

Меры предосторожности:

Шаг 4: Сборка схемы

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Начинаем с гнезд для Nano: отрезаем и подтачиваем разъёмы, паяем. Затем гнезда для DHT22 (нужен подтягивающий резистор 10 кОм от DATA к GND). Далее BMP180 (питание 3.3V, общая I2C шина). В конце I2C LCD-дисплей на той же шине. (Четвёртый слот оставлен для будущего RTC-модуля.)

Шаг 5: Программирование

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD
Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Сначала скачайте библиотеки:

Код тестировался на Arduino IDE 1.6.5 (работает и на более новых).

#include 
#include 
#include 
#include "DHT.h"
#include 

SFE_BMP180 pressure;

#define ALTITUDE 20.56
#define I2C_ADDR 0x27 // ваш адрес I2C
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

#define DHTPIN 2
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
float t1, t2;

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.home();
  lcd.print("Weather Station");
  delay(5000);
  dht.begin();
  pressure.begin();
}

void loop() {
  char status;
  double T, P, p0, a;

  status = pressure.startTemperature();
  if (status != 0) {
    delay(status);
    status = pressure.getTemperature(T);
    if (status != 0) {
      Serial.print("1");
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Baro Temperature: ");
      lcd.setCursor(0, 1);
      lcd.print(T, 2);
      lcd.print(" deg C ");
      t1 = T;
      delay(3000);

      status = pressure.startPressure(3);
      if (status != 0) {
        delay(status);
        status = pressure.getPressure(P, T);
        if (status != 0) {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("abslt pressure: ");
          lcd.setCursor(0, 1);
          lcd.print(P, 2);
          lcd.print(" mb ");
          delay(3000);

          p0 = pressure.sealevel(P, ALTITUDE);
          a = pressure.altitude(P, p0);
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Altitude: ");
          lcd.setCursor(0, 1);
          lcd.print(a, 0);
          lcd.print(" meters");
          delay(3000);
        }
      }
    }
  }

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  t2 = t;

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Humidity: ");
  lcd.setCursor(0, 1);
  lcd.print(h);
  lcd.print(" %");
  delay(3000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("DHT Temp: ");
  lcd.setCursor(0, 1);
  lcd.print(t);
  lcd.print(" deg C ");
  delay(3000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Mean Temp: ");
  lcd.setCursor(0, 1);
  lcd.print((t1 + t2) / 2);
  lcd.print(" deg C ");
  delay(3000);
}

Схемы

Портативная метеостанция на Arduino Nano за $10: DHT22, BMP180 и LCD

Производственный процесс

  1. Сборка уличной метеостанции на Raspberry Pi 2 и ADS‑WS1
  2. Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
  3. Продвинутая метеостанция v2.0: мониторинг температуры, давления, влажности и высоты в реальном времени
  4. Сборка DCC-командной станции для модельной железной дороги на Arduino с бесплатным приложением
  5. Автоматизированная барная станция «6-Сhooter» на Arduino — Собираем коктейльный робот своими руками
  6. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  7. Создание портативного ёмкостного сенсорного пианино на Arduino: пошаговое руководство
  8. DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
  9. Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
  10. Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano