Raspberry Pi Zero Garage Door Opener Hardware: 10 Addım
Raspberry Pi Zero Garage Door Opener Hardware: 10 Addım
Anonim
Raspberry Pi Zero Garage Door Opener Hardware
Raspberry Pi Zero Garage Door Opener Hardware

Bu layihə üçün ilham verənlərdən biri, İnternetdə tapılmış bir neçə başqası ilə birlikdə Raspberry Pi 3 Garage Door Opener -də göstərilə bilən gözəl şey idi. Təcrübəli bir elektronika adamı olmadığım üçün, Raspberry Pi ilə əlaqə qurma yolları haqqında bir çox əlavə araşdırma apardım və LED ampulləri və bütün GPIO naqilləri ilə rezistorların əhəmiyyəti haqqında çox şey öyrəndim. Quraşdırılmış Pi funksionallığı ilə müqayisədə yuxarı və aşağı açılan aparat sxemlərinin faydalarını da öyrəndim.

Bu qaraj qapısı layihəsi həqiqətən Pi aparatı, proqram təminatı və qaraj qapı açar (lar) ınızla quraşdırılmasından ibarət çox hissəli bir proses olduğundan, hər addım üçün lazım olduğu üçün əvvəlcə Pi aparatına diqqət edəcəyimi düşündüm.

Təchizatı tamamlaya bilmək üçün etdiyim öyrənmənin xülasəsi kimi yanaşaraq çox sadə olmalıyam. Bəzi məlumatlarla başlayacaq və sonra çörək taxtasında sxemlər quracağıq. Hər bir addım, dizaynımızı və biliklərimizi təkmilləşdirəcək, nəticədə Pi -ni bir röle və qamış sensorlar ilə birləşdirmək üçün daimi bir hardware həlli quracaq.

Əlavə olaraq, bəzi digər layihələrdən fərqli olaraq, bir müddət əvvəl satışa çıxarılan, lakin hələ də masamda istifadə olunmamış bir Raspberry Pi Zero W istifadə etmək qərarına gəldim. Üst tərəfi odur ki, prototip hazırlayarkən, GPIO sxemlərindən hər hansı birini zədələmişəmsə, prototipin dəyişdirilməsi və saxlanılması ucuz və asandır. Dezavantajı, yalnız bir ARMv6 prosessoruna sahib olmasıdır, buna görə də Java kimi bəzi şeylər istifadə edilməyəcəkdir.

Etməyə qərar verdiyim başqa bir şey, dövrə üçün öz əlavə lövhəmi yaratmaq idi, buna görə də pinlərim eyni olduğu müddətdə, lövhəni asanlıqla yeni Pi-yə bağlamaq lazımdır.. Bu, inşallah bir siçovul yuvasını minimuma endirəcək.

Mənim fərziyyələrim belədir:

  • Lehimləməkdə rahatsınız
  • Raspberry Pi -də əsas terminal əmrlərindən necə istifadə edəcəyinizi artıq bilirsiniz
  • Raspbian Buster və ya daha yenisini istifadə edirsiniz.
  • Pi əmr satırına bəzi interfeysləriniz var; xüsusi monitor, klaviatura və s. VƏ/YA SSH istifadə etməklə.
  • Elektrik dövrəsi dizaynının əsas anlayışı ilə tanışsınız; Məsələn, güc və torpaq arasındakı fərqi bilirsiniz və qısa qapanma anlayışını anlayırsınız. Evinizə yeni bir priz qoya bilsəniz, təqib etməyi bacarmalısınız.

Təchizat

Bu layihəyə nə qədər bağlı olduğunuzdan asılı olaraq, hər addımda lazım olan şeylərlə başlaya və oradan gedə bilərsiniz. Bu hissələrin çoxu yerli elektronika və ya DIY/Maker mağazanızda mövcuddur, ancaq təsvirləri yaxşılaşdırmaq üçün Amazon bağlantılarını daxil etdim.

  • MakerSpot RPi Raspberry Pi Zero W Protoboard (Pi üçün son HAT etmək üçün)
  • 2 Kanal DC 5V Röle Modulu (bir qapınız varsa 1 kanal, 2 qapı üçün 2 və s.)
  • Yerüstü Qapı Şalteri, Normalda Açıqdır (YOX) (Bu zaman siz sadəcə prototip hazırlayırsınızsa və işə başlamaq üçün bir neçə ucuz qamış açarı istifadə etmək istəyirsinizsə, bu yaxşıdır)
  • Elektron Əyləncə Kiti Paketi (burada ehtiyac duyduğum bütün rezistorlar, daimi lövhəni düzəltməzdən əvvəl prototipə kömək etmək və sınamaq və öyrənmək üçün bir çörək taxtası və güc qurğusu vardı). Bütün bunlara sahibsinizsə, əlinizdə bir neçə 10K, 1K və 330 ohm müqavimətçi olduğundan əmin olun.
  • Breadboard Jumper Telləri (hər kəs edəcək)
  • Kiçik uclu havya
  • Rosin nüvəli lehim
  • Lehimləmə dəmir ucu təmizləyicisi
  • Ehtiyat 9v enerji təchizatı (çörək lövhəsini gücləndirmək üçün)
  • Lehimləmə təcrübəsi üçün ucuz prototip lövhələri (isteğe bağlı)
  • Seçdiyiniz Raspberry Pi Zero və ya Pi ilə işləmək
  • Raspberry Pi üçün başlıq sancaqları (sizin başlığınızda artıq yoxdursa)
  • HAT protoboardında istifadə üçün başlıqların yığılması.
  • Kiçik iynəli burun pensləri
  • Zərgərin tornavida dəsti
  • Kiçik yan kəsicilər (lehimdən sonra tel kəsmək üçün)
  • Cımbız
  • Protoboardda istifadə etmək üçün bəzi kiçik ölçülü tel (bərk nüvəyə üstünlük verirəm)
  • Bir az silikon (dəst paketində verilənlərin yerinə 1,8 mm səthə quraşdırılmış LED istifadə etməyi seçsəniz)
  • Kiçik lehimləmə işlərini görmək üçün böyüdücü lampanın çox faydalı olduğunu gördüm

Addım 1: Raspberry Pi GPIO -ya giriş

Raspberry Pi ilə istifadə edəcəyimiz əsas interfeys GPIO (Ümumi Məqsədli Giriş/Çıxış).

Pi üçün uyğun pin diaqramını burada tapın. Bu təlimat Pi Zero W v1.1 üzərində dayanacaq.

SDA, SCL, MOSI, MISO və s pinlərdən qaçaraq yalnız yaşıl GPIO sancaqlarından istifadə edəcəyik. (Bəzi GPIO sancaqlarının xüsusi məqsədləri olduğunu, çörək taxtasında prototip yaratmağın faydalarından biri olduğunu kəşf etdim, buna görə də GPIO 17 (pin #11), 27 (pin #13) və 12 (#32) pinlərinə olduğu kimi yapışdım. çörək taxtam üçün yaxşı vəzifələrdə.

GPIO pinləri rəqəmsal (ikili) açarlar kimi işləmək üçün nəzərdə tutulmuşdur; məntiqi olaraq iki vəziyyətdən biri olaraq mövcuddur: 1 və ya sıfır. Bu vəziyyətlər, pinin müəyyən bir eşikdən (1) yuxarı gərginlik verməsi və ya alması və ya müəyyən bir eşikdən aşağı gərginlik verməsi və ya alması ilə bağlıdır. (Eşiklər haqqında daha sonra danışacağıq.)

Qeyd etmək vacibdir ki, Raspberry Pi həm 5V, həm də 3.3V (3V3) təmin edə bilər, GPIO pinləri isə 3.3V -ə qədər işləyir. Bundan əlavə, GPIO -ya və bəlkə də bütün nəzarətçiyə zərər verirsiniz. (Bu səbəbdən bir çörək taxtasında prototip edirik və mümkün olan ən ucuz Pi -dən istifadə edirik!)

Pimlərin vəziyyəti ya proqram təminatı (çıxış), ya da bu vəziyyətdə qidalanan digər cihazlar (giriş) tərəfindən idarə oluna bilər.

Bir neçə əsas SYSFS əmrindən istifadə edərək buna bir nəzər salaq. Bunun WiringPi tələb edib -etmədiyini bilmirəm, amma problemlərlə qarşılaşsanız, minimal Raspbian görüntüsündən istifadə edirsinizsə onu quraşdırmaq istəyə bilərsiniz.

Əvvəlcə özümüzə GPIO 17 -yə giriş imkanı verək:

sudo echo "17">/sys/class/gpio/export

İndi GPIO -nun dəyərini yoxlayaq:

sudo cat/sys/class/gpio/gpio17/dəyər

Dəyər sıfır olmalıdır.

Bu nöqtədə GPIO, giriş və ya çıxış olduğunu bilmir. Beləliklə, GPIO dəyərini manipulyasiya etməyə çalışsanız, "yazma xətası: Əməliyyata icazə verilmir" alacaqsınız. Beləliklə, pinin çıxış olduğunu söyləyək:

sudo echo "out">/sys/class/gpio/gpio17/istiqamət

İndi dəyəri 1 olaraq təyin edin:

sudo echo "1">/sys/class/gpio/gpio17/dəyər

Görmək üçün dəyəri yenidən yoxlayın … və dəyər 1 olmalıdır.

Təbrik edirik, yalnız bir GPIO çıxışı yaratdınız və vəziyyəti dəyişdiniz!

İndi bir az daha çox şey var, amma əvvəlcə bir neçə şeyi öyrənək.

Addım 2: Rezistorları anlayın

Beləliklə, Vikipediyada rezistorlara baxa bilərsiniz, amma bunlar bizim üçün nə deməkdir? Əsasən komponentlərimizi qoruyurlar.

3.3V -ə qədər işlədikləri GPIO -lardan danışdığımızı xatırlayırsınızmı? Bunun mənası budur ki, bir GPIO pinindən daha çox versəniz, qızarta bilərsiniz. Bu niyə vacibdir? Bəzən hər hansı bir dövrədə kiçik dalğalanmalar olur və maksimum 3.3V olarsa, hər hansı bir kiçik hıçqırıq problem yarada bilər. Maksimum gərginlikdə işləmək riskli bir təklifdir.

Bu xüsusilə LED -lər üçün doğrudur. Bir LED bacardığı qədər güc çəkəcək. Nəticədə LED yanacaq, ancaq əhəmiyyətli bir cərəyan bir dövrədə mövcud olan bütün enerjini istifadə edə bilər və bu da arızaya səbəb olur.

Məsələn: elektrik prizinin hər iki ucuna bir çəngəl qoysanız nə olar? Çox az müqavimət var və açarı kəsəcəksiniz. (Və yəqin ki, bu prosesdə özünüzə zərər verə bilərsiniz.) Niyə tostçu bunu etmir? Çünki onun qızdırıcı elementləri müqavimət göstərir və bu səbəbdən də dövrənin bütün yükünü çəkmir.

Bəs bunun LED -lərlə necə baş verməsinin qarşısını ala bilərik? Bir rezistor istifadə edərək LED -i idarə etmək üçün istifadə olunan cərəyan miqdarını məhdudlaşdıraraq.

Amma hansı ölçü rezistoru var? Bəli, bir neçə veb məqalə oxudum və nəhayət bir LED ilə 3.3V üçün 330Ω rezistora yerləşdim. Bütün hesablamalarını oxuya və özün başa düşə bilərsən, amma bir neçəsini çörək taxtasında sınadım və 330 çox yaxşı işlədi. Yoxladığım bir məlumat Raspberry Pi forumlarında idi, ancaq bir Google axtarışında daha çox şey tapılacaq.

Eyni şəkildə, Pi GPIO sancaqlarının həddindən artıq gərginlikdən qorunması lazımdır. 3.3V -a qədər istifadə etdiklərini necə dediyimi xatırlayırsınız? Yaxşı, bir az daha zərər verməyəcək. Əksər layihələrdə 1KΩ rezistorlar istifadə olunur və mən də bunu etdim. Yenə də bunu özünüz hesablaya bilərsiniz, amma bu çox populyar bir seçimdir. Yenə də Raspberry Pi forumları bəzi məlumatlar verir.

Bunu tam başa düşmürsənsə, bir az daha oxu. Və ya sadəcə təlimatları izləyin. Hansı sizin üçün işləyirsə.

Bir çox rezistor qablaşdırmada etiketlənmişdir, ancaq çıxardıqdan sonra onları necə ayırd etmək olar? Rezistordakı kiçik rəngli zolaqlar sizə xəbər verə bilər.

Bundan sonra, işlərə başlamaq üçün gücü olan bir çörək taxtasına sadə bir LED bağlayacağıq.

Addım 3: LED -in bağlanması

Bir LEDin çəkilməsi
Bir LEDin çəkilməsi

İlk addım çörək taxtasına bir LED bağlamaqdır. Bu işi təhlükəsiz bir şəkildə əldə etdikdən sonra onu Raspberry Pi -yə bağlayacağıq və GPIO pinindən idarə edəcəyik.

İnşallah çörək taxtanız 3.3v üçün bir enerji mənbəyi ilə gəldi. Əks təqdirdə, hər şeyi bağlaya və birbaşa Pi -yə qoşa bilərsiniz.

Bir LED tapın və 330Ω rezistorla göstərildiyi kimi çörək taxtasına bağlayın. LED -in daha uzun ayağı anod, daha qısa ayağı katoddur. Anod 3.3V gücünə, katod isə yerə yenidən bağlanır. Rezistor ya LED -dən əvvəl ola bilər; Fərq etməz. Standart tel rəngləri:

  • Qırmızı = 5V
  • Narıncı = 3.3V
  • Qara = torpaq

Çörək taxtasını bağladıqdan və güc verdikdən sonra LED yanmalıdır. Bu işə yaramadıqca davam etməyin.

Addım 4: LED -in GPIO -ya qoşulması

LED -in GPIO -ya qoşulması
LED -in GPIO -ya qoşulması

Beləliklə, indi bir rezistor ilə işləyən bir LED var. İndi LED -i Raspberry Pi -yə bağlamağın vaxtı gəldi. Məqsədimiz bir GPIO çıxışı yaratmaq və bu GPIO -nu LED -ə bağlamaqdır ki, GPIO -nu aktivləşdirsək, LED yanacaq. Əksinə, GPIO -nu SÖZLƏDİKDƏ, LED sönəcək. (Bu daha sonra qaraj qapısını açmaq üçün düyməni "basacaq" dövrə olaraq istifadə ediləcək.)

Çörək taxtasından gücü çıxarın və göstərildiyi kimi Pi'yi bağlayın. (Pi də söndürüldükdə bunu etmək ən yaxşısıdır.) GPIO 17 -dən 3.3V təchizatı və zəmini yer sancaqlarından birinə bağladıq.

İndi Pi -ni yükləyin və LED sönməlidir. GPIO pinini qurmaq və dəyəri çıxarmaq üçün əvvəllər etdiyimiz eyni əmrləri yerinə yetirin:

sudo echo "17">/sys/class/gpio/export

sudo echo "out">/sys/class/gpio/gpio17/istiqamət sudo cat/sys/class/gpio/gpio17/dəyər

Dəyər sıfır olmalıdır.

İndi GPIO -nu aktiv edək:

sudo echo "1">/sys/class/gpio/gpio17/dəyər

Bu LED yandırılmalıdır. LED -i söndürmək üçün GPIO -nu aşağıdakı kimi söndürün:

sudo echo "0">/sys/class/gpio/gpio17/dəyər

Baş verə biləcək şeylərdən biri, LED -in kifayət qədər müdaxiləsi və ya açma/söndürmə dövrü ilə LED -in bir qədər işıqlı qaldığını görə bilərsiniz. Bunun bir səbəbi var və bu barədə gələcək bir addımda danışacağıq.

Addım 5: LED idarə etmək üçün bir röleyi istifadə edin

LED -i idarə etmək üçün bir rölin istifadəsi
LED -i idarə etmək üçün bir rölin istifadəsi

Əvvəlki addımda deyildiyi kimi, LED qaraj qapısının "düyməsi" üçün dayaqdır. Bununla birlikdə, GPIO LED -ə enerji verə bilsə də, qaraj qapımızın düyməsini "basa" bilməz. Bir düyməyə basmaq əslində iki düymə terminalını birləşdirir, əslində bir düyməyə basmaqdır. Bu "mətbuat" ı yerinə yetirmək üçün lazım olan şey bir estafetdir.

Röle, bir şeylə işləyən bir açardan başqa bir şey deyil. Bu halda, bizim Raspberry Pi, röleyə qaraj qapısının düyməsini "basmağı" deyə bilər. Prototipimiz üçün, Raspberry Pi, röleyə LED -i yandırmağı söyləyəcək … sadəcə dövranızı sınaya bilək.

Röleyimiz haqqında bilməli olduğumuz şeylər:

  • Röle 5V -də işləyir. Bu, yalnız röleyi idarə etmək üçün gücdür və dövrənin digər hissələrində istifadə edilmir.
  • Röleyimizi "normal olaraq açıq" olaraq bağlamaq istəyirik. Bu, rölin açıq qalması deməkdir (iki teli birləşdirməmək və ya "düyməni basmaq" aktiv olana qədər).
  • Bu xüsusi röle, GPIO rölenin 3.3V konnektoruna sıfır enerji verdikdə işə düşür. Doğrudan da, bu, geriyə bənzəyir. 3.3V verildikdə, röle buraxılır. Bu layihədə bizimlə qalın və bunun necə işlədiyini görəcəksiniz.
  • İki röle terminal bağlantısı Raspberry Pi -dən tamamilə ayrıdır. Bunun mənası odur ki, hər hansı bir nominal cərəyanı dəyişə bilərsiniz, çünki cərəyanı başqa bir enerji mənbəyindən alır. 3.3V və 5V ilə sadə kiçik Raspberry Pi həqiqətən daha böyük bir gərginliyi idarə edən bir röleyi idarə edə bilər. Tablosundakı kiçik bir düymə, böyük amper gücündə qızdırılan oturacaqları necə idarə edə bilər.

Beləliklə, başlayaq.

Əvvəlcə çörək taxtanız üçün xarici güc qurğusunu yenidən bağlayın (lakin söndürün). Bu güc LED sxemini idarə edəcək, Raspberry Pi isə röleyi idarə edir.

Sonra, LED -ə enerji verən 3.3V xəttində bir fasilə yaradın. (Şalter və röle ilə, biz həmişə "isti" deyil, yerə keçmək istəyirik.) Bunlar diaqramda narıncı və mavi ilə göstərilmişdir.

Göstərildiyi kimi Raspberry Pi -ni 5V -luq röleyi, 3.3V -u açar rolunu oynayaraq və Raspberry Pi -yə qayıdan torpaqla birləşdirin. Bu nümunədə 3.3V -ni GPIO 17 -yə bağladım. GPIO -nu problemlərdən qorumaq üçün göstərildiyi kimi GPIO telinə 1KΩ rezistor bağlamağı məsləhət görürəm. (Bu, Rezistorlar addımında qeyd edildi.)

Çörək taxtasını gücləndirin və indi Pi -ni gücləndirin. LED yandırılmalıdır.

İndi Pi -də aşağıdakı əmrləri yerinə yetirin:

sudo echo "17">/sys/class/gpio/export

sudo echo "out">/sys/class/gpio/gpio17/istiqamət sudo cat/sys/class/gpio/gpio17/dəyər

Dəyər sıfır olmalıdır.

İndi GPIO -nu aktiv edək:

sudo echo "1">/sys/class/gpio/gpio17/dəyər

Bu LED söndürülməlidir.

Addım 6: Bir çəkmə rezistoru əlavə edin

Bir çəkmə rezistoru əlavə edin
Bir çəkmə rezistoru əlavə edin

Bu anda bütün işləriniz işləməlidir. Ancaq GPIO'lar haqqında müzakirə etmədiyimiz bir şey var və bu, əvvəllər qeyd etdiyimiz eşik əsasında mümkün olan "üzən" gərginlikdir.

GPIO -ların ümumiyyətlə iki məntiqi vəziyyəti (1 və sıfır) olsa da, GPIO bölməsində qeyd etdiyimiz kimi, gərginlik həddinin üstündə və ya altında bir gərginliyə malik olub -olmamasına əsaslanaraq bu vəziyyətləri təyin edir. Ancaq əksər GPIO -larda problem "üzən" bir gərginliyin olmasıdır; Raspberry Pi vəziyyətində, sıfır və 3.3V arasında. Bu müdaxilə və ya bir dövrə boyunca gərginliyin artması/düşməsi nəticəsində baş verə bilər.

Qaraj qapısının düymə rölesinin yalnız üzən gərginlikdən işə düşə biləcəyi bir vəziyyət istəmirik. Həqiqətən, bunun yalnız ona dediyimiz zaman aktiv olmasını istəyirik.

Bu kimi hallar, müəyyən bir gərginliyi tətbiq etmək və üzən gərginliyin qarşısını almaq üçün yuxarı və aşağı çəkilən rezistorlardan istifadə etməklə həll olunur. Bizim vəziyyətimizdə, rölin aktivləşməsinin qarşısını almaq üçün gərginlik verdiyimizdən əmin olmaq istəyirik. Beləliklə, gərginliyi eşikdən yuxarı qaldırmaq üçün çəkmə rezistoruna ehtiyacımız var. (Eşiklər gülməli şeylərdir … Mən onlar haqqında oxumağa çalışdım və yaxşı müəyyən edildiklərini və başımın üstündə bir çox məlumatın olub olmadığını və bəzilərinin çox sadə göründüyünü öyrənməyə çalışdım. Bunu multimetrlə görə bildiyimi söyləmək kifayətdir. Gərginlik 3.3V -dən aşağı idi, amma hər şey prototip etdiyim kimi işlədiyi üçün hərəkətə keçdim. Yürüşünüz dəyişə bilər və buna görə də son məhsulumuzu lehimləməzdən əvvəl bunu bişirdik.)

Əlbəttə ki, Raspberry Pi-də həm daxili çəkmə, həm də açma müqavimətləri var ki, onları kodda və ya açılışda təyin edə bilərsiniz. Ancaq müdaxiləyə çox həssasdır. Onlardan istifadə etmək mümkün olsa da, artıq bir dövrədə rezistorlar ilə işlədiyimiz üçün, xarici istifadə etmək üçün sabitliyə dəyər ola bilər.

Daha da əhəmiyyətlisi, bu, çəkilmə yaradır və Pi işə başlamazdan əvvəl GPIO pin vəziyyətinin 1-ə bərabər olduğu kifayət qədər gərginlik əlavə edir. Pi -ni söndürənə qədər ilk dəfə işə saldığımız zaman LED -in necə işə salındığını xatırlayırsınızmı? 3.3V rölesi eyni vaxtda 5V girişi gərginlik aldığı üçün röleyi işə salanda rölenin işə düşməsini maneə törədir. İstəyiriksə bunu Pi konfiqurasiyasında da edə bilərdik, amma yenə də rezistorlar ilə əlaqə qurduğumuz üçün əməliyyat sistemi yeniləmələrinə və paylanmalarına daha az həssas görünür.

Fərqli konfiqurasiyalarda fərqli rezistorlara ehtiyac ola bilər, amma məndə olan röle ilə 10kΩ rezistor işləyib. Röleyimdəki LED açılışda çox zəif idi, amma çəkmə rölenin aktivləşməsini qarşısını almaq üçün kifayət qədər gərginlik təmin etdi.

Dövrəmizə bir çəkmə rezistoru əlavə edək. Çörək taxtası diaqramında, röledəki 3.3V giriş və 3.3V mənbəyi arasında 10 kΩ müqavimət əlavə etdim.

İndi qaraj qapısının düyməsini "basmaq" üçün uyğun bir dövrə sahibik; LED və 330Ω müqavimətini həqiqi düymə telləri ilə əvəz etmək asan olmalıdır.

Addım 7: Reed Switch Sensor

Reed keçid sensoru
Reed keçid sensoru

Qaraj qapısını açmaq üçün dövrəmizin necə göründüyünü bilirik. Bununla birlikdə, qarajın qapısının bağlı olub olmadığını və ya açıq olduğunu bilmək gözəl olmazmı? Bunu etmək üçün ən azı bir qamış açarı lazımdır. Bəzi layihələr ikisini tövsiyə edir, amma hər ikisi eyni sxem dizaynından istifadə edəcək.

"Normal olaraq açıq" (NO) qamış açarı konfiqurasiyasından istifadə edirik. Bu o deməkdir ki, dövrə qapağı maqnitin yaxınlığında olana qədər dövrəmiz açıqdır, bu da dövrəni bağlayacaq və elektrik axını təmin edəcək.

Sensor quruluşu ilə röle qurğusu arasındakı əsas fərqlər bunlardır:

  • Sensora qoşulan GPIO gücü aşkar edəcək, buna görə giriş GPIO olacaq (röle gərginlik verən GPIO çıxışını istifadə edərkən)
  • Varsayılan vəziyyət normal olaraq açıq olduğu üçün dövrəmiz aktiv olmayacaq. Beləliklə, GPIO vəziyyəti 0 olmalıdır. Röle dövrəsindəki çəkmə rezistoru anlayışının əksinə olaraq, dövrə açıq olduqda gərginliyimizin eşikdən aşağı olduğundan əmin olmaq istəyəcəyik. Bunun üçün bir açılan rezistor lazımdır. Bu, əsasən çəkmə ilə eynidir, ancaq güc yerinə yerə bağlıdır.

Röle dövrəsi kimi, Pi -yə bağlamadan əvvəl bir şeyi çörək taxtasına bağlayacağıq.

Güclü çörək taxtamızı istifadə edək və bir LED, 330Ω müqavimət və torpaq telini bağlayaq. Sonra qamış açarının bir tərəfinə 3.3V bağlayın və qamış açarının digər tərəfindən LED -ə keçid edin. (NO və NC -ni dəstəkləyən bir qamış açarınız varsa, NO mövqeyindən istifadə edin.) Mıknatısı qamış açarından uzaqlaşdırın və çörək taxtasının gücünü açın. LED sönməlidir. Mıknatısı qamış açarına doğru hərəkət etdirin və LED yanmalıdır. Bunun əksini edərsə, onu NC üçün bağladınız (normal olaraq bağlanır)

Addım 8: Reed Switch -in Pi -yə qoşulması

Reed Switch -in Pi -yə qoşulması
Reed Switch -in Pi -yə qoşulması

İndi Pi olmadan işləyən bir dövrə sahib olduğumuza görə, çörək taxtasından gücü çıxara bilərik və Pi'yi bağlayacağıq.

GPIO17 -dən yenidən istifadə edəcəyik, çünki harada olduğunu artıq bilirik.

Röle dövrəsi kimi, GPIO pinini 1KΩ rezistorla qoruyacağıq; Bununla birlikdə, aşağı çəkmə yaratmaq üçün yerə 10 kΩ rezistor istifadə edəcəyik.

Hər şeyi bağladıqdan sonra, maqniti qamış açarından uzaqlaşdıraq, P, i -ni yükləyək və özümüzü bir əmr satırına götürək və GPIO -nu işə salaq və bu dəfə bir giriş GPIO yaratdığımızı qeyd edək:

sudo echo "17">/sys/class/gpio/export

sudo echo "in">/sys/class/gpio/gpio17/istiqamət sudo cat/sys/class/gpio/gpio17/dəyər

Dəyər sıfır olmalıdır. Mıknatısı qamış açarına köçürün. LED işığı yanmalıdır və dəyəri 1 -dir.

Voila! Qamış keçidimizi Pi -yə bağladıq!

Addım 9: Prototipləşdirmə lövhəsində daimi bir həll hazırlayın

Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq
Prototipləşdirmə lövhəsində daimi bir həll hazırlamaq

Dövrlərimizin necə görünməli olduğunu bildiyimiz üçün, prototip lövhəsində daimi bir versiyanı lehimləmə vaxtı gəldi. Pi Zero W istifadə etdiyim üçün kiçik proto lövhələr əldə etdim.

Sıfır formatından istifadə etməyi və Raspberry Pi-nin HAT (Hardware Attached Attach) adlandırdığı əlavə modulu olan bir və ya daha çox lövhəni yığa biləcəyimi düşündüm. Yaxşı, texniki cəhətdən heç bir EEPROM növü olmadığı və özünü qeydiyyata almadığı üçün bu HAT deyil, amma buna bir şey deməliyəm. Ancaq format gözəl bir şəkildə bağlanır və siçovulların yuva qurmasını aradan qaldırır, buna görə də gözəldir.

Çətinlik odur ki, proto lövhələr bir qədər kiçikdir, buna görə də onlara çox uyğun gələ bilməzsiniz. Ayrıca, deşiklərin heç biri daha böyük proto lövhələr kimi sıraya bağlanmır. Bu əlverişsiz görünsə də, əslində bir xilaskardır.

Nəzarət etmək istədiyim hər bir qaraj qapısı üçün HAT yarada biləcəyimi düşündüm. Bu yolla, ehtiyaclarınıza uyğun olaraq bu layihəni genişləndirə bilərsiniz.

Proto lövhədə üç sxem yaratmaq üçün kifayət qədər yer olduğunu gördüm:

  1. röle dövrə
  2. sensor dövrəsi
  3. ikinci sensor dövrəsi

Oradakı hər hansı bir qaraj qapısı layihəsi üçün olduqca yaxşıdır.

Beləliklə, sensorlar üçün GPIO17 və 27 və röle üçün GPIO12 istifadə etdim. Bu proto lövhənin ən gözəl tərəfi, başlığa belə toxunmadan GPIO ilə əlaqə qura biləcəyinizdir. Ancaq bəli, rezistorlarınıza (və isteğe bağlı olaraq LED -lərə) əlavə olaraq bir yığma başlığı da lehimləməlisiniz.

Lövhədə prototip etdiyimiz sxemləri demək olar ki, yenidən yaratdım. Lehimləmə işimin mükəmməl olmadığını deyə bilərsiniz, amma yenə də işləyir. (Növbəti lövhələr təcrübə aldığım üçün daha yaxşı olacaq.) Aoyue 469 -a sahibəm və yalnız 4 -dən yuxarı olan bir saç GPIO başlığının lehimlənməsi üçün tövsiyələrə əsaslanan ən yaxşı temperatur idi.

Torpaq üçün xarici bağlı sətirlərdən və 3.3V üçün daxili sətirlərdən istifadə etdim. Bağlı cərgələrimiz olmadığı üçün bir körpü rolunu oynamaq üçün rezistor teldən istifadə etdim. Qalanların hamısı diaqonal və yan tərəfdədir, çünki onları lövhəyə uyğunlaşdırmağın ən yaxşı yolu bu idi.

L-R-dən (ön tərəfə, müqavimət tərəfinə baxaraq) əlavə etdiyim çıxış pinləri GPIO sensoru, ikinci sensor GPIO teli və röle GPIO teli üçündür. Başlıqdan edə biləcəyimiz GPIO -ya birbaşa tel bağlamaq əvəzinə, bu pinlər bütün müqavimətçilərimizə qoşulur və sensorlar vəziyyətində bir microLED əlavə etdim. (LED -in tamamilə ayrı bir döngədə necə olduğuna diqqət yetirin, buna görə də yanarsa, dövrə hələ də işləyir.)

Bir Fritzing faylı əlavə olunur, lakin Instructables -ın fayl yükləmələri ilə bağlı problemləri olduğu üçün onu yerləşdirmək üçün ona "txt" saxta uzantısı verməli oldum.

Addım 10: İstinadlar

Raspberry Pi Garage Door Opener Project (ilham)

Bir Ahududu Pi Qaraj Qapı Açacağı Təlimatı

iPhone və ya Android Qaraj Qapı Açacağı

Bir rezistor istifadə etməliyəm, ya yox?

Raspberry Pi üzərində Pullup və Pulldown Rezistorlarından istifadə

SSH qurulması

Raspberry Pi Pin Diaqramları.

SYSFS əmrləri

WiringPi

Rezistorlar və LEDlər

Qoruma (sic) GPIO pinləri

Rezistor Rəng Kodu Kalkulyatoru və Diaqramı

Rezistorlar çəkin və aşağı çəkin

GPIO Gərginlik Eşikləri

GPIO Giriş Gərginlik Səviyyələri

Config.txt -də GPIO Control

GPIO Pull Up Resisance (sic)

Mikro nəzarətçilərin daxili çəkmə rezistorları olduqda niyə xarici çəkmə rezistorlarına ehtiyacımız var?

Raspberry Pi HAT nədir?

Raspberry Pi Zero W GPIO konnektorunu necə lehimləmək olar