İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu proje, işe gitmek için evden çıkıp yolun yarısına geldiğimde ortaya çıktı, ancak garaj kapısını kapatıp kapatmadığımı hatırlayamadığım bir an panik yaşadım. Bazen öyle olmadığıma ikna oldum ve garaj kapısını gerçekten kapattığımı doğrulamak için arkamı döndüm. Şimdi işe 30 dakika geç kalıyorum… harika. Kendi evimi satın aldığımda, garaj kapısı açıcıma ne zaman istersem yapabileceğimi düşündüm ve bu fikir doğdu.
Gereçler
- Raspberry Pi - Django, NGINX ve gunicorn'u çalıştırabildiği sürece hemen hemen her modelin çalışması gerektiğini düşünüyorum. Raspberry Pi 3B+ kullandım. Farklı bir sürümünüz varsa bazı şeyleri değiştirmeniz gerekebilir. - (https://www.adafruit.com/product/3775)
- microSD kart (için
- GPIO pinleri için 40 pinli şerit kablo - (https://www.adafruit.com/product/1988)
- 4 pinli GPIO devre kartı - (https://www.adafruit.com/product/2029)
- >20v DC için derecelendirilmiş opto-izole röle kartı - (https://www.amazon.com/gp/product/B07M88JRFY)
- Perma-Proto yarım boy tahta - (https://www.adafruit.com/product/1609)
- bağlantı kablosu (~24-20 AWG) - (https://www.amazon.com/dp/B01LH1FYHO)
- Manyetik Manyetik Anahtar - (https://www.amazon.com/gp/product/B076GZDYD2)
- Raspberry Pi HDMI toz kapağı - (https://www.amazon.com/gp/product/B07P95RNVX)
- Raspberry Pi Ethernet toz kapağı - (https://www.amazon.com/gp/product/B01I814D0U)
- Raspberry Pi USB toz kapakları (4) - (https://www.amazon.com/gp/product/B074NVHTF9)
- Raspberry Pi güç kaynağı (kullandığınız ahududu pi modeline bağlı olarak)
- Raspberry Pi kasası - (https://www.amazon.com/gp/product/B07QPCPK8G)
- 3,5 mm jak - (https://www.amazon.com/gp/product/B00OGLCR3W)
- Montaj panoları için M2.5 vida/ayrıklıklar - (https://www.amazon.com/dp/B0721SP83Q)
- 18 AWG kablosu - (https://www.amazon.com/gp/product/B07TL9XK2K)
- 3 mm şeffaf akrilik - (https://www.amazon.com/gp/product/B07RY4X9L3)
- lazer kesiciye erişim
Adım 1: RPi'yi birleştirin
microsd kartını seçtiğiniz en son raspbian görüntüsüyle yazın. (https://www.raspberrypi.org/documentation/installation/installing-images/) ardından kartı kasaya monte edin ve kapağı kasaya sabitlemeden önce şerit kabloyu takın. Ardından toz portlarını ekleyin.
Adım 2: Kontrol Kutusunu Kes ve Birleştir
Kutunuzu bir lazer kesicide kesmenize, yerel bir üretici alanı aramanıza veya akrilik kesebilecek yerler için çevrimiçi aramanıza izin verecek bir yer bulmanız gerekecek. Alternatif olarak, muhtemelen uygun olan başka herhangi bir proje kutusunu kullanabilirsiniz. 3.3v hattı ile manyetik anahtarın COM terminali arasına 330 Ohm'luk bir direnç eklediğinizden emin olun. NUMARA. terminal, tercih edilen GPIO pinine geri döner.
Röleyi DC+'ya giden 5v, GND'den DC-'ye ve GPIO pin seçimi ile IN'e bağlayın.
Garaj kapısı açma terminalleri COM ve NO'da röleye bağlanacaktır.
Adım 3: Manyetik Anahtarları Monte Edin ve Kabloyu Çalıştırın
Kablonuzun kapınızın hareketini engellemediğinden emin olun. Kapıyı açmak için duvar düğmelerinizin bağlandığı aynı iki vidayı bağlayın.
Adım 4: Raspberry Pi'nizi Wifi'nize Bağlayın
ve web sunucusunu kurabilmeniz için ahududu pi'nize SSH yapabildiğinizden emin olun. daha sonra garajınıza monte edebilirsiniz ve gerisini bilgisayarınızdan yapabilirsiniz.
Adım 5: Yazılımı Kurun ve Yapılandırın
Raspberry Pi'de Django'yu şu komutlarla kurun:
- 'sudo uygun güncelleme'
- `sudo apt install python3-pip`
- `sudo pip3 Django'yu kurun'
Ardından NGINX ve gunicorn'u kurun
- `sudo apt nginx'i kurun'
- `sudo pip3 gunicorn yükleyin'
Python modülünü kurun bir Django projesi oluşturun, geçişler oluşturun ve settings.py'yi yapılandırın
- tarball'ı /srv'ye kopyalayın
- `sudo pip3 install Django-smart-carhole-0.1.tar.gz` kullanarak kurun
- `sudo Django-admin startproject my_smart_garage` ile Django projesi oluşturun
-
`cd my_smart_garage/`
- /srv/my_smart_garage/my_smart_garage/setting.py adresinde bulunan settings.py dosyasını düzenleyin
- ahududu pi'nin IP adresini veya ana bilgisayar adını ALLOWED_HOSTS'a ekleyin
- INSTALLED_APPS listesine 'door_control' ekleyin
- TIME_ZONE'ı kendi saat diliminize göre düzenleyin
- Dosyanın sonuna aşağıdaki ayarları ekleyin: RPI_SENSOR_PIN, RPI_RELAY_PIN, IP_WHITELIST_DOORCONTROL ve ilgili değerleri ile doldurun. Örnekler için resimlere bakın.
- urlpatterns listesindeki /srv/my_smart_garage/my_smart_garage/urls.py'ye "path('door_control/', include('door_control.urls'))" ekleyin
- Django.urls kitaplığı için en üstteki içe aktarma satırına ', include' ekleyin. Örnekler için resimlere bakın.
- uygulamayı 'sudo python3 manage.py move' ile taşıyın
- test sunucusunu şununla çalıştırarak işlerin çalıştığından emin olmak için test edin: `python3 Manage.py runserver 0.0.0.0:8000`
- Raspberry pi'nize şu şekilde gidin:
- Gösterildiği gibi bir sayfa ile karşılaşmalısınız.
Şimdi, web sunucusunun otomatik olarak çalışması için ayarlama zamanı.
- İlk önce settings.py dosyasında hata ayıklama modunu devre dışı bırakın
- /etc/nginx/nginx.conf içindeki server_names_hash_bucket_size 64'ün yorumunu kaldırın
- gunicorn dosyasını /etc/systemd/system/gunicorn.service dizinine kopyalayın
- nginx dosyasını /etc/nginx/conf.d/smart_carhole.conf dizinine kopyalayın
- her iki işlemi de başlat
- systemctl gunicorn.service'i etkinleştir
- systemctl gunicorn.service'i başlat
- systemctl nginx.service'i etkinleştir