Cuprins:

Coș de gunoi inteligent de la Magicbit: 5 pași
Coș de gunoi inteligent de la Magicbit: 5 pași

Video: Coș de gunoi inteligent de la Magicbit: 5 pași

Video: Coș de gunoi inteligent de la Magicbit: 5 pași
Video: Coșul de gunoi Xiaomi 2024, Noiembrie
Anonim
Image
Image

În acest tutorial vom învăța despre cum să creați un coș de gunoi inteligent folosind Magicbit dev. bord cu Arduino IDE. Să începem.

Provizii

  • Magicbit
  • Cablu USB-A la Micro-USB
  • Senzor cu ultrasunete - HC-SR04 (Generic)
  • Micro-servo motor SG90

Pasul 1: Poveste

Configurare hardware
Configurare hardware

Înainte de a trece la proiect, să vedem ce este coșul de gunoi Smart. Există unul sau mai multe pubele în fiecare casă. De multe ori l-ai acoperit. Pentru că asta va face miros în casa ta. Deci, atunci când doriți să puneți niște gunoi la coșul de gunoi, trebuie să-l deschideți. Dar dacă, atunci când te apropii de coșul de gunoi pentru a pune gunoiul și automat, acesta se deschide, atunci cum arată. Crazy aaa …. deci acesta este coșul de gunoi inteligent.

Pasul 2: Teorie și metodologie

Teoria este foarte simplă. Când te apropii de coșul de gunoi te va detecta. Dacă distanța dintre dvs. și coșul de gunoi este mai mică decât o anumită distanță, atunci capacul coșului de gunoi se va deschide automat. Pentru a completa ambele obiecte, folosim senzor cu ultrasunete HC-SRO4 și servomotoare mici. Puteți obține orice tip de servomotor digital.

Pasul 3: Configurare hardware

Configurare hardware
Configurare hardware
Configurare hardware
Configurare hardware

Pentru acest proiect am folosit în principal trei componente hardware. Sunt Magicbit, servomotor și senzor cu ultrasunete. Conexiunea dintre toate aceste părți este prezentată în figura de mai sus.

Senzorul cu ultrasunete a folosit 3,3 v pentru pornire. Prin urmare, am folosit portul inferior drept al plăcii Magicbit pentru a conecta senzorul cu ultrasunete la Magicbit. Dar servomotorul este folosit 5V pentru o funcționare corectă, de aceea am folosit portul inferior stâng pentru a conecta servomotorul cu Magicbit. În acest caz, folosim modulul conector servo bit Magic. Dar dacă nu aveți acel modul, puteți utiliza trei fire jumper pentru a conecta 5V la 5V, Gnd la Gnd și pinul de semnal la 26 de pini pe magicbit.

Acum să analizăm partea mecanică a proiectului nostru. Pentru a deschide capacul, folosim un mecanism de manetă foarte simplu. Am conectat o clemă de mână servo servo la servo. Apoi am conectat orificiul de colț din clemă și capacul coșului de gunoi folosind sârmă metalică puternică. Sârmele metalice se pot roti în raport cu servo-clema și capacul coșului de gunoi. Studiind imagini și videoclipuri de top, le puteți construi foarte ușor.

Pasul 4: Configurare software

Configurare software
Configurare software

Partea software este, de asemenea, foarte ușoară. Uită-te la codul IDE Arduino și la modul în care funcționează acel cod.

Pentru conducerea servo folosim servoteca ESP32. Această bibliotecă include aproape în managerul de placă de biți magici în IDE Arduino. Pentru a face față senzorului cu ultrasunete, folosim noua bibliotecă Ping. Acesta poate fi descărcat de pe următorul link.

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

Descărcați fișierul zip și mergeți instrumentele> includeți biblioteca> adăugați biblioteca Zip în Arduino. acum selectați fișierul zip descărcat al noii biblioteci de pini. în cod declarăm mai întâi biblioteci de senzori servo și ultrasonici. În funcția buclă verificăm întotdeauna distanța de la coșul de gunoi până la cel mai apropiat obiect frontal. Dacă răzătoarea este mai mare de 200, atunci ieșirea la distanță a bibliotecii este 0. Când distanța este mai mică de 60cm, atunci se execută bucla pentru deschiderea capacului prin rotirea servo. Dacă distanța este mai mare de 60 cm, atunci capacul se va lăsa jos. Folosind variabila booleană verificăm întotdeauna starea capacului. Dacă capacul este în jos, atunci se va deschide numai. De asemenea, invers. Acum selectați portul și placa COM corecte ca magcibit, apoi încărcați codul. Acum coșul de gunoi inteligent este gata de utilizare.

Pasul 5: Cod Arduino

#include

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include servo biblioteca int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Definește pe care pin este întârzierea atașată servomotorului (3000); } void loop () {// roteste servomotorul de la 15 la 165 de grade pentru (int i = 0; i <= 180; i ++) {RadarServo.write (i); întârziere (50); distance = sonar.ping_cm (); // Apelează o funcție pentru calcularea distanței măsurate de senzorul cu ultrasunete pentru fiecare grad pentru (int j = 0; j0) {break; } Serial.print (i); // Trimite gradul curent în Serial Port Serial.print (","); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (j); // Trimite gradul curent în Serial Port Serial.print ("*"); Serial.print (1); // Trimite valoarea distanței în Serial Port Serial.print ("/"); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (distanță); // Trimite valoarea distanței în Serial Port Serial.print ("."); // Trimite caracterul de adaos chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexare}} // Repetă liniile anterioare de la 165 la 15 grade pentru (int i = 180; i> = 0; i -) {RadarServo.scrie (i); întârziere (50); distanță = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continua; } Serial.print (i); // Trimite gradul curent în Serial Port Serial.print (","); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (j); // Trimite gradul curent în Serial Port Serial.print ("*"); Serial.print (-1); // Trimite valoarea distanței în Serial Port Serial.print ("/"); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexarea Serial.print (distanță); // Trimite valoarea distanței în Serial Port Serial.print ("."); // Trimite caracter de adăugare chiar lângă valoarea anterioară necesară ulterior în IDE de procesare pentru indexare}}}

Recomandat: