İçindekiler:
- Gereçler
- Adım 1: Raspberry Pi GPIO'ya Giriş
- Adım 2: Dirençleri Anlamak
- Adım 3: Bir LED'i Kablolama
- Adım 4: LED'i GPIO'ya bağlama
- Adım 5: LED'i Sürmek için Röle Kullanma
- Adım 6: Bir Pull-Up Direnci Ekleme
- Adım 7: Manyetik Anahtar Sensörü
- Adım 8: Manyetik Anahtarın Pi'ye Bağlanması
- Adım 9: Prototipleme Panosu Üzerinde Kalıcı Çözüm Üretmek
- Adım 10: Referanslar
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu projenin ilham kaynaklarından biri, Raspberry Pi 3 Garaj Kapısı Açıcı'daki ince talimat ve internette bulunan diğer birçok şeydi. Tecrübeli bir elektronikçi olmadığımdan, Raspberry Pi ile arayüz oluşturmanın yolları hakkında bir sürü ek araştırma yaptım ve LED ampuller ve tüm GPIO kabloları ile dirençlerin önemi hakkında çok şey öğrendim. Ayrıca, yerleşik Pi işlevselliğine karşı pull-up ve pull-down donanım devrelerinin faydalarını da öğrendim.
Bu garaj kapısı projesi gerçekten de Pi donanım, yazılım ve garaj kapısı açıcılarınızla kurulumdan oluşan çok parçalı bir süreç olduğundan, diğer her adım için gerekli olduğu için önce Pi donanımına odaklanmayı düşündüm.
Yaklaşımım çok basit olmak, donanımı tamamlayabilmek için yaptığım öğrenmenin bir özeti gibi davranmak. Bazı bilgilerle başlayacak ve ardından bir devre tahtası üzerinde devreler kuracağız. Her adım, tasarımımızı ve bilgimizi geliştirecek ve Pi'yi bir röle ve reed sensörleri ile arayüzlemek için kalıcı bir donanım çözümü oluşturmakla sonuçlanacak.
Ayrıca diğer bazı projelerden farklı olarak, bir süre önce satışa çıkardığım ama masamda hala kullanılmamış duran Raspberry Pi Zero W kullanmaya karar verdim. İyi tarafı, prototip oluştururken, GPIO devrelerinden herhangi birine zarar verirsem, ucuz ve değiştirilmesi ve prototip oluşturmaya devam etmesi kolaydı. Dezavantajı ise yalnızca bir ARMv6 işlemciye sahip olması, bu nedenle Java gibi bazı şeyler kullanılamayacak.
Yapmaya karar verdiğim diğer şey, devre için kendi eklenti kartımı oluşturmaktı, bu nedenle Pi'mi değiştirmem veya değiştirmem gerekir mi, pin çıkışları aynı olduğu sürece, kart yeni Pi'ye kolayca takılır.. Bu umarım bir farenin kablo yuvasını en aza indirecektir.
Benim varsayımlarım:
- sen rahat lehim
- Raspberry Pi'de temel terminal komutlarını nasıl kullanacağınızı zaten biliyorsunuz.
- Raspbian Buster veya daha yenisini kullanıyorsunuz.
- Pi komut satırına bazı arayüzleriniz var; ya özel bir monitör, klavye vb. ile VE/VEYA SSH kullanarak.
- Elektrik devresi tasarımının temel konseptine aşinasınız; örneğin, güç ve toprak arasındaki farkı biliyorsunuz ve kısa devre kavramını anlıyorsunuz. Evinize yeni bir priz koyabiliyorsanız, takip edebilmeniz gerekir.
Gereçler
Bu projeye ne kadar bağlı olduğunuza bağlı olarak, her adımda sadece ihtiyaç duyulan şeylerle başlayabilir ve oradan gidebilirsiniz. Bu parçaların birçoğu yerel elektronik ürünlerinizde veya DIY/Maker mağazanızda mevcuttur, ancak açıklamaları geliştirmek için Amazon bağlantılarını ekledim.
- MakerSpot RPi Raspberry Pi Zero W Protoboard (Pi için son HAT'ı yapmak için)
- 2 Kanal DC 5V Röle Modülü (bir kapınız varsa 1 kanal, 2 kapı için 2 kanal vb.)
- Havai Kapı Anahtarı, Normalde Açık (HAYIR) (Şu anda sadece prototip yapıyorsanız ve başlamak için bazı ucuz kamış anahtarları kullanmak istiyorsanız, sorun değil)
- Elektronik Eğlence Kiti Paketi (bu, ihtiyacım olan tüm dirençleri, ayrıca kalıcı kartı yapmadan önce prototip ve test etmeye ve öğrenmeye yardımcı olmak için bir devre tahtası ve güç ünitesini içeriyordu). Bunların hepsine zaten sahipseniz, elinizin altında birkaç 10K, 1K ve 330 ohm direnç olduğundan emin olun.
- Breadboard Jumper Telleri (herhangi biri yapacak)
- Küçük uçlu havya
- reçine çekirdekli lehim
- Havya ucu temizleyici
- Yedek 9v güç kaynağı (breadboard'a güç sağlamak için)
- Lehimleme uygulaması için ucuz prototipleme panoları (isteğe bağlı)
- Çalışır durumda Raspberry Pi Zero veya seçtiğiniz Pi
- Raspberry Pi için başlık pimleri (sizinkinin başlığı zaten yoksa)
- Protokol HAT üzerinde kullanım için üstbilgileri istifleme.
- Küçük iğne burunlu pense
- Kuyumcu tornavida takımı
- Küçük yan kesiciler (lehimlemeden sonra tel kesmek için)
- Cımbız
- Protokolde kullanım için bazı küçük çaplı tel (tek çekirdekli tercih ederim)
- Biraz silikon (kit paketinde verilenler yerine 1,8 mm yüzeye monte LED'leri kullanmayı seçerseniz)
- Küçük lehimleme işini görmek için bir büyüteç lambasının çok yardımcı olduğunu buldum
Adım 1: Raspberry Pi GPIO'ya Giriş
Raspberry Pi ile kullanacağımız ana arayüz GPIO'dur (Genel Amaçlı Giriş/Çıkış).
Pi'niz için uygun pin şemasını burada bulun. Bu talimat, Pi Zero W v1.1'e odaklanacaktır.
SDA, SCL, MOSI, MISO vb. pinlerden kaçınarak sadece yeşil GPIO pinlerini kullanacağız. (Bazı GPIO pinlerinin özel amaçları olduğunu keşfettim, bir breadboard üzerinde prototip oluşturmanın faydalarından biri, bu yüzden GPIO pinleri 17 (pin #11), 27 (pin #13) ve 12 (#32) olduğu gibi yapıştım. breadboard'um için iyi pozisyonlarda.
GPIO pinleri, dijital (ikili) anahtarlar olarak çalışacak şekilde tasarlanmıştır; mantıksal olarak iki durumdan biri olarak var olurlar: 1 veya sıfır. Bu durumlar, pimin belirli bir eşiğin (1) üzerinde voltaj sağlamasına veya almasına veya belirli bir eşiğin altında voltaj sağlamasına veya almasına bağlıdır. (Eşikler hakkında daha sonra konuşacağız.)
Raspberry Pi hem 5V hem de 3.3V (3V3) sağlayabilirken, GPIO pinlerinin 3.3V'a kadar çalıştığını unutmamak önemlidir. Bundan daha fazlası ve GPIO'ya ve muhtemelen tüm denetleyiciye zarar verirsiniz. (Bu yüzden bir breadboard üzerinde prototip yapıyoruz ve mümkün olan en ucuz Pi'yi kullanıyoruz!)
Pinlerin durumu, yazılım (çıkış) veya durumu besleyen diğer cihazlar (giriş) tarafından manipüle edilebilir.
Bazı temel SYSFS komutlarını kullanarak bunu bir deneyelim. Bunun WiringPi gerektirip gerektirmediğinden emin değilim, ancak sorunla karşılaşırsanız, minimum Raspbian görüntüsünü kullanıyorsanız yüklemek isteyebilirsiniz.
İlk olarak, kendimize GPIO 17'ye erişim izni verelim:
sudo echo "17" > /sys/class/gpio/export
Şimdi GPIO'nun değerini kontrol edelim:
sudo cat /sys/class/gpio/gpio17/değer
Değer sıfır olmalıdır.
Bu noktada GPIO, girdi mi çıktı mı olduğunu bilmiyor. Bu nedenle, GPIO değerini değiştirmeye çalışırsanız, "yazma hatası: İşleme izin verilmedi" mesajı alırsınız. Öyleyse pin'e çıktı olduğunu söyleyelim:
sudo echo "out" > /sys/class/gpio/gpio17/direction
Ve şimdi değeri 1 olarak ayarlayın:
sudo echo "1" > /sys/class/gpio/gpio17/value
Görmek için değeri tekrar kontrol edin… ve değer 1 olmalıdır.
Tebrikler, az önce bir çıktı GPIO'su oluşturdunuz ve durumu değiştirdiniz!
Şimdi, biraz daha var, ama önce birkaç şey daha öğrenelim.
Adım 2: Dirençleri Anlamak
Yani, Wikipedia'da dirençlere bakabilirsin, ama onlar bizim için ne anlama geliyor? Öncelikle bileşenlerimizi korurlar.
3.3V'a kadar çalıştıkları GPIO'lardan bahsettiğimizi hatırlıyor musunuz? Bunun anlamı, bir GPIO pininden fazlasını verirseniz, onu kızartabilirsiniz. Bu neden önemli? Bazen herhangi bir devrede küçük dalgalanmalar olabilir ve maksimum 3,3V ise, herhangi bir küçük hıçkırık sorunlara neden olabilir. Maksimum voltajda çalışmak riskli bir tekliftir.
Bu özellikle LED'ler için geçerlidir. Bir LED, olabildiğince fazla güç çekecektir. Sonunda LED yanacaktır, ancak önemli miktarda akım çekimi devredeki mevcut tüm gücü tüketerek arızalanmasına neden olabilir.
Örneğin: bir elektrik prizinin her iki ucuna da çatal koyarsanız ne olur? Direnç yok denecek kadar azdır ve devre kesiciyi patlatacaksınız. (Ve muhtemelen bu süreçte kendinize zarar verin.) Ekmek kızartma makinesi bunu neden yapmıyor? Çünkü ısıtma elemanları direnç sağlar ve bu nedenle devrenin tüm yükünü çekmez.
Peki bunun bir LED'e olmasını nasıl engelleriz? Bir direnç kullanarak LED'i sürmek için kullanılan akım miktarını sınırlayarak.
Ama hangi boyutta direnç? Evet, birkaç web makalesi okudum ve sonunda LED'li 3.3V için 330Ω direnç üzerinde karar kıldım. Tüm hesaplamalarını okuyabilir ve kendiniz anlayabilirsiniz, ancak birkaçını bir devre tahtasında test ettim ve 330 gayet iyi çalıştı. Kontrol ettiğim bir referans Raspberry Pi forumlarındaydı, ancak bir Google araması daha fazlasını keşfedecek.
Aynı şekilde, Pi GPIO pinlerinin aşırı gerilimden korunmaya ihtiyacı vardır. 3.3V'a KADAR kullandıklarını söylediğimi hatırlıyor musunuz? Biraz daha azı fena olmaz. Çoğu proje 1KΩ direnç kullanır ve ben de aynısını yaptım. Yine, bunu kendiniz hesaplayabilirsiniz, ancak bu çok popüler bir seçimdir. Yine, Raspberry Pi forumları bazı bilgiler sağlar.
Bunu tam olarak anlamadıysanız, biraz daha okuma yapın. Veya sadece talimatları izleyin. Hangisi işinize yararsa.
Pek çok direnç ambalajda etiketlenmiştir, ancak bunları bir kez çıkardığınızda bunları nasıl ayırt edebilirsiniz? Direnç üzerindeki küçük renkli şeritler size bunu söyleyebilir.
Ardından, işleri başlatmak için bir devre tahtasına basit bir LED bağlayacağız.
Adım 3: Bir LED'i Kablolama
İlk adım, devre tahtasına bir LED bağlamaktır. Güvenli bir şekilde çalışmasını sağladığımızda, onu Raspberry Pi'ye bağlayacağız ve GPIO pininden kontrol edeceğiz.
Umarım breadboard'unuz 3.3v için bir güç kaynağı ile gelmiştir. Değilse, her şeyi bağlayabilir ve doğrudan Pi'ye bağlayabilirsiniz.
Bir LED bulun ve 330Ω direnç kullanarak gösterildiği gibi devre tahtasına bağlayın. LED'in uzun ayağı anot, kısa ayağı ise katottur. Anot, 3.3V güce bağlanırken, katot tekrar toprağa bağlanır. Direnç, LED'den önce olabilir; önemli değil. Standart tel renkleri:
- Kırmızı = 5V
- Turuncu = 3.3V
- siyah = zemin
Bu breadboard'u bağladığınızda ve güç sağladığınızda, LED yanmalıdır. Bunu çalıştırmadan devam etmeyin.
Adım 4: LED'i GPIO'ya bağlama
Şimdi dirençli bir çalışan LED'imiz var. Şimdi bu LED'i Raspberry Pi'ye bağlamanın zamanı geldi. Amacımız bir çıkış GPIO'su oluşturmak ve bu GPIO'yu LED'e bağlamak, böylece GPIO'yu ETKİNLEŞTİRdiğimizde LED yanacaktır. Tersine, GPIO'yu DEVRE DIŞI BIRAKTIĞIMIZDA LED sönecektir. (Bu daha sonra garaj kapısını açmak için düğmeye "basacak" devre olarak kullanılacaktır.)
Gücü devre tahtasından çıkarın ve Pi'yi gösterildiği gibi bağlayın. (Bunu Pi'nin gücü kapalıyken yapmak en iyisidir.) GPIO 17'den gelen 3.3V beslemeyi ve topraklamayı toprak pinlerinden birine bağladık.
Şimdi Pi'yi açın ve LED kapalı olmalıdır. GPIO pinini kurmak için daha önce yaptığımız komutların aynısını uygulayın ve değeri çıktılayın:
sudo echo "17" > /sys/class/gpio/export
sudo echo "out" > /sys/class/gpio/gpio17/direction Sudo cat /sys/class/gpio/gpio17/value
Değer sıfır olmalıdır.
Şimdi GPIO'yu etkinleştirelim:
sudo echo "1" > /sys/class/gpio/gpio17/value
Bu, LED'i açmalıdır. LED'i kapatmak için GPIO'yu aşağıdaki şekilde devre dışı bırakmanız yeterlidir:
sudo echo "0" > /sys/class/gpio/gpio17/value
OLABİLECEĞİ şeylerden biri, LED'in yeterince karışması veya açma/kapama döngüleri ile LED'in hafif yanık kaldığını fark edebilirsiniz. Bunun bir nedeni var ve bunun hakkında bir sonraki adımda konuşacağız.
Adım 5: LED'i Sürmek için Röle Kullanma
Önceki adımda belirtildiği gibi, LED, garaj kapısı "düğmesi" için bir yedektir. Ancak, GPIO LED'imize güç verebilirken, garaj kapısı düğmemize "basamaz". Bir düğmeye basmak, aslında sadece iki düğme terminalini birbirine bağlar ve aslında bir düğmeye basar. Bu "basmayı" gerçekleştirmek için ihtiyacınız olan şey bir röledir.
Röle, bir şey tarafından desteklenen bir anahtardan başka bir şey değildir. Bu durumda Raspberry Pi'miz röleye garaj kapısı düğmesine "basmasını" söyleyebilir. Prototipimiz için, Raspberry Pi röleye LED'i açmasını söyleyecektir… sırf devremizi test edebilmemiz için.
Rölemiz hakkında bilmemiz gerekenler:
- Röle 5V ile çalışır. Bu sadece röleyi çalıştırma gücüdür ve devrenin başka hiçbir bölümünde kullanılmaz.
- Rölemizi "normalde açık" olarak bağlamak istiyoruz. Bu, rölenin açık kalacağı anlamına gelir (iki kabloyu bağlamadan veya etkinleştirilene kadar "düğmeye basma".
- Bu özel röle, GPIO, rölenin 3.3V konektörüne sıfır güç sağladığında etkinleştirilir. Aslında bu geriye dönük görünüyor. 3.3V sağlandığında röle serbest bırakılır. Bu projede bizimle kalın ve bunun nasıl çalıştığını göreceksiniz.
- İki röle terminal bağlantısı Raspberry Pi'den tamamen ayrıdır. Bunun anlamı, akımını başka bir güç kaynağından aldığı için herhangi bir nominal akımla bir kabloyu değiştirebilmenizdir. 3.3V ve 5V'luk basit küçük Raspberry Pi, gerçekten çok daha büyük voltajı kontrol eden bir röleyi çalıştırabilir. Gösterge panelinizdeki küçük bir düğme, büyük amper çekişli ısıtmalı koltuklarınızı bu şekilde çalıştırabilir.
Öyleyse başlayalım.
İlk olarak, devre tahtanız için harici güç ünitesini yeniden takın (ancak gücü kapalı). Raspberry Pi röleyi kontrol ederken bu güç LED devresini çalıştıracaktır.
Ardından, LED'e güç sağlayan 3.3V hattında bir kesinti oluşturun. (Anahtarlar ve röleler ile her zaman toprağı değil "sıcak"ı değiştirmek isteriz.) Bunlar şemada turuncu ve mavi ile gösterilmiştir.
Raspberry Pi'yi gösterildiği gibi, röleye güç veren 5V, anahtar görevi gören 3.3V ve Raspberry Pi'ye dönen toprak ile bağlayın. Bu örnekte 3.3V'u GPIO 17'ye bağladım. GPIO'yu sorunlardan korumak için GPIO kablosuna gösterildiği gibi 1KΩ direnç bağlamanızı öneririm. (Bu, Dirençler adımında belirtilmiştir.)
Breadboard'u güçlendirin ve şimdi Pi'nizi güçlendirin. LED yanmalıdır.
Şimdi Pi'de aşağıdaki komutları çalıştırın:
sudo echo "17" > /sys/class/gpio/export
sudo echo "out" > /sys/class/gpio/gpio17/direction Sudo cat /sys/class/gpio/gpio17/value
Değer sıfır olmalıdır.
Şimdi GPIO'yu etkinleştirelim:
sudo echo "1" > /sys/class/gpio/gpio17/value
Bu, LED'i kapatmalıdır.
Adım 6: Bir Pull-Up Direnci Ekleme
Bu noktada, tüm eşyalarınız çalışıyor olmalıdır. Ancak GPIO'lar hakkında konuşmadığımız bir şey var, o da daha önce bahsettiğimiz eşiğe dayalı olarak mümkün olan "kayan" voltajdır.
GPIO'lar genellikle iki mantıksal duruma (1 ve sıfır) sahipken, bu durumları GPIO bölümünde belirttiğimiz gibi voltaj eşiğinin üzerinde veya altında voltaj olup olmadığına göre belirler. Ancak çoğu GPIO'daki sorun, "kayan" bir voltaj olasılığıdır; Ahududu Pi durumunda, sıfır ile 3.3V arasında bir yerde. Bu, parazitten veya bir devre boyunca voltaj yükselmesi/düşüşünden kaynaklanabilir.
Garaj kapısı buton rölemizin sadece değişken voltajdan devreye girebileceği bir durum istemiyoruz. Aslında, sadece biz söylediğimizde aktif hale gelmesini istiyoruz.
Bunun gibi durumlar, belirli bir voltajı zorlamak ve dalgalanma voltajından kaçınmak için yukarı çekme ve aşağı çekme dirençleri kullanılarak çözülür. Bizim durumumuzda, rölenin aktifleşmesini önlemek için voltaj sağladığımızdan emin olmak istiyoruz. Bu yüzden voltajı eşiğin üzerine çıkarmak için bir çekme direncine ihtiyacımız var. (Eşikler komik şeyler…Onlar hakkında okumaya çalıştım ve iyi tanımlanıp tanımlanmadıklarını ve kafamın üzerinde çok fazla bilgi edindim ve bazıları aşırı basit görünüyordu. Bir multimetre ile bunu görebildiğimi söylemek yeterli. voltaj 3,3V'den düşüktü, ancak prototip yaptığım gibi her şey çalıştığından, devam ettim.
Elbette, Raspberry Pi, kodda veya açılışta ayarlayabileceğiniz hem dahili çekme hem de aşağı çekme dirençlerine sahiptir. Ancak, müdahaleye karşı oldukça hassastır. Bunları kullanmak mümkün olsa da, zaten bir devrede dirençlerle çalıştığımız için, hariciyi kullanmak kararlılığa değer olabilir.
Daha da önemlisi, bu, yukarı çekmeyi yaratır ve Pi başlatılmadan önce GPIO pin durumunun varsayılan olarak 1'e ayarlanmasına yetecek kadar voltaj ekler. Pi'yi ilk başlattığımızda, kapatana kadar rölemizin LED'i nasıl etkinleştirdiğini hatırlıyor musunuz? Röle 3,3V girişi 5V girişi ile aynı anda voltaj aldığı için pull-up kullanmak rölenin başlatma sırasında aktifleşmesini engeller. İsterseniz bunu Pi konfigürasyonunda da yapabiliriz, ancak yine de dirençlerle kablolama yaptığımız için işletim sistemi güncellemelerine ve dağıtımlarına karşı daha az savunmasız görünüyor.
Farklı konfigürasyonlar farklı dirençlere ihtiyaç duyabilir, ancak sahip olduğum röle ile 10kΩ'luk bir direnç çalıştı. Başlatma sırasında rölemdeki LED çok loştu, ancak yukarı çekme, rölenin etkinleştirilmesini önlemek için yeterli voltaj sağladı.
Devremize bir pull-up direnci ekleyelim. Breadboard şemasında röle üzerindeki 3.3V giriş ile 3.3V kaynak arasına 10kΩ direnç ekledim.
Artık garaj kapısı düğmesine "basmak" için uygun bir devremiz var; LED ve 330Ω direncini gerçek düğme kablolarıyla değiştirmek kolay olmalıdır.
Adım 7: Manyetik Anahtar Sensörü
O kadar harika ki, garaj kapısı açıcısını etkinleştirmek için devremizin nasıl göründüğünü biliyoruz. Ancak garaj kapısının kapalı mı yoksa açık mı olduğunu bilmek güzel olmaz mıydı? Bunu yapmak için en az bir kamış anahtarına ihtiyacınız var. Bazı projeler iki tane önerir, ancak ikisi de aynı devre tasarımını kullanacak.
"Normalde açık" (NO) bir indükleme anahtarı yapılandırması kullanıyoruz. Bu, devreyi kapatacak ve elektriğin akmasına izin verecek olan manyetik anahtar yakınına gelene kadar devremizin açık olduğu anlamına gelir.
Sensör kurulumu ile röle kurulumu arasındaki temel farklar şunlardır:
- Sensöre bağlı GPIO, gücü algılayacak, bu nedenle bir giriş GPIO'su olacak (röle, voltaj sağlayan bir çıkış GPIO'su kullanırken)
- Varsayılan durum normalde açık olduğu için devremiz aktif olmayacaktır. Hal böyle olunca GPIO durumu 0 olmalıdır. Röle devresindeki pull-up direnci kavramının tersine, devre açıkken voltajımızın eşiğin altında olduğundan emin olmak isteyeceğiz. Bu, bir aşağı çekme direnci gerektirecektir. Bu temelde yukarı çekme ile aynıdır, ancak güç yerine toprağa bağlıdır.
Röle devresine çok benzer şekilde, Pi'ye bağlamadan önce bir devre tahtasına bir şeyler bağlayacağız.
Güçlendirilmiş devre tahtamızı kullanalım ve bir LED, 330Ω direnç ve topraklama kablosu bağlayalım. Ardından manyetik anahtarın bir tarafına 3,3V ve diğer tarafından LED'e bir jumper bağlayın. (NO ve NC'yi destekleyen bir manyetik anahtarınız varsa, NO konumunu kullanın.) Mıknatısı manyetik anahtardan uzaklaştırın ve devre tahtası gücünü açın. LED kapalı kalmalıdır. Mıknatısı manyetik anahtara doğru hareket ettirin ve LED yanmalıdır. Tersini yaparsa, NC'ye bağladınız (normalde kapalı)
Adım 8: Manyetik Anahtarın Pi'ye Bağlanması
Artık devre Pi olmadan çalıştığına göre, devre tahtasından gücü kesebiliriz ve Pi'yi bağlayacağız.
GPIO17'yi tekrar kullanacağız çünkü nerede olduğunu zaten biliyoruz.
Röle devresine çok benzer şekilde, GPIO pinini 1KΩ direnç ile koruyacağız; ancak, aşağı çekme oluşturmak için topraklama için 10kΩ direnç kullanacağız.
Her şeyi bağladıktan sonra, mıknatısı manyetik anahtardan uzaklaştıralım, P, i'yi başlatalım ve kendimizi bir komut satırına alalım ve GPIO'yu başlatalım, bu sefer bir giriş GPIO'su oluşturduğumuzu not edelim:
sudo echo "17" > /sys/class/gpio/export
sudo echo "in" > /sys/class/gpio/gpio17/direction sudo cat /sys/class/gpio/gpio17/value
Değer sıfır olmalıdır. Mıknatısı kamış anahtarına hareket ettirin. LED ışığı yanmalıdır ve değer 1'dir.
İşte! Kamış anahtarımızı Pi'ye bağladık!
Adım 9: Prototipleme Panosu Üzerinde Kalıcı Çözüm Üretmek
Artık devrelerimizin nasıl görünmesi gerektiğini bildiğimize göre, kalıcı bir versiyonu bir prototipleme panosuna lehimlemenin zamanı geldi. Pi Zero W kullandığım için küçük proto boardlar elde ettim.
Sıfır biçimini kullanmanın ve bir veya daha fazla kartı istifleyebilmenin iyi olacağını düşündüm, Raspberry Pi'nin HAT (Üstte Takılı Donanım) olarak adlandırdığı bir eklenti modülü. Teknik olarak, herhangi bir EEPROM tipine sahip olmadığı ve kendini kaydetmediği için, bu bir HAT değil ama ona bir şey demeliyim. Ancak format güzel bir şekilde monte edilir ve farelerin kablolama yuvasını ortadan kaldırır, yani bu güzel.
Buradaki zorluk, proto panoların biraz küçük olmasıdır, bu yüzden onlara çok fazla sığamazsınız. Ayrıca, deliklerin hiçbiri daha büyük proto panoları gibi sıralar halinde bağlı değildir. Bu uygunsuz gibi görünse de, aslında bir cankurtaran.
Düşündüğüm şey, kontrol etmek istediğim her garaj kapısı için bir ŞAPKA oluşturabileceğimdi. Bu şekilde, bu projeyi ihtiyacınıza göre genişletebilirsiniz.
Proto kartında, üç devre oluşturmaya yetecek kadar yer olduğunu gördüm:
- röle devresi
- sensör devresi
- ikinci sensör devresi
Bu, herhangi bir garaj kapısı projesi için oldukça iyi.
Yaptığım şey sensörler için GPIO17 ve 27'yi ve röle için GPIO12'yi kullanmaktı. Bu proto board ile ilgili gerçekten güzel olan şey, başlığa dokunmadan bile GPIO'ya bağlanabilmenizdir. Ancak evet, dirençlerinize (ve isteğe bağlı olarak LED'lere) ek olarak bir yığın başlığı lehimlemeniz gerekecektir.
Tahtada prototipini yaptığımız devreleri hemen hemen yeniden yarattım. Lehimlememin mükemmel olmadığını söyleyebilirsin ama yine de işe yarıyor. (Bir sonraki panolar, alıştırma yaptığım için daha iyi olacak.) Bir Aoyue 469'um var ve GPIO başlığını lehimlemek için tavsiyelere göre ayar 4'ün biraz üzerinde bir saç en iyi sıcaklıktı.
Toprak için dış bağlı sıraları ve 3.3V için iç sıraları kullandım. Ve bağlı sıralarımız olmadığı için direnç telini köprü görevi görmek için kullandım. Geri kalanların hepsi çapraz ve yan çünkü onları tahtaya sığdırmak için bulabildiğim en iyi yol buydu.
L-R'den (ön tarafa, direnç tarafına bakarak), eklediğim çıkış pinleri sensör GPIO kablosu, ikinci sensör GPIO kablosu ve röle GPIO kablosu içindir. Başlıktan yapabileceğimiz doğrudan GPIO'ya kablolama yapmak yerine, bu pinler tüm dirençlerimize bağlanır ve sensörler söz konusu olduğunda bir microLED ekledim. (LED'in nasıl tamamen ayrı bir döngüde olduğuna dikkat edin, bu nedenle yanarsa devre çalışmaya devam eder.)
Ekli bir Fritzing dosyasıdır, ancak Instructables dosya yüklemeleriyle ilgili sorunlar yaşadığından, gömmek için ona yanlış bir "txt" uzantısı vermek zorunda kaldım.
Adım 10: Referanslar
Raspberry Pi Garaj Kapısı Açıcı Projesi (ilham)
Ahududu Pi Garaj Kapısı Açıcı için Aptal Kılavuzu
iPhone veya Android Garaj Kapısı Açıcı
Direnç kullanmalı mıyım, kullanmamalı mıyım?
Raspberry Pi'de Pullup ve Pulldown Dirençlerinin Kullanılması
SSH'yi kurma
Raspberry Pi Pin Diyagramları.
SYSFS komutları
KablolamaPi
Dirençler ve LED'ler
Koruma (sic) GPIO Pinleri
Direnç Renk Kodu Hesaplayıcı ve Tablosu
Pull-Up ve Pull Down Dirençleri
GPIO Voltaj Eşikleri
GPIO Giriş Voltaj Seviyeleri
config.txt'de GPIO Kontrolü
GPIO Yukarı Çekme Direnci (sic)
Mikrodenetleyicilerde dahili çekme dirençleri varken neden harici çekme dirençlerine ihtiyacımız var?
Ahududu Pi HAT Nedir?
Raspberry Pi Zero W GPIO konektörü nasıl lehimlenir