README.md

    Раздельный экологический сбор мусора


    Основная часть


    С помощью модели «экологический раздельный сбор мусора «EcologiBasket»», осуществляющего экопросветительскую деятельность на добровольной основе, способствующего формированию экологически ответственного поведения у подрастающего поколения за счет интерактивной подачи, НО это не главная задача макета, на нем мы практикуем автономный самовывоз при заполнении баков. Работать это будет следующим образом: датчики установленные ранее в баке при заполнении будут отображатся в спец службе, тем самым облегчив работу сотрудникам. У них будет отображатся: заполненость (чтоб грамотно составить маршрут обьезда), место, отсек с разновидностью мусора (для подбора машины)

    Схема подключения


    Изображение

    Подключение пинов Arduino:


    Дисплей:
    • const int trig = 5;
    • const int echo = 4;
    • NewPing sonar(trig, echo, 40);
    • unsigned sm = sonar.ping_cm();
    Кнопки:	
    • const int BUTTON_RED = 8;
    • const int BUTTON_GREEN = 11;
    Светодиоды:
    • const int RED = 7;
    • const int GREEN = 6;
    Серво:
    • myservo.attach(9);/home/user/ecologi-basket/photo/photo_2023-12-03_16-55-46.jpg
    • myservo2.attach(10); <h4>
    Переменные для подсчета мусора:
    • int count;
    • int count2;
    

    Код


    #include <Arduino.h>
    #include <NewPing.h>
    #include <Servo.h>
    #include <LiquidCrystal_I2C.h>       // Библиотека для работы с I2C экраном
    LiquidCrystal_I2C lcd(0x27, 16, 2);  // Устанавливаем дисплей
    
    const int trig = 5;
    const int echo = 4;
    NewPing sonar(trig, echo, 40);
    unsigned sm = sonar.ping_cm();
    
    unsigned long timing;
    
    Servo myservo;
    Servo myservo2;
    
    const int BUTTON_RED = 8;
    const int BUTTON_BLUE = 11;
    const int RED = 7;
    const int GREEN = 6;
    
    int count;
    int count2;
    
    void setup() {
     pinMode(RED, OUTPUT);    //red
     pinMode(GREEN, OUTPUT);  //green
     pinMode(trig, OUTPUT);
    
     lcd.init();        // Инициализация LCD
     lcd.begin(16, 2);  // Задаем размерность экрана
    
     myservo.attach(9);
     myservo2.attach(10);
    
    }
    
    void loop() {
     bool buttonState = digitalRead(BUTTON_RED);
     bool buttonState2 = digitalRead(BUTTON_BLUE);
     sm = sonar.ping_cm();
     if (sm > 0 && sm <= 10) {
       sm = sonar.ping_cm();
       delay(50);
       if (buttonState == false && millis() > 3000) {
         count++;
         digitalWrite(RED, HIGH);
         lcd.backlight();  // Включаем подсветку дисплея
         lcd.clear();      // Очищаем экран перед получением нового значения
         myservo2.write(photo/photo_2023-12-03_16-55-46.jpgphoto/photo_2023-12-03_16-55-46.jpg, 0);  // курсор на 4-й символ 1-й строки
         lcd.print("OPEN");    // Тест на 1-й строке экрана
         delay(2000);
         myservo2.write(20);
         lcd.setCursor(4, 0);  // курсор на 4-й символ 1-й строки
         lcd.print("thank you");
         delay(1500);
       }
       else if (buttonState2 == true && millis() > 3000) {
         count2++;
         digitalWrite(GREEN, HIGH);
         lcd.backlight();  // Включаем подсветку дисплея
         lcd.clear();      // Очищаем экран перед получением нового значения
         myservo.write(180);
         lcd.setCursor(6, 0);  // курсор на 4-й символ 1-й строки
         lcd.print("OPEN");    // Тест на 1-й строке экрана
         delay(2000);
         myservo.write(20);
         lcd.setCursor(4, 0);  // курсор на 4-й символ 1-й строки
         lcd.print("thank you");
         delay(1500);
       }
       else {
       digitalWrite(RED, LOW);
       digitalWrite(GREEN, LOW);
       myservo.write(20);
       myservo2.write(20);
       lcd.backlight();  // Включаем подсветку дисплея
    
       lcd.setCursor(0, 0);           // курсор на 4-й символ 1-й строки
       lcd.print("Throw the trash");  // Тест на 1-й строке экрана
       lcd.setCursor(0, 1);           // курсор на 4-й символ 1-й строки
       lcd.print("paper");           // Тест на 1-й строке экрана
       lcd.setCursor(5, 1);           // курсор на 7-й символ 2-й строки
       lcd.print(count);              // Значения на 2-й строке экрана
    
       lcd.setCursor(8, 1);           // курсор на 4-й символ 1-й строки
       lcd.print("plastic");      
       lcd.setCursor(15, 1);           // курсор на 7-й символ 2-й строки
       lcd.print(count2);              // Значения на 2-й строке экрана
       myservo.write(20);
       myservo2.write(20);
       }
     } 
     else {
       digitalWrite(RED, LOW);
       digitalWrite(GREEN, LOW);
       myservo.write(20);
       myservo2.write(20);
       lcd.noBacklight();
    
       lcd.setCursor(0, 0);           // курсор на 4-й символ 1-й строки
       lcd.print("Throw the trash");  // Тест на 1-й строке экрана
       lcd.setCursor(0, 1);           // курсор на 4-й символ 1-й строки
       lcd.print("paper");           // Тест на 1-й строке экрана
       lcd.setCursor(5, 1);           // курсор на 7-й символ 2-й строки
       lcd.print(count);              // Значения на 2-й строке экрана
    
       lcd.setCursor(8, 1);           // курсор на 4-й символ 1-й строки
       lcd.print("plastic");      
       lcd.setCursor(15, 1);           // курсор на 7-й символ 2-й строки
       lcd.print(count2);              // Значения на 2-й строке экрана
       myservo.write(20);
       myservo2.write(20);
     }
    }
    

    Фото проекта


    СПАСИБО ЗА ВНИМАНИЕ)

    Конвейеры
    0 успешных
    0 с ошибкой