
İçindekiler:
- Adım 1: Parçaları Toplayın
- 2. Adım: Raspberry Pi'yi Monitör veya Klavye Olmadan Kurun
- Adım 3: Wiring Pi, Apache ve PHP'yi kurun
- 4. Adım: Web sitesi
- Adım 5: Web Sitesi Resmi
- Adım 6: Web Sunucusunu Uzaktan Kontrol Edin
- 7. Adım: Devreyi Raspberry Pi'ye Bağlayın
- 8. Adım: Bir Başlangıç Hizmeti Oluşturun
- 9. Adım: Ahududu Pi'yi Garaja Takın
- Adım 10: Raspberry Pi'yi SECO-LARM'a bağlayın
- Adım 11: Kapanması Gerektiğinde Kapı Açıksa Uyarı Gönder
- Adım 12: Raspberry Pi'yi Gizli Kitap'a koyun
- Adım 13: Ek: Referanslar
- Adım 14: Ek: Güncellemeler
- Adım 15: Ek: Sorun Giderme
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-06-01 06:10

Bu talimatı 2014 yılında oluşturdum. O zamandan beri çok şey değişti. 2021'de Akıllı Garaj Kapısı Açıcıyı burada güncelledim.
Bir garaj kapısını açmak, kapatmak ve izlemek için bir Raspberry Pi ve bir akıllı telefon kullanın. Kapının açılıp kapanması, ailenin cep telefonlarına yüklenen kendinden imzalı sertifikalar kullanılarak güvence altına alınır. Garaj kapısı açık olmadığı halde açıksa, cep telefonuna kısa mesaj (SMS) gönderin.
Garaj kapısı 2014'ün sonlarından beri sürekli kullanılıyor. Yıllar içinde değişiklikleri güncel tutmaya çalıştım. Eğitilebilirdeki değişiklikleri açıklayan bir ek var.
Bu projenin hedefleri şunlardır:
- İlk dersimi ver - Bunu yayınlamayı planlamamıştım, ancak birçok istek aldım
- Standart bir uzaktan kumandayla bir garaj kapısı açın
- Duvara monte kapı zili garaj açacağı ile bir garaj kapısı açın
- Akıllı Telefon ile bir garaj kapısı açın
- Garaj kapısının durumunu bir cep telefonu veya dizüstü bilgisayar aracılığıyla uzaktan izleyin (açık mı yoksa kapalı mı?)
- Kapanması gerektiğinde kapı açıksa cep telefonuma kısa mesaj gönder
- Garaj kapısını emniyete alın (örn. elektrik kesintisinde kapı açılmamalıdır)
- Ağda başka kimsenin kapıyı açmasına izin vermeyin (iki yönlü kendinden imzalı SSL sertifikası)
- Kablolu bağlantı yerine WiFi kullanın
- Raspberry Pi 3 kullanın
Bu Garaj Kapısı Açıcı uygulamasının temeli, Instructable'dan türetilmiştir: Quartarian tarafından Raspberry Pi Garaj Kapısı Açıcı. Başlangıçta B+ Raspberry Pi modelini kullandım, sonra Raspberry Pi 2 model B'ye geçtim ve şimdi Raspberry Pi 3 kullanıyor.
Raspberry Pi ile iletişim kurmak için bir MacBook kullandım, ancak herhangi bir bilgisayar kullanılabilir.
Bu cihazı yapmak için zorlayıcı bir neden yok ama eğlenceliydi. Bir tane satın almak daha uygun maliyetlidir. Benzer bir cihaz yaklaşık 130 USD karşılığında satın alınabilir.
- Asansör ustası 828LM
- Chamberlain MyQ 129 $
- Git Kapısı $179
- Usta 100$
Notlar:
- Maça içine alınmış metin, bunun gibi 'bunu değiştir' gerçek bir değerle değiştirilmelidir
- Arduino altı çizili mavi metin bir bağlantıdır. Bu durumda, bir garaj kapısı açıcısının arduino versiyonuna bir bağlantıdır.
- Kullanılan her kaynağa atıfta bulunmaya çalıştım. Herhangi bir eksiklik için özür dilerim. Bu belgenin çoğu diğer kişilerin çalışmalarına dayanmaktadır.
- $, MacBook'taki bir terminal penceresinde yürütülen bir komutu belirtir ve genellikle Raspberry Pi'de yürütülür
Adım 1: Parçaları Toplayın
Parçaları ve araçları satın alın veya toplayın (fiyatlar USD cinsinden).
- Raspberry Pi 3 Model B Newark Element14 $35
- Amazon'dan 5,2V 2,5A USB Güç Adaptörü 9,99 ABD doları
- Amazon'dan Mikro USB'den USB'ye kablo 6ft 7,99 ABD doları
- Amazon'dan Dava 6,99 ABD Doları
- SanDisk Ultra 16 GB microSDHC Sınıf 10 Adaptörlü (SDSQUAN-016G-G4A) Amazon'dan 8,99 ABD doları
- SunFounder Arduino UNO 2560 için 2 Kanal 5V Röle Shield Modülü 1280 ARM PIC AVR STM32 Raspberry Pi - $6.79
- 3x Dişi-Dişi Jumper Telleri. Fry's'tan 4,95 dolara satın alındı.
- 30 ad için yılda 40 ABD doları dinamik DNS (dyn.com)
- 1-Çete 18 cu. içinde. Eski İş Ağır Duvar Anahtarı ve Çıkış Kutusu, 3,12 $
- Ultra Pro Tek Fırça Beyaz Duvar Plakası, 7.88 $
- SECO-LARM SM 226L, Garaj Kapısı Sensörü, fiyat büyük farklılıklar gösterir, Amazon'da ücretsiz kargo ile 9,99 ABD doları
- 50ft Katı termostat teli, Home Depot veya Lowe's, ~20$
Toplamım: ~172.00$
Aşağıdaki parçalara, araçlara ve hizmetlere sahiptim:
- CAT5 Ethernet kablosu
- Küçük ölçü teli, 6 ft uzunluğunda
- Yıldız uçlu tornavidalar
- Kargaburun
- Kutu kesiciler
- Kuyumcular düz uçlu tornavida, röle üzerindeki vidaları gevşetmek için gerekli
- MacBook (PC kullanılabilir)
- AT&T GigaPower (herhangi bir internet servis sağlayıcısı kullanılabilir)
2. Adım: Raspberry Pi'yi Monitör veya Klavye Olmadan Kurun

Tüm Raspberry Pi projeleri bir tür kurulum gerektirir. Aynı talimat setini kullanmayı seviyorum ve gerektiğinde bu talimatları güncellemek için tek bir yerim var.
Aşağıdaki talimatı kullanarak Raspberry Pi'yi kurun:
Raspberry Pi'yi Monitör veya Klavye Olmadan Kurma
Yukarıdaki talimat, ekte isteğe bağlı adımları içerir. Adımı yaptığınızdan emin olun:
Web sunucularına istemci tarafı sertifikaları ekleyin
Ahududu Pi'yi Kapatma
$ sudo kapatma -h 0
Kapattıktan sonra, kaldırın
- Ethernet kablosu
- USB seri kablosu
Bunlara daha fazla ihtiyaç olmayacak. Raspberry Pi'de komutları çalıştırmak için Mac Book'ta wifi, ssh ve bir terminal penceresi kullanın.
Gücü kesin ve gücü tekrar takın; ahududu pi yeniden başlatılmalıdır.
Adım 3: Wiring Pi, Apache ve PHP'yi kurun
Kablolama Pi'yi kurun
Mac Book'ta bir terminal penceresi açın. Raspberry Pi'ye giriş yapın, ardından Wiring Pi'yi indirin, derleyin ve kurun. Bu yazılım, GPIO pinlerinin kontrolünü sağlar. İşte adım adım bir kılavuz:
wiringpi.com/download-and-install/
İşte talimatların yoğunlaştırılmış bir versiyonu:
$ ssh pi@♣ahududu-pi-ip♣
şifre: ♣password♣ $ sudo apt-get install git-core $ git klon git://git.drogon.net/wiringPi $ cd kablolamaPi $ git çekme kaynağı $./build
Kurulumu kontrol etmek için gpio komutunu çalıştırın:
$ gpio -v
gpio sürümü: 2.29 Telif hakkı (c) 2012-2015 Gordon Henderson Bu, KESİNLİKLE GARANTİ YOKTUR ve ücretsiz bir yazılımdır. Ayrıntılar için tür: gpio -warranty Raspberry Pi Ayrıntılar: Tür: Model 2, Revizyon: 1.1, Bellek: 1024MB, Yapımcı: Sony [OV] Cihaz ağacı etkinleştirildi. Bu Raspberry Pi, kullanıcı düzeyinde GPIO erişimini destekler. -> Daha fazla ayrıntı için kılavuz sayfasına bakın $ gpio readall +-----+-----+---------+------+---+--- Pi 2---+---+------+--------+-----+-----+ | BCM | wPi | İsim | Mod | V | Fiziksel | V | Mod | İsim | wPi | BCM | ++----+-----+--------+------+---+----++----+---+- -----+--------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | İÇİNDE | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | İÇİNDE | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | ÇIKIŞ | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | İÇİNDE | 0 | 11 || 12 | 0 | İÇİNDE | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | İÇİNDE | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | İÇİNDE | 0 | 15 || 16 | 1 | İÇİNDE | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | İÇİNDE | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | İÇİNDE | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | İÇİNDE | 0 | 21 || 22 | 0 | İÇİNDE | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | İÇİNDE | 0 | 23 || 24 | 1 | İÇİNDE | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | İÇİNDE | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | İÇİNDE | 1 | 27 || 28 | 1 | İÇİNDE | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | İÇİNDE | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | İÇİNDE | 1 | 31 || 32 | 0 | İÇİNDE | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | İÇİNDE | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | İÇİNDE | 0 | 35 || 36 | 0 | İÇİNDE | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | İÇİNDE | 0 | 37 || 38 | 0 | İÇİNDE | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | İÇİNDE | GPIO.29 | 29 | 21 | ++----+-----+--------+------+---+----++----+---+- -----+--------+-----+-----+ | BCM | wPi | İsim | Mod | V | Fiziksel | V | Mod | İsim | wPi | BCM | +-----+-----+---------+------+---+---Pi 2---+---+--- ---+--------+-----+-----+
Yukarıdaki komutlar, kablolama Pi'nin iyi çalıştığına dair size biraz güven vermelidir.
Apache ve PHP'yi yükleyin
Aşağıdaki komutları çalıştırın:
$ cd..
$ sudo apt-get güncellemesi $ sudo apt-get yükleme apache2 php5 libapache2-mod-php5
Web sunucusunun çalıştığını doğrulamak için bir tarayıcı açın ve URL kutusuna şunu girin:
"ahududu-pi-ip"
Apache'nin varsayılan web sitesi "Çalışıyor!" ile yanıt verir.
4. Adım: Web sitesi
Mac Book'ta bir terminal penceresi açın. Raspberry Pi'ye giriş yapın, ardından varsayılan index.html dosyasını kaldırın, web sitesi dizinindeki izinleri değiştirin ve index.php adlı bir dosyayı düzenleyin.
$ ssh pi@♣ahududu-pi-ip♣
şifre: ♣parola♣ $ sudo rm /var/www/index.html $ sudo chown pi:root /var/www $ sudo nano /var/www/index.php
Ve aşağıdaki kodu girin:
garaj açacağı
Ev otomasyonu |
---|
Garaj kapısı açıcısı | Garaj Kapısı Açma Kılavuzu | kapalı 1 | 0 aç |
Dosyayı yazmak için CTRL-o ve ENTER ve editörden çıkmak için CTRL-x.
Dosyadaki izinleri değiştirin
$ sudo chmod 664 /var/www/index.php
Adım 5: Web Sitesi Resmi


