İçindekiler:
- Adım 1: İlk Kurulum
- 2. Adım: Ngrok'u Kurun
- Adım 3: Işık Anahtarı Kontrolü için Python Komut Dosyası
- Adım 4: Fan Kontrolü için Python Komut Dosyası
- Adım 5: LIRC Paketini Kurma ve Yapılandırma
- Adım 6: TV Kontrolü için Python Komut Dosyası
- 7. Adım: AWS Hesabına Giriş Yapın
- Adım 8: TV Alexa Beceri Kurulumu
- Adım 9: Alexa Beceri Kurulumunu Işıklar
- Adım 10: Hayran Alexa Beceri Kurulumu
- Adım 11: Devreyi İnşa Edin
- Adım 12: Alexa Komutları
Video: Alexa ve Raspberry Pi ile Kontrol Oturma Odası: 12 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Alexa (Amazon Echo veya Dot) ve Raspberry Pi GPIO ile oturma odanızdaki TV'nizi, ışıklarınızı ve Fanınızı kontrol edin.
Adım 1: İlk Kurulum
Bir Raspberry Pi 2 ve https://www.raspberrypi.org/downloads/raspbian/ adresinden indirilen bir Raspbian Jessie görüntüsü kullandım.
Giriş yaptıktan sonra, gerekli paketleri ve python kitaplıklarını kurmak için aşağıdaki komutları girin:
sudo apt-get güncelleme && sudo apt-get yükseltme -ysudo apt-get yükleme python2.7-dev python-dev python-pip sudo pip yükleme Flask flask-ask sudo apt-get install lirc
2. Adım: Ngrok'u Kurun
ngrok.com/download adresini ziyaret edin ve en son Linux ARM sürümünü zip olarak alın ve ana dizinde açın:
unzip /home/pi/ngrok-stable-linux-arm.zip
Yeni bir terminal açın ve aşağıdaki komutu girin:
sudo./ngrok http 4000
Başka bir yeni terminal açın ve aşağıdaki komutu girin:
sudo./ngrok http 4500
Üçüncü yeni terminali açın ve aşağıdaki komutu girin:
sudo./ngrok http 5000
Adım 3: Işık Anahtarı Kontrolü için Python Komut Dosyası
Yeni bir terminal oturumu açın ve light_control.py adlı yeni bir python dosyası oluşturun:
nano light_control.py
Aşağıdaki kodu yeni dosyaya kopyalayın/yapıştırın:
flask'tan import Flaskfrom flask_ask import Ask, deyim, convert_errors RPi. GPIO'yu GPIO olarak içe aktar import logging import os GPIO.setmode(GPIO. BCM) app = Flask(_name_) ask = Ask(app, '/') logging.getLogger(" flask_ask").setLevel(logging. DEBUG) @ask.intent('LightControlIntent', mapping={'status': 'status'}) def light_control(status): try: pinNum = 27 hariç e: return deyimi('Pin numarası geçerli değil.') GPIO.setup(pinNum, GPIO. OUT) eğer durum ['açık', 'yüksek'] ise: GPIO.output(pinNum, GPIO. LOW) eğer durum ['kapalı' ise, ' low']: GPIO.output(pinNum, GPIO. HIGH) return ifadesi('Oturma Odası Işıklarını {} Dönüştürme'.format(status)) if _name_ == '_main_': port = 4000 app.run(host=' 0.0.0.0', bağlantı noktası=bağlantı noktası)
Dosyayı kaydedin ve kapatın.
Şişe sunucusunu şununla başlatın:
sudo python light_control.py
Hem ngrok hem de light_control.py'yi çalışır durumda bırakın
Adım 4: Fan Kontrolü için Python Komut Dosyası
Yeni bir terminal oturumu açın ve fan_control.py adında yeni bir python dosyası oluşturun:
nano fan_control.py
Aşağıdaki kodu yeni dosyaya kopyalayın/yapıştırın:
şişeden ithalat şişesi
flask_ask'tan import Ask, deyim, convert_errors RPi. GPIO'yu GPIO olarak içe aktar import logging import os GPIO.setmode(GPIO. BCM) app = Flask(_name_) ask = Ask(app, '/') logging.getLogger("flask_ask").setLevel(logging. DEBUG) @ask.intent('FanControlIntent', mapping={'status': 'status'}) def fan_control(status): try: pinNum = 22 İstisna as e: return deyimi('Pin numarası) geçerli değil.') GPIO.setup(pinNum, GPIO. OUT) durum ['açık', 'yüksek'] ise: GPIO.output(pinNum, GPIO. LOW) durum ['kapalı', 'düşük'] ise: GPIO.output(pinNum, GPIO. HIGH) return ifadesi('Oturma Odası Işıklarını {} Döndürme'.format(status)) if _name_ == '_main_': port = 4500 app.run(host='0.0.0.0 ', bağlantı noktası = bağlantı noktası)
Dosyayı kaydedin ve kapatın.
Şişe sunucusunu şununla başlatın:
sudo python fan_control.py
Hem ngrok, hem light_control.py hem de fan_control.py'yi çalışır durumda bırakın
Adım 5: LIRC Paketini Kurma ve Yapılandırma
TV'yi kontrol etmek için, özel TV'niz için kızılötesi (IR) sinyalleri üretmek üzere Raspberry Pi'de bir pin yapılandırmanız gerekir. Birçok uzaktan kumandanın kızılötesi sinyallerini taklit eden bir LIRC paketi kurmak için terminali açın ve aşağıdaki komutu girin.
sudo apt-get install lirc
Ardından, lirc_rpi çekirdek modülünü etkinleştirmeniz ve yapılandırmanız gerekir. Bunu yapmak için Nano düzenleyicide modülleri açın
sudo nano /etc/modüller
Dosyaya aşağıdaki satırları ekleyin (gpio_out_pin parametresinin IR LED'ini kontrol eden pini gösterdiğinden emin olun):
lirc_devlirc_rpi gpio_out_pin=17
Ardından, daha önce olduğu gibi sudo ile Nano'daki Hardware.conf dosyasını açın:
sudo nano /etc/lirc/hardware.conf
Dosyaya aşağıdaki yapılandırmayı ekleyin:
LIRCD_ARGS="--uinput"LOAD_MODULES=doğru
SÜRÜCÜ = "varsayılan"
CİHAZ="/dev/lirc0"
MODÜLLER="lirc_rpi"
LIRCD_CONF=""
LIRCMD_CONF=""
Şimdi Raspberry Pi'yi yeniden başlatın:
sudo yeniden başlatma
Adım 6: TV Kontrolü için Python Komut Dosyası
Yeni bir terminal oturumu açın ve ir_control.py adında yeni bir python dosyası oluşturun:
nano ir_control.py
lirc-remotes.sourceforge.net/remotes-table… adresine gidin.
TV'nizle uyumlu bir uzaktan kumanda bulun. Benim durumumda sanyo-tv01 yapılandırma dosyasıyla çalışan bir Sanyo TV'm var. TV'nizi destekleyen bir dosya bulduğunuzda onu açın ve komut seçeneklerine bakın.
Aşağıdaki kodu yeni dosyaya kopyalayın/yapıştırın ve sanyo-tv01'i TV'nizde çalışan dosya adıyla değiştirin. Ayrıca tv komutlarının TV'nizin yapılandırma dosyası tarafından desteklendiğinden emin olun; TV'nizin yapılandırma dosyasıyla doğru şekilde çalışması için KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN ve KEY_MUTE komutlarını değiştirmeniz gerekebilir:
flask'tan import Flaskfrom flask_ask import Ask, deyim, convert_errors RPi. GPIO'yu GPIO olarak içe aktar import logging import os GPIO.setmode(GPIO. BCM) app = Flask(_name_) ask = Ask(app, '/') logging.getLogger(" flask_ask").setLevel(logging. DEBUG) @ask.intent('GPIOControlIntent', mapping={'status': 'status'}) #'pin': 'pin'}) def tv_function(status): if status in ['aç']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_POWER") return ifadesi('TV'yi açmak') elif durumu ['kapat']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_POWER") return ifadesi('TV'yi kapatıyor') ['girişi değiştir'] içindeki elif durumu: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VIDEO") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VIDEO") return deyim('TV'deki giriş değiştiriliyor') ['ses seviyesini artır'] içindeki elif durumu: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") return ifadesi('TV'de Ses Seviyesi Artırılıyor') ['sesi azalt'] içindeki elif durumu: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend_VOLUMEDOWN") os.system("sanyo-tv01 KEY_VOLUMEDOWN") ") return deyimi('TV'de Ses Azalıyor') ['sessiz'] içindeki elif durumu: os.system("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return deyimi('TV Sesi Kapatılıyor') ['sesi aç'da elif durumu ']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return ifadesi('TV'nin sesi kapatılıyor') else: return ifadesi('Uzak işlev bulunamadı.') if _name_ == '_main_': bağlantı noktası = 5000 uygulama.run(ana bilgisayar='0.0.0.0', bağlantı noktası=bağlantı noktası)
Dosyayı kaydedin ve kapatın.
Şişe sunucusunu şununla başlatın:
sudo python ir_control.py
Üç ngrok terminal penceresinin hepsini, light_control.py, fan_control.py ve ir_control.py çalışır durumda bırakın
7. Adım: AWS Hesabına Giriş Yapın
Önce AWS Geliştirici Hesabınızı oluşturun veya oturum açın ve Alexa Becerileri listenizi açın.
Adım 8: TV Alexa Beceri Kurulumu
"Yeni Beceri Ekle"yi seçin.
Beceri Adını 'TV'yi Tetikle' olarak ayarlayın ve Çağrı Adını beceriyi etkinleştirmek için kullanmak istediğiniz sözcük(ler)e ayarlayın.
Devam etmek için 'İleri'yi tıklayın.
Aşağıdakileri 'Intent Schema' kutusuna kopyalayın/yapıştırın:
{ "niyetler": [{
"slots": [{ "name": "status", "type": "TV_Function" }, { "name": "tutar", "type": "AMAZON. NUMBER" }], "intent": "GPIOControlIntent " }] }
Ardından, 'Yuva Türü Ekle'yi tıklayın
'Tür Gir' alanına TV_Function yazın.
'Değerleri Girin' alanına aşağıdaki değerleri girin:
aç
kapat girişi değiştir sesi yükselt sesi azalt sesi kapat sesi aç
Ardından, aşağıdakileri 'Örnek Sözler' kutusuna kopyalayın/yapıştırın:
GPIOControlIntent {status}
{amount} ile GPIOControlIntent {status}
Devam etmek için 'İleri'yi tıklayın.
Hizmet Uç Nokta Türü olarak 'HTTPS'yi seçin ve bir bölge seçin. 2. adımdaki ngrok URL'sini girin ve 'İleri'yi tıklayın. URL şöyle bir şey olmalıdır:
ed6ea04d.ngrok.io
Devam etmek için 'İleri'ye tıklayın ve 'Kaydet'e basın.
Adım 9: Alexa Beceri Kurulumunu Işıklar
Açık beceriyi kapatın ve "Yeni Beceri Ekle"yi seçin.
Beceri Adını 'Işık Kontrolü'ne ve Çağrı Adını beceriyi etkinleştirmek için kullanmak istediğiniz sözcük(ler)e ayarlayın.
Devam etmek için 'İleri'yi tıklayın. Aşağıdakileri 'Intent Schema' kutusuna kopyalayın/yapıştırın:
{
"intents": [{ "slots": [{ "name": "status", "type": "LIGHTS_CONTROL" }], "intent": "LightsControlIntent" }] }
Ardından, 'Yuva Türü Ekle'yi tıklayın.
"Türü Girin" alanına "LIGHTS_CONTROL" yazın.
'Değerleri Girin' alanına aşağıdaki değerleri girin:
üzerinde
kapalı
Ardından, aşağıdakileri 'Örnek Sözler' kutusuna kopyalayın/yapıştırın:
LightsControlIntent dönüş {status}
Devam etmek için 'İleri'yi tıklayın. Hizmet Uç Nokta Türü olarak 'HTTPS'yi seçin ve bir bölge seçin. 2. adımdaki ngrok URL'sini girin ve 'İleri'yi tıklayın. URL şöyle bir şey olmalıdır:
ed6ea04d.ngrok.io
Devam etmek için 'İleri'ye tıklayın ve 'Kaydet'e basın.
Adım 10: Hayran Alexa Beceri Kurulumu
Açık beceriyi kapatın ve "Yeni Beceri Ekle"yi seçin.
Beceri Adını 'Fan Kontrolü'ne ve Çağrı Adını beceriyi etkinleştirmek için kullanmak istediğiniz sözcük(ler)e ayarlayın.
Devam etmek için 'İleri'yi tıklayın.
Aşağıdakileri 'Intent Schema' kutusuna kopyalayın/yapıştırın:
{
"intents": [{ "slots": [{ "name": "status", "type": "FAN_CONTROL" }], "intent": "FANControlIntent" }] }
Ardından, 'Yuva Türü Ekle'yi tıklayın.
"Türü Girin" alanına "FAN_CONTROL" yazın.
'Değerleri Girin' alanına aşağıdaki değerleri girin:
üzerinde
kapalı
Ardından, aşağıdakileri 'Örnek Sözler' kutusuna kopyalayın/yapıştırın:
FANControlIntent dönüşü {status}
Devam etmek için 'İleri'yi tıklayın. Hizmet Uç Nokta Türü olarak 'HTTPS'yi seçin ve bir bölge seçin. 2. adımdaki ngrok URL'sini girin ve 'İleri'yi tıklayın. URL şöyle bir şey olmalıdır:
ed6ea04d.ngrok.io
Devam etmek için 'İleri'ye tıklayın ve 'Kaydet'e basın.
Adım 11: Devreyi İnşa Edin
Devreyi şemada gösterildiği gibi bağlayın. Evlerime AC 120v hattına ve toprağa bağlanmak için bir JBtek 8 Kanal DC 5V Röle Modülü kullandım.
Adım 12: Alexa Komutları
Artık oturma odanızı kontrol etmek için aşağıdaki komutlar Alexa ile konuşulabilir.
Önerilen:
Oturma Süresi İzleyici Nasıl Yapılır: 7 Adım
Oturma Süresi İzleyici Nasıl Yapılır: Bu proje, bir kişiyi tespit etmek ve izlemek için Zio Qwiic Ultrasonik Mesafe Sensörünü kullanacak. Cihaz, oturan kişinin bilgisayarının önüne bakan bir ekranın/monitörün üzerine stratejik olarak yerleştirilecektir
Otomatik Oturma/Kalkma Masası: 14 Adım (Resimli)
Otomatik Oturma/Ayağa Kalma Masası: **LÜTFEN BU EĞİTİM İÇİN OY VERİN!**..İlk şüphelerime rağmen, son üründen çok memnunum!İşte burada, otomatik oturma/kalkma masasını alıyorum
Shelly ile Film için Oturma Odası: 4 Adım
Shelly ile Film için Oturma Odası: Proje Yönetici özetiOdamı film izlemek için konforlu hale getirmek için google ev rutinlerini kullanarak çok basit bir otomasyon nasıl oluşturulur
RFID Oturma Planı: 7 Adım
RFID Oturma Planı: Düğün masaları tablom için özel bir şey yapmak istedim ve elektronik projelere olan sevgimi (bağımlılığımı) yansıttığı için bunun kişiselleştirmenin iyi bir yolu olduğunu düşündüm. Bu yüzden plan büyük bir tahta yapmaktı. oda planı ile panel
OTURMA ODAMDA LED TAŞKIN IŞIK !!!: 6 Adım
OTURMA ODAMDA LED TAŞKIN IŞIK !!!: "ekstra" için 18 LED Ampul; parlaklık