Mündəricat:

Ev heyvanları üçün IoT müalicə dispenseri: 7 addım (şəkillərlə)
Ev heyvanları üçün IoT müalicə dispenseri: 7 addım (şəkillərlə)

Video: Ev heyvanları üçün IoT müalicə dispenseri: 7 addım (şəkillərlə)

Video: Ev heyvanları üçün IoT müalicə dispenseri: 7 addım (şəkillərlə)
Video: Heydər Əliyev və Həyat yoldaşını Birdə belə görün #azerbaijan #president #prezident #xeberler #xeber 2024, Noyabr
Anonim
Image
Image
Ev heyvanları üçün IoT müalicə dispenseri
Ev heyvanları üçün IoT müalicə dispenseri

İki pişiyim var və gündə təxminən 3 dəfə onlara yemək vermək çox narahatlıq yaratdı. Sevimli üzləri və sıx baxışları ilə mənə baxıb, sonra pişik göyərti ilə dolu bir qutuya qaçaraq miyavlayaraq yalvarırdılar. Kifayət qədər kifayət olduğuna qərar verdim. Bir pişiyə bir neçə yemək vermək üçün qalxmaq artıq olmaz. İndi yemək vermə maşınının vaxtı idi, çünki deyildiyi kimi: "Proqramçılar sadə şeyləri daha az etmək üçün mürəkkəb şeylər etmək üçün var."

Bu layihəyə DFRobot sponsorluq edir.

Parça siyahısı:

  • DFRobot Moruq Pi 3
  • DFRobot Raspberry Pi Kamera Modulu
  • Planet Gear ilə DFRobot Step Motoru
  • I2C LCD 16x2
  • Barel Jack Terminala
  • DRV8825 Step Motor Sürücü
  • Kondansatör 100 μF
  • Arduino UNO və Genuino UNO
  • Jumper telləri (ümumi)

Addım 1: Dizayn Yaratmaq

Dizayn Yaratmaq
Dizayn Yaratmaq

Birincisi, yeni düşündüyüm maşını necə idarə etmək olar. Bluetooth heç bir maneə olmadan cəmi 30 fut məsafədə çox qısa olardı. Bu məlumatlarla WiFi istifadə etməyi seçdim. Ancaq indi maşını idarə etmək üçün WiFi -dən necə istifadə edə bilərəm? Bir Raspberry Pi 3, Wi -Fi xüsusiyyətlərinə malikdir və veb səhifəni yerləşdirmək üçün Flaskdan istifadə etməyimə icazə verir. Növbəti korpusun mövzusu və yeməklərin necə paylanması idi. Zəriflərin kiçik hissələrə ayrılacağı, ətrafında döndəriləcəyi və sonra yeməklərin bir rampaya enib maşının önünə gedəcəyi fırlanan təkər dizaynına qərar verdim.

Addım 2: Fusion 360 Modelinin Hazırlanması

Fusion 360 modelinin hazırlanması
Fusion 360 modelinin hazırlanması
Fusion 360 modelinin hazırlanması
Fusion 360 modelinin hazırlanması
Fusion 360 modelinin hazırlanması
Fusion 360 modelinin hazırlanması

Müalicə qabı üçün əsas model yaratmaqla başladım. Zərbələr mini tullantıya düşür, sonra onları fırlanan təkərə aparırlar.

Daha sonra LCD və Raspberry Pi kamera modulu daxil olmaqla digər elektronika ilə birlikdə Fusion dizaynına Raspberry Pi 3 əlavə etdim. Əlavə yemək saxlaya biləcək bir tullanan da düzəltdim.

Müalicə dispenserinin divarlarının bir CNC routerdə 1/4 düymlük kontrplakdan kəsilməsi nəzərdə tutulur. İçərisində 7 ədəd, 4 divar, bir döşəmə və ləzzətləri açmaq və açmaq üçün üst və qapaq parçası var.

Nəhayət, qapağı açmaq üçün "xülya" qolu yaratdım.

Addım 3: Pi qurmaq

DFRobot mənə yaxınlaşdı və Raspberry Pi 3 və Raspberry Pi Kamera Modullarını göndərdi. Qutular açıldıqdan sonra SD kartı quraraq işə başladım. Əvvəlcə Raspberry Pi Yükləmələri səhifəsinə girdim və Raspbianın ən son versiyasını yüklədim. Sonra faylı çıxarıb rahat bir qovluğa qoydum. Yalnız bir.img faylını SD karta kopyalayıb yapışdıra bilməzsiniz, onu kartın üzərinə "yandırmalısınız". OS görüntüsünü asanlıqla köçürmək üçün Etcher.io kimi yanan bir yardım proqramı yükləyə bilərsiniz.. İmg faylı SD kartımda olandan sonra onu Raspberry Pi -yə daxil etdim və güc verdim. Təxminən 50 saniyədən sonra kabeli çıxarıb SD kartı çıxardım. Sonra SD kartı yenidən kompüterimə qoydum və "açılış" qovluğuna getdim. Notepad açdım və NO uzantısı olmayan "ssh" adlı boş bir fayl olaraq qeyd etdim. Əlavə etdiyim "wpa_supplicant.conf" adlı bir fayl da var idi və bu mətni daxil etdim: network = {ssid = psk =} Sonra kartı saxlayıb çıxarıb yenidən Raspberry Pi 3 -ə qoydum. SSH istifadəsi və WiFi -ə qoşulma.

Addım 4: Proqramın Qurulması

VLC və hərəkət kimi videonu yayımlaya biləcək bir neçə fərqli proqram var, amma gecikməsi və quraşdırılması asan olduğu üçün mjpeg-streamer-dən istifadə etmək qərarına gəldim. Saytdakı təlimatlara əsasən, bir hərəkət edin: git clone https://github.com/jacksonliam/mjpg-streamer.git Bir qovluğa yazın, sonra yazın: sudo apt-get install cmake libjpeg8-dev Lazım olan kitabxanaları quraşdırmaq üçün. Kataloqu yüklədiyiniz qovluğa dəyişdirin və sonra yazın: edin İzlə: sudo make install Proqramı tərtib etmək üçün. Nəhayət daxil edin: LD_LIBRARY_PATH = ixrac edin. Və onu işə salmaq üçün yazın:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so". html axını görmək üçün.

Addım 5: Veb serverin qurulması

Maşının WiFi ilə xaricdən idarə olunmasını təmin etmək üçün bir veb serverə ehtiyacım var. Bir veb server, ümumiyyətlə bir brauzer tərəfindən tələb edildikdə veb səhifələrə xidmət göstərir. Apache -ni masadan çıxarıb qurmaq və istifadə etmək üçün tez və sadə bir şey istədim. Arduino Uno -nu PySerial ilə idarə etmək üçün veb serveri Python ilə birləşdirmək istədim. Bu araşdırma nəticədə məni Flask -a gətirib çıxardı ki, istifadəçilərə tez bir web serveri yaradaq. Tam kod bu layihə səhifəsinə əlavə olunur. Python skripti əsasən 2 veb səhifəni qurur, onlardan biri kök qovluğunda, '/', digəri isə '/dispense' ünvanında yerləşdirilir. İndeks səhifəsində təqdim edildikdə paylama səhifəsinə bir poçt sorğusu göndərən bir HTML forması var. Göndərmə səhifəsi poçt dəyərinin düzgün olub olmadığını yoxlayır və 'D / n' mesajı olub -olmadığını Arduino Uno -ya ardıcıl olaraq göndərir.

Addım 6: IO -ya nəzarət

IO -ya nəzarət
IO -ya nəzarət
IO -ya nəzarət
IO -ya nəzarət
IO -ya nəzarət
IO -ya nəzarət
IO -ya nəzarət
IO -ya nəzarət

Step motorumu idarə etmək üçün DRV8825 -dən istifadə etmək qərarına gəldim, bunun səbəbi yalnız tənzimlənən cərəyan məhdudiyyətinə sahib olmaq üçün yalnız 2 IO sancağına ehtiyacı var. L293D istifadə etməyə çalışdım, amma step motorunun yükünü qaldıra bilmədi. DRV8825, PWM vasitəsi ilə STEP pinini çəkməklə, DIR pinini isə yuxarı və ya aşağı çəkməklə idarə olunur. İstifadə etdiyim step motorunda 1.2 amperlik bir çəkmə var, buna görə də VREF gərginliyini.6V -a düzəltdim. Sonrakı LCD idi. Lazım olan IO miqdarını azaltmaq və kodu asanlaşdırmaq üçün I2C istifadə etmək istədim. Kitabxananı qurmaq üçün sadəcə "LiquidCrystal_I2C" axtarın və quraşdırın. Nəhayət, Arduino Uno, serial tamponunda yeni məlumatları yoxlayır və 'D' ilə uyğun gəlir. Bu baş verərsə, Uno, step motorunun 180 dərəcə, sonra isə -72 dərəcə hərəkət etməsinə səbəb olur ki, yeməklərin yerləşdirilməsini maneə törədir.

Tövsiyə: