مشروع Smart Dustbin باستخدام Arduino

 في هذا المشروع ، قمنا بتصميم نظام بسيط يسمى Smart Dustbin باستخدام Arduino و Ultrasonic Sensor و Servo Motor ، حيث سيفتح غطاء سلة المهملات تلقائيًا عند اكتشاف يد الإنسان. صندوق القمامة الذكي هو حل مصمم بعناية يحل المشكلة الاجتماعية للتخلص من النفايات ؛ يحدد صندوق القمامة الذكي نوع المادة التي يتم إلقاؤها بداخله ويفصلها إلى حيوية أو غير قابلة للتحلل.

 

المكونات المستعملة: 

مخطط دائرة صندوق القمامة الذكي: 


كيفية إنشاء صندوق قمامة ذكي باستخدام Arduino؟

ربط Servo

الآن ، دعني آخذك خلال عملية الإعداد والبناء الفعلية لـ Smart Dustbin باستخدام Arduino. أولاً ، سأبدأ بآلية فتح الغطاء. كما كنت قد خمنت بالفعل ، لقد استخدمت محرك سيرفو لهذا الغرض.

من أجل فتح الغطاء ، قمت بتثبيت أنبوب بلاستيكي صغير (مثل عبوة فارغة من قلم ذو رأس كروي) على بوق المؤازرة (بوق ذو طرف واحد) باستخدام الغراء الفوري.

لكي تتمكن هذه الآلية من فتح غطاء صندوق القمامة ، يجب وضعها بالقرب من المفصلة حيث يتصل الغطاء بالعلبة الرئيسية. من الصورة التالية ، يمكنك أن ترى أنني قمت بإصلاح محرك سيرفو على العلبة.
تأكد أيضًا من أن ذراع الرفع موازية للأرض في حالة الغطاء المغلق.

ربط Ultrasonic Sensor 

بمجرد أن تكون المؤازرة في موضعها ، يمكنك الانتقال إلى مستشعر الموجات فوق الصوتية. قم بعمل فتحتين متطابقتين مع جهاز الاستشعار بالموجات فوق الصوتية على غطاء سلة المهملات ، كما هو موضح في الصورة التالية. 

الآن ، من الداخل ، ضع جهاز الاستشعار بالموجات فوق الصوتية من خلال الفتحات وقم بإصلاح موضعه بمساعدة الغراء.

تتمثل الخطوة الأخيرة في عملية الإنشاء في إجراء التوصيلات اللازمة باستخدام أسلاك توصيل طويلة وفقًا لمخطط الدائرة وتأمين هذه الأسلاك حتى لا تتعطل. 

كود المشروع:

#include <Servo.h>
Servo myservo;  
int pos = 20;  
const int trigPin = 5;
const int echoPin = 6;
const int led = 13;

long duration;
float distance;

void setup() 
{
  myservo.attach(11);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT); 
  pinMode(led, OUTPUT);
  myservo.write(pos);
}

void loop() 
{
  //Serial.begin(9600);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);
  distance = 0.034*(duration/2);
  //Serial.println(distance);
  if (distance < 27)
  {
    digitalWrite(led,HIGH);
    myservo.write(pos+160);
    delay(1000);
  }
  else 
  {
    digitalWrite(led,LOW);
      myservo.write(pos);
  }
  delay(300);
}

 

1 تعليقات

  1. من فضلكم
    هل في فيديو يوضح عمليه التصميم للروبوت? شكرا

    ردحذف
أحدث أقدم