Inteligentní popelnice od Magicbit: 5 kroků
Inteligentní popelnice od Magicbit: 5 kroků
Anonim
Image
Image

V tomto tutoriálu se naučíme, jak vytvořit chytrou popelnici pomocí Magicbit dev. deska s Arduino IDE. Pojďme začít.

Zásoby

  • Magicbit
  • Kabel USB-A na Micro-USB
  • Ultrazvukový senzor - HC -SR04 (obecný)
  • Micro-servo motor SG90

Krok 1: Příběh

Nastavení hardwaru
Nastavení hardwaru

Než se přesuneme do projektu, podívejme se, co je to inteligentní popelnice. V každé domácnosti je jedna nebo více popelnic. Mnohokrát jste to pokryli. Protože to u vás doma bude vonět. Takže když chcete dát nějaké odpadky na popelnici, musíte je otevřít. Ale pokud, když se přiblížíte k popelnici, abyste dali odpadky a automaticky se otevře kryt, jak to vypadá. Bláznivé aaa …. tak to je chytrá popelnice.

Krok 2: Teorie a metodologie

Teorie je velmi jednoduchá. Když se přiblížíte k popelnici, detekuje vás. Pokud je vzdálenost mezi vámi a popelnicí menší než definovaná vzdálenost, kryt popelnice se automaticky otevře. K dokončení obou těchto objektů používáme ultrazvukový senzor HC-SRO4 a malé servomotory. Můžete získat jakýkoli typ digitálního servomotoru.

Krok 3: Nastavení hardwaru

Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru

Pro tento projekt jsme použili hlavně tři hardwarové komponenty. Jsou to Magicbit, servomotor a ultrazvukový senzor. Spojení mezi všemi těmito částmi je znázorněno na obrázku výše.

Ultrazvukový senzor používá k zapnutí 3,3 V. Proto jsme pro připojení ultrazvukového senzoru k Magicbit použili pravý spodní port desky Magicbit. Pro správnou funkci je však použit servomotor 5V, proto jsme pro připojení servomotoru s Magicbit použili levý spodní port. V tomto případě používáme modul servo konektoru Magic bit. Pokud ale tento modul nemáte, můžete použít tři propojovací vodiče pro připojení 5V až 5V, Gnd to Gnd a signálního pinu na 26 pinů na magicbit.

Podívejme se nyní na mechanickou stránku našeho projektu. K otevření krytu používáme velmi jednoduchý pákový mechanismus. K servu jsme připojili jednostrannou ruční klipsu serva. Poté jsme pomocí silného kovového drátu spojili rohový otvor ve sponě a kryt popelnice. Kovový drát se může otáčet s ohledem na sponu serva a kryt popelnice. Studiem špičkového obrazu a videa to můžete velmi snadno vytvořit.

Krok 4: Nastavení softwaru

Nastavení softwaru
Nastavení softwaru

Softwarová část je také velmi snadná. Podívejme se na kód Arduino IDE a na to, jak tento kód funguje.

Pro pohon serva používáme knihovnu serv ESP32. Tato knihovna téměř obsahuje správce kouzelných bitových desek v Arduino IDE. K řešení ultrazvukových senzorů používáme knihovnu newPing. To lze stáhnout z následujícího odkazu.

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

Stáhněte si soubor zip a přejděte na nástroje> zahrnout knihovnu> přidat knihovnu Zip do Arduina. nyní vyberte stažený soubor zip nové knihovny pinů. v kódu nejprve deklarujeme knihovny servo a ultrazvukových senzorů. Ve funkci smyčky vždy kontrolujeme vzdálenost od popelnice k nejbližšímu přednímu objektu. Pokud je toto struhadlo větší než 200, pak je vzdálenost výstupu knihovny 0. Když je vzdálenost menší než 60 cm, provede se pro smyčku pro otevření krytu otáčením serva. Pokud je vzdálenost větší než 60 cm, kryt se odloží. Pomocí booleovské proměnné vždy kontrolujeme stav krytu. Pokud je kryt dolů, otevře se pouze. Také naopak. Nyní vyberte správný COM port a desku jako magcibit, poté nahrajte kód. Nyní je váš chytrý odpadkový koš připraven k použití.

Krok 5: Arduino kód

#zahrnout

#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; neplatné nastavení () {Serial.begin (115200); RadarServo.attach (26); // Definuje, na kterém pinu je zpoždění připojeno servomotoru (3000); } void loop () {// otočí servomotor o 15 až 165 stupňů pro (int i = 0; i <= 180; i ++) {RadarServo.write (i); zpoždění (50); distance = sonar.ping_cm (); // Volá funkci pro výpočet vzdálenosti měřené ultrazvukovým senzorem pro každý stupeň pro (int j = 0; j0) {break; } Serial.print (i); // Odešle aktuální stupeň do Serial Port Serial.print (","); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (j); // Odešle aktuální stupeň do Serial Port Serial.print ("*"); Serial.print (1); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("/"); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (vzdálenost); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("."); // Odešle sčítací znak hned vedle předchozí hodnoty potřebné později v IDE zpracování pro indexování}} // Opakuje předchozí řádky od 165 do 15 stupňů pro (int i = 180; i> = 0; i-) {RadarServo.write (i); zpoždění (50); vzdálenost = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continue; } Serial.print (i); // Odešle aktuální stupeň do Serial Port Serial.print (","); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (j); // Odešle aktuální stupeň do Serial Port Serial.print ("*"); Serial.print (-1); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("/"); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (vzdálenost); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("."); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v IDE zpracování pro indexování}}}