Turinys:

„IoT Treat“dozatorius naminiams gyvūnėliams: 7 žingsniai (su nuotraukomis)
„IoT Treat“dozatorius naminiams gyvūnėliams: 7 žingsniai (su nuotraukomis)

Video: „IoT Treat“dozatorius naminiams gyvūnėliams: 7 žingsniai (su nuotraukomis)

Video: „IoT Treat“dozatorius naminiams gyvūnėliams: 7 žingsniai (su nuotraukomis)
Video: TEMPLE RUN 2 SPRINTS PASSING WIND 2024, Liepa
Anonim
Image
Image
„IoT Treat“dozatorius naminiams gyvūnėliams
„IoT Treat“dozatorius naminiams gyvūnėliams

Turiu dvi kates, ir apie 3 kartus per dieną duoti jiems skanėstų tapo nemalonu. Jie žvelgtų į mane savo mielais veidais ir intensyviais žvilgsniais, tada nubėgtų prie dėžutės, pilnos kačių žalumynų, miaukdami ir elgetaudami. Nusprendžiau, kad užteks. Nebereikia keltis, kad tik padovanotumėte katei porą skanėstų. Dabar atėjo laikas skanėstų dalijimo mašinai, nes, kaip sakoma: „Programuotojai egzistuoja tam, kad padarytų sudėtingus dalykus, kad mažiau atliktų paprastų dalykų“.

„DFRobot“rėmė šį projektą.

Dalių sąrašas:

  • „DFRobot Raspberry Pi 3“
  • DFRobot Raspberry Pi kameros modulis
  • „DFRobot“žingsninis variklis su planetine pavara
  • I2C LCD 16x2
  • Barrel Jack į terminalą
  • DRV8825 žingsninio variklio vairuotojas
  • Kondensatorius 100 µF
  • „Arduino UNO“ir „Genuino UNO“
  • Trumpieji laidai (bendrieji)

1 žingsnis: dizaino sukūrimas

Dizaino kūrimas
Dizaino kūrimas

Pirmasis buvo pasirinkimas, kaip valdyti savo naujai mąstančią mašiną. „Bluetooth“diapazonas būtų per trumpas, tik 30 pėdų be kliūčių. Turėdamas šią informaciją nusprendžiau naudoti „WiFi“. Bet dabar, kaip naudoti „WiFi“mašinai valdyti? „Raspberry Pi 3“turi integruotas „WiFi“galimybes, leidžiančias man naudoti „Flask“tinklalapiui priglobti. Toliau buvo aptvaro tema ir kaip išduoti skanėstus. Nusprendžiau dėl besisukančio rato konstrukcijos, kai skanėstai pasiskirstys į mažas dalis, bus pasukti aplink, o tada skanėstai nukris ant rampos ir keliaus į mašinos priekį.

2 žingsnis: sukurkite „Fusion 360“modelį

„Fusion 360“modelio kūrimas
„Fusion 360“modelio kūrimas
„Fusion 360“modelio kūrimas
„Fusion 360“modelio kūrimas
„Fusion 360“modelio kūrimas
„Fusion 360“modelio kūrimas

Pradėjau kurti pagrindinį patiekalo indo modelį. Skanėsiai patenka į mini bunkerį, kur jie paimami į besisukantį ratą.

Tada prie „Fusion“dizaino pridėjau „Raspberry Pi 3“kartu su kita elektronika, įskaitant LCD ir „Raspberry Pi“fotoaparato modulį. Taip pat padariau bunkerį, kuriame būtų galima laikyti papildomus skanėstus.

Skanumo balionėlio sienos turėtų būti iškirptos iš 1/4 colio faneros CNC maršrutizatoriuje. Jame yra 7 detalės, 4 sienos, grindys ir viršutinė bei dangtinė dalys, kurias galima atidaryti ir uždaryti, kad būtų atskleisti skanėstai.

Galiausiai sukūriau „išgalvotą“rankenėlę dangčiui atidaryti.

3 žingsnis: „Pi“nustatymas

„DFRobot“kreipėsi į mane ir atsiuntė savo „Raspberry Pi 3“ir „Raspberry Pi“fotoaparato modulį. Taigi, atidaręs dėžutes, aš pradėjau dirbti, nustatydamas SD kortelę. Pirmiausia nuėjau į „Raspberry Pi“atsisiuntimų puslapį ir atsisiunčiau naujausią „Raspbian“versiją. Tada ištraukiau failą ir įdėjau į patogų katalogą. Negalite tiesiog nukopijuoti/įklijuoti.img failo į SD kortelę, turite jį „įrašyti“į kortelę. Norėdami lengvai perkelti OS vaizdą, galite atsisiųsti deginimo priemonę, pvz., „Etcher.io“. Po to, kai.img failas buvo mano SD kortelėje, įdėjau jį į „Raspberry Pi“ir suteikiau galios. Po maždaug 50 sekundžių atjungiau laidą ir išėmiau SD kortelę. Tada vėl įdėjau SD kortelę į savo kompiuterį ir nuėjau į „įkrovos“katalogą. Atidariau „Notepad“ir išsaugojau jį kaip tuščią failą pavadinimu „ssh“be plėtinio. Taip pat buvo mano pridėtas failas pavadinimu „wpa_supplicant.conf“ir į jį įdėjau šį tekstą: network = {ssid = psk =} Tada išsaugojau ir išėmiau kortelę ir vėl įdėjau ją į „Raspberry Pi 3.“SSH naudojimas ir prisijungimas prie „WiFi“.

4 veiksmas: programinės įrangos diegimas

Yra kelios skirtingos programinės įrangos, galinčios transliuoti vaizdo įrašus, pvz., VLC ir judesys, tačiau nusprendžiau naudoti „mjpeg-streamer“dėl mažo delsos ir lengvo įdiegimo. Vadovaudamiesi instrukcijomis svetainėje, atlikite: git clone https://github.com/jacksonliam/mjpg-streamer.git Į aplanką, tada įveskite: sudo apt-get install cmake libjpeg8-dev Norėdami įdiegti reikalingas bibliotekas. Pakeiskite katalogą į atsisiųstą aplanką ir įveskite: make Po to: sudo make install Norėdami sudaryti programinę įrangą. Galiausiai įveskite: export LD_LIBRARY_PATH =. Norėdami jį paleisti, įveskite:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Srautą galite pasiekti eidami į: https:// The Pi's local ip: 8080/stream. html Norėdami peržiūrėti srautą.

5 veiksmas: nustatykite žiniatinklio serverį

Kad mašina būtų išoriškai valdoma naudojant „WiFi“, man reikėjo žiniatinklio serverio. Žiniatinklio serveris iš esmės aptarnauja tinklalapius, kai to paprašo, paprastai naršyklė. Norėjau kažką greitai ir paprastai nustatyti ir naudoti, pašalindamas „Apache“nuo stalo. Aš taip pat norėjau prijungti žiniatinklio serverį prie „Python“, kad galėčiau valdyti „Arduino Uno“naudodami „PySerial“. Šis ieškojimas galiausiai atvedė mane į „Flask“- gražią „Python“biblioteką, leidžiančią vartotojams greitai sukurti žiniatinklio serverį. Visas kodas pridedamas prie šio projekto puslapio. „Python“scenarijus iš esmės sukuria 2 tinklalapius: vieną, kuris yra pagrindiniame kataloge „/“, o kitą - „/dispense“. Indekso puslapyje yra HTML forma, kurią pateikus siunčiamas siuntimo prašymas į išdavimo puslapį. Tada dozavimo puslapis patikrina, ar įrašo vertė yra teisinga, ir ar tai pranešimas „D / n“siunčiamas serijiniu būdu į „Arduino Uno“.

6 žingsnis: IO valdymas

IO valdymas
IO valdymas
IO valdymas
IO valdymas
IO valdymas
IO valdymas
IO valdymas
IO valdymas

Aš nusprendžiau naudoti DRV8825 savo žingsniniam varikliui vairuoti, daugiausia dėl to, kad jam reikia tik 2 IO kaiščių ir reguliuojamo srovės ribojimo. Bandžiau naudoti L293D, bet jis negalėjo atlaikyti žingsninio variklio apkrovos. DRV8825 valdomas pulsuojant STEP kaištį per PWM, o kryptis valdoma traukiant DIR kaištį aukštai arba žemai. Mano naudojamas žingsninis variklis turi 1,2 ampero trauką, todėl sureguliavau VREF įtampą iki.6V. Kitas buvo LCD ekranas. Norėjau naudoti I2C, kad sumažintų reikalingą IO kiekį ir supaprastintų kodą. Norėdami įdiegti biblioteką, tiesiog ieškokite „LiquidCrystal_I2C“ir įdiekite ją. Galiausiai „Arduino Uno“patikrina, ar serijiniame buferyje nėra naujos informacijos ir ar ji atitinka „D“. Jei taip atsitiks, „Uno“priverčia žingsninį variklį pasisukti 180 laipsnių, o paskui -72 laipsnių kampu, kad skanėstų nesulaikytų.

Rekomenduojamas: