Вы здесь:
Главная » Все записи » Метеостанция из 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



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



П О П У Л Я Р Н О Е:

  • Велосипедный электронный счетчик своими руками
  • История создания

    Велосипедный электронный счетчик своими рукамиВ пожилом возрасте многие начинают задумываться о собственном здоровье. Например, мой отец в 50 лет начал усиленно не только думать о выше сказанном, но делать зарядку по утрам по 40-50 минут, да ещё с гантелями, да ещё с закаливанием и купанием в проруби. К 60-ти годам заработал инфаркт.

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

    Подробнее…

  • Обзор модулей Arduino
  • Arduino Mini, Nano, Uno и Mega.

    Общие сведения, анализ и программирование

    Arduino Mini, Nano, Uno и Mega. Общие сведения, анализ и программированиеArduino — это интересный электронный конструктор, с помощью которого можно создавать различные электронные устройства как для начинающих, так и профессионалов. Модули пользуются огромной популярностью благодаря удобству построения схем и простоте языка программирования. Модуль программируется через обычный USB разъём, без использования специальных программаторов. Ранее мы рассматривали несколько простых схем на основе Ардуино.

    Подробнее…

  • Микроконтроллерное управление для морозильной камеры Атлант
  • Переводим морозильную камеру Атлант 7184 на микроконтроллерное управление

    Микроконтроллерное управление для холодильника АтлантСначала в проекте использовал твердотельное реле, но потом двигатель перестал им управляться. Поставил простое электромагнитное, жду из Китая еще твердотельное.

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

    Сначала все радовались, но со временем начал замечать странную ее работу: поработает минут 5-7 и через 10 опять включается.

    Подробнее…


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

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


- НАВИГАТОР -




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

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



MasterVintik