Inhoudsopgave:

Slimme vuilnisbak van Magicbit - Ajarnpa
Slimme vuilnisbak van Magicbit - Ajarnpa

Video: Slimme vuilnisbak van Magicbit - Ajarnpa

Video: Slimme vuilnisbak van Magicbit - Ajarnpa
Video: De slimme vuilnisbak uitleg 2024, November
Anonim
Image
Image

In deze tutorial leren we hoe je een slimme vuilnisbak kunt maken met Magicbit dev. bord met Arduino IDE. Laten we beginnen.

Benodigdheden

  • Magicbit
  • USB-A naar micro-USB-kabel
  • Ultrasone sensor - HC-SR04 (algemeen)
  • SG90 Micro-servomotor

Stap 1: Verhaal

apparatuur installatie
apparatuur installatie

Laten we, voordat we naar het project gaan, kijken naar wat Smart vuilnisbak is. In elk huis staan wel een of meer vuilnisbakken. Vaak heb je het gedekt. Want dan komt er geur in je huis. Dus als je wat afval in de vuilnisbak wilt doen, moet je het openen. Maar als je in de buurt van de vuilnisbak loopt om het afval te plaatsen en automatisch gaat het deksel open, hoe ziet het er dan uit. Gekke aaa…. dus dat is de slimme vuilnisbak.

Stap 2: Theorie en methodologie

De theorie is heel eenvoudig. Als je in de buurt van de vuilnisbak loopt, zal het je detecteren. Als de afstand tussen u en de vuilnisbak kleiner is dan een bepaalde afstand, zal het deksel van de vuilnisbak automatisch openen. Om beide objecten te voltooien, gebruiken we HC-SRO4 ultrasone sensor en kleine servomotoren. U kunt elk type digitale servomotor krijgen.

Stap 3: Hardware-installatie

apparatuur installatie
apparatuur installatie
apparatuur installatie
apparatuur installatie

Voor dit project hebben we voornamelijk drie hardwarecomponenten gebruikt. Ze zijn Magicbit, servomotor en ultrasone sensor. De verbinding tussen al deze onderdelen is weergegeven in bovenstaande figuur.

Ultrasone sensor gebruikte 3,3 v voor het opstarten. Daarom hebben we de rechter onderste poort van het Magicbit-bord gebruikt om de ultrasone sensor op Magicbit aan te sluiten. Maar servomotor wordt gebruikt 5V voor een goede werking, daarom hebben we de linker onderste poort gebruikt om de servomotor met Magicbit te verbinden. In dit geval gebruiken we de Magic bit servo connector module. Maar als je die module niet hebt, kun je drie jumperdraden gebruiken om 5V naar 5V, Gnd naar Gnd en signaalpin naar 26-pins op magicbit te verbinden.

Laten we nu eens kijken naar de mechanische kant van ons project. Om het deksel te openen gebruiken we een heel eenvoudig hefboommechanisme. We hebben de ene kant servo-handclip op de servo aangesloten. Vervolgens hebben we het hoekgat in de clip en het deksel van de vuilnisbak verbonden met behulp van sterk metaaldraad. De metaaldraad kan draaien ten opzichte van servoclip en vuilnisbakdeksel. Door topbeeld en video te bestuderen kun je dat heel eenvoudig opbouwen.

Stap 4: Software-installatie

Software-installatie
Software-installatie

Het softwaregedeelte is ook heel eenvoudig. Laten we eens kijken naar Arduino IDE-code en hoe die code werkt.

Voor het aansturen van servo gebruiken we ESP32 servo-bibliotheek. Deze bibliotheek is bijna opgenomen in Magic Bit Board Manager in Arduino IDE. Om met ultrasone sensor om te gaan, gebruiken we newPing-bibliotheek. Deze is te downloaden via de volgende link.

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

Download het zip-bestand en ga naar tools>bibliotheek opnemen>Zip-bibliotheek toevoegen in Arduino. selecteer nu uw gedownloade zip-bestand van de nieuwe pinbibliotheek. in de code verklaren we eerst servo- en ultrasone sensorbibliotheken. In de loop-functie controleren we altijd de afstand van de vuilnisbak tot het dichtstbijzijnde object aan de voorkant. Als die rasp dan 200 is, is de afstandsuitvoer van de bibliotheek 0. Als de afstand kleiner is dan 60 cm, voert u een lus uit om de klep te openen door de servo te draaien. Is de afstand groter dan 60 cm dan zal de hoes worden neergezet. Door gebruik te maken van een booleaanse variabele controleren we altijd de staat van de hoes. Als het deksel naar beneden is, gaat het alleen open. Ook omgekeerd. Selecteer nu de juiste COM-poort en board als magcibit, upload vervolgens de code. Nu is je slimme vuilnisbak klaar voor gebruik.

Stap 5: Arduino-code

#erbij betrekken

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing-sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include //include servo library int distance; Servo RadarServo; void setup() { Serial.begin(115200); RadarServo.attach(26); // Bepaalt op welke pin de servomotor is bevestigd vertraging (3000); } void loop() {// roteert de servomotor van 15 naar 165 graden for(int i=0;i<=180;i++){ RadarServo.write(i); vertraging (50); distance = sonar.ping_cm();// Roept een functie op voor het berekenen van de afstand gemeten door de ultrasone sensor voor elke graad for(int j=0;j0){ break; } Serieel.print(i); // Stuurt de huidige graad naar de seriële poort Serial.print(", "); // Stuurt een toevoegingsteken direct naast de vorige waarde die later nodig is in de Processing IDE voor het indexeren van Serial.print(j); // Stuurt de huidige graad naar de seriële poort Serial.print ("*"); Serieafdruk(1); // Stuurt de afstandswaarde naar de seriële poort Serial.print ("/"); // Stuurt een toevoegingsteken direct naast de vorige waarde die later nodig is in de Processing IDE voor het indexeren van Serial.print(distance); // Stuurt de afstandswaarde naar de seriële poort Serial.print("."); // Stuurt een optelteken direct naast de vorige waarde die later in de Processing IDE nodig is voor indexering } } // Herhaalt de vorige regels van 165 tot 15 graden for(int i=180;i>=0;i--){ RadarServo.schrijf(ik); vertraging (50); afstand = sonar.ping_cm(); for(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){ ga verder; } Serieel.print(i); // Stuurt de huidige graad naar de seriële poort Serial.print(", "); // Stuurt een toevoegingsteken direct naast de vorige waarde die later nodig is in de Processing IDE voor het indexeren van Serial.print(j); // Stuurt de huidige graad naar de seriële poort Serial.print ("*"); Serieafdruk(-1); // Stuurt de afstandswaarde naar de seriële poort Serial.print ("/"); // Stuurt een toevoegingsteken direct naast de vorige waarde die later nodig is in de Processing IDE voor het indexeren van Serial.print(distance); // Stuurt de afstandswaarde naar de seriële poort Serial.print("."); // Stuurt een optelteken direct naast de vorige waarde die later nodig is in de Processing IDE voor indexering } } }

Aanbevolen: