управление обогревателем.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

У меня такой вопрос, не получается сделать управление на модуль реле при повышении температуры больше 30 градусов. Кое как запустил tft 0,96' , но ни черта не вывести управление, не проходит проверку...

 #include "microDS18B20.h"

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
//На экране на плате не верно подписано, там не SDA и SCL, он не I2C, он имеет SPI интерфейс
MicroDS18B20 sensor1(3);  // датчик на пине 3
MicroDS18B20 sensor2(2);  // датчик на пине 2
#define TFT_DC    8     //DC экрана на GPIO 8
#define TFT_RST   9     //RES экрана на GPIO 9
#define TFT_CS    10    //CS экрана на GPIO 10
#define TFT_MOSI  11    //SDA пин экрана подключаем к GPIO 11 (MOSI)
#define TFT_SCLK  13    //SCL пин экрана подключаем к GPIO 13 (CLK)
#define RELAY_PIN 4      //Реле подключено к пину D4
 
boolean relayStatus1=LOW;  //Объявим переменную для хранения состояния реле
 
 
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
 
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
 
void setup(void) {
  Serial.begin(115200);
 
  pinMode(RELAY_PIN,OUTPUT);     //Настроим пин для управления реле
  digitalWrite(RELAY_PIN,LOW);
 
  
  tft.cp437(true);
  tft.initR(INITR_MINI160x80);
 
  tft.setRotation(3);
 
  // tft.invertDisplay(true);
  //tft.invertDisplay(false);
  tft.setCursor(1, 10);
  tft.setTextSize(3);
}
 
void loop() {
 
 
  sensor1.requestTemp();
  sensor2.requestTemp();
 
  delay(100);
  tft.setCursor(1, 10);
 
  tft.setTextColor(YELLOW);
  tft.print(utf8rus("1) "));
 
  tft.print(sensor1.getTemp());
  tft.setCursor(1, 45);
  tft.setTextColor(MAGENTA);
  tft.print(utf8rus("2) "));
  tft.print(sensor2.getTemp());
 
  delay(5000);
  tft.fillScreen(ST77XX_WHITE);
 
}
 
/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
  int i, k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };
 
  k = source.length(); i = 0;
 
  while (i < k) {
    n = source[i]; i++;
 
    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
            n = source[i]; i++;
            if (n == 0x81) {
              n = 0xA8;
              break;
            }
            if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
            break;
          }
        case 0xD1: {
            n = source[i]; i++;
            if (n == 0x91) {
              n = 0xB8;
              break;
            }
            if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
            break;
          }
      }
    }
    m[0] = n; target = target + String(m);
  }
  return target;
 
 
}
 
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

1. Вставка программного кода в тему/комментарий

2. Что означает фраза "ни черта не вывести управление, не проходит проверку"?

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

я беру что печатает информацию от первого датчика и пытаюсь вставить в условие при превышении температуры. Я не силён в программировании но пытаюсь сделать по формуле как в бейсике if ... then... else...

Не знаю как вынуть значение... Не знаю как объяснить. Не могу придать правильное значение созданной переменной

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

vektorss пишет:

я беру что печатает информацию от первого датчика и пытаюсь вставить в условие при превышении температуры. Я не силён в программировании но пытаюсь сделать по формуле как в бейсике if ... then... else...

Не знаю как вынуть значение... Не знаю как объяснить. Не могу придать правильное значение созданной переменной

Читайте.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vektorss пишет:

Не знаю как вынуть значение... Не знаю как объяснить. Не могу придать правильное значение созданной переменной

А как вставить код в тему (о чём было по моей ссылке) Вы знаете? Или тоже не знаете? Пока Вы его нормально не вставите, на него даже смотреть никто скорее всего не будет.

sadman41
Offline
Зарегистрирован: 19.10.2016

Как бы тут Гайвером не запахло...

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
int brightness = 0;
int fadeAmount = 5;
  
void setup()  {
  pinMode(9, OUTPUT);
}
  
void loop()  {
  analogWrite(9, brightness);  
  brightness = brightness + fadeAmount;
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }  
  delay(30);                          
}

 

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
#include "microDS18B20.h"
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
//На экране на плате не верно подписано, там не SDA и SCL, он не I2C, он имеет SPI интерфейс
MicroDS18B20 sensor1(3);  // датчик на пине 3
MicroDS18B20 sensor2(2);  // датчик на пине 2
#define TFT_DC    8     //DC экрана на GPIO 8
#define TFT_RST   9     //RES экрана на GPIO 9
#define TFT_CS    10    //CS экрана на GPIO 10
#define TFT_MOSI  11    //SDA пин экрана подключаем к GPIO 11 (MOSI)
#define TFT_SCLK  13    //SCL пин экрана подключаем к GPIO 13 (CLK)
#define RELAY_PIN 4      //Реле подключено к пину D4

boolean relayStatus1=LOW;  //Объявим переменную для хранения состояния реле


#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup(void) {
  Serial.begin(115200);

  pinMode(RELAY_PIN,OUTPUT);     //Настроим пин для управления реле
  digitalWrite(RELAY_PIN,LOW);

  
  tft.cp437(true);
  tft.initR(INITR_MINI160x80);

  tft.setRotation(3);

  // tft.invertDisplay(true);
  //tft.invertDisplay(false);
  tft.setCursor(1, 10);
  tft.setTextSize(3);
}

void loop() {


  sensor1.requestTemp();
  sensor2.requestTemp();

  delay(100);
  tft.setCursor(1, 10);

  tft.setTextColor(YELLOW);
  tft.print(utf8rus("1) "));

  tft.print(sensor1.getTemp());
  tft.setCursor(1, 45);
  tft.setTextColor(MAGENTA);
  tft.print(utf8rus("2) "));
  tft.print(sensor2.getTemp());
 
  delay(5000);
  tft.fillScreen(ST77XX_WHITE);
 
}

/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
  int i, k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };

  k = source.length(); i = 0;

  while (i < k) {
    n = source[i]; i++;

    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
            n = source[i]; i++;
            if (n == 0x81) {
              n = 0xA8;
              break;
            }
            if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
            break;
          }
        case 0xD1: {
            n = source[i]; i++;
            if (n == 0x91) {
              n = 0xB8;
              break;
            }
            if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
            break;
          }
      }
    }
    m[0] = n; target = target + String(m);
  }
  return target;


}

 

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
 tft.print(sensor2.getTemp()); // здесь оператор print, мне надо Val, ну само значение число

 

sadman41
Offline
Зарегистрирован: 19.10.2016

В приличной библиотеке и примеры нормальные: https://github.com/milesburton/Arduino-Temperature-Control-Library/blob/...

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

// Приличная у меня не вмещается, всё по минимуму

if sensor1.getTemp() > 30 then pinMode(RELAY_PIN,INPUT)  // Не получается это написать, не проходит проверку

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

vektorss пишет:

// Приличная у меня не вмещается, всё по минимуму

if sensor1.getTemp() > 30 then pinMode(RELAY_PIN,INPUT)  // Не получается это написать, не проходит проверку

Я Вам дал ссылку на условные операторы си. Чукча не читатель?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vektorss пишет:

// Приличная у меня не вмещается, всё по минимуму

if sensor1.getTemp() > 30 then pinMode(RELAY_PIN,INPUT)  // Не получается это написать, не проходит проверку

Так вот что такое проверка.

Вы на каком языке пишете? Вас не смущает, что немцу (если он не полиглот) непонятен текст на арабском, а арабу на немецком? Так вот, в Ардуино IDE используется язык С++, а Вы пишете на каком-то другом.

