Подключение DS18B20 к нескольким arduino

Тема в разделе "Arduino & Shields", создана пользователем krimator, 16 июл 2017.

  1. Airbus

    Airbus Оракул

    Еще вопрос Запуск Вебасто от термодатчика или по GSM?И второй вопрос насколько актуальна и принципиальна передача температуры из под капота в Интернет?И третий в кучу смысл запуска от датчика показывающего температуру за бортом?Вот например температура упала датчик сработал Вебасто заработал.За ночь он выжрет весь бак и высосет весь аккумулятор.Потому как никогда не выключиться потому как нет данных от датчика температуры антифриза.Здесь лучше заюзать штатный датчик температуры ОЖ.А подсвет LCD индикатора можно включать от релюхи запускающей Вебасто.Сам по себе он потребляет очень мало.
     
    krimator нравится это.
  2. rkit

    rkit Гуру

    Код (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));
    }

    Вот вам демонстрация работоспособности.Код коммерческого качества за бесплатно я писать не буду. Лучше что-нибудь свое напишу.
     

    Вложения:

    krimator и ИгорьК нравится это.
  3. ИгорьК

    ИгорьК Победитель модулей

    Да я только за delay() без разрешения ТС готов 500 р. заплатить.
    Пишите номер Яндекс кошелька и перевод завтра будет выполнен.
     
  4. krimator

    krimator Нуб

    Блин, долго всё объяснять))
    Да только по GSM. Там разные функции: Включение реле по звонку (по повторному вырубает), включение и выключение по DTMF, и мониторинг температуры (будет стоять три DS18B20) салона, ож, и забортом через народный мониторинг.
    плюс можно получать смс при запросе.
    Ну хотело бы знать не выходя из дома, насколько прогрелась машина, плюс какая температура в машине и забором)
    Я буду запускать вибасту по телефону, за полчаса, за час до выезда. Вторая ардуинка, будет запускатся только после запуска вибасты (через реле запуска вибасты) и выводить данные температуры на монитор.
    Как-то так))
    Как это возможно?
    Экранчик будет 128x64 l2c, тоже можно вырубить подсветку?
     
  5. krimator

    krimator Нуб

    Что такое ТС?))
     
  6. rkit

    rkit Гуру

    410011054590887
     
  7. Tomasina

    Tomasina Иномирянин

    А что это за тип?
     
  8. rkit

    rkit Гуру

    Тот, который возвращает millis() - unsigned long
     
  9. ИгорьК

    ИгорьК Победитель модулей

    Как и обещал:

    3331144.jpg
     
  10. ИгорьК

    ИгорьК Победитель модулей

    ТС - это ТопикСтартер.
     
  11. ИгорьК

    ИгорьК Победитель модулей

    Ок, сначала карточный долг, потом открываем мешок с котом. :)

    Итак, как это работает в исполнении тов. rkit. Никогда бы не додумался до такого "оригинального" решения, и за тупость заплачено :)

    То что называется "мастером" опрашивает датчик и после ответа сбегает в сон на пять секунд, оповещая об этом завалом линии в ноль на секунду.

    То что называется "слэйвом" обязано в мертвом цикле ловить эту шину в нуле, после чего само спросить температуру.

    ЗачОт, новое слово арбитража 1-wire :)
     
    issaom нравится это.
  12. krimator

    krimator Нуб

    Тема не раскрыта :)
     
  13. ИгорьК

    ИгорьК Победитель модулей

    Это вопросы к rkit. Он же обещал что все элементарно.
    Мне просто по приколу посмотреть что же он там пишет на самом деле. Платил за радость познания (человека).
     
    issaom нравится это.
  14. rkit

    rkit Гуру

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