05.09.2015, 18:16
|
#41
|
Живу я здесь
В Клубе с: 11.05.2013
Город: Москва
Авто: е39 525i
Сообщений: 2,919
Поблагодарили 23 раз(а)
|
Re: Есть заядлые электронщики?
а сами куры не в состоянии?
__________________
"сильно не закручивай, а то больше не приедет"
|
|
|
05.09.2015, 18:19
|
#42
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Толкач
а сами куры не в состоянии?
|
Скетч написать? Х/з - пойду спрошу!
|
|
|
05.09.2015, 20:03
|
#43
|
Старожил
В Клубе с: 04.06.2010
Город: быдлоотрадное
Авто: BMW X5 e53 4.4, VW Passat B4 1.6
Сообщений: 4,594
Поблагодарили 17 раз(а)
|
Re: Есть заядлые электронщики?
подпишусь.
сам работаю в IT-сфере, но могу только писать код...( для готовых дивайсов.
Сейчас изучаю как сделать видеонаблюдение и умный дом для дачи.
веб морду и сервак пишу сам на основе RPI + Modbus.
Более всего вымораживает как при нынешних ОпСоСах сделать норм сетку.
Сервак в инете есть.
SSH-тонель? IP динамиический у всех ОпСоСов((
то есть тупо дергать дачный сервак напрямую по IP не полуится для получения данных
Добавлено через 3 минуты
Цитата:
Сообщение от Accelero
Ну там же идет до 23, а дальше 0,1,2.....7 - цифры с DS3231 берутся - вод собстна и поставил или. Ща только что лампа выключилась (выставил >= 18 || < 7) Вроде работает... Необходимы полевые испытания)))
|
по мне так тоже достаточно 1го IF и потом тупо ELSE, ибо это время ВНЕ 7-21
|
|
|
05.09.2015, 20:38
|
#44
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от BahoSSS
то есть тупо дергать дачный сервак напрямую по IP не полуится для получения данных
|
Всмысле напрямую? Минуя вэбморду?
Цитата:
Сообщение от BahoSSS
по мне так тоже достаточно 1го IF и потом тупо ELSE
|
Дык там фишка в том, что колхоз из двух прог - для RTC DS3231 и DHT11, поэтому от else я отказался или я олень?
|
|
|
05.09.2015, 20:56
|
#45
|
Старики-Разбойники
В Клубе с: 26.01.2012
Город: Москва, Ново-Переделкино
Возраст: 37
Авто: mb w212
Сообщений: 8,251
Поблагодарили 298 раз(а)
|
Re: Есть заядлые электронщики?
Accelero, "элс" тебе замелил бы второй "иф". тупо "если больше 7 И меньше 21 то write pin HIGH, елсе write pin LOW" или наоборот... когда там у тя свет гореть должен, ночью или днем? я забыл но суть не меняется
|
|
|
05.09.2015, 20:59
|
#46
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Ytm
Accelero, "элс" тебе замелил бы второй "иф". тупо "если больше 7 И меньше 21 то write pin HIGH, елсе write pin LOW"
|
Вот говнокод всего колхоза - не будет ли элс времени перекликаться с температурой? Дык мой вариант живой в итоге-то?
Цитата:
#include <DS3231.h>
#include <EEPROM.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//Массив, содержащий время компиляции
char compileTime[] = __TIME__;
char compileDate[] = __DATE__;
DS3231 Clock(SDA, SCL);
Time RTC_Time;
void setup()
{
Serial.begin(115200);
Serial.println("DHTxx test!");
dht.begin();
Clock.begin();
//Получаем число из строки, зная номер первого символа
byte hour = getInt(compileTime, 0);
byte minute = getInt(compileTime, 3);
byte second = getInt(compileTime, 6);
unsigned int hash = hour * 60 * 60 + minute * 60 + second;
if (EEPROMReadInt(0) != hash) {
//Сохраняем новый хэш
EEPROMWriteInt(0, hash);
// Записываем время в часы
Clock.adjust(compileDate, compileTime);
}
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
//Для запроса времени в структуру "Time"
RTC_Time = Clock.getTime();
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
if (RTC_Time.hour >= 7 < 18) //&& RTC_Time.min >= 00) время включения освещения
{
digitalWrite(10, HIGH);
}
if (RTC_Time.hour >= 18 || RTC_Time.hour < 7)
{
digitalWrite(10, LOW);
}
delay (100);
if(t <= 14) //если тмпература равна или ниже ?, включаем ИК лампу
{
digitalWrite(11, HIGH);
}
if(t >= 17) //если тмпература равна или выше ?, выключаем ИК лампу и доппечку
{
digitalWrite(11, LOW);
digitalWrite(12, LOW);
}
if(t <= 10) //если тмпература равна или ниже ?, включаем доппечку
{
digitalWrite(12, HIGH);
}
//Вывод дня недели
Serial.print(Clock.getDOWStr());
Serial.print(" ");
//Вывод даты
Serial.print(Clock.getDateStr());
Serial.print(" -- ");
//Вывод времени.
Serial.println(Clock.getTimeStr());
delay(100);
}
char getInt(const char* string, int startIndex) {
return int(string[startIndex] - '0') * 10 + int(string[startIndex+1]) - '0';
}
//Запись двухбайтового числа в память
void EEPROMWriteInt(int address, int value)
{
EEPROM.write(address, lowByte(value));
EEPROM.write(address + 1, highByte(value));
}
//Чтение числа из памяти
unsigned int EEPROMReadInt(int address)
{
byte lowByte = EEPROM.read(address);
byte highByte = EEPROM.read(address + 1);
return (highByte << 8) | lowByte;
}
|
|
|
|
05.09.2015, 21:00
|
#47
|
Живу я здесь
В Клубе с: 11.05.2013
Город: Москва
Авто: е39 525i
Сообщений: 2,919
Поблагодарили 23 раз(а)
|
Re: Есть заядлые электронщики?
ща Толян запилит прогу, не курятник, гриль будет))))))))
__________________
"сильно не закручивай, а то больше не приедет"
|
|
|
05.09.2015, 21:11
|
#48
|
Старики-Разбойники
В Клубе с: 26.01.2012
Город: Москва, Ново-Переделкино
Возраст: 37
Авто: mb w212
Сообщений: 8,251
Поблагодарили 298 раз(а)
|
Re: Есть заядлые электронщики?
RTC_Time.hour и t разные переменные, else относится к предыдущему if, и ни в коем разе ни к какому другому.
примерно так:
Код:
}
if (RTC_Time.hour >= 7 && <=18)
{
digitalWrite(10, HIGH);
}
else
{
digitalWrite(10, LOW);
}
на кой лят оно тут? самая страшная штука во всем твоем коде, срочно гугли как избавиться.
Так то конечно и твой вариант работать будет, тут по сути без разницы, как понимаешь так и делаешь
а выводить время в серийный порт тебе жизненно необходимо? тут гора библиотек для хрен пойми чего, и все чтоб тупо включать лампочку?
Последний раз редактировалось Ytm; 05.09.2015 в 21:20.
|
|
|
05.09.2015, 21:14
|
#49
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Ytm
на кой лят оно тут?
|
Это чтоб глаза от монитора com-порта не о..ели)) А так да - delay злостное зло!
Цитата:
Сообщение от Ytm
элс относится к впередиидущему if
|
Что-то не понял? Может к предыдущему? Впереди у меня уже температурное управление
Цитата:
Сообщение от Ytm
а выводить время в серийный порт тебе жизненно необходимо?
|
Это для отладки на макете. шильд 1602 с кнопками есть, но он цук жрет пять пинов - ща жду с али i2c 1602 моник.
|
|
|
05.09.2015, 21:18
|
#50
|
Старики-Разбойники
В Клубе с: 26.01.2012
Город: Москва, Ново-Переделкино
Возраст: 37
Авто: mb w212
Сообщений: 8,251
Поблагодарили 298 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Accelero
Это чтоб глаза от монитора com-порта не о..ели)) А так да - delay злостное зло!
Что-то не понял? Может к предыдущему? Впереди у меня уже температурное управление
|
эм... странным образом у меня в голове смешались "предыдущий" и "впереди идущий" Типа все что вверху оно "спереди"
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
|
|