Ардуино для начинающих. Видео 9: Новая метеостанция.

Поделиться
HTML-код
  • Опубликовано: 4 ноя 2024

Комментарии • 8

  • @andreyfilippov9481
    @andreyfilippov9481 Год назад

    Как добавить часы на ds1307 в скетч?

  • @СокловСергей
    @СокловСергей 2 года назад

    Зачем шилд?

  • @СергийСергос
    @СергийСергос 3 года назад

    Ссылка не работает((

    • @electrickettle9474
      @electrickettle9474  3 года назад +1

      Могу скинуть информацию сюда.

    • @electrickettle9474
      @electrickettle9474  3 года назад +1

      Библиотека DHT.h:
      github.com/adafruit/DHT-sensor-library
      Библиотека LiquidCrystal_I2C.h:
      github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
      Скетч:
      P.S если в скетче нашли ошибку пишите мне в лс в вк:
      vk.com/id505672330
      #include
      #include
      LiquidCrystal_I2C lcd(0x27, 16, 2);
      #include
      bigNumbers bigNumbersLcd(&lcd);
      #include // подключаем библиотеку для датчика
      DHT dht(2, DHT11); // сообщаем на каком порту будет датчик
      int t0, t1, t2, t3, h, h1, h2, sec;
      uint32_t sec1;
      double
      h22, //2 цифра влажности
      h11, //1 цифра влажности
      t22, // 2 цифра темпераеуры
      t11, // 1 цифра температуры
      t33; //цифра после запятой
      //создаем символ градуса
      byte sim1[8] = { 0b00000, 0b11111, 0b11111, 0b11011, 0b11011, 0b11111, 0b11111, 0b00000 };
      //создаем символ точки
      byte sim2[8] = { 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b01110, 0b01110, 0b01110 };
      //создаем символ "/"
      byte sim3[8] = { 0b00111, 0b00111, 0b00111, 0b01110, 0b01110, 0b01110, 0b11100, 0b11100 };

      void setup() {
      lcd.init();
      lcd.setBacklight(255);
      bigNumbersLcd.intNumbers();
      dht.begin(); // запускаем датчик DHT11
      sec1=millis();
      //прописываем смволы в ячейки 3,4 и 5 дисплея
      lcd.createChar(3, sim1);
      lcd.createChar(4, sim2);
      lcd.createChar(5, sim3);
      //выводим точку на дисплей
      lcd.setCursor (7,1);
      lcd.print(char(4));
      }
      void loop()
      {
      // считываем температуру (t) и влажность (h)
      h = dht.readHumidity();
      float t = dht.readTemperature();
      //разделяум полученные данные на отдельные цифры
      t0=t*10; //умножаем на 10 чтобы получить целое число
      t1=t0/100; //получаем первую цифру
      t2=t0/10%10; //получаем вторую цифру
      t3=t0%10%10; //получаем третю цифру
      h1=h/10%10; //получаем первую цифру
      h2=h%10%10; //получаем вторую цифру
      t11=t1;
      t22=t2;
      t33=t3;
      h11=h1;
      h22=h2;
      if(millis()-sec1>4000) //задержка встроенного таймера на 4 секунды

      {
      //когда пройдет 4 секундs, то увеличиваем секкунды на 1
      sec=sec+1;

      //сбрасываем sec1
      sec1=millis();
      }
      if(sec%2==0) //проверяем на четность
      {
      //выводим на дисплей температуру
      bigNumbersLcd.printNumber(t11, 0);
      bigNumbersLcd.printNumber(t22, 4);

      bigNumbersLcd.printNumber(t33, 8);
      // страем с дисплея ненудные цифры
      // bigNumbersLcd.printNumber(10, 13);
      //выводим символ градуса
      lcd.setCursor (12,0);
      lcd.print(char(3));
      // выводим на дисплей буксу С
      lcd.setCursor (13,0);
      lcd.print(char(255));
      lcd.setCursor (13,1);
      lcd.print(char(255));
      lcd.setCursor (14,0);
      lcd.print(char(0));
      lcd.setCursor (14,1);
      lcd.print(char(1));
      lcd.setCursor (15,0);
      lcd.print(char(0));
      lcd.setCursor (15,1);
      lcd.print(char(1));


      }
      else
      {
      //выводим на дисплей влажность
      bigNumbersLcd.printNumber(h11, 0);
      bigNumbersLcd.printNumber(h22, 4);

      bigNumbersLcd.printNumber(0, 8);
      // страем с дисплея ненудные цифры
      // bigNumbersLcd.printNumber(10, 7);
      // bigNumbersLcd.printNumber(10, 10);
      //выводим символ %
      lcd.setCursor (12,0);
      lcd.print(char(3));
      lcd.setCursor (13,0);
      lcd.print(" ");
      lcd.setCursor (14,0);
      lcd.print(char(5));
      lcd.setCursor (13,1);
      lcd.print(char(5));
      lcd.setCursor (14,1);
      lcd.print(" ");
      lcd.setCursor (15,1);
      lcd.print(char(3));
      lcd.setCursor (15,0);
      lcd.print(" ");
      }

      }

    • @electrickettle9474
      @electrickettle9474  3 года назад

      cloud.mail.ru/public/em84/Y8rPULQQM

  • @ЮрийМаланьин-к7т
    @ЮрийМаланьин-к7т Год назад +1

    Все супер! Только библиотека bigNumbers.h почему-то размещена под следующим видео автора.