Вы здесь:
Главная » Новое на сайте » Метеостанция из ARDUINO

Метеостанция из ARDUINO

Метеостанция из ARDUINOДавайте в этой статье постараемся собрать интересное устройство на основе набора Arduino — метеорологическую станцию, которая может показать: температуру окружающей среды, влажность, давление, качество воздуха и другие данные, которые могут быть использованы для прогнозирования погоды не выходя из дома.

Предлагаемая схема метеостанции строится на Arduino, который является мозгом метеорологической станции. Она собирает данные от различных датчиков, обрабатывает их и отображает на ЖК-дисплее 16 х 2.

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

Цепь состоит из трех датчиков типа MQ-135, BMP180 и в dht11.

Давайте посмотрим работу каждого датчика подробнее.

Датчик MQ-135

Метеостанция из ARDUINO

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

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

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

На рисунке выше показана схема подключения. Этому датчику необходимо внешнее 5V питание, поскольку он имеет нагревательный элемент внутри датчика, который потребляет около 1 ватта.

Питание от Arduino не может обеспечить больший ток.

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

Датчик dht11

Метеостанция из ARDUINO

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

Это 4-контактный устройство, но используется только 3 из них. Он может показаться очень простой, но внутри он имеет микроконтроллер, который передает данные в цифровом виде для Arduino.

Схема подключения датчика к Arduino очень проста. Выход датчика подключается к контакту А1 ардуино. На vcc питания и GND подключены к выводам питания поставка ардуино.

Примечание: пожалуйста, убедитесь, что ваш датчик имеет встроенный резистор. Если его нет, подключите 4,7 ком резистор с выхода датчика dht11.

Датчик BMP180

Метеостанция из ARDUINO

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

Датчик измеряет высоту установки над уровнем моря. Он использует протокол связи I2C, SDA pin идет на А4 ардуино и SCL идет на А5 ардуино. Vcc и GND подключены к выводам питания питания ардуино.

LCD дисплей

Метеостанция из ARDUINO

ЖК-дисплей показывает все данные от датчиков. Связь между ЖК-дисплеем и ардуино является стандартным. Отрегулируйте потенциометром 10К для оптимальной яркости ЖК-дисплея.

Внешний вид подключений

Вот схема подключения всех датчиков станции к плате Arduino.

Метеостанция из ARDUINO

Программа:


#include <LiquidCrystal.h>
#include <dht.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#define DHTxxPIN A1
LiquidCrystal lcd(12,11,5,4,3,2);
dht DHT;
Adafruit_BMP085 bmp;
int ack;
int input = A0;
unsigned long A = 1000L;
unsigned long B = A * 60;
unsigned long C = B * 2;
int low = 300;
int med = 500;
int high = 700;
int x = 4000;
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Sensors are");
lcd.setCursor(0,1);
lcd.print("getting ready");
delay(C);
}
void loop()
{
ack=0;
int chk = DHT.read11(DHTxxPIN);
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1;
break;
}
if(ack==0)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp(*C)= ");
lcd.print(DHT.temperature);
lcd.setCursor(0,1);
lcd.print("Humidity(%) = ");
lcd.print(DHT.humidity);
delay(x);
}
if(ack==1)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("NO DATA");
lcd.setCursor(0,1);
lcd.print("Check Sensor");
delay(x);
}
if (!bmp.begin())
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BMP180 sensor");
lcd.setCursor(0,1);
lcd.print("not found");
while (1) {}
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("----Pressure----  ");
lcd.setCursor(0,1);
lcd.print(bmp.readPressure());
lcd.print("  Pascal");
delay(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("----Altitude----");
lcd.setCursor(0,1);
lcd.print(bmp.readAltitude(101500));
lcd.print("  meter");
delay(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("  Air Quality:");
if(analogRead(input)==0)
{
lcd.setCursor(0,1);
lcd.print("  Sensor Error");
delay(x);
}
if(analogRead(input)<=low && analogRead(input)>0)
{
lcd.setCursor(0,1);
lcd.print("      GOOD");
delay(x);
}
if(analogRead(input)>low && analogRead(input)<med)
{
lcd.setCursor(0,1);
lcd.print("  GETTING BAD");
delay(x);
}
if(analogRead(input)>=med && analogRead(input)<high)
{
lcd.setCursor(0,1);
lcd.print("   VERY POOR");
delay(x);
}
if(analogRead(input)>=high)
{
lcd.setCursor(0,1);
lcd.print("     WORST");
delay(x);
}
}

Здесь можно бесплатно скачать библиотеку с кодами для работы датчиков

By Girish Radhakrishnan






ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ:


Популярность: 2 109 просм.
Вы можете следить за комментариями к этой записи через RSS 2.0. Вы можете оставить комментарий:.

Ваш комментарий


Прислать свою поделку!

А ТАКЖЕ ЕЩЁ ИНТЕРЕСНОЕ:



Пожалуйста, отключите AdBlock. Для этого нажмите на красный кружок справа вверху (ABP) и снимите галочку. Спасибо! (Админ. сайта "Мастер Винтик".)

MasterVintik