Код в студию на всеобщее обозрение. Если ТС одобрит и у него не останется вопросов - я перечислю Вам 500 рублей на Яндекс кошелек, обещаю при всех присутствующих.
Что значит полностью забивает?А обьединить?Считывает температуру выводит на дисплей если ниже включает реле запуска Вебасто/отправляет GSM команду на запуск.Вебасто как включается?
Простым замыкание двух проводов. За это отвечает реле. Код писал не я, он довольно большой. Просил человека объединить, говорит не хватает памяти ардуины, нужно оптимизировать код. Не хочется чтобы дисплей горел всю ночь, а только при запуске.
Я так понял, что он вообще не умеет программировать. Так что успех сомнителен немного. Но код набросаю, ладно.
Еще вопрос Запуск Вебасто от термодатчика или по GSM?И второй вопрос насколько актуальна и принципиальна передача температуры из под капота в Интернет?И третий в кучу смысл запуска от датчика показывающего температуру за бортом?Вот например температура упала датчик сработал Вебасто заработал.За ночь он выжрет весь бак и высосет весь аккумулятор.Потому как никогда не выключиться потому как нет данных от датчика температуры антифриза.Здесь лучше заюзать штатный датчик температуры ОЖ.А подсвет LCD индикатора можно включать от релюхи запускающей Вебасто.Сам по себе он потребляет очень мало.
Спойлер: мастер Код (C++): // Include the libraries we need #include <OneWire.h> #include <DallasTemperature.h> // Data wire is plugged into port 2 on the Arduino #define ONE_WIRE_BUS 23 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); /* * The setup function. We only start the sensors here */ void setup(void) { // start serial port Serial.begin(115200); while(!Serial); Serial.println("Master"); // Start up the library sensors.begin(); } /* * Main function, get and show the temperature */ void loop(void) { // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus Serial.print("Requesting temperatures..."); sensors.requestTemperatures(); // Send the command to get temperatures Serial.println("DONE"); // After we got the temperatures, we can print them here. // We use the function ByIndex, and as an example get the temperature from the first sensor only. Serial.print("Temperature for the device 1 (index 0) is: "); Serial.println(sensors.getTempCByIndex(0)); digitalWrite(ONE_WIRE_BUS, LOW); pinMode(ONE_WIRE_BUS, OUTPUT); delay(1000); pinMode(ONE_WIRE_BUS, INPUT); delay(5000); } Спойлер: Слейв Код (C++): // Include the libraries we need #include <OneWire.h> #include <DallasTemperature.h> // Data wire is plugged into port 2 on the Arduino #define ONE_WIRE_BUS 2 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); /* * The setup function. We only start the sensors here */ void setup(void) { // start serial port Serial.begin(115200); while(!Serial); Serial.println("Slave"); } void loop(void) { while (true) { while(digitalRead(ONE_WIRE_BUS)){}; auto fallingEdge = millis(); while(!digitalRead(ONE_WIRE_BUS)){}; if (millis() - fallingEdge > 800) break; } sensors.begin(); // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus Serial.print("Requesting temperatures..."); sensors.requestTemperatures(); // Send the command to get temperatures Serial.println("DONE"); // After we got the temperatures, we can print them here. // We use the function ByIndex, and as an example get the temperature from the first sensor only. Serial.print("Temperature for the device 1 (index 0) is: "); Serial.println(sensors.getTempCByIndex(0)); } Вот вам демонстрация работоспособности.Код коммерческого качества за бесплатно я писать не буду. Лучше что-нибудь свое напишу.
Да я только за delay() без разрешения ТС готов 500 р. заплатить. Пишите номер Яндекс кошелька и перевод завтра будет выполнен.
Блин, долго всё объяснять)) Да только по GSM. Там разные функции: Включение реле по звонку (по повторному вырубает), включение и выключение по DTMF, и мониторинг температуры (будет стоять три DS18B20) салона, ож, и забортом через народный мониторинг. плюс можно получать смс при запросе. Ну хотело бы знать не выходя из дома, насколько прогрелась машина, плюс какая температура в машине и забором) Я буду запускать вибасту по телефону, за полчаса, за час до выезда. Вторая ардуинка, будет запускатся только после запуска вибасты (через реле запуска вибасты) и выводить данные температуры на монитор. Как-то так)) Как это возможно? Экранчик будет 128x64 l2c, тоже можно вырубить подсветку?
Ок, сначала карточный долг, потом открываем мешок с котом. Итак, как это работает в исполнении тов. rkit. Никогда бы не додумался до такого "оригинального" решения, и за тупость заплачено То что называется "мастером" опрашивает датчик и после ответа сбегает в сон на пять секунд, оповещая об этом завалом линии в ноль на секунду. То что называется "слэйвом" обязано в мертвом цикле ловить эту шину в нуле, после чего само спросить температуру. ЗачОт, новое слово арбитража 1-wire
Это вопросы к rkit. Он же обещал что все элементарно. Мне просто по приколу посмотреть что же он там пишет на самом деле. Платил за радость познания (человека).
Привет всем! Напишу свой вариант решения проблемы глюка датчика DS18B20. В общем у меня собрана система обогрева на двух конвекторах суммарной мощностью 4 кВт. В качестве терморегулятора используется отечественная приблуда на атмеге RT-12-30. Оригинальный зонд покупать было в лом и его я решил сделать сам. Купил датчик и 7 метров витой пары, но двухпарки. При включении терморегулятора (замыкании встроенного реле) на дисплее попеременно отображался код 85 и текущая температура, реле ритмично щёлкало, но щелчков через десять всё же включалось. Начал эксприментировать. Пробовал заземлять свободную жилу, свитую с проводом обмена данных - эффекта ноль. В итоге провод был заменён на четырехпарник и свободные жилы скручены между собой, со стороны датчика провод GND скручен с ними. Со стороны терморегулятора скрученные свободные жилы висят в воздухе. Заземлять ничего не нужно!!! Если их заземлить, то глюк возвращается. Вот так я победил путём экспериментирования. Всем удачи! PS: Едва ли выбор жил витухи на что-то влияет, но на всякий случай: Оранжевый +, Зеленый Data, Синий Gnd.