Метиостанция
- Войдите на сайт для отправки комментариев
Вс, 27/06/2021 - 22:45
// инициализация необходимых библиотек
#include <Device.h>
#include <iarduino_DHT.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <Wire.h>
#include <BMP280_DEV.h>
// инициализация датчиков и экрана
BMP280_DEV bmp280(10);
LiquidCrystal_I2C lcd(0x27,16,2);
iarduino_DHT sensor(A0);
// инициализация переменных и таймеров
float temperature, pressure, altitude;
unsigned long taimer;
void setup() {
Serial.begin(9600); // запуск монитора порта
pinMode(5,OUTPUT); // объявление пинов
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
lcd.init(); // запуск дисплея
lcd.setBacklight(255);
lcd.setCursor(0,0);
lcd.print("HELLO");
lcd.setCursor(0,1);
lcd.print("METEOSTATION");
bmp280.begin(); // запуск BMP280
bmp280.setTimeStandby(TIME_STANDBY_2000MS);
bmp280.startNormalConversion();
}
void loop() {
// проверяем исправность датчика DHT22
switch(sensor.read()){
case DHT_OK: Serial.print("OK"); break;
}
// считываем показания
int t = sensor.tem;
int h = sensor.hum;
// выводим в монитор порта
Serial.print("Humidity = ");
Serial.print(h);
Serial.print(" %\r");
Serial.print("Temperature = ");
Serial.print(t);
Serial.println(" *C\r ");
// условия сигнализации об уровне влажности
if (h>60) {
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(5,HIGH);
}
if(h<35) {
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
}
if(h>=35 && h<=60) {
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(5,LOW);
}
// считываем данные с датчика BMP280
if (bmp280.getMeasurements(temperature, pressure, altitude))
{
Serial.print(temperature);
Serial.print(F("*C "));
Serial.print(pressure);
Serial.print(F("hPa "));
Serial.print(altitude);
Serial.println(F("m"));
}
// перевод значения давления из гекто-паскалей в миллиметры ртутного столба
int x = pressure*100/133;
// вывод данных на экран дисплея
if (millis() - taimer >1000) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tem=");
lcd.print(t);
lcd.print("C");
lcd.setCursor(9,0);
lcd.print("Hum=");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("P=");
lcd.print(x);
lcd.print("mm");
lcd.setCursor(9,1);
lcd.print("A=");
lcd.print(altitude);
lcd.print("m");
taimer = millis();
}
}
И что это было?
Где схема?
Где описание?
Где фото?
Зачем это вообще нужно, и чем это лучше того, что сотнями валяется на просторах И-нета?
Ну и сразу вопрос по коду: зачем нужен одновременный вывод на экран и в последовательный порт?
Да это тоже метеостанция, только её пометил кот.
Ну и сразу вопрос по коду: зачем нужен одновременный вывод на экран и в последовательный порт?
На экран оно выводит информацию, а в сериал, серет все подряд:)
А зачем использовать кроме BMP280 еще и DHT? BMP влажность и сам умеет измерять (в зависимости от модели).
что подключено к 5,6,7 пину? куда сигнализируете о влажности?
высоту для какого региона вы получаете? В библиотеке зашиваете давление на уровне моря для вашего региона? или пользуетесь библиотечным?
"Метиостанция"...
Робот пылесос что ли ?
да лан. что накинулись. автору небось лет тринадцать :)