Smart Mülleimer von Magicbit - Gunook
Smart Mülleimer von Magicbit - Gunook
Anonim
Image
Image

In diesem Tutorial erfahren Sie, wie Sie mit Magicbit dev einen intelligenten Mülleimer erstellen. Board mit Arduino-IDE. Lass uns anfangen.

Lieferungen

  • Magicbit
  • USB-A-zu-Micro-USB-Kabel
  • Ultraschallsensor - HC-SR04 (Generic)
  • SG90 Micro-Servomotor

Schritt 1: Geschichte

Hardware-Setup
Hardware-Setup

Bevor Sie in das Projekt einsteigen, schauen wir uns an, was Smart Mülleimer ist. In jedem Haushalt gibt es einen oder mehrere Mülleimer. Du hast es oft abgedeckt. Denn das wird Ihr Zuhause riechen. Wenn Sie also etwas Müll in den Mülleimer werfen möchten, müssen Sie ihn öffnen. Aber wenn, wenn Sie in die Nähe des Mülleimers gehen, um den Müll zu stellen, öffnet sich automatisch die Abdeckung, dann wie sieht es aus. Verrückt aaa…. Das ist also der intelligente Mülleimer.

Schritt 2: Theorie und Methodik

Die Theorie ist ganz einfach. Wenn Sie in die Nähe eines Mülleimers gehen, wird er Sie erkennen. Ist der Abstand zwischen Ihnen und dem Mülleimer kleiner als ein definierter Abstand, öffnet sich der Deckel des Mülleimers automatisch. Um diese beiden Objekte zu vervollständigen, verwenden wir den Ultraschallsensor HC-SRO4 und kleine Servomotoren. Sie können jede Art von digitalem Servomotor erhalten.

Schritt 3: Hardware-Setup

Hardware-Setup
Hardware-Setup
Hardware-Setup
Hardware-Setup

Für dieses Projekt haben wir hauptsächlich drei Hardwarekomponenten verwendet. Sie sind Magicbit, Servomotor und Ultraschallsensor. Die Verbindung zwischen all diesen Teilen ist in der obigen Abbildung dargestellt.

Ultraschallsensor verwendet 3,3 V zum Einschalten. Dafür haben wir den rechten unteren Port des Magicbit-Boards verwendet, um den Ultraschallsensor an Magicbit anzuschließen. Der Servomotor wird jedoch mit 5 V für die ordnungsgemäße Funktion verwendet. Daher haben wir den linken unteren Port verwendet, um den Servomotor mit Magicbit zu verbinden. In diesem Fall verwenden wir das Magic Bit Servo-Anschlussmodul. Aber wenn Sie dieses Modul nicht haben, können Sie drei Überbrückungsdrähte verwenden, um 5V mit 5V, Gnd mit Gnd und Signalstift mit 26-Pin von Magicbit zu verbinden.

Schauen wir uns nun die mechanische Seite unseres Projekts an. Zum Öffnen des Deckels verwenden wir einen sehr einfachen Hebelmechanismus. Wir haben einen seitlichen Servo-Handclip mit dem Servo verbunden. Dann haben wir das Eckloch im Clip und den Mülleimerdeckel mit starkem Metalldraht verbunden. Der Metalldraht kann sich gegenüber dem Servoclip und der Mülltonnenabdeckung drehen. Durch das Studieren von Top-Bildern und -Videos können Sie dies sehr einfach erstellen.

Schritt 4: Software-Setup

Software-Setup
Software-Setup

Der Softwareteil ist auch sehr einfach. Schauen wir uns den Arduino IDE-Code an und wie dieser Code funktioniert.

Zum Antreiben von Servos verwenden wir die ESP32-Servobibliothek. Diese Bibliothek ist fast im Magic Bit Board Manager in der Arduino IDE enthalten. Für den Umgang mit Ultraschallsensoren verwenden wir die newPing-Bibliothek. Diese kann unter folgendem Link heruntergeladen werden.

bitbucket.org/teckel12/arduino-new-ping/d…

Laden Sie die Zip-Datei herunter und gehen Sie zu Tools> Bibliothek einschließen> Zip-Bibliothek in Arduino hinzufügen. Wählen Sie nun Ihre heruntergeladene Zip-Datei der neuen Pin-Bibliothek aus. im Code deklarieren wir zuerst Servo- und Ultraschallsensorbibliotheken. In der Loop-Funktion prüfen wir immer den Abstand vom Mülleimer zum nächsten Frontobjekt. Wenn dieser größer als 200 ist, ist die Entfernungsausgabe der Bibliothek 0. Wenn die Entfernung weniger als 60 cm beträgt, wird eine for-Schleife ausgeführt, um die Abdeckung durch Drehen des Servos zu öffnen. Wenn der Abstand größer als 60 cm ist, wird die Abdeckung abgesetzt. Durch die Verwendung einer booleschen Variablen überprüfen wir immer den Zustand des Covers. Wenn die Abdeckung unten ist, wird nur sie geöffnet. Auch umgekehrt. Wählen Sie nun den richtigen COM-Port und das richtige Board als magcibit aus, dann laden Sie den Code hoch. Jetzt ist Ihr intelligenter Mülleimer einsatzbereit.

Schritt 5: Arduino-Code

#enthalten

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing Sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // Servobibliothek einbeziehen Int Distance; Servo-RadarServo; Void setup () { Serial.begin (115200); RadarServo.attach(26); // Definiert, an welchem Pin sich die Verzögerung des Servomotors befindet (3000); aufrechtzuerhalten. Void Schleife () {// dreht den Servomotor von 15 auf 165 Grad für (int i = 0; i < = 180; i ++) { RadarServo.write (i); Verzögerung (50); distance = sonar.ping_cm(); // Ruft eine Funktion zur Berechnung der vom Ultraschallsensor gemessenen Entfernung für jeden Grad auf for(int j=0;j0){ break; } Serial.print (i); // Sendet den aktuellen Grad an den Serial Port Serial.print (", "); // Sendet ein Additionszeichen direkt neben dem vorherigen Wert, der später in der Verarbeitungs-IDE für die Indizierung von Serial.print(j) benötigt wird; // Sendet den aktuellen Grad an den Serial Port Serial.print ("*"); Seriendruck (1); // Sendet den Distanzwert an den Serial Port Serial.print ("/"); // Sendet ein Additionszeichen direkt neben dem vorherigen Wert, der später in der Verarbeitungs-IDE für die Indizierung von Serial.print (Abstand) benötigt wird; // Sendet den Distanzwert an den Serial Port Serial.print ("."); // Sendet ein Additionszeichen direkt neben dem vorherigen Wert, der später in der Verarbeitungs-IDE für die Indizierung benötigt wird } } // Wiederholt die vorherigen Zeilen von 165 bis 15 Grad for(int i=180;i>=0;i--){ RadarServo.schreibe ich); Verzögerung (50); Entfernung = sonar.ping_cm(); for(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){ weiter; } Serial.print (i); // Sendet den aktuellen Grad an den Serial Port Serial.print (", "); // Sendet ein Additionszeichen direkt neben dem vorherigen Wert, der später in der Verarbeitungs-IDE für die Indizierung von Serial.print(j) benötigt wird; // Sendet den aktuellen Grad an den Serial Port Serial.print ("*"); Serial.print (-1); // Sendet den Distanzwert an den Serial Port Serial.print ("/"); // Sendet ein Additionszeichen direkt neben dem vorherigen Wert, der später in der Verarbeitungs-IDE für die Indizierung von Serial.print (Abstand) benötigt wird; // Sendet den Distanzwert an den Serial Port Serial.print ("."); // Sendet ein Additionszeichen direkt neben dem vorherigen Wert, der später in der Verarbeitungs-IDE für die Indizierung benötigt wird } } }