Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Обратный автомат (RVM): DIY умная система переработки отходов

Компоненты и материалы

Необходимые инструменты

Программное обеспечение и сервисы

Описание проекта

Мотивация

Куда деваются пластиковые бутылки? На свалки, в океаны, реки и на тротуары. По оценкам, на каждую квадратную милю океана приходится около 46 000 единиц пластикового мусора. Этот пластик убивает животных, выделяет токсичные химикаты и разрушает экосистемы. Каждая бутылка разлагается до 1000 лет, выделяя канцерогены и вещества, вызывающие репродуктивные нарушения. Сжигание пластика выделяет оксид углерода, хлор, хлороводород, фураны и нитриты. Переработка решает проблему лишь частично: лишь 12% из 35 миллиардов бутылок, используемых ежегодно, перерабатываются, и только половина из того, что кладут в урны для сортировки, реально перерабатывается.

Идея

Умный автомат для приема пластиковых и металлических отходов — система, принимающая пластиковые бутылки и металлические банки и начисляющая бонусные баллы пользователю. Автомат оснащен датчиками приближенности для различения типов тары. Баллы начисляются при вводе кода, отображаемого на LCD, на веб-сайте. Изобретение относится к управлению отходами и переработке пластика и металла. Загрязнение среды пластиком и низкая мотивация к переработке — глобальная проблема.

Обратный автомат (RVM): DIY умная система переработки отходов

Принцип работы

Обратный автомат (RVM) принимает использованную тару и возвращает вознаграждение (обратный цикл по сравнению с обычным вендингом). Популярен в странах с обязательными законами о переработке или депозитной системой.

Основные этапы:

  1. Пользователь помещает пустую бутылку/банку в приемное окно; горизонтальная подача позволяет загружать емкости по одной.
  2. Тара автоматически сканируется индуктивным и емкостным датчиками приближенности.
    • Если индуктивный датчик = 1 → объект металлический (банка).
    • Если индуктивный = 0 И емкостной = 1 → объект пластиковый (бутылка).
  3. Система вознаграждения: вместо бумажных купонов на LCD отображается зашифрованный код. Пользователь сканирует QR-код на автомате, переходит на сайт и вводит код для начисления баллов.
  4. У каждого пользователя есть аккаунт на сайте для входа и обмена баллов.

Обратный автомат (RVM): DIY умная система переработки отходов

Мониторинг заполненности и логистика

Ультразвуковые датчики контролируют уровень заполнения контейнеров. Когда автомат заполнен, сборщики мусора получают уведомление через приложение Blynk. GPS-модуль передает точные координаты автомата для планирования маршрута сбора.

Обратный автомат (RVM): DIY умная система переработки отходов Обратный автомат (RVM): DIY умная система переработки отходов

Код

1. Разделение отходов (Arduino Mega)

#include <LiquidCrystal.h>
#include <Servo.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
const int buttonPin = 3;
int buttonState = 0, oldButtonState = 0;
const int ledPin1 = 10, ledPin2 = 11;
const int buzz1 = 12, buzz2 = 13;
const int plasticSensor = A0;
int metalSensor = A1, metalSensorM = A2;
Servo myservo, myservoM;
int pos = 90, posM = 360;

void setup() {
  pinMode(buttonPin, INPUT); digitalWrite(buttonPin, LOW);
  lcd.begin(16, 2); lcd.clear();
  myservo.attach(9); myservoM.attach(8);
  pinMode(plasticSensor, INPUT_PULLUP);
  pinMode(metalSensor, INPUT_PULLUP);
  pinMode(metalSensorM, INPUT_PULLUP);
  pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT);
  pinMode(buzz1, OUTPUT); pinMode(buzz2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  lcd.setCursor(0,0); lcd.print("INSERT METAL ON");
  lcd.setCursor(0,1); lcd.print(" RIGHT SIDE "); delay(6000); lcd.clear();

  int sPlastic = digitalRead(plasticSensor);
  int sMetal1 = digitalRead(metalSensor);
  int sMetal2 = digitalRead(metalSensorM);
  Serial.println("Plastic: " + String(sPlastic));
  Serial.println("Metal1: " + String(sMetal1));
  Serial.println("Metal2: " + String(sMetal2));

  // Пластик: сервопривод 1
  if ((sPlastic == 1) && (sMetal1 != 1)) {
    for (pos = 90; pos <= 240; pos += 1) { myservo.write(pos); delay(5); digitalWrite(ledPin1, HIGH); digitalWrite(buzz1, HIGH); }
    for (pos = 240; pos >= 90; pos -= 1) { myservo.write(pos); delay(5); }
  } else { myservo.write(pos); digitalWrite(ledPin1, LOW); digitalWrite(buzz1, LOW); }

  // Металл: сервопривод 2
  if ((sMetal2 == 1) && (sPlastic == 0)) {
    for (posM = 360; posM >= 50; posM -= 1) { myservoM.write(posM); delay(5); digitalWrite(ledPin2, HIGH); digitalWrite(buzz2, HIGH); }
    for (posM = 50; posM <= 360; posM += 1) { myservoM.write(posM); delay(5); }
  } else { myservoM.write(posM); digitalWrite(ledPin2, LOW); digitalWrite(buzz2, LOW); }
}

