Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // LCD1602 start -------------------
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x27,16,2);
- // LCD1602 end -------------------
- // DS18B20 start -------------------
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #define ONE_WIRE_BUS 12
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- DeviceAddress firstThermometer;
- // DS18B20 end -------------------
- // BMP180 start -------------------
- //#include <Wire.h>
- #include <Adafruit_BMP085.h>
- Adafruit_BMP085 bmp;
- // BMP180 end -------------------
- // DHT11 start -------------------
- #include "DHT.h"
- #define DHTPIN 2
- #define DHTTYPE DHT11
- DHT dht(DHTPIN, DHTTYPE);
- // DHT11 end -------------------
- // DS1307 start -------------------
- #include <Time.h>
- #include <DS1307RTC.h>
- // DS1307 end -------------------
- // Используемые переменные start -------------------
- int tempDS = 0; // температура с DS18B20
- int tempBMP = 0; // температура с BMP180
- int presBMP = 0; // атмосферное давление с BMP180
- int tempDHT = 0; // температура с DHT11, не используется
- int humiDHT = 0; // влажность с DHT11
- const char *days[7] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
- // Используемые переменные end -------------------
- // добавление нолика к часам/минутам/дате..., если там одна цифра
- void print2digits(int number) {
- if (number >= 0 && number < 10) {
- lcd.print('0');
- }
- lcd.print(number);
- }
- void setup() {
- lcd.init();
- lcd.backlight();
- sensors.begin();
- if (!sensors.getAddress(firstThermometer, 0)) {
- lcd.setCursor(0,0);
- lcd.println("DS18 ERROR!");
- }
- sensors.setResolution(firstThermometer, 9);
- bmp.begin();
- dht.begin();
- lcd.setCursor(4,0);
- lcd.print("Start...");
- delay(3000);
- lcd.clear();
- }
- void loop() {
- tmElements_t tm;
- RTC.read(tm);
- sensors.requestTemperatures();
- tempDS = sensors.getTempC(firstThermometer);
- tempBMP = bmp.readTemperature();
- presBMP = bmp.readPressure()/133.3;
- tempDHT = dht.readTemperature();
- humiDHT = dht.readHumidity();
- if ( tm.Second % 10 == 0) {
- lcd.setCursor(0,0);
- lcd.print("U ");
- lcd.print(tempBMP);
- lcd.print("*C ");
- lcd.print(" / ");
- lcd.print(presBMP);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print("H ");
- lcd.print(tempDS);
- lcd.print("*C ");
- lcd.print(" / ");
- lcd.print(humiDHT);
- lcd.print("%");
- }
- if ( tm.Second % 10 == 9) {
- lcd.setCursor(0,0);
- print2digits(tm.Hour);
- lcd.print(":");
- print2digits(tm.Minute);
- lcd.print(":");
- print2digits(tm.Second);
- lcd.setCursor(0,1);
- lcd.print(days[tm.Wday]);
- lcd.print(" ");
- print2digits(tm.Day);
- lcd.print(".");
- print2digits(tm.Month);
- lcd.print(".");
- lcd.print(tmYearToCalendar(tm.Year));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement