Ви не увійшли.
Сторінки 1
На данном этапе, мне не важна красота кода, мне более важно выжать из контроллера его именно простой функционал..
Непрерывная слежка за параметрами и автоматическая регуляция процессов в управлении простой домашней котельной - не нужны!.
У меня была задача снять нагрузку с оператора котельной, а именно: включать и выключать насосы по помещениям должен контроллер, а не оператор. Это делается для того, чтобы поддерживать температуру в доме и в подсобных помещениях строго в райне заданной. Для этого мне только и нужно, что опросить Далласы и выполнить простой код, заняв, при этом, 8 портов на релюхи и 1 порт на далласы. Итого 9 портов и 150 строчек кода.
Мне от контроллера за 200 грн больше ничего не надо. Вся его работа - это включать свет по светореле, и измерять и сравнивать и включать релюхи.
Он полностью выполняет свою работу уже около 5-ти лет, а в этом году, вот, появилась лампочка и кнопка перезагрузки. Дисплей врезать не успел. Но, по сути, там все настроено уже точно за все эти годы... Параметры эмпирическим путем получены и вшиты уже прямо в код, ничего не нужно даже менять. В доме есть точно установленная температура 22оС и в подсобных 21оС.
Раньше у оператора котельной был алгоритм: если прошло около часа, котел и бак-накопитель нагрелись до 60оС, а тепло в батареи не пошло, то надо пойти открыть щиток и выключить, а потом включить автомат. А сейчас, если шина ванвайр отвалилась, то лампочка загорится и папа или мама нажмут на кнопку и перезагрузят контроллер по питанию. Это сэкономит время и тепло в дом пойдет четко по расписанию.
В этом, как бы, суть.
Ну, все заработало, как надо..
сравнивайте, а не присваивайте, (tempC1 == -127) и т.д.
Спасибо. Коротко и емко))
Honey пише:Специально для Вас: https://arduino.ua/ru/prod4832-master
С таким монтажом сомневаюсь что даже это поможет. А про секретный код вааще молчу...
С каким это ТАКИМ монтажем, проФФесор?
Лучше ваще молчи, за умного сойдешь))
Питание у них свое отдельное через стабилизатор 12-3,3В
У меня раз в 10 сек опрос
Добрый день.
Помогите разобраться.
ВСТУПЛЕНИЕ:
Есть примитивный скетч для управления отоплением. В системе установлены 7 датчиков Даллас и они опрашиваются по адресам
DeviceAddress Thermometer1 = {
0x28, 0xFF, 0xF6, 0x1E, 0x51, 0x18, 0x01, 0x4B }; //D3 28 FF F6 1E 51 18 01 4B котел подача
DeviceAddress Thermometer2 = {
0x28, 0xFF, 0xC7, 0x10, 0xA6, 0x16, 0x04, 0x03 }; //D5 28 FF C7 10 A6 16 4 3 дом воздух
DeviceAddress Thermometer3 = {
0x28, 0x61, 0x64, 0x11, 0xB0, 0x76, 0x28, 0x12 }; //D0 28 61 64 11 B0 76 28 12 кухня
DeviceAddress Thermometer4 = {
0x28, 0xFF, 0x98, 0x94, 0xA6, 0x16, 0x03, 0xAD }; //D2 28 FF 98 94 A6 16 3 AD верх бака
DeviceAddress Thermometer5 = {
0x28, 0xFF, 0x33, 0x45, 0xA6, 0x16, 0x04, 0xE3 }; //D4 середина бака 28 FF 33 45 A6 16 04 E3
DeviceAddress Thermometer6 = {
0x28, 0xFF, 0xC7, 0x1C, 0xA6, 0x16, 0x04, 0x11 }; //D6 низ бака 28 FF C7 1C A6 16 04 11
DeviceAddress Thermometer7 = {
0x28, 0x61, 0x64, 0x11, 0xB0, 0x76, 0xFD, 0x7A }; //D1 подача на насосы 28 61 64 11 B0 76 FD 7A
Потом в цикле они опрашиваются
float tempC1 = sensors.getTempC(Thermometer1); // котел подача 28 FF DE 16 A6 16 4 85
float tempC2 = sensors.getTempC(Thermometer2); // дом воздух 28 FF C7 10 A6 16 4 3
float tempC3 = sensors.getTempC(Thermometer3); // кухня 28 61 64 11 B0 76 28 12
float tempC4 = sensors.getTempC(Thermometer4); // верх бака 28 FF 98 94 A6 16 3 AD
float tempC5 = sensors.getTempC(Thermometer5); // середина бака 28 FF 33 45 A6 16 04 E3
float tempC6 = sensors.getTempC(Thermometer6); // низ бака 28 FF C7 1C A6 16 04 11
float tempC7 = sensors.getTempC(Thermometer7); // подача на насосы 28 61 64 11 B0 76 FD 7A
Далее выполняю простые команды "иф/элс", например:
if (((tempC3<21)&(tempC7>33))||(tempC3<15))// в кухне меньше 23 и подача теплая ИЛИ котел горячий ИЛИ в (кухне ниже 15)
{
digitalWrite (kyxnya, LOW), Serial.print("Насос кухня включен ");
Serial.println();
}
else
{
digitalWrite (kyxnya, HIGH), Serial.print("Насос кухня отключен ");
Serial.println();
ЗАДАЧА:
Шина Далласов работает не очень хорошо, при перепадах напряжения или резких вкл/выкл она отваливается и все значения становятся -127
Перезагрузка контроллера не решает, нужно только дергать питание контроллера. Для этого вывел кнопку на переднюю панель.
Экрана пока нету, поэтому иногда не видишь, что шина отвалилась (случается редко, но метко)
Захотел я добавить кусок кода и лампочку вывести на панель, чтобы включалась, когда отваливается шина.
Дописал такую хрень:
//проверка на ошибки
if ((tempC1 = -127)&&(tempC2 = -127)&&(tempC3 = -127)&&(tempC4 = -127)&&(tempC5 = -127)&&(tempC6 = -127)&&(tempC7 = -127))
{
analogWrite (mist, 255); // На пин А1 посадил диод
Serial.print("ошибка Dallas OneWire");
Serial.println();
ПРОБЛЕМА ПО СУТИ:
Короче, код перестал работать вообще. Все далласы показывают -127.
Начал крутить-вертеть и оставил кусок кода:
if (tempC1 = -127)
{
analogWrite (mist, 255); // На пин А1 посадил диод
Serial.print("ошибка Dallas OneWire");
Serial.println();
Теперь показания в мониторе порта все верные, но диод горит и строка "ошибка Dallas OneWire" - ХОТЯ, все показания на датчиках есть..
ВОПРОС:
а) подскажите, где я неправильно делаю
б) подскажите другое лаконичное решение проверки шины на отвал
Благодарю за внимание к моей проблеме.
на сайте адафрут всё разрисовано и расписано.
в подключении вопросов быть не должно, только по коду могут возникнуть))))
там на сайте они подключают к своей дуине, у которой есть отдельные ноги и2ц, поэтому в их коде я не увидел определения ног.
нужно сравнивать схему, что подключаете кстати?
Подключаю. ШИМ с заголовка темы
У меня китацкая железка написано адафрут, но у них на сайте другая.
У меня на фиолетовом текстолите ноги такие:
GND
OE
SCL
SDA
VCC
Еще у меня есть датчик BME280 (походу того же производителя GY-BME 280) там ноги
VCC
GND
SCL
SDA
CBS
SDO
Я ума не приложу, как их подключить и прописать.
Может есть у кого-то кусок кода,
Хочу их юзать по и2ц, на эспиай нету ног на дуине. (Если честно, то просто не вижу смысла в датчиках эспиай)
Спасибо за информацию.
Я все просмотрел
Но, все равно, ничего не получилось.
Не могу физически подключить
маркировка какая-то не такая, как надо.
Помогите с этой приблудой.
Хочу использовать для включения реле и может пару серв крутить.
Не могу разобраться. Примеров не нашел, не знаю какие ноги куда лепить, как управлять.
Если есть у кого-то скетч, дайте посмотреть.
Сторінки 1