Для электронщиков и радиолюбителей

Умная корзина с автоматическим открыванием на основе Arduino, датчика HC-SR04 и сервомотора

Представленная в данном проекте умная корзина может помочь поддерживать чистоту и гигиену окружающей среды, так как мусор можно выбрасывать в нее, не касаясь ее. У этого мусорного ведра есть серводвигатель, прикрепленный к крышке, который открывает и закрывает ее, также используется датчик HC-SR04 для обнаружения приближающихся к нему рук. Такое мусорное ведро может быть полезно в людных местах, таких как торговые центры, офисы, школы, колледжи и больницы.

Наша умная корзина имеет следующие особенности:

— Корзина открывается автоматически, когда кто-то подходит к ней, что делает процесс утилизации бесконтактным и гигиеничным

— При доработке она может предупредить сборщиков мусора, когда ее нужно опорожнить. Таким образом, муниципальные корпорации могут заблаговременно собрать мусор до того, как она начнет переполняться

— Больницы могут использовать умные корзины, чтобы избавить города от биологических отходов, которые потенциально могут быть опасными и распространять инфекции

Прототип такой корзины показан на следующем рисунке.

Умная корзина с автоматическим открыванием на основе Arduino, датчика HC-SR04 и сервомотора

Принципиальная схема умной корзины на основе Arduino, датчика HC-SR04 и сервомотора представлена далее.

Умная корзина с автоматическим открыванием на основе Arduino, датчика HC-SR04 и сервомотора

Когда ультразвуковой датчик регистрирует движение руки перед мусорной корзиной, он генерирует сигнал на своих выводах Echo и Trigger. Этот сигнал принимается и обрабатывается контроллером (Arduino) и отправляется на его цифровые выходные контакты. Сигнал поступает на серводвигатель MG90S для поворота прикрепленной к нему крышки на требуемый угол. Степень вращения, определяемая размером крышки, должна быть установлена методом проб и ошибок.

Код программы для Arduino следующий:

#include <Servo.h>
Servo servo;     
int trigPin = 5;    
int echoPin = 6;   
int servoPin = 7;
int led= 10;
long duration, dist, average;   
long aver[3];


void setup() {       
    Serial.begin(9600);
    servo.attach(servoPin);  
    pinMode(trigPin, OUTPUT);  
    pinMode(echoPin, INPUT);  
    servo.write(0);
    delay(100);
    servo.detach(); 
} 

void measure() {  
 digitalWrite(10,HIGH);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
dist = (duration/2) / 29.1;
}
void loop() { 
  for (int i=0;i<=2;i++) {
    measure();               
   aver[i]=dist;            
    delay(10);
  }
 dist=(aver[0]+aver[1]+aver[2])/3;    

if ( dist<50 ) {
 servo.attach(servoPin);
  delay(1);
 servo.write(0);  
 delay(3000);       
 servo.write(150);    
 delay(1000);
 servo.detach();      
}
Serial.print(dist);
}

Данный проект может быть расширен за счет использования тензодатчика и датчика GPS. Тензодатчик может определять вес корзины. Когда она заполнится и ее вес превысит определенный предел, он отправит сигнал тревоги в ближайший муниципалитет и соответствующему сборщику мусора через GPS. Точное местонахождение мусорного бака можно отследить по координатам широты и долготы GPS на Google Maps.