Батарейку зачем? Дата тоже не установилась? Часы тикают? Время на экране меняется? Подробные действия при установке времени? Я надеюсь прошивал так?
rtc.setTime(16, 26, 00); // Устанавливаем время 18:48:00
rtc.setDate(19, 07, 2016); // Устанавливаем дату 06.12.2014
Без слешей.
АА простите, дата изменилась, а вот время сначало 19,38,00 и потом часы набирают за 4 сек до 23,00,00 и идут 23,00,01...
// Метеостанция с часами, двумя датчиками температуры и влажности(улица-дом), датчиком давления.
// Компоненты: Arduino Pro.mini.328P, RTC-DS3231, BMP180, DHT21-2шт., LCD 20x4, power LM2596S
#include <LiquidCrystal.h>
#include <DS1307.h>
#include <DHT.h>
#include <Wire.h>
#include <BMP085.h>
#define I2C_ADDRESS 0x77
#define nullButton 12
DHT dhta;
DHT dhtb;
uint8_t gradus[8] = {0x6,0x9,0x9,0x6,0x0,0x0,0x0};// описываем символ градуса
DS1307 rtc(2, 3);//инициализация DS1307 11-SDA, 10-SCL( у меня установлен DS3231 - разницы нет, все работает)
Time t;
int sh; //часы
int mn; //минуты
int sc; //секунды
LiquidCrystal lcd(5, 4, 9, 10, 11, 12);// подключение контактов Arduino к выводам индикатора: 3-RS, 2-E, 6-D4, 7-D5, 8-D6, 9-D7
// меняем цифры, если подключаем к другим контактам Arduino
BMP085 dps = BMP085();// у меня ВМР180, все работает
long Pressure = 0;
void setup(void) {
//pinMode(5, OUTPUT); // контрастность можно задавать не резисторами, а с помощью ШИМ(в данном случае с 5 ноги Arduino на 3 ногу индикатора)
//analogWrite(5, n); // параметр n определяет величину контрастности(от 0 до 255), с моим индикатором оптимально 100
// перечень выходов, поддерживающих ШИМ см. в инструкции к конкретной плате Arduino
Wire.begin();
delay(100);
dps.init();
dhta.setup(6); // подключение датчиков температуры и влажности
dhtb.setup(7);
rtc.halt(false);// Set the clock to run-mode
lcd.begin(20, 4);// Объявляем LCD 20 символов 4 строки
lcd.createChar(0, gradus);// создаем символ градуса
//Записываем в индикатор постоянные данные
lcd.setCursor(0, 1);// вывод второй строки
lcd.print("Out t");
lcd.setCursor(10, 1);
//lcd.write(0xDF); // символ градуса из контроллера индикатора
lcd.print(char(0));// вывод своего символа градуса
lcd.print("C");
lcd.setCursor(13, 1);
lcd.print("Hum.");
lcd.setCursor(0, 2);// вывод третьей строки
lcd.print("In t");
lcd.setCursor(10, 2);
lcd.print(char(0));
lcd.print("C");
lcd.setCursor(13, 2);
lcd.print("Hum.");
lcd.setCursor(0, 3);// вывод четвертой строки
lcd.print("Air pressure");
lcd.setCursor(16, 3);
lcd.print("mmHg");
pinMode(nullButton, INPUT); //кнопка установки минут и секунд в ноль(коррекция хода часов)
digitalWrite(nullButton, HIGH);// уровень входа высокий, кнопку на GND
rtc.setTime(19, 48, 00); // Устанавливаем время 18:48:00
rtc.setDate(19, 07, 2016); // Устанавливаем дату 06.12.2014
// раскомментируем для записи времени в RTC, после комментируем снова и еще раз прошиваем
}
void loop(void){
dps.getPressure(&Pressure);
float h1 = dhta.getHumidity();
float t1 = dhta.getTemperature();
delay(300);
float h2 = dhtb.getHumidity();
float t2 = dhtb.getTemperature();
delay(300);
{
// вывод первой строки
// отображение времени
lcd.setCursor(0, 0);
lcd.print(rtc.getTimeStr(FORMAT_LONG));// если не нужны секунды (FORMAT_SHORT)
// отображение даты
lcd.setCursor(10, 0);
lcd.print(rtc.getDateStr(FORMAT_LONG));// если дата в формате 06.12.14 (FORMAT_SHORT)
lcd.setCursor(0, 1);// вывод второй строки
lcd.print("Out t");
lcd.setCursor(5, 1);// вывод температуры на улице
if (t1<=(-10)){
lcd.print(t1, 1);
}else if(t1>(-10) && t1<0){
lcd.write(0x20);
lcd.print(t1, 1);
}else if(t1>=0 && t1<10){
lcd.write(0x20);
lcd.write(0x20);
lcd.print(t1, 1);
}else{
lcd.write(0x20);
lcd.print(t1, 1);
}
lcd.setCursor(17, 1);// вывод влажности на улице
if (h1<10){
lcd.write(0x20);
lcd.print(h1, 0);
lcd.print("%");
}else if(h1>=100){
lcd.print("99");
lcd.print("%");
}else{
lcd.print(h1, 0);
lcd.print("%");
}
lcd.setCursor(6, 2);// вывод температуры внутри помещения
lcd.print(t2, 1);
lcd.setCursor(17, 2);// вывод влажности внутри помещения
if (h2<10){
lcd.write(0x20);
lcd.print(h2, 0);
lcd.print("%");
}else{
lcd.print(h2, 0);
lcd.print("%");
}
lcd.setCursor(13, 3);// вывод атмосферного давления
lcd.print(Pressure/132.2, 0);
if (!digitalRead(nullButton)) {
set_nu:
t = rtc.getTime();
sh=t.hour;
mn=0;
sc=0;
rtc.setTime(sh+1,mn,sc); //сброс минут и секунд в ноль(если спешат - sh, если отстают - sh+1)
}
}
}
Две палки наклонные поставь в начале 154 строки шоб зелененкой стало. Какие 3 миуты ? У тебя часы как следует не работают..... Сделаешь часы- потом дальше думать будем.
Дык за что спасибо? У теб код то не правильно работает..... У Тебя кнопки не правильно подключены!!!!!!! Какая- кнопка скорее всего постоянно замкнута и идет постоянноая коректировка часов!!!! Отключи все кнопки и убери две косые палки со строки что я писал. Прошейся. Отпишись о результате.
Спасибой сыт не будешь. Лучшее спасибо - это для меня будет когда ты весь скетч запустишь и хоть чуть- чуть осмыслишь свои ошибки (поймешь что мы делали) и по чему я тебе задавал те, или иные вопросы... и не будешь тупо копировать, будешь старатся понять - КАК ЖЕ ОНО РАБОТАЕТ!!!!! Почему стоят те цыферки ,а не другие?
Расскажите по порядку, что происходит. С самого начала. Плата прошита. Часы установлены. Питание выключено. Включаете питание. Что на индикаторе и как меняется?
Строки, что я писал - убрали две косых перед строкой, вписали туды текущее время.. прошились. Потом быстренько палки в зад нарисовали и опять прошилли!!!)))))
Может и мне поможете? Долго бился над этим, но так и не победил, пришлось даже кнопку Reset поставить. После отключения питания зависают датчики температуры и влажности.
vvg10,ни чего не понял (. как зависает после отключения питания? А после включения что происходит?
Первое чтобы я сделал, это использовал другую библиотеку. На сколько я понял, у Вас DHT21. В библиотеке в Вашем архиве поддержка его не заявлена. Есть библиотека по интереснее и с поддержкой Вашего датчика.
Второе- увеличил бы задержку между опросами датчиков. По даташиту время опроса составляет минимум 1,7сек т.е. задержку сделать около 2сек. Дилеем или миллис - решать вам.
vvg10,ни чего не понял (. как зависает после отключения питания? А после включения что происходит?
Первое чтобы я сделал, это использовал другую библиотеку. На сколько я понял, у Вас DHT21. В библиотеке в Вашем архиве поддержка его не заявлена. Есть библиотека по интереснее и с поддержкой Вашего датчика.
Второе- увеличил бы задержку между опросами датчиков. По даташиту время опроса составляет минимум 1,7сек т.е. задержку сделать около 2сек. Дилеем или миллис - решать вам.
Происходит следующее: отрубается сеть(дача, всякое бывает), при появлении сети все запускается, кроме этих датчиков. Сначала пишет, что их просто нет, потом находит, но показания "0". При нажатии кнопки Reset - все появляется как надо. Насчет DHT21, это тот же 22, только в другом корпусе, так что библиотека думаю ни при чем. Насчет задержки - мысль здравая, попробую. Спасибо.
Смотреть по библиотеке.... Там в примерах все описывается.... Вам если не вникаете в смысл кода (а вы не вникаете, раз пины тыкаете от фонаря), это не нужно.... тупо следуйте инструкциям человека, написавшего скетч.....
Хочу прикрутить esp8266 и отправлять данные на народный мониторинг. Подскажите как всё провернуть. Всё что находил это есп8266+датчики без ардуин. Как отправлять данные ардуиной через есп?
Подключение как в посте #439?
это дурдом, поменял выводы(психанул) перепоял
Стало показывать!)
Только на экране вывод атмосферного давления показывает чифру 2
ВМР180 у меня подкл А0 и А1 првильно?
и часы к А4 и А5?
Если по моей схеме, то А4 и А5. Да и по схеме Автора тоже... Откуда А0 и А1???
А часы к D11 и D10 по моей схеме и D2 D3 по авторской.
Нет не правильно.... А4,А5.... смотри схему
Опередили... блин- блинский...какой бред.
Спасибо больщое вам!!! Только понять не могу почему тот раз не показывал экран?)
Часы на 2 и 3 контакт?
Какой скетч льете, такие и контакты должны быть припаяны.У автора
// DS1307:
044
// SDA pin -> Arduino Digital 2
045
// SCL pin -> Arduino Digital 3
046
// VCC - VCC
047
// GND - в моем случае подключение к GROUND блокирует работу DS1307,
048
// поэтому GND не подключено, причину так и не выяснил.
049
DS1307 rtc(2,3);
У меня
DS1307 rtc(11, 10);//инициализация DS1307 11-SDA, 10-SCL( у меня установлен DS3231 - разницы нет, все работает)
Уже голова не варит, завтра займусь часиками. Спасибо еще раз вам!!!
Часы
А как настроить часы? У автора vvg10
В сетапе есть такие строчки:
//rtc.setTime(16, 26, 00); // Устанавливаем время 18:48:00
//rtc.setDate(19, 07, 2016); // Устанавливаем дату 06.12.2014
Прошил все равно 23,00,00
Но они идут?
конецно, батерийку снял
Батарейку зачем? Дата тоже не установилась? Часы тикают? Время на экране меняется? Подробные действия при установке времени?
Батарейку зачем? Дата тоже не установилась? Часы тикают? Время на экране меняется? Подробные действия при установке времени? Я надеюсь прошивал так?
rtc.setTime(16, 26, 00); // Устанавливаем время 18:48:00
rtc.setDate(19, 07, 2016); // Устанавливаем дату 06.12.2014
Без слешей.
убрал //
АА простите, дата изменилась, а вот время сначало 19,38,00 и потом часы набирают за 4 сек до 23,00,00 и идут 23,00,01...
Часы на каких пинах? Закоментируйте строку 154 и перепрошейтесь.
D2 D3, что с 154 сделать?
Еще вопросик, можно сделать: через каждое 3 мин например на весь экране динамическое движение и потом вернулось опять показания?
Две палки наклонные поставь в начале 154 строки шоб зелененкой стало. Какие 3 миуты ? У тебя часы как следует не работают..... Сделаешь часы- потом дальше думать будем.
Вроде работает.
Что "вроде работает"?
Да работает, не сбивается, спасибо)
Дык за что спасибо? У теб код то не правильно работает..... У Тебя кнопки не правильно подключены!!!!!!! Какая- кнопка скорее всего постоянно замкнута и идет постоянноая коректировка часов!!!! Отключи все кнопки и убери две косые палки со строки что я писал. Прошейся. Отпишись о результате.
Спасибой сыт не будешь. Лучшее спасибо - это для меня будет когда ты весь скетч запустишь и хоть чуть- чуть осмыслишь свои ошибки (поймешь что мы делали) и по чему я тебе задавал те, или иные вопросы... и не будешь тупо копировать, будешь старатся понять - КАК ЖЕ ОНО РАБОТАЕТ!!!!! Почему стоят те цыферки ,а не другие?
Так понятно, что я вам надоел, но я далек от программированния и кнопки у меня не стоят.
Расскажите по порядку, что происходит. С самого начала. Плата прошита. Часы установлены. Питание выключено. Включаете питание. Что на индикаторе и как меняется?
Вот результат, но часы сбиваются при откл. электроинергии батарейка есть 3,3в.
// все исправил)
Строки, что я писал - убрали две косых перед строкой, вписали туды текущее время.. прошились. Потом быстренько палки в зад нарисовали и опять прошилли!!!)))))
Часы походу со скакивают на одно и тоже время?
Все хорошо, вверху написал что исправил)
То Cessi71
Может и мне поможете? Долго бился над этим, но так и не победил, пришлось даже кнопку Reset поставить. После отключения питания зависают датчики температуры и влажности.
vvg10,ни чего не понял (. как зависает после отключения питания? А после включения что происходит?
Первое чтобы я сделал, это использовал другую библиотеку. На сколько я понял, у Вас DHT21. В библиотеке в Вашем архиве поддержка его не заявлена. Есть библиотека по интереснее и с поддержкой Вашего датчика.
Второе- увеличил бы задержку между опросами датчиков. По даташиту время опроса составляет минимум 1,7сек т.е. задержку сделать около 2сек. Дилеем или миллис - решать вам.
Тоже интересно насчет библиотеки Dht21 и есть разница между dht22?
Есть. Тачто выложена в архиве по которому вы повторяете станцию не для DHT21.
vvg10,ни чего не понял (. как зависает после отключения питания? А после включения что происходит?
Первое чтобы я сделал, это использовал другую библиотеку. На сколько я понял, у Вас DHT21. В библиотеке в Вашем архиве поддержка его не заявлена. Есть библиотека по интереснее и с поддержкой Вашего датчика.
Второе- увеличил бы задержку между опросами датчиков. По даташиту время опроса составляет минимум 1,7сек т.е. задержку сделать около 2сек. Дилеем или миллис - решать вам.
Происходит следующее: отрубается сеть(дача, всякое бывает), при появлении сети все запускается, кроме этих датчиков. Сначала пишет, что их просто нет, потом находит, но показания "0". При нажатии кнопки Reset - все появляется как надо. Насчет DHT21, это тот же 22, только в другом корпусе, так что библиотека думаю ни при чем. Насчет задержки - мысль здравая, попробую. Спасибо.
Мдя... про библиотеки я неправ... сейчас глянул-должна подходить.
З.Ы. можно и в сетапе задержку поставить. Может они иннициализировтся не успевают...
Пробовал поставил dht22 не пашет.
Что пробовал? Куда поставил? На фото же все пашет.
З.Ы. У них подключение РАЗНОЕ!!! DHT22 3-й вывод может вообще в воздухе висеть, а четвертый нужно на землю.
Да библиотеку поменял
Когда меняешь библиотеку нужно скетч править. В том скетче другая библиотека не будет работать , без правки.
Cessi71 а что нужно менять?
Смотреть по библиотеке.... Там в примерах все описывается.... Вам если не вникаете в смысл кода (а вы не вникаете, раз пины тыкаете от фонаря), это не нужно.... тупо следуйте инструкциям человека, написавшего скетч.....
А можно с 1 кнопки настроивать дату и часы?
Конечно можно, только... извините, не с Вашими познаниями в данной теме... Без обид...
У меня три кнопки.
SET- длительное удержание- вход/выход в настройки, короткими нажатиями - перемещение(часы, минуты,сек и т.д.)
+ и- соответственно увеличит и уменьшить. Если любые кнопки не нажимались 10 сек-выход из режима установки.
дя я не обижаюсь) все понимаю.
В последней строке на экране место:
Air pressure
где заглавная буква А, появился знак % (%
ir pressure)
, в чем может быть причина?Имеется такая вот метеостанция с часами
DHT22 - 2 шт
BMP180
часы ds3231 и экранчик.
Хочу прикрутить esp8266 и отправлять данные на народный мониторинг. Подскажите как всё провернуть. Всё что находил это есп8266+датчики без ардуин. Как отправлять данные ардуиной через есп?