Комнатная метеостанция с часами

n-ka
Offline
Зарегистрирован: 16.01.2016

Подскажите что не так. На экране вместо времени и даты какая то тарабарщина. Подключена микросхема ds1307, в типовом варианте подключения говорится что между первой и второй ногой нужен кварц на 32 кГц и на третью ногу нужно 3.5В подавать, это обязательно? 

Bomberboy
Offline
Зарегистрирован: 08.07.2013

Без вариантов, то что спросил то и надо сделать

RN6LJK
Offline
Зарегистрирован: 24.03.2013

n-ka пишет:

Подскажите что не так. На экране вместо времени и даты какая то тарабарщина. Подключена микросхема ds1307, в типовом варианте подключения говорится что между первой и второй ногой нужен кварц на 32 кГц и на третью ногу нужно 3.5В подавать, это обязательно? 

Если у вас модуль RTC  (я не пойму из снимка), то

 у вас элементарно "не идут" часики. Для этой модели это нормальная ситуация.

Таблетки для лечения.

1. На схеме устройства плата RTC подключена без земли, это не ошибка. У меня именно так работает и не только у меня. Почему? Спросите у китайских братьев.

2. Почистить контакты и заменить батарейку на RTC. Можно вместо одной т.к. в продаже я не видел у нас на 3.5 В поставить две на 3В последовательно. У меня работает одна на 3В уже 3 года.

Если просто микросхема часов без обвеса, то надо обвесить, в том числе и кварцем, чипом памяти, батарейкой резерва и т.д..

Я применил готовую собранную плату RTC с чипом, батарейкой, кварцем и т.д. , что и вам советую.

 

alex000000
Offline
Зарегистрирован: 21.06.2015

У меня было аналогичное в часах на 8 меге. Устранилось подключением керамического (СМД) конденсатора на 10 мкФ прямо на выводы 1307. Вывод земли не отключал.

broduaga5
Offline
Зарегистрирован: 23.11.2015

Поставил DS3231 ,подключил  -   и все работает а 1307 ставил 2 шт

Kuandyk
Offline
Зарегистрирован: 03.04.2016

Добрый день.  Пожалуйста пришлите Ваши библиотеки, если не трудно.

Почта baikenov.k@gmail.com  Заранее спасибо.

tolianu4
Offline
Зарегистрирован: 20.02.2016

Собрал схему на uno и  на nano  , пробовал два датчика DS1307 - кнопки не работают , тестовые скетчи работают как в посте 389 . Попробую сделать в среде  1.0.1 и с  керамическим конденсатором на питание ...

 

tolianu4
Offline
Зарегистрирован: 20.02.2016
Заработало )) с модулем S3231SN  (подключил контакт GND) . 
 
 DHT11 сопротивления подбирал свое.
 
Огромное спасибо автору .
 
chem614
Offline
Зарегистрирован: 19.04.2016

отличный проект автору спасибо

вы не могли бы прислать библиотеки проекта на e-mail chem614@rambler.ru?

спасибо

chem614
Offline
Зарегистрирован: 19.04.2016

отличный проект автору спасибо

вы не могли бы прислать библиотеки проекта на e-mail chem614@rambler.ru?

спасибо

trosik
Offline
Зарегистрирован: 27.04.2016

Добрый день вышлите библиотеки на levandovskiy@electronika.ru

RA4ASQ
Offline
Зарегистрирован: 14.04.2016

Доброго дня. Пришлите пожалуйста библиотеки на nesgoworow@mail.ru

blokerun
Offline
Зарегистрирован: 01.05.2016

Мой сайт погоды в городе Вознесенске, Украина.  http://vozmeteo.com.ua

RN6LJK
Offline
Зарегистрирован: 24.03.2013

blokerun пишет:

Мой сайт погоды в городе Вознесенске, Украина.  http://vozmeteo.com.ua

Достойно. Спасибо за информацию. Желаю дальнейших успехов в продвижении проекта.

 

gerasimka
Offline
Зарегистрирован: 18.03.2016

Добрый денью

Пришлите пожалуйста библиотеки на ga73@mail.ru

n-ka
Offline
Зарегистрирован: 16.01.2016

Доброе мремя суток! Я не особо разбираюсь в программировании, поэтому прошу помоч вас. Мой проект представляет собой макет теплицы, с автоматическим охлаждением и нагревом, в дальнейшем возможно и автоматическим поливом. Так вот, не могли бы вы, или кто нибудь из добрых людей с этого форума, написать программу для работы теплицы? Платформа Arduino Uno, суть в программы в том что бы при достижении определенной температуры, которая измеряется датчиком DHT22, открывалось окошечко, на котором установлен серво привод. Так же вместе с этим начинал работать куллер. И ко всему прочему вывод данных о температуре и влажности (DHT22 измеряет оба параметра) на экран, он кстати такой же как у вас. Я думаю что разбирающимся в этом деле людям, работы на пять минут. Выручите, очень вас прошу. 

bwn
Offline
Зарегистрирован: 25.08.2014

n-ka пишет:

Доброе мремя суток! Я не особо разбираюсь в программировании, поэтому прошу помоч вас. Мой проект представляет собой макет теплицы, с автоматическим охлаждением и нагревом, в дальнейшем возможно и автоматическим поливом. Так вот, не могли бы вы, или кто нибудь из добрых людей с этого форума, написать программу для работы теплицы? Платформа Arduino Uno, суть в программы в том что бы при достижении определенной температуры, которая измеряется датчиком DHT22, открывалось окошечко, на котором установлен серво привод. Так же вместе с этим начинал работать куллер. И ко всему прочему вывод данных о температуре и влажности (DHT22 измеряет оба параметра) на экран, он кстати такой же как у вас. Я думаю что разбирающимся в этом деле людям, работы на пять минут. Выручите, очень вас прошу. 

А темы про теплицы посмотреть, никак?

n-ka
Offline
Зарегистрирован: 16.01.2016

К сожалению, я там ничего подходящего не нашел. 

RN6LJK
Offline
Зарегистрирован: 24.03.2013

n-ka пишет:

К сожалению, я там ничего подходящего не нашел. 

Напишите мне на sokolova_o@mail.ru пообщаемся.

 

trosik
Offline
Зарегистрирован: 27.04.2016

Я новичок собрал но не работают часы. Хотя в проверочном скетче все тикает. На входах A4 A5. На входах 2 и 3 не работает хоть тресни . Хотя они для I2C вроде и не предназначены. Выше был задан вопрос по этой теме, но может расскажете поподробней что такое виртуальный I2C канал и как с ним работать, а то ничего не нашел в литературе.

RN6LJK
Offline
Зарегистрирован: 24.03.2013

trosik пишет:

.... Хотя в проверочном скетче все тикает. На входах A4 A5. На входах 2 и 3 не работает хоть тресни . .....

Для начала подскажите на каком контроллере вы собрали конструкцию, каким проверочным тестом проверяли часы и на какой версии Arduino IDE компилировали.

avbee
Offline
Зарегистрирован: 08.07.2016

Уважаемый автор RN6LJK вышлите пожалуста Ваши библеотеки на bbandrej@yandex.ru  Буду очень признателен

 

avbee
Offline
Зарегистрирован: 08.07.2016

Большое спасибо за библеотеки, все получилось. Это первая конструкция на arduno ,китайская Uno программируется очень плохо.Вытащю m328 проверю на AVR910 обратно на место прошьет раз ,и опять проблемы с загрузкой. Мне проще с hex ,мой набор DHT11, DS3231, BMP180 все работает на ура.

RN6LJK
Offline
Зарегистрирован: 24.03.2013

avbee пишет:

Большое спасибо за библеотеки, все получилось. Это первая конструкция на arduno ,китайская Uno программируется очень плохо.Вытащю m328 проверю на AVR910 обратно на место прошьет раз ,и опять проблемы с загрузкой. Мне проще с hex ,мой набор DHT11, DS3231, BMP180 все работает на ура.

Успехов в новых проектах.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

прошу помощи

// Метеостанция с часами, двумя датчиками температуры и влажности(улица-дом), датчиком давления.
// Компоненты: Arduino Pro.mini.328P, RTC-DS3231, BMP180, DHT21-2шт., LCD 20x4, power LM2596S

 #include <LiquidCrystal_I2C.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(11, 10);//инициализация DS1307 11-SDA, 10-SCL( у меня установлен DS3231 - разницы нет, все работает)
  
  Time  t;
  int sh; //часы
  int mn; //минуты
  int sc; //секунды


  LiquidCrystal_I2C lcd(0x27,20,4);// подключение контактов 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(2); // подключение датчиков температуры и влажности
  dhtb.setup(4); 
   
  rtc.halt(false);// Set the clock to run-mode
  
  lcd.begin(0x27,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(18, 48, 00);     // Устанавливаем время 18:48:00 
  //rtc.setDate(06, 12, 2014);   // Устанавливаем дату 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)
  }
   }
    }

Нет ижображения:

Arduino: 1.6.9 (Windows 7), Плата:"Arduino Nano, ATmega328"

E:\Загрузка\VVG_Meteo\VVG_Meteo\vvg10_meteo\vvg10_meteo.ino: In function 'void setup()':

vvg10_meteo:46: error: no matching function for call to 'LiquidCrystal_I2C::begin(int, int, int)'

E:\Загрузка\VVG_Meteo\VVG_Meteo\vvg10_meteo\vvg10_meteo.ino:46:22: note: candidate is:

In file included from E:\Загрузка\VVG_Meteo\VVG_Meteo\vvg10_meteo\vvg10_meteo.ino:4:0:

C:\Users\Админ\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h:76:7: note: void LiquidCrystal_I2C::begin()

  void begin();

       ^

C:\Users\Админ\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h:76:7: note:   candidate expects 0 arguments, 3 provided