Web'den yüksek çözünürlüklü bir uzaktan garaj kapısı açıcı alın. Mac fırça kullanarak görüntüyü istediğiniz gibi değiştirin. Yukarıdaki görselde yüksek çözünürlüklü Genie Garaj Açıcı kullanılmış, ahududu pi logosu eklenmiş ve led çıkarılmıştır.
Görüntülerden biri arka plandır (remote-background.jpg), diğeri ise aktif görüntüdür (remote-press.jpg).
Plan, düğmeye basıldığında led'i yanıp sönmek yerine ahududu'nun yanıp sönmesiydi. Web sitesini basitleştirdim.
Görüntüleri ahududu pi'ye kopyalayın:
$ scp *-j.webp
şifre: ♣şifre♣
Web sitesinde tek bir buton bulunmaktadır. Doğrulamak için bir tarayıcı açın ve ♣raspberry-pi-ip♣ girin. Apache'nin "Çalışıyor!" yazan varsayılan web sitesi yerine, düğme görünmelidir. Basın.
Adım 6: Web Sunucusunu Uzaktan Kontrol Edin
Garaj Kapısı Açıcıya uzak bir konumdan erişmeyi kolaylaştırmak için dinamik bir DNS adı kullanıyorum. Çünkü IP adreslerini hatırlamaktan hoşlanmıyorum.
Bu özellik ile bir tarayıcının URL alanına ♣dynamic-hostname♣.getmyip.com giriyorum. Not: Ev yönlendiricilerindeki IP önceden bildirilmeksizin değiştirilebilir, ancak bu nadiren olur. DynDNS kullanmayı seçtim. Yönlendiricinizin genel IP adresini bilmeniz gerekir.
U-Verse Yönlendirici IP: ♣uverse-public-ip♣
Ana bilgisayar adlarınızı ve DynDNS Pro hesap ayrıntılarınızı görüntüleyebilirsiniz. İşte başlamak için birkaç ipucu:
-
Dinamik DNS ana bilgisayar adınızı oluşturun (1/30):
- ♣dinamik-ana bilgisayar adı♣
- Güncelleyici Anahtarı: ♣dinamik-ip-güncelleyici anahtarı♣
-
Ana bilgisayar adınızın her zaman doğru IP adresine yönlendirildiğinden emin olmak için bir güncelleme istemcisi kurun.
- MacBook'a indirin ve yükleyin
- AT&T U-verse IP'leri nadiren değişir, bu nedenle yukarıdaki güncelleyici her değiştiğinde çalıştırılabilir
-
Yönergeleri izleyin:
- Hesap eklemek
- Kullanıcı adını ve şifreyi girin: ♣dinamik-ip-kullanıcı adı♣ ♣dinamik-ip-parola♣
- Ana bilgisayar adını seçin
- Seçili Ana Bilgisayarları Yapılandır'a tıklayın
- Ev sahibi aktif hale gelmeli
-
Ağınızı, cihazınıza İnternet'ten erişime izin verecek şekilde yapılandırın. Bunun nasıl yapılacağına ilişkin bazı genel talimatlar için Dyn Sihirbazımızı kullanabilir, PortForward.com gibi kaynakları kullanabilir veya yardım için cihazın üreticisiyle iletişime geçebilirsiniz.
- AT&T U-ayet
- 2 Kablolu 3801HGV için Bağlantı Noktası Yönlendirme - bu, sahip olduğum AT&T U-Verse yönlendiricisi. AT&T U-verse 5268ac yönlendiricide bağlantı noktasının nasıl iletileceğini öğrenmek için Ekteki Güncellemelere bakın.
- Tarayıcıyı açın ve ♣raspberry-pi-ip♣'e gidin
- Şifre: ♣şifre♣
- Ayarlar
-
güvenlik duvarı
- ♣raspberry-pi-hostname♣'yi seçin
-
sunucular
- Web Sunucusu bağlantı noktası 80
- HTTPS Sunucusu - 443 numaralı bağlantı noktası
- Ekle
- Kaydetmek
Bu yapıldıktan sonra, web sunucusu internetten çalışacaktır. Doğrulamak için ♣dynamic-hostname♣ girin ve garaj kapısı açıcı düğmesini görmelisiniz.
7. Adım: Devreyi Raspberry Pi'ye Bağlayın

