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

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

Даже не знаю что и посоветовать... У меня работает и на UNO и на Pro mini 328P.

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

vvg10 пишет:

Даже не знаю что и посоветовать... У меня работает и на UNO и на Pro mini 328P.

У меня остаются только мысли, что конфликт дисплея i2c с часами. 

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

dennisdennis пишет:

vvg10 пишет:

Даже не знаю что и посоветовать... У меня работает и на UNO и на Pro mini 328P.

У меня остаются только мысли, что конфликт дисплея i2c с часами. 

Ну а с чего им конфликтовать бы?

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

А на какие ноги повешены часы и что написано на эту тему в скетче, покажи пожалуйста. А попробуй подцепить индикатор по обычной схеме, ног то в меге дофига.

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

vvg10 пишет:

А на какие ноги повешены часы и что написано на эту тему в скетче, покажи пожалуйста. А попробуй подцепить индикатор по обычной схеме, ног то в меге дофига.

И еще как это электрически подключено, схему или фото.

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

vvg10 пишет:

А на какие ноги повешены часы и что написано на эту тему в скетче, покажи пожалуйста. А попробуй подцепить индикатор по обычной схеме, ног то в меге дофига.

// Метеостанция с часами, двумя датчиками температуры и влажности(улица-дом), датчиком давления.
// Компоненты: 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(20, 21);//инициализация DS1307 20-SDA, 21-SCL
  
  Time  t;
  int sh; //часы
  int mn; //минуты
  int sc; //секунды


  LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
                                      
  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(4); // подключение датчиков температуры и влажности
  dhtb.setup(5); 
   
  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(22, 43, 00);     // Устанавливаем время 18:48:00 
 //rtc.setDate(04, 02, 2015);   // Устанавливаем дату 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)
  }
   }
    }






        
  




  
   
  



  

 

 

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

bwn пишет:

vvg10 пишет:

А на какие ноги повешены часы и что написано на эту тему в скетче, покажи пожалуйста. А попробуй подцепить индикатор по обычной схеме, ног то в меге дофига.

И еще как это электрически подключено, схему или фото.

Часы + Дисплей + BMP -  20, 21

DHT + DHT - 4, 5

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

[/quote]

Часы + Дисплей + BMP -  20, 21

DHT + DHT - 4, 5

[/quote]

Я не про другое, три блока I2C соединены в одной точке или последовательно через гребенки плат?

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

bwn пишет:

Часы + Дисплей + BMP -  20, 21

DHT + DHT - 4, 5

[/quote]

Я не про другое, три блока I2C соединены в одной точке или последовательно через гребенки плат?

[/quote]

Последовательно на макетке. Перетыкал уже все несколько раз. 

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

Я вот только не пойму, к чему такая экономия на меге? Или чисто академический интерес к I2C?

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

А выбросьте датчик BMP и попробуйте без него.

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

vvg10 пишет:

Я вот только не пойму, к чему такая экономия на меге? Или чисто академический интерес к I2C?

А вы предлагаете параллельно аппаратному I2C еще и програмный замастырить?

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

vvg10 пишет:

Я вот только не пойму, к чему такая экономия на меге? Или чисто академический интерес к I2C?

Дисплей сейчас свободный только один :)

I2c уже запаян в дисплей.

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

bwn пишет:

А выбросьте датчик BMP и попробуйте без него.

уже разные комбинации попробовал. Часы с этими же датчиками в тестовых скетчах работают нормально. Полтергейст однако. 

Может допилить скетч и вывести часы в сериал монитор?

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

Просто подключить BMP на свои два пина, а RTC на свои.

То dennisdennis могу, конечно ошибаться, но по моему, в твоем случае строка 17 лишняя. Нужно адрес указать, а ноги уже по умолчанию привязаны.

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

Ну а кому они нужны в сериале? Попробуйте лучше библиотеку часов поменять, хоть на ту что в тестовом скетче.

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

То dennisdennis BMP и индикатор по I2C у тебя работают. Подцепи RTC на другие пины и все дела.

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

dennisdennis  а какое назначение у 43 строки в коде?

 

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

Такая проблема оказывается не только у меня. Нагуглил несколько случаев, включая буржуев. Первое, что завтра сделаю, повешу часы на 5в, сейчас они на 3,3в, возможно нехватает напруги. 

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

dennisdennis пишет:

Такая проблема оказывается не только у меня. Нагуглил несколько случаев, включая буржуев. Первое, что завтра сделаю, повешу часы на 5в, сейчас они на 3,3в, возможно нехватает напруги. 

На тестовых сами же говорили что работают. Если честно мне не нравится halt в 43 строке. Попробуйте запустить часы на тестовом скетче чтобы шли, а потом залить этот скетч закомментировав строку №43.

Все, беру слова назад. А кто вас научил вешать на 3,3 вольта? Если по DS1307 напряжение питания должно быть  1.25Vbat, чтобы они работали. У этих думаю аналогично.

dennisdennis
dennisdennis аватар
Offline
Зарегистрирован: 18.01.2015

Часы вешал на 5v. Ничего не меняется. Остаются только манипуляции с кодом. Сейчас уже разобраться дело чести! :)

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

Ну так попробуй на отдельные пины их повесить, чтоб понять с I2C проблема или с часами.

knacky
Offline
Зарегистрирован: 10.02.2015

Здравствуйте!

Отправьте пожалуйста библиотеки проекта на адрес: knacky@pochta.ru

Очень хочется повторить!

Спасибо!

yojik
Offline
Зарегистрирован: 20.02.2015

Будьте добры, библиотеки на yojik09@inbox.ru, заранее спасибо. Очень понравился ваш проект, хочется повторить.

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

Цитата:

Отправьте пожалуйста библиотеки проекта на адрес: knacky@pochta.ru

Будьте добры, библиотеки на yojik09@inbox.ru

Отправил, извините за задержку

Вопрос был к RN6LJK или к vvg10?

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

Мое все лежит в 137 посте.

yojik
Offline
Зарегистрирован: 20.02.2015

Спасибо, получил. Интересны оба варианта, но в наличии только двухстрочник.

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

dennisdennis, ау! Получилось что в итоге или как?

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

Доброго дня все интересующиеся этой темой.

Сразу попрошу прощения у модераторов за то, что этот пост по большому счету пока не относится к Arduino, но насколько я слежу за развитием технологии в скором времени описанный ниже вариант найдет свое место в этой нише, тем более, что уже заметны шевеления, например в теме "Отслеживание лица OpenCV + Arduino" http://robocraft.ru/blog/projects/840.html и пр..

Итак ближе к теме.

Я как-то спросил раньше у вас уважаемые коллеги "есть ли у кого варианты и предложения снятия показаний температуры за бортом беспроводными методами?". По большому счету предложений не поступило. Мне не давал покоя этот вопрос  каждое утро глядя на показания этой метеостанции так как приходилось выглядывать за окно где установлен уличный градусник. Возник естественный вопрос а почему бы не снять показания с уличного градусника при помощи видеокамеры +распознавание? Начал копать тему. Наткнулся на несколко толковых статай, например "Обучение OpenCV каскада Хаара" http://habrahabr.ru/post/208092/. Понятное дело задачи распознавания решались на Windows и Linux, хотя как я уже указал выше  уже есть попытки решения на Arduino. Короче говоря я решил попробовать смоделировать решение такой задачи, при этом держа в уме, что в будущем такой проект должен быть реализован либо на Arduino или на худой конец как первоначальный вариант на Raspberry PI. Итак. За онову я взял обыкновенный градусник, который приклеивается к стеклу и попробовал обучить неколько каскадов Хаара для этого предмета. Время затраченное на изучение этой темы не считаю потраченным зря. В итоге я разобрался, конечно на самом начальном уровне, с процессом обучения и получения результата. Программы захвата изображения я писал  на языке Python 2.7.2 Задачка доложу я вам нетривиальная. Пока  мне удалось поиграться и получить результаты для распознавания показания градусника для значений 5, 10 и 25 градусов, правда с весьма огромной погрешностью, как вы видите на снимках, но лиха беда начало. Это только проба пера. Привожу снимки захвата показаний. Текст программы захвата и процедуры обучения не привожу по понятным причинам (тема не этого форума). Кому интересно пишите обсудим. Очень надеюсь, что найдутся энтузиасты, которые разовьют это решение на плтаформе Arduino. 

anatron
Offline
Зарегистрирован: 03.03.2015

Добрый вечер RN6LJK можно Вас попросить скинуть библиотеки, anatron777@gmail.com очень заинтересовал проект,хочется повторить

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

anatron пишет:

Добрый вечер RN6LJK можно Вас попросить скинуть библиотеки, anatron777@gmail.com очень заинтересовал проект,хочется повторить

Пожалуйста

anatron
Offline
Зарегистрирован: 03.03.2015

Спасибо огромное!:) получил

Николай_844
Offline
Зарегистрирован: 07.03.2015

Здравствуйте!

Отправьте пожалуйста библиотеки проекта на адрес: nni14@mail.ru

Очень хочется повторить!

Спасибо!

urabant
Offline
Зарегистрирован: 04.04.2015

скиньте библиотеки пожалуйста

urabant@gmail.com

etimsk
Offline
Зарегистрирован: 23.09.2013

Доброе утро  RN6LJK можно Вас попросить скинуть библиотеки, tdrt73@bk.ru очень заинтересовал проект,хочется повторить

RUSS
Offline
Зарегистрирован: 04.06.2015

Доброго времени суток!

Уважаемый RN6LJK скиньте пожалуйста библиотеки info.rus@mail.ru

Очень заинтересовало устройство.

Заранее спасибо!

 

Velmarin
Offline
Зарегистрирован: 07.03.2015

Здравствуйте RN6LJK! Скиньте пожалуйста библиотеки из своего проекта на Vladimir250@mail.ru

GeorgeBgk
Offline
Зарегистрирован: 08.07.2015

http://fritzing.org/download/?donation=0

Нарисуйте пожалуйста схему в Фритцинге!

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

если камеру направить на соседское окно, то можно воровать значения термометра и сиськи соседки.

*по сути не понятно техническое обоснование необходимости снятия показаний с механического термометра, если можно снимать показания с температурного датчика.

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

GeorgeBgk пишет:

http://fritzing.org/download/?donation=0

Нарисуйте пожалуйста схему в Фритцинге!

Ну так возьмите и нарисуйте, если Вы в нем работаете. Вряд ли автор будет изучать неизвестную ему программу, чтоб нарисовать Вам схему... ИМХО, естественно.

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

Клапауций 999 пишет:

если камеру направить на соседское окно, то можно воровать значения термометра и сиськи соседки.

*по сути не понятно техническое обоснование необходимости снятия показаний с механического термометра, если можно снимать показания с температурного датчика.

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

Есаул вы любите детей? Детей??? не знаю, но сам процесс...

Может теперь понятно?

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

vvg10 пишет:

GeorgeBgk пишет:

http://fritzing.org/download/?donation=0

Нарисуйте пожалуйста схему в Фритцинге!

Ну так возьмите и нарисуйте, если Вы в нем работаете. Вряд ли автор будет изучать неизвестную ему программу, чтоб нарисовать Вам схему... ИМХО, естественно.

 

vvg10, спасибо за поддержку.

Emeljanowich
Emeljanowich аватар
Offline
Зарегистрирован: 30.04.2015

Отличный проект! Все гениально и просто! Взахлёб прочитал все 4 страницы)

Будьте так любезны, сбросте библиотеки на Emeljanowich@mail.ru. Заранее большое спасибо!

Emeljanowich
Emeljanowich аватар
Offline
Зарегистрирован: 30.04.2015

Подскажите пожалуйста, датчик BMP180 можно применить в данном проекте? Во всех магазина пишут что BMP085 датчик давления, каким образом он определяет температуру? Спасибо!

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

Emeljanowich пишет:

1 ......, сбросте библиотеки на Emeljanowich@mail.ru

2. Подскажите пожалуйста, датчик BMP180 можно применить в данном проекте?

3. Во всех магазина пишут что BMP085 датчик давления, каким образом он определяет температуру?

1. Сбросил.

2. Несомненно можно. Вопрос этот уже обсуждался выше. ОБратитесь к коллегам, которые экспериментировали с 180 датчиком. Мой совет такой - смоделируйе отдельно подключение

датчика к Ардуино. Это необходимо для корректировки  схемы всего устройства (уверен, что потребуется), а также для проверки библиотеки от 085 датчика. Допускаю, что придется подбирать свежую библиотеку. Публикаций масса, например 

http://homes-smart.ru/index.php/oborudovanie/datchiki/datchik-davleniya-bmp085

обратите внимание на 

http://www.avislab.com/blog/bmp180/

http://arduino-project.net/podklyuchenie-datchika-bmp180-arduino/

http://adatum.ru/podklyuchenie-tsifrovogo-barometra-bmp180-k-arduino.html

 

Уверен, что все получится.

3. BMP085 датчик давления и температуры.

http://homes-smart.ru/index.php/oborudovanie/datchiki/datchik-davleniya-bmp085

tihonof
Offline
Зарегистрирован: 22.07.2015

Прошу библиотеку на tihonof@ya.ru

 

Bumssik
Offline
Зарегистрирован: 27.07.2015

Доброго времени суток!

Собираю себе метеостанцию, в тестовом режиме уже работает, но не совсем пока ею доволен.

Не могли бы мне выслать схему Вашего устройства и сам скетч, буду благодарен...

Bumssik
Offline
Зарегистрирован: 27.07.2015

Bumssik пишет:

Доброго времени суток!

Собираю себе метеостанцию, в тестовом режиме уже работает, но не совсем пока ею доволен.

Не могли бы мне выслать схему Вашего устройства и сам скетч, буду благодарен...

Извиняюсь...

Обращался к Loginkr, мой email bumssik@gmail.com

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

Выслал все, что есть, правда про схему и скетч не понял вопроса. Все ведь в начале темы приведено.

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

RN6LJK пишет:

Выслал все, что есть, правда про схему и скетч не понял вопроса. Все ведь в начале темы приведено.

Просто обращение было к 

Bumssik пишет:

Обращался к Loginkr