exit status 1
no matching function for call to 'LiquidCrystal_I2C::begin(int, int, int)'

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Для начала сравните строчки 009, 025 и 046. Не наводит на мысль? И вообще, я с I2C не тестировал, у меня индикатор подключен по стандартной схеме, ног хватает.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

 

Уже отрезал шину,подключил без нее, но на дисплеи 0 эмоций)

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Подключение изменили, а скетч поправили? Компилятор ругается или как? Мало данных. Питание индикатора правильное? Контраст установлен?

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Подкл. сделал как у вас в архиве, подсветка работает, контрасность меняется перем. резистором.Брал примеры вывода текста нет эмоция, наверно что то я не так сделал)

Cessi71
Offline
Зарегистрирован: 21.05.2016

Возьмите пример из библиотеки индикатора и выведите "Хелоу ворлд", а потом уже пихайте в скетч свои датчики.

В выше приведенном скетче полный бред.

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}


void loop()
{
}

Это попробуйте. Это подключение по I2C!!!!!

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

До этого когда я отрезал шину примеры выводил, но по проекту там нет её, вот и отрезал, может я сжег дисплей)?

Cessi71
Offline
Зарегистрирован: 21.05.2016

Если подключено не по I2C, то вот пример:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins пины подключения дисплея!!!!
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

 

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Простите меня, не получается вывести на экран может по I2C?

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Еще раз спрошу: питание самого индикатора(не подсветки) подключено правильно? У разных индикаторов оно подключается по разному. Подключите все контакты как на моей схеме, загрузите мои библиотеки, залейте мой скетч. Еще вполне может помочь другая версия Arduino(ранняя). 

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

vss-.vdd+

Сейчас пробую просто вывести на экран что нибуть 0 эмоций. Все как у вас все чисто заливается, но на экране только прямоугольники. vvg10 может у вас скайп есть я вам бы показал.

Cessi71
Offline
Зарегистрирован: 21.05.2016

Контрастность как подключена?

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

подключена как на монтажной схеме на 1 стрн. кроме переменог резистора на подсветку.кроме входов на ардуине сделал как другой автор

Cessi71
Offline
Зарегистрирован: 21.05.2016

Напиши ТУПО КАКОЙ КОНТАКТ ИНДИКАТОРА К КАКОМУ ПИНУ АРДУИНО ПОДКЛЮЧЕН И КУДА ОСТАЛЬНЫЕ НОГИ. По НОМЕРАМ!!!!

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

vss- .vdd+. v0 перем резимт. Rs-D3. rw-. E- D2. D4-D6. D5-D7. D6-D8. D7-D9. A+. K-.

Cessi71
Offline
Зарегистрирован: 21.05.2016

Дык воно и не будет работать!!!!
Вам топикстартер как дятел долбит- подключить индикатор точно по его схеме!!!!! И А+ через резистор обязательно.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

так это подсветка, зачем резистор?

bwn
Offline
Зарегистрирован: 25.08.2014

angersos пишет:

так это подсветка, зачем резистор?

Сгорит синим пламенем, может не сразу))))

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Инф. на экран не выводиться причем подсветка.

Cessi71
Offline
Зарегистрирован: 21.05.2016

Остальные контакты подключите как у топикстартера..... Дык какая к херу разница, подсветка или наведение ракет на Америку Если тупо копируешь проект, не желая понять шо там написяно, то следуй рекомендациям. Иначе спалишь и дуину и индикатор идатчики... и вообще квартиру!

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Вообще то делается для запуска экрана, если он не выводит экран, прицем тут резистор!? Вам придраться нечему.

Cessi71
Offline
Зарегистрирован: 21.05.2016

Блиннннн... Русский язык понимаем? Подключитесь как у автор проекта!!!
Хер с ней с подсветкой!!!
В строке LiquidCrystal lcd(11, 10, 9, 8, 7, 6); циферки не из космоса взяты!!!

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

angersos пишет:

vss-.vdd+

Сейчас пробую просто вывести на экран что нибуть 0 эмоций. Все как у вас все чисто заливается, но на экране только прямоугольники. vvg10 может у вас скайп есть я вам бы показал.

Так прямоугольники все таки горят? Значит индикатор подключен правильно( в смысле питания). Крутите контрастность, похоже тупо засвечено все...

Cessi71
Offline
Зарегистрирован: 21.05.2016

Крути- не крути... эффекта не будет пока он подключение либо програмно, либо аппаратно не сконфигурирует...(

Cessi71
Offline
Зарегистрирован: 21.05.2016

Замените LiquidCrystal lcd(11, 10, 9, 8, 7, 6); на LiquidCrystal lcd(3,2,6,7,8,9); и должно произойти волшебство, при условии чтоВы оставили свое старое подключение.)

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Вот для примера вел свои данные это программно, подкл проводов это монтаж ошибак нет. Контрасность крутил

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins пины подключения дисплея!!!!
LiquidCrystal lcd(3, 2, 6, 7, 8, 9);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}