2. Мониторинг уровня заполнения (NodeMCU ESP8266)

#include <ThingSpeak.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>

#define BLYNK_PRINT Serial
#define TRIGGER2 5
#define ECHO2 4

WiFiClient client;
static const int RXPin = 4, TXPin = 5;
static const uint32_t GPSBaud = 9600;
unsigned long myChannelField = 1067056; // Ваш Channel ID
const int ChannelField = 1;
const char *myWriteAPIKey = "FMV95MD2A1J7Y8SP"; // Ваш Write API Key

TinyGPSPlus gps;
WidgetMap myMap(V0);
SoftwareSerial ss(RXPin, TXPin);
BlynkTimer timer;

char auth[] = "YVvgHBx9fIM1-yR_2XrGXXkKdIuEmrYL"; // Blynk Auth Token
char ssid[] = "diksha"; // WiFi SSID
char pass[] = "diksha19"; // WiFi Password
unsigned int move_index = 1;

void setup() {
  Serial.begin(115200);
  ss.begin(GPSBaud);
  Blynk.begin(auth, ssid, pass);
  pinMode(TRIGGER2, OUTPUT); pinMode(ECHO2, INPUT);
  pinMode(BUILTIN_LED, OUTPUT);
  WiFi.mode(WIFI_STA);
  ThingSpeak.begin(client);
}

void loop() {
  if (WiFi.status() != WL_CONNECTED) {
    Serial.print("Connecting to "); Serial.println(ssid);
    while (WiFi.status() != WL_CONNECTED) { WiFi.begin(ssid, pass); Serial.print("."); delay(100); }
    Serial.println("\nConnected.");
  }

  while (ss.available() > 0) {
    if (gps.encode(ss.read())) {
      if (gps.location.isValid()) {
        float latitude = gps.location.lat();
        float longitude = gps.location.lng();
        Serial.print("LAT: "); Serial.println(latitude, 6);
        Serial.print("LONG: "); Serial.println(longitude, 6);
        ThingSpeak.setField(3, latitude); ThingSpeak.setField(4, longitude);
        ThingSpeak.writeFields(myChannelField, myWriteAPIKey);
        Blynk.virtualWrite(V1, String(latitude, 6));
        Blynk.virtualWrite(V2, String(longitude, 6));
        myMap.location(move_index, latitude, longitude, "GPS_Location");
      }
    }
  }

  long duration2, distance2;
  digitalWrite(TRIGGER2, LOW); delayMicroseconds(2);
  digitalWrite(TRIGGER2, HIGH); delayMicroseconds(10);
  digitalWrite(TRIGGER2, LOW);
  duration2 = pulseIn(ECHO2, HIGH);
  distance2 = (duration2 / 2) / 29.1;

  if (distance2 <= 5) { Blynk.notify("Please!! empty the dustbin"); }
  Serial.println("Distance: " + String(distance2) + " cm");
  Blynk.virtualWrite(V6, distance2);
  ThingSpeak.writeField(myChannelField, ChannelField, distance2, myWriteAPIKey);

  delay(100);
  Blynk.run(); timer.run();
}

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

Обратный автомат (RVM): DIY умная система переработки отходов

Производственный процесс

  1. Эволюция и производство швейных машин: от изобретений XIX века к современной автоматизации
  2. Создание умного автозамка двери с использованием Bluetooth-близости смартфона
  3. Как работают автоматы с картошкой фри: закулисный обзор
  4. Автоматы с молоком: удобно, доступно, экологично
  5. Как вендинговые машины для картошки фри выдают горячую свежую картофель фри по запросу
  6. Вендинг-машины для лапши: как работают и что можно получить
  7. Инновационные вендинговые автоматы для чая, кофе и супа
  8. Автоматы свежей еды: горячая еда 언제 и где угодно
  9. Автоматы для продажи газированных напитков: полное руководство
  10. Раскрываем прибыль: бизнес-потенциал вендинговых автоматов с мороженым