Обратный автомат (RVM): DIY умная система переработки отходов
Компоненты и материалы
- Arduino Mega 2560 — 1 шт.
- NodeMCU ESP8266 — 1 шт.
- Индуктивный датчик приближенности (15 мм) — 2 шт. (детектирование металла)
- Емкостной датчик приближенности (12 мм) — 1 шт. (детектирование пластика)
- Сервопривод SG90 — 2 шт. (механизмы приема бутылок/банок)
- Символьный LCD 16×2 — 1 шт.
- Ультразвуковой датчик HC-SR04 — 2 шт. (контроль уровня заполнения)
- GPS-модуль — 1 шт. (определение координат автомата)
- Пьезо-звукоизлучатель (Buzzer) — 1 шт.
- Потенциометр 100 кОм — 1 шт. (регулировка контраста LCD)
- Тактическая кнопка — 1 шт.
- Красные светодиоды 5 мм — 2 шт.
- Провода-перемычки — 1 набор
- Батарея 12 В — 1 шт. (питание Arduino Mega)
- Крона 9 В — 1 шт. (питание NodeMCU)
- Макетные платы — 2 шт.
Необходимые инструменты
- Паяльник
- Цифровой мультиметр
- Обкусыватель/обжимные клещи для проводов
Программное обеспечение и сервисы
- Arduino IDE
- Blynk — мобильное приложение для уведомлений и мониторинга
- ThingSpeak API — облачная платформа для логирования данных
Описание проекта
Мотивация
Куда деваются пластиковые бутылки? На свалки, в океаны, реки и на тротуары. По оценкам, на каждую квадратную милю океана приходится около 46 000 единиц пластикового мусора. Этот пластик убивает животных, выделяет токсичные химикаты и разрушает экосистемы. Каждая бутылка разлагается до 1000 лет, выделяя канцерогены и вещества, вызывающие репродуктивные нарушения. Сжигание пластика выделяет оксид углерода, хлор, хлороводород, фураны и нитриты. Переработка решает проблему лишь частично: лишь 12% из 35 миллиардов бутылок, используемых ежегодно, перерабатываются, и только половина из того, что кладут в урны для сортировки, реально перерабатывается.
Идея
Умный автомат для приема пластиковых и металлических отходов — система, принимающая пластиковые бутылки и металлические банки и начисляющая бонусные баллы пользователю. Автомат оснащен датчиками приближенности для различения типов тары. Баллы начисляются при вводе кода, отображаемого на LCD, на веб-сайте. Изобретение относится к управлению отходами и переработке пластика и металла. Загрязнение среды пластиком и низкая мотивация к переработке — глобальная проблема.

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

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

Код
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();
}
Схемы подключения

Производственный процесс
- Эволюция и производство швейных машин: от изобретений XIX века к современной автоматизации
- Создание умного автозамка двери с использованием Bluetooth-близости смартфона
- Как работают автоматы с картошкой фри: закулисный обзор
- Автоматы с молоком: удобно, доступно, экологично
- Как вендинговые машины для картошки фри выдают горячую свежую картофель фри по запросу
- Вендинг-машины для лапши: как работают и что можно получить
- Инновационные вендинговые автоматы для чая, кофе и супа
- Автоматы свежей еды: горячая еда 언제 и где угодно
- Автоматы для продажи газированных напитков: полное руководство
- Раскрываем прибыль: бизнес-потенциал вендинговых автоматов с мороженым