Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Reverse Vending Machine (RVM)

Componenten en benodigdheden

Arduino Mega 2560
× 1
NodeMCU ESP8266 Breakout Board
× 1
Inductieve naderingssensor, 15 mm
× 2
Capacitieve naderingssensor, 12 mm
× 1
SG90 Micro-servomotor
× 2
Alfanumeriek LCD-scherm, 16 x 2
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 2
GPS-module (algemeen)
× 1
Zoemer, piëzo
× 1
Single Turn Potentiometer-100k ohm
× 1
Schakelaar, kop voor drukknop met veerteruggang
× 1
5 mm LED:rood
× 2
Jumperdraden (algemeen)
× 1
Batterij, 12 V
× 1
9V-batterij (algemeen)
× 1
Broodplank (algemeen)
× 2

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Digilent Mastech MS8217 Autorange digitale multimeter
Draadstripper en snijder, 18-10 AWG / 0,75-4 mm² Capaciteit Draden

Apps en online services

Arduino IDE
Blynk
ThingSpeak-API

Over dit project

MOTIVATIE:

Waar komen plastic waterflessen terecht?

Op stortplaatsen, drijvend op oceanen of rivieren en op trottoirs. Er werd geschat dat er per vierkante mijl 46.000 stukjes plastic afval op de oceaan drijven. Dit plastic doodt dieren, lekt chemicaliën en verstoort ecosystemen. Elke fles kan tot duizend jaar nodig hebben om te ontbinden, waarbij gevaarlijke en schadelijke chemicaliën lekken tijdens het proces. Sommige uitgelekte gifstoffen kunnen kanker en reproductieve beperkingen veroorzaken. Bij de verbranding van plastic komen giftige stoffen vrij, zoals koolmonoxide, chloor, hydrochloridezuur, furanen en nitrieten. Helaas kan het argument van recycling maar zo weinig doen, aangezien slechts 12% van de vijfendertig miljard flessen die per jaar worden gebruikt, wordt gerecycled, wat aangeeft dat slechts de helft van wat je in een prullenbak stopt, ook daadwerkelijk wordt gerecycled.

IDEE:

Een slimme machine voor het verwijderen van plastic en metaalafval is een systeem dat plastic afval (flessen) en metalen blikjes accepteert voor recycling en in ruil daarvoor pinten in de portemonnee uitdeelt aan de operator die het afval recyclet. De omgekeerde automaat is uitgerust met een naderingssensor om onderscheid te maken tussen verschillende soorten flessen en de punten worden verdiend wanneer de gebruiker de code op de website invoert. Deze uitvinding heeft in het algemeen betrekking op afvalbeheer en recycling van het plastic en metaalafval (flessen) in de omgeving. Het zwerfafval van plastic afval in het milieu en de verminderde bereidheid om het plastic te recyclen vormt een voortdurend probleem voor het milieu en voor alle levende wezens.

WERKEND:

Een Reverse Vending Machine is een apparaat dat gebruikte drankverpakkingen accepteert en geld teruggeeft aan de gebruiker (het omgekeerde van de typische verkoopcyclus). De machines zijn populair op plaatsen met verplichte recyclingwetten of afvalcontainerwetgeving.

De basishandelingen omvatten stappen waarbij de recycler de lege fles/blik in de opneemopening plaatst; het horizontale invoersysteem stelt de gebruiker in staat om containers één voor één in te voeren. De fles/blik wordt vervolgens automatisch gescand met behulp van capacitieve en inductieve naderingssensoren. Als de sensorwaarde van de inductieve sensor 1 is, dan is het object van plastic en als de sensorwaarde van de inductieve sensor 0 is en de capacitieve sensorwaarde 1 is, dan is het object van plastic.

Wat het beloningssysteem betreft, verdeelt RVM waardevolle tokens, zoals munten of coupons, wanneer drankverpakkingen worden gerecycled. De coupons worden vervolgens gebruikt om geschenken aan de balie in te wisselen. Vanwege het bewustzijn van milieukwesties en het doel om het papierverbruik te verminderen, wordt het afdrukken van coupons echter niet erg gewaardeerd. Dus in ons voorgestelde systeem verschijnt er een gecodeerde code op het LCD-scherm wanneer het plastic wordt gedetecteerd. Vervolgens moet de gebruiker de OK-code op de machine scannen om naar de website te navigeren om zijn punten in te wisselen door de code die hij op het LCD-scherm heeft gekregen in te voeren.

Er is een database voor de gebruiker die een account heeft op de website van omgekeerde plastic automaat. Het is verplicht om een ​​account te hebben om in te loggen op de website om de punten in te wisselen voor het weggooien van plastic.

De machine heeft nog een functie, als de machine vol is, worden de vuilnismannen of recycle-verkopers op de hoogte gebracht met behulp van een applicatie. Het niveau van de machine wordt bewaakt met behulp van een ultrasone sensor en NodeMCU. Als de machine vol is, worden de verzamelaars geïnformeerd en wordt de exacte locatie van de machine verzonden met behulp van een wereldwijd positioneringssysteem.

Code

  • Afvalscheiding
  • Vuilnisbak niveau controle
AfvalscheidingC/C++
#include //#include "Arduino.h"//#include "Button.h"#include LiquidCrystal lcd(1,2,4,5,6,7);const int knapp =3;int ButtonState =0; // huidige status van de buttonint oldButtonState =0;const int ledPin1 =10; const int ledPin2 =11; const int buzz1 =12; const int buzz2 =13; const int plasticsensor=A0;int metalsensor=A1;int metalsensor_M=A2;Servo myservo;Servo myservo_M;int pos =90;int pos_M =360;void setup() {pinMode(knapp, INPUT); digitalWrite(knapp, LAAG); lcd.begin(16,2);lcd.clear(); mijnservo.attach(9); mijnservo_M.attach(8); pinMode (plasticsensor, INPUT_PULLUP); pinMode (metaalsensor, INPUT_PULLUP); pinMode (metaalsensor_M, INPUT_PULLUP); pinMode (ledPin1, UITGANG); pinMode (ledPin2, UITGANG); pinMode(buzz1, UITGANG); pinMode(buzz2, UITGANG); Serial.begin(9600);} void loop() { lcd.setCursor(0,0); lcd.print ("PLAATS METAAL AAN"); lcd.setCursor(0,1); lcd.print(" RECHTERKANT "); vertraging (6000); lcd.wissen(); int sensor_read=digitalRead (plasticsensor); Serial.println ("plastic sensor"); Serial.println(sensor_read); //vertraging (10); int sensor_read_m=digitalRead (metaalsensor); //Plastic bak Serial.println ("metalen sensor1"); Serial.println(sensor_read_m); //vertraging (10); int sensor_read_mm=digitalRead (metalsensor_M); Serial.println(sensor_read_mm); //vertraging (10); if((sensor_read==1)&&(sensor_read_m!=1)){ for (pos =90; pos <=240; pos +=1) { // gaat van 0 graden naar 180 graden // in stappen van 1 graad mijnservo.write(pos); // vertel servo om naar de positie in variabele 'pos' te gaan //delay (5); digitalWrite (ledPin1, HOOG); digitalWrite(buzz1, HOOG); // wacht 15 ms totdat de servo de positie bereikt } // vertraging (5000); for (pos =240; pos>=90; pos -=1) { // gaat van 0 graden naar 180 graden // in stappen van 1 graad myservo.write(pos); //vertraging (5); } } else { // gaat van 180 graden naar 0 graden myservo.write(pos); digitalWrite (ledPin1, LAAG); digitalWrite(buzz1, LAAG); } if((sensor_read_mm==1)&&(sensor_read==0)){ for (pos_M =360; pos_M>=50; pos_M -=1) { // gaat van 0 graden naar 180 graden // in stappen van 1 graad myservo_M.write(pos_M); //vertraging (5); digitalWrite (ledPin2, HOOG); digitalWrite(buzz2, HOOG); } // vertel servo om naar positie te gaan in variabele 'pos' // delay (5000); for (pos_M =50; pos_M <=360; pos_M +=1) { // gaat van 180 graden naar 0 graden myservo_M.write (pos_M); // vertel servo om naar positie te gaan in variabele 'pos' //delay(5);// wacht 15ms totdat de servo de positie bereikt } } else{ myservo_M.write(pos_M); digitalWrite (ledPin2, LAAG); digitalWrite(buzz2, LAAG); } } 
VuilnisbakniveaubewakingC/C++
#include "ThingSpeak.h"#include #include #include #include #define BLYNK_PRINT Serial #define TRIGGER2 5#define ECHO2 4WiFi cliënt; statische const int RXPin =4, TXPin =5; // GPIO 4=D2(verbind Tx van GPS) en GPIO 5=D1(Connect Rx of GPSstatic const uint32_t GPSBaud =9600;//als Baudrate 9600 in uw geval niet werkte, gebruik dan 4800unsigned long myChannelField =1067056; // / Channel IDconst int ChannelField =1; // Welk kanaal om dataconst char te schrijven * myWriteAPIKey ="FMV95MD2A1J7Y8SP"; // Uw schrijf ATinyGPSPlus gps; // De TinyGPS++ objectWidgetMap myMap (V0); // V0 voor virtuele pin van Map WidgetSoftwareSerials (RXPin, TXPin); // De seriële verbinding met het GPS-apparaat BlynkTimer-timer;// U moet Auth Token krijgen in de Blynk App.char auth[] ="YVvgHBx9fIM1-yR_2XrGXXkKdIuEmrYL";// Uw WiFi-inloggegevens.// Stel wachtwoord in naar "" voor open netwerken.char ssid[] ="diksha";char pass[] ="diksha19";unsigned int move_index =1;void setup() {Serial.begin (115200);ss.begin(GPSBaud); Blynk.begin (auth, ssid, pass);// timer.setInterval (5000L, checkGPS); pinMode (TRIGGER2, OUTPUT); pinMode (ECHO2, INPUT); pinMode (BUILTIN_LED, OUTPUT); WiFi.mode (WIFI_STA); DingSpreek. begin(client);}/*void checkGPS(){ if (gps.charsProcessed() <10) { Serial.println(F("Geen GPS gedetecteerd:controleer bedrading.")); }}*/void loop() { if (WiFi.status() !=WL_CONNECTED) { Serial.print("Poging om verbinding te maken met SSID:"); Serieel.println(ssid); while (WiFi.status() !=WL_CONNECTED) { WiFi.begin(ssid, pass); Serieel.print("."); vertraging (100); } Serial.println("\nVerbonden."); } while (ss.available()> 0) { // sketch geeft informatie weer telkens wanneer een nieuwe zin correct is gecodeerd. if (gps.encode(ss.read())) Serial.println("GPS Connected");//displayInfo(); {if (gps.location.isValid()) { float latitude =(gps.location.lat()); // Opslaan van de Lat. en Lon. float lengtegraad =(gps.locatie.lng()); Serial.print("LAT:"); Serial.println (breedtegraad, 6); // zweven naar x decimalen Serial.print ("LANG:"); Serial.println (lengtegraad, 6); ThingSpeak.setField (3, breedtegraad); ThingSpeak.setField (4, lengtegraad); ThingSpeak.writeFields(myChannelField, myWriteAPIKey); Blynk.virtualWrite (V1, String (breedtegraad, 6)); Blynk.virtualWrite (V2, String (lengtegraad, 6)); myMap.location (move_index, latitude, longitude, "GPS_Location"); } } } //lange duur1, afstand1; lange duur2, afstand2; digitalWrite(TRIGGER2, LAAG); vertragingMicroseconden(2); digitalWrite(TRIGGER2, HOOG); vertraging Microseconden (10); digitalWrite(TRIGGER2, LAAG); duur2 =pulseIn(ECHO2, HOOG); afstand2 =(duur2/2) / 29,1; if (distance2 <=5) { Blynk.notify("Alsjeblieft!! Leeg de vuilnisbak");} Serial.println("2 ultrasone Centimeter:"); Seriële.println(afstand2); Blynk.virtualWrite(V6, distance2); ThingSpeak.writeField(myChannelField, ChannelField, distance2, myWriteAPIKey); vertraging (100); Blynk.run(); timer.run();} 

Schema's


Productieproces

  1. Naaimachine
  2. Maak een automatisch sluitende kantoordeur met smartphone-nabijheidssensor
  3. Raspberry Pi-temperatuursensor
  4. Hoe werkt een frietautomaat?
  5. Wat is een melkautomaat?
  6. Hoe kan een fritesautomaat warme en verse frites leveren?
  7. Wat is een noedelautomaat?
  8. Wat is een thee-koffiesoepautomaat?
  9. Eet gezond met de Meal Prep Vending Machine!
  10. Wat te verwachten van een frisdrankautomaat?
  11. Popsicle-automaat:het zakelijke potentieel