Прочитайте книжку от корки до корки и только потом пытайтесь писать.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Да я всё понимаю, что visual basic не C++, и многое делаю интуитивно. Книжку скачал и буду изучать, но учитывая что мне пошел седьмой десяток, изучение займёт много времени. Мне сдаётся, что тут нужна одна строчка кода и даже без обозначения переменных... то есть, есть данные температуры (они просто высвечиваются на дисплее), есть предельная температура 30° неизменная и есть выход на релейный блок.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vektorss пишет:

Мне сдаётся, что тут нужна одна строчка кода 

В этой строке программы нужна одна строчка, а в следующей потребуется другая. Вы за каждой будете обращаться? Изучите язык. Вы пишете совсем не то.

sadman41
Offline
Зарегистрирован: 19.10.2016

vektorss пишет:

Мне сдаётся, что тут нужна одна строчка кода и даже без обозначения переменных... то есть, есть данные температуры (они просто высвечиваются на дисплее), есть предельная температура 30° неизменная и есть выход на релейный блок.


Если бы Вы по диагонали просмотрели статью , посоветованную в сообщении #3, то давно написали б эту строку.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ЕвгенийП пишет:

Так вот что такое проверка.

Вы на каком языке пишете?

По-моему, человек совершенно одинаково пишет, что по-русски, что на Си.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

#include "microDS18B20.h"
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
//На экране на плате не верно подписано, там не SDA и SCL, он не I2C, он имеет SPI интерфейс
MicroDS18B20 sensor1(3);  // датчик на пине 3
MicroDS18B20 sensor2(2);  // датчик на пине 2
#define TFT_DC    8     //DC экрана на GPIO 8
#define TFT_RST   9     //RES экрана на GPIO 9
#define TFT_CS    10    //CS экрана на GPIO 10
#define TFT_MOSI  11    //SDA пин экрана подключаем к GPIO 11 (MOSI)
#define TFT_SCLK  13    //SCL пин экрана подключаем к GPIO 13 (CLK)
#define RELAY_PIN 4      //Реле подключено к пину D4

boolean relayStatus1=LOW;  //Объявим переменную для хранения состояния реле


#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup(void) {
  Serial.begin(115200);

  pinMode(RELAY_PIN,INPUT);     //Настроим пин для управления реле
  digitalWrite(RELAY_PIN,LOW);

  
  tft.cp437(true);
  tft.initR(INITR_MINI160x80);

  tft.setRotation(3);

  // tft.invertDisplay(true);
  //tft.invertDisplay(false);
  tft.setCursor(1, 10);
  tft.setTextSize(3);
}

void loop() {

int tem;
  sensor1.requestTemp();
  sensor2.requestTemp();

  delay(1000);
  tft.setCursor(1, 10);

  tft.setTextColor(YELLOW);
  tft.print(utf8rus("1) "));

  tft.print(sensor1.getTemp());
  tft.setCursor(1, 45);
  tft.setTextColor(MAGENTA);
  tft.print(utf8rus("2) "));
  tft.print(sensor2.getTemp());
 
  delay(5000);
  tft.fillScreen(ST77XX_WHITE);
 tem = (sensor2.getTemp());  // Выводим температуру
 if (tem > 30)
 {
  pinMode(RELAY_PIN,OUTPUT);
  }
  else 
  pinMode(RELAY_PIN,INPUT);
}


/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
  int i, k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };

  k = source.length(); i = 0;

  while (i < k) {
    n = source[i]; i++;

    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
            n = source[i]; i++;
            if (n == 0x81) {
              n = 0xA8;
              break;
            }
            if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
            break;
          }
        case 0xD1: {
            n = source[i]; i++;
            if (n == 0x91) {
              n = 0xB8;
              break;
            }
            if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
            break;
          }
      }
    }
    m[0] = n; target = target + String(m);
  }
  return target;


}

 

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Вроде нормально работает, но скетч получился топорный: 067-074

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

vektorss пишет:

Вроде нормально работает, но скетч получился топорный: 067-074

Ну почему же - для начала неплохо. Но есть несколько замечаний. Температура это не целое число, а действительное. Поэтому не int а float (строка 49). Далее Вы 2 раза запрашиваете температуру в строках 63 и 67. Запросите 1 раз, а затем пользуйтесь переменной. Вентилятор у Вас будет дёргаться на границе 30 градусов. Поэтому стоит применить гистерезис, т.е. отключать вентилятор при температуре чуть ниже 30, а включать на 30.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Согласен, Спасибо. Исправлю.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
#include "microDS18B20.h"
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
//На экране на плате не верно подписано, там не SDA и SCL, он не I2C, он имеет SPI интерфейс
MicroDS18B20 sensor1(3);  // датчик на пине 3
MicroDS18B20 sensor2(2);  // датчик на пине 2
#define TFT_DC    8     //DC экрана на GPIO 8
#define TFT_RST   9     //RES экрана на GPIO 9
#define TFT_CS    10    //CS экрана на GPIO 10
#define TFT_MOSI  11    //SDA пин экрана подключаем к GPIO 11 (MOSI)
#define TFT_SCLK  13    //SCL пин экрана подключаем к GPIO 13 (CLK)
#define RELAY_PIN 4      //Реле подключено к пину D4

boolean relayStatus1=LOW;  //Объявим переменную для хранения состояния реле


#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup(void) {
  Serial.begin(115200);

  pinMode(RELAY_PIN,INPUT);     //Настроим пин для управления реле
  digitalWrite(RELAY_PIN,LOW);

  
  tft.cp437(true);
  tft.initR(INITR_MINI160x80);

  tft.setRotation(3);

  // tft.invertDisplay(true);
  //tft.invertDisplay(false);
  tft.setCursor(1, 10);
  tft.setTextSize(3);
}

void loop() {

  float tem;
 
  sensor1.requestTemp();
  sensor2.requestTemp();

  delay(1000);
  tft.setCursor(1, 10);

  tft.setTextColor(YELLOW);
  tft.print(utf8rus("1) "));

  tft.print(sensor1.getTemp());
  tem = (sensor2.getTemp()); //Определение значение переменной tem
  tft.setCursor(1, 45);
  tft.setTextColor(MAGENTA);
  tft.print(utf8rus("2) "));
  tft.print(tem);
 
 if (tem > 30)
 {
  pinMode(RELAY_PIN,OUTPUT);
  }
   if (tem+2 < 30)
 {
  pinMode(RELAY_PIN,INPUT);
  } 
  
  delay(5000);
  tft.fillScreen(ST77XX_WHITE);

}


/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
  int i, k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };

  k = source.length(); i = 0;

  while (i < k) {
    n = source[i]; i++;

    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
            n = source[i]; i++;
            if (n == 0x81) {
              n = 0xA8;
              break;
            }
            if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
            break;
          }
        case 0xD1: {
            n = source[i]; i++;
            if (n == 0x91) {
              n = 0xB8;
              break;
            }
            if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
            break;
          }
      }
    }
    m[0] = n; target = target + String(m);
  }
  return target;


}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

mykaida пишет:

Температура это не целое число, а действительное. Поэтому не int а float (строка 49).

Вообще-то, не совсем так.

float - это число не действительное, а, скорее, некоторое подмножество рациональных чисел. Т.е. полного аналога вещественного числа в программировании нет. Соответственно, в зависимости от потребности следует использовать тот тип, который подходит для конкретного случая. Тип int в данном случае подходит, поэтому менять ничего не нужно (а если нужно менять - то не в единственно месте).

С остальными замечаниями согласен.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

andriano пишет:

float - это число не действительное, а, скорее, некоторое подмножество рациональных чисел. Т.е. полного аналога вещественного числа в программировании нет. Соответственно, в зависимости от потребности следует использовать тот тип, который подходит для конкретного случая. Тип int в данном случае подходит, поэтому менять ничего не нужно (а если нужно менять - то не в единственно месте).

