Spisu treści:

Inteligentny kosz na śmieci od Magicbit: 5 kroków
Inteligentny kosz na śmieci od Magicbit: 5 kroków

Wideo: Inteligentny kosz na śmieci od Magicbit: 5 kroków

Wideo: Inteligentny kosz na śmieci od Magicbit: 5 kroków
Wideo: Jaki Kosz na śmieci Xiaomi Townew zgrzewarką 0 brzydkich zapachów higieniczny zbita.shop segregacja 2024, Listopad
Anonim
Image
Image

W tym samouczku dowiemy się, jak zrobić Smart śmietnik za pomocą Magicbit dev. płytka z Arduino IDE. Zacznijmy.

Kieszonkowe dzieci

  • Magicbit
  • Kabel USB-A do Micro-USB
  • Czujnik ultradźwiękowy - HC-SR04 (ogólny)
  • Silnik mikro-serwo SG90

Krok 1: Historia

Konfiguracja sprzętu
Konfiguracja sprzętu

Zanim przejdziemy do projektu, spójrzmy, czym jest Smart śmietnik. W każdym domu jest jeden lub więcej koszy na śmieci. Wiele razy to okryłeś. Ponieważ to sprawi, że zapach w twoim domu. Więc jeśli chcesz wyrzucić śmieci do śmietnika, musisz je otworzyć. Ale jeśli, kiedy podejdziesz do kosza na śmieci, aby wyrzucić śmieci i automatycznie pokrywa się otwiera, to jak to wygląda. Szalony aaa…. więc to jest sprytny śmietnik.

Krok 2: Teoria i metodologia

Teoria jest bardzo prosta. Gdy podejdziesz do śmietnika, wykryje cię. Jeśli odległość między tobą a koszem na śmieci jest mniejsza niż określona odległość, pokrywa kosza otworzy się automatycznie. Do wykonania obu tych obiektów wykorzystujemy czujnik ultradźwiękowy HC-SRO4 oraz małe serwomotory. Możesz otrzymać dowolny typ cyfrowego serwomotoru.

Krok 3: Konfiguracja sprzętu

Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu

W tym projekcie użyliśmy głównie trzech komponentów sprzętowych. Są to Magicbit, serwomotor i czujnik ultradźwiękowy. Połączenie między wszystkimi tymi częściami pokazano na powyższym rysunku.

Czujnik ultradźwiękowy używał 3,3 V do zasilania. Dlatego użyliśmy prawego dolnego portu płyty Magicbit do podłączenia czujnika ultradźwiękowego do Magicbit. Ale silnik serwo jest używany do poprawnej pracy 5 V, dlatego użyliśmy lewego dolnego portu do połączenia silnika serwo z Magicbit. W tym przypadku stosujemy moduł złącza Magic bit servo. Ale jeśli nie masz tego modułu, możesz użyć trzech zworek do podłączenia 5V do 5V, Gnd do Gnd i pin sygnałowy do pinu 26 na magicbit.

Teraz spójrzmy na mechaniczną stronę naszego projektu. Do otwierania pokrywy używamy bardzo prostego mechanizmu dźwigniowego. Połączyliśmy jeden boczny uchwyt serwomechanizmu do serwomechanizmu. Następnie mocnym metalowym drutem połączyliśmy narożny otwór w klipsie i pokrywę kosza na śmieci. Metalowy drut może się obracać względem zacisku serwa i pokrywy pojemnika na śmieci. Studiując top image i wideo, możesz to bardzo łatwo zbudować.

Krok 4: Konfiguracja oprogramowania

Konfiguracja oprogramowania
Konfiguracja oprogramowania

Część oprogramowania jest również bardzo łatwa. Spójrzmy na kod Arduino IDE i jak ten kod działa.

Do sterowania serwo używamy biblioteki serwo ESP32. Ta biblioteka prawie zawiera się w Magic Bit Board Manager w Arduino IDE. Do obsługi czujnika ultradźwiękowego korzystamy z nowej biblioteki Ping. Można to pobrać z poniższego linku.

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

Pobierz plik zip i idź narzędzia> dołącz bibliotekę> dodaj bibliotekę Zip w Arduino. teraz wybierz pobrany plik zip nowej biblioteki pinów. w kodzie najpierw deklarujemy biblioteki serwo i czujników ultradźwiękowych. W funkcji pętli zawsze sprawdzamy odległość od śmietnika do najbliższego przedniego obiektu. Jeśli ta jest większa niż 200, to wyjście biblioteki wynosi 0. Gdy odległość jest mniejsza niż 60cm, to wykonuje się pętlę for, aby otworzyć pokrywę, obracając serwomechanizm. Jeśli odległość jest większa niż 60 cm, pokrowiec odłoży się. Używając zmiennej logicznej zawsze sprawdzamy stan okładki. Jeśli pokrywa jest opuszczona, tylko ona się otworzy. Również odwrotnie. Teraz wybierz właściwy port COM i płytę jako magcibit, a następnie prześlij kod. Teraz Twój inteligentny kosz na śmieci jest gotowy do użycia.

Krok 5: Kod Arduino

#włączać

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include //include biblioteka serwo int distance; Serwo Radar Serwo; void setup() { Serial.begin(115200); RadarServo.attach(26); // Określa, do którego pinu podłączony jest serwomotor delay(3000); } void loop() { // obraca serwomotor od 15 do 165 stopni for(int i=0;i<=180;i++){ RadarServo.write(i); opóźnienie(50); distance = sonar.ping_cm();// Wywołuje funkcję obliczania odległości zmierzonej przez czujnik ultradźwiękowy dla każdego stopnia for(int j=0;j0){ break; } Serial.print(i); // Wysyła aktualny stopień do portu szeregowego Serial.print(", "); // Wysyła znak dodawania zaraz obok poprzedniej wartości potrzebnej później w Processing IDE do indeksowania Serial.print(j); // Wysyła aktualny stopień do portu szeregowego Serial.print("*"); Serial.print(1); // Wysyła wartość odległości do portu szeregowego Serial.print("/"); // Wysyła znak dodawania zaraz obok poprzedniej wartości potrzebnej później w Processing IDE do indeksowania Serial.print(distance); // Wysyła wartość odległości do portu szeregowego Serial.print("."); // Wysyła znak dodawania zaraz obok poprzedniej wartości potrzebnej później w Processing IDE do indeksowania } } // Powtarza poprzednie wiersze od 165 do 15 stopni for(int i=180;i>=0;i--){ RadarServo.zapis(i); opóźnienie(50); odległość = sonar.ping_cm(); for(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){kontynuuj; } Serial.print(i); // Wysyła aktualny stopień do portu szeregowego Serial.print(", "); // Wysyła znak dodawania zaraz obok poprzedniej wartości potrzebnej później w Processing IDE do indeksowania Serial.print(j); // Wysyła aktualny stopień do portu szeregowego Serial.print("*"); Serial.print(-1); // Wysyła wartość odległości do portu szeregowego Serial.print("/"); // Wysyła znak dodawania zaraz obok poprzedniej wartości potrzebnej później w Processing IDE do indeksowania Serial.print(distance); // Wysyła wartość odległości do portu szeregowego Serial.print("."); // Wysyła znak dodawania tuż obok poprzedniej wartości potrzebnej później w Processing IDE do indeksowania } } }

Zalecana: