Всем привет. Сегодня мы будем делать экран с показателями даты, времени, температуры и влажности.
Для этого на понадобиться.
Все это можно купить на алиэкспрессе.
ЖК экран мы подключаем следующим образом:
SCL-SCL
SDA-SDA
SDA и SCL находятся чуть выше 13 пина.
GND-минус
VCC-5вольт
DS1302 подключаем так
GND-минус
VCC-5вольт
CLK DAT RST - 13, 12, 11
DHT11
GND-минус VCC-5вольт
S - A0
Первым делом надо залить такой код.
include <virtuabotixRTC.h> //|
//|
//=======================================================================================================//|
// //|
// Include files required for Program Function End //|
// //|
//=======================================================================================================//|
// Creation of the Real Time Clock Object
virtuabotixRTC myRTC(6, 7, 8);
void setup() {
Serial.begin(9600);
// Set the current date, and time in the following format:
// seconds, minutes, hours, day of the week, day of the month, month, year
myRTC.setDS1302Time(00, 59, 23, 6, 10, 1, 2014); //тут указываем секунды минуты часы день недели число месяц и год
}
void loop() { //|
myRTC.updateTime(); //|
//|
// Start printing elements as individuals //|
Serial.print("Current Date / Time: "); //|
Serial.print(myRTC.dayofmonth); //|
Serial.print("/"); //|
Serial.print(myRTC.month); //|
Serial.print("/"); //|
Serial.print(myRTC.year); //|
Serial.print(" "); //|
Serial.print(myRTC.hours); //|
Serial.print(":"); //|
Serial.print(myRTC.minutes); //|
Serial.print(":"); //|
Serial.println(myRTC.seconds); //|
//|
// Delay so the program doesn't print non-stop //|
delay( 5000); //|
}
он нужен чтоб датчик времени запомнил время.
include <virtuabotixRTC.h>
include <Wire.h> // Добавляем необходимые библиотеки
include <LiquidCrystal_I2C.h>
include "DHT.h"
define DHTPIN A0 // к какому пину будет подключен сигнальный выход датчика
//выбор используемого датчика
define DHTTYPE DHT11 // DHT 11
virtuabotixRTC myRTC(13, 12, 11);
//define DHTTYPE DHT22 // DHT 22 (AM2302)
//define DHTTYPE DHT21 // DHT 21 (AM2301)
//инициализация датчика
DHT dht(DHTPIN, DHTTYPE);
byte degree[8] = // кодируем символ градуса
{
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
};
LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея
void setup()
{
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
lcd.createChar(1, degree); // Создаем символ под номером 1
Serial.begin(9600);
dht.begin();
myRTC.dayofmonth;
}
void loop() {
delay(1000);
myRTC.updateTime();
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit
float f = dht.readTemperature(true);
// Добавляем паузы в несколько секунд между измерениями
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
// Выводим показания влажности и температуры
lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
lcd.print(myRTC.dayofmonth, 1); // Выводим текст
lcd.setCursor(3, 0); // Устанавливаем курсор на 7 символ
lcd.print(myRTC.month, 1); // Выводим на экран значение влажности
lcd.setCursor(5, 0); // Устанавливаем курсор в начало 2 строки
lcd.print(myRTC.year); // Выводим текст, \1 - значок градуса
lcd.setCursor(11, 0); // Устанавливаем курсор на 7 символ
lcd.print(myRTC.hours); // Выводим значение температуры
lcd.setCursor(13, 0); // Устанавливаем курсор на 7 символ
lcd.print(":"); // Выводим значение температуры
lcd.setCursor(14, 0); // Устанавливаем курсор на 7 символ
lcd.print(myRTC.minutes); // Выводим значение температуры
lcd.setCursor(0, 1); // Устанавливаем курсор в начало 1 строки
lcd.print("Vl ="); // Выводим текст
lcd.setCursor(5, 1); // Устанавливаем курсор на 7 символ
lcd.print(h, 1); // Выводим на экран значение влажности
lcd.setCursor(8, 1); // Устанавливаем курсор в начало 2 строки
lcd.print("Tem"); // Выводим текст, \1 - значок градуса
lcd.setCursor(12, 1); // Устанавливаем курсор на 7 символ
lcd.print(t,1); // Выводим значение температуры
}
дальше заливаем этот код и все готово.