Я бы с Вами согласился, но я уверен, что в библиотеке температура прописана как float. ТС выводит 2 температуры и чтобы они одинаково выглядели на экране лучше использовать float.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

vektorss пишет:

Вот всё хорошо, но не pinMode, а digitalWrite(). Используйте ON-OFF, 1-0.

if (tem > 30)
 {
  digitalWrite(RELAY_PIN,1); /или ON
  }
   if (tem+2 < 30)
 {
  digitalWrite(RELAY_PIN,0);
  } 
vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Да я подозревал это, тем более в скетче это вначале есть .. Спасибо, попробую. Строка 033.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

А почему не LOW и HIGH ? Так и так выдаёт ошибку...

sadman41
Offline
Зарегистрирован: 19.10.2016

Потому что некоторые устройства переходят в состояние ON по уровню LOW.

Семантика важна тоже.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Выдаёт ошибку на этой строке...

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

vektorss пишет:

Выдаёт ошибку на этой строке...

Какую ошибку?

А, понял потому что 32 должна быть

pinMode(RELAY_PIN,OUTPUT);

 

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
Arduino: 1.8.13 (Windows 7), Плата:"Arduino Nano, ATmega328P"





















temp_2:69:31: error: stray '\320' in program

   digitalWrite(RELAY_PIN,1); /или ON

                               ^

temp_2:69:32: error: stray '\270' in program

   digitalWrite(RELAY_PIN,1); /или ON

                                ^

temp_2:69:33: error: stray '\320' in program

   digitalWrite(RELAY_PIN,1); /или ON

                                 ^

temp_2:69:34: error: stray '\273' in program

   digitalWrite(RELAY_PIN,1); /или ON

                                  ^

temp_2:69:35: error: stray '\320' in program

   digitalWrite(RELAY_PIN,1); /или ON

                                   ^

temp_2:69:36: error: stray '\270' in program

   digitalWrite(RELAY_PIN,1); /или ON

                                    ^

D:\sketch\temp_2\temp_2.ino: In function 'void loop()':

temp_2:69:30: error: expected primary-expression before '/' token

   digitalWrite(RELAY_PIN,1); /или ON

                              ^

temp_2:69:38: error: 'ON' was not declared in this scope

   digitalWrite(RELAY_PIN,1); /или ON

                                      ^~

exit status 1

stray '\320' in program



Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Мой недочет. Надо так:

if (tem > 30)
 {
  digitalWrite(RELAY_PIN,1); //или ON
  }
   if (tem < 28) //не надо делать лишних операций!
 {
  digitalWrite(RELAY_PIN,0);
  } 

Но 32 строку исправьте. Иначе работать не будет.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
Arduino: 1.8.13 (Windows 7), Плата:"Arduino Nano, ATmega328P"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\Arduino\hardware -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\User\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10813 -build-path C:\Users\User\AppData\Local\Temp\arduino_build_158278 -warnings=none -build-cache C:\Users\User\AppData\Local\Temp\arduino_cache_924022 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files\Arduino\hardware\tools\avr -verbose D:\sketch\temp_2\temp_2.ino
 
C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files\Arduino\hardware -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\Users\User\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10813 -build-path C:\Users\User\AppData\Local\Temp\arduino_build_158278 -warnings=none -build-cache C:\Users\User\AppData\Local\Temp\arduino_cache_924022 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files\Arduino\hardware\tools\avr -verbose D:\sketch\temp_2\temp_2.ino
 
Using board 'nano' from platform in folder: C:\Program Files\Arduino\hardware\arduino\avr
 
Using core 'arduino' from platform in folder: C:\Program Files\Arduino\hardware\arduino\avr
 
Detecting libraries used...
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Alternatives for microDS18B20.h: [microDS18B20@2.2]
 
ResolveLibrary(microDS18B20.h)
 
  -> candidates: [microDS18B20@2.2]
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Alternatives for Adafruit_GFX.h: [Adafruit_GFX_Library@1.10.7]
 
