- Gerekli Bileşenler
- Devre şeması
- Garaj Kapısını Kontrol Etmek İçin Raspberry Pi'de Flask Kurulumu
- Akıllı Garaj Kapısı Açıcı için Python Komut Dosyası Oluşturma
- Raspberry Pi Webserver için HTML sayfası oluşturma
- {{pins.name}} {% if pins.state == true%} şu anda Açık
Akıllı telefonunuzu kullanarak her şeyin uzaktan kontrol edilebildiği bu IoT (Nesnelerin İnterneti) çağında, neden anahtarları yanınızda taşımalısınız? RFID, Bluetooth, Wi-Fi, LoRa gibi cihazların kablosuz kontrolünü destekleyen birçok teknoloji vardır. Kapıyı kablosuz olarak açıp kapatmak için daha önce bazı kapı alarmları ve kapı kontrol devresi inşa ettik:
- Arduino RFID Kapı Kilidi
- Arduino kullanarak Otomatik Kapı Açıcı
- Hall Sensörünü Kullanan Manyetik Kapı Alarm Devresi
- Google Asistan tarafından kontrol edilen IoT tabanlı Kapı Güvenlik Alarmı
İşte bu eğitimde Raspberry Pi kullanarak Akıllı Garaj Kapısı Açıcı oluşturacağız. Burada akıllı telefonunuzu kullanarak garaj kapısını açıp kapatmak için bir Raspberry Pi web sunucusu oluşturulacaktır.
Gerekli Bileşenler
- Raspbian yüklü Raspberry pi kartı
- Röle Modülü
- Kabloların Bağlanması
Raspberry Pi'nizin zaten bir işletim sistemi ile yanıp söndüğü ve internete bağlanabildiği varsayılmaktadır. Değilse, devam etmeden önce Raspberry Pi ile Başlarken öğreticisini izleyin. Burada Rasbian Jessie yüklü Raspberry Pi 3 kullanıyoruz.
Burada HDMI kablosu kullanan Harici Monitör, Raspberry Pi ile bağlantı kurmak için ekran olarak kullanılır. Monitörünüz yoksa, Raspberry pi'ye Dizüstü veya bilgisayar kullanarak bağlanmak için SSH istemcisi (Putty) veya VNC sunucusunu kullanabilirsiniz. Raspberry Pi'yi başsız olarak kurma hakkında buradan daha fazla bilgi edinin.
Devre şeması
Garaj kapısı açma mekanizmasını rölenin çıkışına bağlayın. Burada gösteri amacıyla röle ile bir LED bağladık.
Garaj Kapısını Kontrol Etmek İçin Raspberry Pi'de Flask Kurulumu
Burada, Robotu ağ üzerinden kontrol etmek için web sayfasından Raspberry Pi'ye komutları göndermenin bir yolunu sağlayan Flask kullanarak bir web sunucusu oluşturduk. Flask, python komut dosyalarımızı bir web sayfası üzerinden çalıştırmamıza izin verir ve Raspberry Pi'den web tarayıcısına veya tam tersi veri gönderip alabiliriz. Flask, Python için bir mikro çerçevedir. Bu araç, yerleşik geliştirme sunucusu ve hata ayıklayıcıya sahip Unicode tabanlıdır, entegre birim test desteği, güvenli tanımlama bilgileri desteği ve kullanımı kolaydır, bu özellikler onu hobiler için yararlı kılar.
Raspberry Pi'nize şişeyi kurmak için aşağıdaki komutları çalıştırın:
sudo apt-get update sudo apt-get install python-pip python-flask
Şimdi, Flask'ı ve bağımlılıklarını kurmak için pip komutunu çalıştırın:
sudo pip yükleme şişesi
Burada Flask kullanarak programlama hakkında daha fazla bilgi edinebilir, ayrıca web sunucusu üzerinden robotu kontrol etmek için Flask'ı kullandığımız önceki projelerimize göz atabilir, mesajı Web sayfasından Raspberry Pi'ye gönderebilir ve ağırlık değerini Smart Container'da Raspberry Pi'ye gönderebilirsiniz.
Şimdi, garaj kapısı web sunucumuz için bir python betiği yazacağız.
Akıllı Garaj Kapısı Açıcı için Python Komut Dosyası Oluşturma
Bu komut dosyası, Raspberry Pi GPIO'larımızla etkileşime girecek ve web sunucusunu kuracaktır. Bu, uygulamamız için temel komut dosyası. Kapı açıcı için eksiksiz Python Script sonunda verilmiştir, burada birkaç bölümünü açıkladık.
İlk önce bir klasör oluşturun. Diğer tüm gerekli klasörler yalnızca bu klasörde olmalıdır. Klasör oluşturmak ve bu klasörün içinde app.py adlı python dosyası oluşturmak için aşağıdaki komutları çalıştırın.
mkdir garage_door cd garage_door nano app.py
Bu, komut dosyasını yazmamız gereken Nano düzenleyiciyi açacaktır.
Önemli kitaplıkları ekleyerek başlayın.
RPi.GPIO'yu şişeden içe aktarma şişesinden GPIO olarak içe aktarın, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Şimdi, bir sözlük oluşturmak pimleri pin numarası, adı ve iğneli durumunu saklamak için. İhtiyacınıza göre birden fazla pin kullanabilirsiniz.
iğneler = { 14: {'name': 'Garaj Kapısı', 'durum': GPIO.LOW} }
Ardından, pimi çıkış olarak ayarlayın ve başlangıçta düşük yapın.
Pimler için: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Şimdi, pin durumunu okumak ve bu durumu bir değişkende saklamak için bir ana işlev yapın.
@ app.route ("/") def main (): pin içindeki pinler için: pinler = GPIO.input (pin) ..
Biz zorundayız bizim html sayfası için bu verileri aktarmak biz girdi düğmesi durumunu kontrol edebilir, bu yüzden.
render_template ('ana.html', ** şablonData) döndür
Şimdi, URL'den gelen istekleri pin numarası ve içindeki eylemle işlemek için bir işlev yapın.
@ app.route ("/
PIN'i URL'den bir tam sayıya dönüştürün.
changePin = int (changePin)
URL'nin işlem kısmı "açık" ise, aşağıdakileri yapın.
action == "open" ise: GPIO.output (changePin, GPIO.HIGH) eğer action == "close" ise: GPIO.output (changePin, GPIO.LOW)
Komut dosyasının tamamını bu eğitimin sonundan kopyalayabilir ve ctrl + x kullanarak kaydedebilir ve ardından enter tuşuna basabilirsiniz. Python betiğini yaptık. Şimdi, python betiğiyle etkileşim kurmak için bir HTML sayfası yapmalıyız.
Raspberry Pi Webserver için HTML sayfası oluşturma
Aynı garage_door klasöründe, şablonlar adlı başka bir klasör oluşturun ve bu klasörün içinde aşağıdaki komutları kullanarak bir.html dosyası oluşturun.
mkdir şablonları cd şablonları nano main.html
Gelen nano metin editörü, html kodu yazmak. Düzenleyebilirsiniz sayfanın bir parçası ve seçiminize göre biçimlendirin. Bağlantı etiketini kullanarak üçüncü taraf css şemasını kullandım. Tam HTML kodu aşağıda verilmiştir:
Garaj Kapısı Web sunucusu
{% pin için%}{{pins.name}} {% if pins.state == true%} şu anda Açık
Burada önemli parçasıdır açıp kapatmak kapı ve bir devlet atamak için bir düğme yaratmaktır açık ve yakın düğme. Düğme, GPIO durumunu python betiğinden gönderecek ve getirecektir.
Yukarıda verilen HTML kodunu düzenleyicide kullanabilir ve kaydedebilirsiniz. Artık web sunucusu başlatılmaya hazırdır.
Terminali açın ve garage_door klasörüne gidin ve aşağıdaki komutu çalıştırın
sudo python app.py
Tarayıcıyı açın ve ahududu pi IP adresinizi girin ve enter tuşuna basın. IP adresinizi bulmak için terminalde aşağıdaki komutu çalıştırabilirsiniz.
hostname -I
Bunun gibi bir sayfa göreceksiniz.
Röle modülünün ahududu pi'ye bağlı olduğundan emin olun. Röleyi açmak veya Garaj Kapısını açmak için Aç düğmesine basın. Ayrıca rölenin durumunu da görebilirsiniz. Röleyi Açtığınız anda, röleyi kapatmak için düğme metni Kapat olarak değiştirilecektir. Şimdi düğmeye tekrar tıkladığınızda röle kapatılacak ve düğme metni tekrar Açık olarak değiştirilecektir.
Sunucuyu durdurmak için ctrl + c tuşlarına basın.
Bu yüzden, bu röleyi piyasada kolayca bulunabilen bazı Kapı Açma mekanizmalarına bağlayın ve akıllı telefon kullanarak garaj kapısını kontrol etmeye başlayın.
Aşağıda bir tanıtım videosu verilmiştir.