Sağlanan kod için (adım 4 ve 6) GPIO pin 7'yi kullandım. GPIO 7'nin kablolama Pi pin 7 ile aynı olması tesadüf. İstediğinizi kullanabilirsiniz, ancak kodu değiştirdiğinizden emin olun.
Bükümlü kablo kullanmayı denedim ama röle bükülmüş kabloda iyi durmuyor. Katı tel daha iyidir.
İlk denememde üç bağlantı kablosu oluşturdum (dişiden erkeğe).
- Üç dişiden dişiye atlama kablosu kullanın
-
Üç parça katı teli yaklaşık 1 inç olacak şekilde kesin.
Katı telin her iki ucundan 1/4 inç soyun
- Bir dişi atlama kablosuna bir katı tel takın.
Bağlantı kabloları (dişiden erkeğe) oluşturmanın daha iyi bir yolu:
- Yalnızca sağlam tel kullanın
- Üç adet 4 inçlik katı tel kesin
- Katı telin her iki ucunda 1/4in şeritleyin
-
Dişi bağlantı pimleri kullanın
-
Bir dişi bağlantı pimini katı telin bir ucuna kaydırın ve kıvırın
Dişi pim gevşememeli, gerekirse lehimlenmelidir
- Gerilim azaltıcıyı dişi bağlantı pimi veya kapak pimi üzerinden elektrikçi bandıyla kaydırın
-
Röleyi şemada gösterildiği gibi pi'ye bağlayın:
- Kablonun dişi ucunu Raspberry Pi pinine bağlayın.
- Katı kabloyu Röleye yerleştirin.
8. Adım: Bir Başlangıç Hizmeti Oluşturun
Satın alınanlar da dahil olmak üzere çoğu röle şu şekilde çalışır:
- Sinyal AÇIK olduğunda devre kapalı kalır.
- Sinyal KAPALI olduğunda devre açıktır.
Raspberry Pi güç kaybederse rölenin devreyi KAPALI tutan bir güvenlik mekanizması vardır.
Rapberry Pi ve rölenin gücü geri yüklendiğinde, ancak Raspberry Pi, devreyi kapalı tutmak için gereken sinyali AÇIK konuma getirmek için önyüklemeyi bitirmeden önce bir sorun meydana gelebilir. Sabah garajınız açık ve potansiyel olarak birkaç yeni arkadaşınızla uyanabilirsiniz!
Ancak, GPIO pin modu şu komutla ayarlanana kadar röle aslında başlamaz: gpio mode 7 out. Ayrıca, GPIO modunu ayarlamadan önce GPIO pimi AÇIK (gpio yazma 7 1) ise, röle başlatıldığında kapalı kalacaktır.
Bu başlatmanın açılışta çalışmasını sağlamak ve yeni arkadaşlarla uyanmamak için aşağıdaki başlatma komut dosyasını kullanın.
$ ssh pi@♣ahududu-pi-ip♣
$ sudo nano /etc/init.d/garagerelay
Ardından bu komut dosyasını yapıştırın:
#! /bin/bash
# /etc/init.d/garagerelay # Sistem tarafından istendiğinde belirli işlevleri gerçekleştirin vaka "$1" başlangıçta) echo "Röleyi Başlatma" # Röleyi kapalı tutan 7'yi açın /usr/local/bin/gpio write 7 1 #Gpio /usr/local/bin/gpio modunu başlat 7 çıkış;; dur) echo "gpio durduruluyor";; *) echo "Kullanım: /etc/init.d/garagerelay {start|stop}" çıkış 1;; esac çıkış 0
Kaydetmek için: CTRL-o, ENTER
Nano'dan çıkmak için CTRL-x
Dosyayı yürütülebilir yapın:
$ sudo chmod +x /etc/init.d/garagerelay
Şimdi pi'nize bu betiği açılışta çalıştırmasını söyleyin:
$ sudo update-rc.d -f garaj rölesi başlangıç 4
(Not: "eksik LSB etiketleri" uyarısını güvenle yok sayabilirsiniz.)
Başlangıç komut dosyasının çalıştığından emin olun
$ sudo yeniden başlatma
Bir tarayıcı açın ve açıcıya tıklayın. Röle tıklamalıdır.
9. Adım: Ahududu Pi'yi Garaja Takın

Raspberry Pi'yi taşırken aşağıdakileri çalıştırdığınızdan emin olun:
$ kapatma -h 0
Garajın gücünü kapatmak isteyebilirsiniz. Yani kapı zili size elektrik çarpmaz:). Gerçek sebep, kabloları her kısa devre yaptığınızda, kapı yukarı ve aşağı gidecektir.
Kapı zilini duvara bağlayan kapı zili tipi açıcıdan duvar vidalarını sökün.
Kapı zili açıcısının arkasındaki garajdan evin içine bir delik açın. Teksas'ta Raspberry Pi garajda olmamalıdır, garajdaki sıcaklık değişimi Raspberry Pi'nin çalışma özelliklerinin dışındadır.
Röle kablolarını delikten geçirin (bir elbise askısı kullanın).
Kapı zili açıcısının arka tarafındaki iki vidayı da gevşetin.
Röle kablolarının her iki ucunu soyun: 1) röle tarafında yaklaşık 1/8 inç ve kapı zili tarafında yaklaşık ½ inç. Telin kapı zili tarafını, arka vidanın etrafına sığacak kadar büyük bir yarım halka şeklinde bükün.
Kapı zilinin arka tarafındaki her vidaya bir röle kablosu bağlayın ve vidayı sıkın. Bağlantılar resimde görüldüğü gibidir. Röle devreyi izole ettiği için hangi rölenin hangi vidaya takıldığı bile önemli değildir.
Adım 10: Raspberry Pi'yi SECO-LARM'a bağlayın


Kodu bitirmeden önce ailem ve ben tatildeydik ve tarayıcımı açtım. Tarayıcımın son görünümü garaj kapısı açıcıydı - sayfa yenilendi ve garaj kapısı açıldı. Birkaç gün sonra bir komşu aradı ve garaj kapısının açık olup olmayacağını sordu. Şans eseri 500 mil öteden kapatabildim.
Bu snafu, bunun olmaması için kodu değiştirmeye ve web sitesine bir sensör ve garaj kapısının durumunu eklemeye zorladı.
Bu, bir sensör eklemek için orijinal talimata bir bağlantıdır. Ancak, zaten tamamlanmış olan her şey göz önüne alındığında, sensörün kurulumu büyük ölçüde basitleştirilebilir ve python kullanmak yerine index.php'ye birkaç satır kod ekleyin.
Fatal error: Uncaught Error: Call to undefined function exec() in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code:518 Stack trace: #0 W:\www\langs\.php-gen-lang\v3-core\macros.php(127): eval() #1 W:\www\langs\.php-gen-lang\v3-core\index-global.php(231): Macros->macros_parse('<!DOCTYPE html>...') #2 W:\www\langs\howwhatproduce.com\tr.howwhatproduce.com\index.php(9): require_once('W:\\www\\langs\\.p...') #3 {main} thrown in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code on line 518