ResolveLibrary(Adafruit_GFX.h)
 
  -> candidates: [Adafruit_GFX_Library@1.10.7]
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Alternatives for Adafruit_ST7735.h: [Adafruit_ST7735_and_ST7789_Library@1.7.1]
 
ResolveLibrary(Adafruit_ST7735.h)
 
  -> candidates: [Adafruit_ST7735_and_ST7789_Library@1.7.1]
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Alternatives for SPI.h: [SPI@1.0]
 
ResolveLibrary(SPI.h)
 
  -> candidates: [SPI@1.0]
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20\\microDS18B20.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library\\Adafruit_GFX.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library\\Adafruit_GrayOLED.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Alternatives for Adafruit_I2CDevice.h: [Adafruit_BusIO@1.7.2]
 
ResolveLibrary(Adafruit_I2CDevice.h)
 
  -> candidates: [Adafruit_BusIO@1.7.2]
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library\\Adafruit_GrayOLED.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Alternatives for Wire.h: [Wire@1.0]
 
ResolveLibrary(Wire.h)
 
  -> candidates: [Wire@1.0]
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library\\Adafruit_GrayOLED.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library\\Adafruit_SPITFT.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library\\glcdfont.c" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library\\Adafruit_ST7735.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library\\Adafruit_ST7789.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library\\Adafruit_ST77xx.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src\\SPI.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_BusIO_Register.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_I2CDevice.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_SPIDevice.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\Wire.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\utility\\twi.c" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
 
Generating function prototypes...
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE
 
"C:\\Program Files\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\preproc\\ctags_target_for_gcc_minus_e.cpp"
 
Компиляция скетча...
 
"C:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\microDS18B20" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_ST7735_and_ST7789_Library" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\User\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Program Files\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp" -o "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_158278\\sketch\\temp_2.ino.cpp.o"
 
temp_2:69:31: error: stray '\320' in program
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                               ^
 
temp_2:69:32: error: stray '\270' in program
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                                ^
 
temp_2:69:33: error: stray '\320' in program
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                                 ^
 
temp_2:69:34: error: stray '\273' in program
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                                  ^
 
temp_2:69:35: error: stray '\320' in program
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                                   ^
 
temp_2:69:36: error: stray '\270' in program
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                                    ^
 
D:\sketch\temp_2\temp_2.ino: In function 'void loop()':
 
temp_2:69:30: error: expected primary-expression before '/' token
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                              ^
 
temp_2:69:38: error: 'ON' was not declared in this scope
 
   digitalWrite(RELAY_PIN,1); /или ON
 
                                      ^~
 
Используем библиотеку microDS18B20 версии 2.2 из папки: C:\Users\User\Documents\Arduino\libraries\microDS18B20 
 
Используем библиотеку Adafruit_GFX_Library версии 1.10.7 из папки: C:\Users\User\Documents\Arduino\libraries\Adafruit_GFX_Library 
 
Используем библиотеку Adafruit_ST7735_and_ST7789_Library версии 1.7.1 из папки: C:\Users\User\Documents\Arduino\libraries\Adafruit_ST7735_and_ST7789_Library 
 
Используем библиотеку SPI версии 1.0 из папки: C:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI 
 
Используем библиотеку Adafruit_BusIO версии 1.7.2 из папки: C:\Users\User\Documents\Arduino\libraries\Adafruit_BusIO 
 
Используем библиотеку Wire версии 1.0 из папки: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire 
 
exit status 1
 
stray '\320' in program
 
vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

а я даже не знаю, зачем я её как вход обозначил, конечно выходом должна быть! Совсем с ума сошёл...

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Извините, но я бы Вам посоветовал немного пописать простенькие программы типа светофора, блинка и т.д. Я не издеваюсь - просто с ними Вы быстрее начнёте ориентироваться и пользоваться языком. Программа, которую Вы взяли, достаточно сложна и на 80% (как мне кажется) Вам непонятна.

Ну и, конечно, книги по си++.

sadman41
Offline
Зарегистрирован: 19.10.2016

Зачем это накопипастили " /или ON"?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vektorss пишет:

   digitalWrite(RELAY_PIN,1); /или ON

Пипе́тка — мерный или дозирующий сосуд, представляющий собой трубку, либо ёмкость с трубкой, имеющую конец с небольшим отверстием, для ограничения скорости вытекания жидкости.

А пипец - это, видимо, самец пипетки.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019
#include "microDS18B20.h"
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
//На экране на плате не верно подписано, там не SDA и SCL, он не I2C, он имеет SPI интерфейс
MicroDS18B20 sensor1(3);  // датчик на пине 3
MicroDS18B20 sensor2(2);  // датчик на пине 2
#define TFT_DC    8     //DC экрана на GPIO 8
#define TFT_RST   9     //RES экрана на GPIO 9
#define TFT_CS    10    //CS экрана на GPIO 10
#define TFT_MOSI  11    //SDA пин экрана подключаем к GPIO 11 (MOSI)
#define TFT_SCLK  13    //SCL пин экрана подключаем к GPIO 13 (CLK)
#define RELAY_PIN 4      //Реле подключено к пину D4

boolean relayStatus1=LOW;  //Объявим переменную для хранения состояния реле
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup(void) {
  Serial.begin(9600);
  pinMode(RELAY_PIN,OUTPUT);     //Настроим пин для управления реле
  digitalWrite(RELAY_PIN,HIGH);
  tft.cp437(true);
  tft.initR(INITR_MINI160x80);
  tft.setRotation(3);
  // tft.invertDisplay(true);
  //tft.invertDisplay(false);
  tft.setCursor(1, 10);
  tft.setTextSize(3);
}
void loop() {
  float tem;
   sensor1.requestTemp();
  sensor2.requestTemp();

  delay(500);
  tft.setCursor(1, 10);

  tft.setTextColor(YELLOW);
  tft.print(utf8rus("1) "));
  tft.print(sensor1.getTemp());
  tem = (sensor2.getTemp()); //Определение значение переменной tem
  tft.setCursor(1, 45);
  tft.setTextColor(MAGENTA);
  tft.print(utf8rus("2) "));
  tft.print(tem);
 
 if (tem > 30)
 {
  digitalWrite(RELAY_PIN,0); //или ON
  }
   if (tem < 28) //не буду делать лишних операций!
 {
  digitalWrite(RELAY_PIN,1);
  }
   delay(5000);
  tft.fillScreen(ST77XX_WHITE);
}
/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
  int i, k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };
  k = source.length(); i = 0;
  while (i < k) {
    n = source[i]; i++;
    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
            n = source[i]; i++;
            if (n == 0x81) {
              n = 0xA8;
              break;
            }
            if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
            break;
          }
        case 0xD1: {
            n = source[i]; i++;
            if (n == 0x91) {
              n = 0xB8;
              break;
            }
            if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
            break;
          }
      }
    }
    m[0] = n; target = target + String(m);
  }
  return target;
}

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Строки 58 и 62. Так у Вас реле включается по низкому уровню или как?

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Всем Большое спасибо за помощь, всё работает, я на вершине блаженства. Конечно буду разбираться дальше, применять адреса датчиков, сажать на один PIN. С дисплеем тоже не всё хорошо, работает, но хреновенько. Но пока всё нравится.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Тут всё нормально, это штатный ардуиновский модуль.

sadman41
Offline
Зарегистрирован: 19.10.2016

Пока есть свободные пины - вешать DS-ки гирляндой менее выгодно с точки зрения эксплуатационных затрат.

vektorss
vektorss аватар
Offline
Зарегистрирован: 15.10.2019

Я не мазохист, но возможно это придётся делать: дисплей 5 сожрал, выходов на реле 4, датчики помимо ds.  фото никак не могу вставить сюда.