İçindekiler:

Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri): 6 Adım
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri): 6 Adım

Video: Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri): 6 Adım

Video: Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri): 6 Adım
Video: Patron görmesin :) 2024, Temmuz
Anonim
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)
Raspberry Pi RF Uzaktan Kumandalı Şebeke Prizleri (Güç Fişleri)

Raspberry Pi kullanarak ucuz 433MHz elektrik prizlerini (duvar prizleri) kontrol edin. Pi, prizlerin uzaktan kumandasından çıkan kontrol kodlarını öğrenebilir ve bunları evdeki herhangi bir veya tüm uzak prizleri etkinleştirmek için program kontrolü altında kullanabilir.

Tasarım, harici internet bağlantısına (yani) 'Nesnelerin İnterneti'ne dayanmaz ve bu nedenle (IMHO) web tabanlı denetleyicilerden çok daha güvenlidir. Bununla birlikte, Google Home ile entegrasyonu denedim, ancak komutların yürütülmesi bazen birkaç on saniye sürdüğünde veya hiç yürütülmediğinde yaşama isteğimi çabucak kaybettim.

Noel zamanı çevresinde bariz bir uygulama, Noel ağacı ışıklarını ve (eğer bu şekilde eğimliyseniz) dış ekran ışıklarını kontrol etmektir. Bu basit bir kullanım olsa da, bu Eğitilebilir Tabloyu oluşturarak, sensör girişlerine ve Linux Motion çalıştıran Raspberry Pis gibi ev ağınızdaki diğer cihazlara yanıt verebilen süper esnek bir soket denetleyicisine sahip olacaksınız.

Örneğin, 'Hareket' çalıştıran bir kamera mutfakta bir hareket algıladığında yanan ve beş dakika boyunca hiçbir işlem yapılmadığında onları kapatan bir dizi mutfak ışığım var. Gerçekten iyi çalışıyor!

Google Play mağazasından 'Tasker' ve 'AutoTools SSH' ile her türlü süslü telefon tabanlı uzaktan kumandayı kurabilirsiniz.

Proje, eBay'de yaygın olarak bulunan ucuz 433MHz alıcı ve verici kartlarına dayanıyor. Bunlar (en azından Birleşik Krallık'ta) uzaktan kumandalarla satılan 433MHz uzak şebeke prizleriyle uyumludur. Projem, yeni uzaktan kumanda komut setlerinin kolay ve hızlı bir şekilde dahil edilebilmesi için bir alıcı içeriyor. Unutulmaması gereken bir nokta - İngiltere'de bulunan uzak prizler iki şekilde geliyor gibi görünüyor - soket üzerindeki bir anahtar tarafından programlanan bir kimliğe sahip olanlar ve uzaktan kumandadan programlamaya bağımlı olanlar. Bu proje her ikisi ile de uyumludur, ancak ilki bir elektrik kesintisinde kimliğini kaybetmez ve bu nedenle tercih edilir.

Proje eski bir yönlendirici kasası kullanıyor - Bunlardan birkaçına sahibim ve güç, ethernet, USB ve anten(ler) gibi gerekli harici konektörlerin çoğuna kolayca sahipler. Kullandığınız şey, elinizde bulunanlara bağlı olacaktır, bu nedenle bu Eğitilebilirlik, adım adım talimatlardan ziyade genel bir kılavuz olarak muhtemelen daha kullanışlıdır.

Bu proje için kesinlikle gerekli olmasa da, bir soğutma fanı ve kontrol kartı da ekledim. Fan olmadan Pi oldukça ısınabilir (yaklaşık 60°C). Ayrıntılar daha sonraki bir Eğitilebilir Dosyada sağlanabilir.

Programcı olmadığımı belirtmeliyim. Yazılım (çoğunlukla) Python'da yazılmıştır ve akıllıca şeyler ne yaptığını bilen insanlardan kopyalanmıştır. Yapabileceğim kaynakları kabul ettim - herhangi birini kaçırdıysam, lütfen bana bildirin, metni düzelteceğim.

Instructable, bir miktar lehimleme yeteneği ve Python, Bash ve Pi'nizle SSH aracılığıyla konuşma konusunda geçici bir aşinalık olduğunu varsayar (talimatları mümkün olduğu kadar kapsamlı hale getirmeye çalışacağım). Aynı zamanda İngiliz İngilizcesi ile yazılmıştır, bu nedenle havuzun diğer tarafında okuyorsanız, lütfen kelimelerdeki fazla harfleri ve şeylerin garip isimlerini (örneğin, 'şebeke prizleri' gibi bir şey olarak bileceksiniz) görmezden gelin. 'duvar prizleri').

Herhangi bir yorum, önerilen iyileştirmeler ve kullanımlar vb. de memnuniyetle karşılanır!

Adım 1: Vaka Hazırlığı

Vaka Hazırlığı
Vaka Hazırlığı
Vaka Hazırlığı
Vaka Hazırlığı
Vaka Hazırlığı
Vaka Hazırlığı

Bu proje için eski bir TP-Link TD-W8960N yönlendirici kullandım. Güzel bir boyut ve bir kez içine nasıl gireceğimi öğrendiğimde üzerinde çalışmak oldukça kolay.

Ayrıca yönlendiricinin 12v @ 1A güç kaynağını da korudum, bu güç biraz düşük ama pratikte bu uygulama için uygun.

Kasanın açılması, kasanın altındaki iki vidanın çıkarılması ve ardından klipslerin açılmasını kolaylaştırmak için kasanın kenarında bir meraklı alet kullanılması meselesidir. İki vida, kasanın arkasındaki lastik ayakların altındadır (kırmızı oklara bakın). Açılması en zor olan klipsler öndekiler ama ben inandım ve levyeme eğildiler.

Kasa açıldığında, anten konektörlerindeki iki somunu sökün ve devre kartı kaldırılabilir.

Daha sonra her iki anteni de kullanacağınız için, devre kartındaki koaksiyel uçları lehimleyin ve bir kenara koyun.

Cesur hissediyorsanız (benim gibi), basmalı anahtarı, dc soketini ve RJ45 soketlerini devre kartından çıkarabilirsiniz. Bunu yapmanın en iyi yolu, kartı bir mengeneye tutturmak ve uygun bir ince kasa açma aleti veya tornavida ile ödüllendirirken bir ısı tabancasından ısı uygulamaktır. Mantık, tüm lehim bağlantılarının aynı anda eritilmesi ve her bağlantıda bir havya kullanılmasına kıyasla bileşenin plastik kasası üzerindeki genel ısı stresinin azaltılmasıdır. En azından teori bu. Uygulamada, biraz şans söz konusudur! Ne kadar ısı uygulanacağı bir karar meselesidir, ancak dikkatli olun ve çok az tarafta hata yapın. Her şey yolunda giderse, fotoğrafta gösterilen kullanılabilir bileşenler elde edeceksiniz (ancak erimiş düğme düğmesini ve hafif deforme olmuş RJ45 soket şeridini fark edeceksiniz!).

Aksi takdirde, bitlerinizi satın almak için internete kapalıdır.

Adım 2: Parça Listesi

Raspberry Pi - Herhangi bir lezzetin işe yarayacağından şüpheleniyorum ama 3B+ kullandım

433MHz verici kartı - eBay'de 'Arduino Arm Mcu Wireless için Alıcı Kitli 433MHz RF Verici' veya benzerini arayın

433MHz alıcı kartı - aynen. Genellikle çift başına 1,98 £

LM2596 Buck regülatörü - eBay, tipik olarak 1,95 £. Pi için 12v gücünü 5v'ye dönüştürmek için

Hafif boru - eBay'de 'Fiber Optik Kablo - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 /3 mm Çap - Işık Kılavuzu' araması yapın - 2 mm boru kullandım ancak 1,5 mm ile çalışmak daha kolay olurdu (£ ödedim 1m için 2,95)

2 kutuplu minyatür geçiş anahtarı (olması güzel ama isteğe bağlı)

USB tipi A 180° lehimlenebilir soket - eBay aracılığıyla on tanesine 1,90 £ ödedim

Çift kutuplu basmalı anahtar (olması güzel ama isteğe bağlı) - Benimkini modem/yönlendirici kartından aldım

RJ45 soket(ler)i - modem/yönlendirici kartından kurtarıldı

DC güç soketi - eBay üzerinden (10X DC Güç Kaynağı Jak Soketi Dişi Panel Montaj Konnektörü 5,5 x 2,1 mm £0,99)

430MHz antenler - modemin/yönlendiricinin 2GHz antenlerini dönüştürün

12v dc 12W güç kaynağı (minimum) - ideal olarak bu, modem/yönlendirici ile birlikte gelir. Değilse, yukarıdaki dc güç soketinin kullandığınızla eşleştiğinden emin olmanız gerekir. 12v gereksinimi 433MHz verici tarafından belirlenir

Soğutma fanı modunun parçaları daha sonraki bir Talimatta detaylandırılacaktır.

3. Adım: Sarf Malzemeleri ve Araçlar

Aşağıdaki sarf malzemelerine ihtiyacınız olacak:

Lehim (gerektiği gibi)

Sıcakta eriyen yapıştırıcı (gerektiği gibi)

Ara bağlantı kablosu - (örn.) 22 & 24AWG (gerektiği gibi)

Isıyla daralan makaron (gerektiği gibi)

Kurban Kedi. 5 ethernet yama kablosu

Kurbanlık USB 2 yama kablosu.

Aletler:

Tel striptizci

Tel kesiciler (tercihen düz kesiciler)

Ödüllendirme aracı

Kasayı ayırmak için uygun tornavida.

Havya

Tutkal tabancası

Saç kurutma makinesi (hafif boruları bükmek ve herhangi bir hazırlıksız kuaför kesintisi için)

433MHz FM iletişim alıcısı (isteğe bağlı - verici sorunlarını gidermek için) - (örn.) AR1000

Adım 4: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Pi ve yardımcı panoları nasıl monte ettiğiniz, kullandığınız duruma bağlıdır. Fotoğraflar ne yaptığımı gösteriyor.

Pi, kabaca kasanın ortasına oturur ve çeşitli konektörlerin kullanılması için yeterli alana izin verir (pi ile SSH (yani) 'başsız' aracılığıyla iletişim kurulduğundan HDMI kullanılmadığını unutmayın.

Pi'yi birkaç kurtarılmış plastik tutturucu kullanarak tabana bağladım (resme bakın). Kutu portatif kullanım için tasarlanmadığından, sadece iki bağlantı elemanı kullanarak kurtulabilirsiniz. Ayırmalı 2,5 mm vidaları veya hatta sıcakta eriyen yapıştırıcıyı (geçmişte kullandığım) kolayca kullanabilirsiniz - sadece çok fazla kullanmadığınızdan emin olun ve kaçınılmaz olarak sahip olacağınız için alt kısımda herhangi bir yüzeye montaj bileşeninden kaçının. tahtayı bir anda çıkarmak için (ilk yapım yasası - onu parçalara ayırmanız gerekecek)).

Çeşitli panoları kasanın kenarlarına sabitlemek için sıcak tutkal kullandım. Yukarıdaki ile aynı düşünceler geçerlidir.

Her şey yerine oturduğunda, işleri bağlayabilirsiniz.

Blok şema, kullandığım kablolama şemasını göstermektedir. Verici ve alıcı kartları arasındaki gücü değiştirmek için isteğe bağlı geçiş anahtarını kullandığımı unutmayın - muhtemelen bunu yapmak için çok az risk vardır, ancak aktarım sırasında alıcıyı kızartmak istemedim.

Ayrıca, basmalı anahtarın Pi'yi zarif bir şekilde kapatmak için kullanılmış olabileceği de aklıma geldi (internette çok sayıda tasarım mevcut). Rahatsız etmedim - bu durumda basit bir açma/kapama düğmesi görevi görür. Anahtara basmadan önce Pi'yi SSH üzerinden kapatmaya dikkat etmem gerekiyor.

Pi üzerindeki iki LED'den ve güç kaynağı durum LED'inden gelen ışığı kasanın önüne yönlendirmek için kullanılan ışık borularına dikkat edeceksiniz. Boruları bükmek için saç kurutma makinesinden gelen ısıyı kullandım (kesinlikle bir ısı tabancası kullanmak istemezsiniz!). Bu çok deneme yanılma ama sonuçta değerli çünkü yazılıma ve harici LED'lere güvenmek yerine LED'lerin neyi işaret ettiğini doğrudan görebilirsiniz. Tabii ki senin seçimin. Boruların kesilmesi keskin bir çift tel kesici ile yapılır (düz kesiciler en iyisidir), ancak keskin makas da kullanabilirsiniz. Yine, boruları yerinde sabitlemek için sıcakta eriyen yapıştırıcı kullanılabilir, ancak yapıştırıcı boruları deforme edebileceğinden, yalnızca küçük bir miktar kullanmaya dikkat edin - ki bu hızla soğur.

İdeal olarak, antenleri değiştirmelisiniz. Tipik olarak 2GHz'de çalışacak şekilde boyutlandırılacaklar ve 433MHz'de kullanıldıklarında çok verimsiz antenler yapacaklar.

Bunu yapmak için, anten kablosunu ortaya çıkarmak için önce anten kapağını çıkarmalısınız. Kapak her antenden sadece küçük bir miktar ödülle çıktığı için şanslı olduğumu düşünüyorum.

Orijinal 2GHz anteni çıkarmak ve yardımcı baltayı açığa çıkarmak için gösterilen yeri kesin. İç çekirdeğe dikkatlice erişin, örgüyü iyice çıkarın ve gösterildiği gibi yeni bir tel parçasına lehimleyin. Yeni telin uzunluğu kabaca 1/4 dalga boyunda 433MHz (yani) uzunluk = 0.25 * 3E8/433E6 = 17cm'dir. Alt kısım, tüm uzunluğun anten kapağına sığması için küçük bir matkap ucu veya benzeri kullanılarak sarılabilir.

Yeniden monte etmeden önce, iç ve dış anten kontakları arasında kısa devre olmadığını kontrol edin.

Verici antenini yalnızca 'sağır' bir alıcı olarak modifiye ettim, RF uzaktan kumanda kodlarını öğrenirken muhtemelen avantajlıdır (ileriye bakın).

Ethernet bağlantısı, fedakar bir Cat. Modemden kurtarılan RJ45 soketine giden 5 ara bağlantı kablosu. Kabloyu Pi ethernet soketi ile RJ45 kasa soketi arasındaki mesafeye uyacak şekilde kesin ve sekiz kabloyu da çıplak bırakın. Kablo pimi 1'i soket pimi 1'e vb. bağladığınızdan emin olmak için bir süreklilik test cihazı kullanın. Bunu yapmanın basit bir yolu, konektörü kabloladığınız sokete takmak ve soket kontakları ile çıplak kablo uçları arasında halka yapmaktır. Dört harici RJ45 soketinden yalnızca biri kullanıldığından, daha sonra utanç verici hataları önlemek için kablolu soketi uygun şekilde işaretleyin.

Aynı şekilde, USB konektörü, fedakar bir USB 2 yama kablosu, kablolu pim 1'den pim 1'e vb. kullanılarak bağlanır. Dış dünya USB konektörü, telefon hattı soketinin kasada bıraktığı delik kullanılarak kasadaki yerine sıcak yapıştırılır.

Adım 5: Verici Notları

Verici Notları
Verici Notları
Verici Notları
Verici Notları
Verici Notları
Verici Notları

Kullandığım 433MHz gönderme ve alma kartları internette her yerde mevcut ve çok ucuz oldukları için her birinden iki çift sipariş ettim (deneysel düzeltmelere izin vermek için). Alıcıların güvenilir olduğunu buldum, ancak kullandığım vericinin güvenilir şekilde çalışması için değiştirilmesi gerekiyordu.

Satın aldığım* FS1000A vericisinin devresi şemada gösterilmiştir. Deneme yanılma yoluyla, bir şeyin çalışmasını sağlamak için C1 SoT (test sırasında seçin) konumuna bir 3pF kapasitörün kurulması gerektiğini buldum. 430MHz'i kapsayan bir geniş bant alıcım olduğu için bu sorunu gidermek nispeten kolaydı. Alıcı olmadan nasıl test edebileceğiniz ilginç bir soru….

*Not: İlk ikisini çalıştıramadıktan sonra ikinci bir çok verici aldım. Bunların hepsi kollektör bobini eksik geldi. Hımm!

Çöp kutumda 3pF kapasitör vardı ama sanırım çoğu insan için durum böyle olmayacak ve her durumda gereken değer daha fazla olabilir, diyelim 7pF. İki bit bükümlü tel ile kaba bir değiştirme yapılabilir (tanıdığım bükümlü çift kablo, size uzunluk konusunda bir kılavuz vermek için ayak başına yaklaşık 100pF kapasitansa sahiptir), ancak başka sorunlar ortaya çıkabileceğinden önerilmez. Umarım şanslı olursunuz ve böyle bir sorununuz olmaz. Her zaman daha pahalı (ve dolayısıyla muhtemelen) daha iyi yapılmış bir verici satın alabilirsiniz.

Ayrıca vericinin frekansının çok kesin veya kararlı olmadığını ancak pratikte uzak soketleri güvenilir bir şekilde çalıştırmak için yeterince iyi olduğunu unutmayın.

Lütfen ayrıca vericideki 'ANT' kelimesinin bitişiğindeki kaplamalı deliğin anten bağlantısı DEĞİL olduğunu unutmayın - bu, köşede işaretsiz olandır (fotoğrafa bakın). Bu yaptığım ilk hataydı….

Kullanışlı bir şekilde 'ATAD' olarak işaretlenmiş pin bağlantısı, elbette 'DATA'yı okumalıdır.

6. Adım: Yazılıma Genel Bakış

Yazılıma Genel Bakış
Yazılıma Genel Bakış

Lütfen unutmayın ben programcı değilim. Daha önce de belirtildiği gibi, zekice olan şey diğer insanların kodudur ama ben onu sıkıştırmak ve birlikte çalışması için uyarlamak için yeterince bilgim var. Bu aynı zamanda kod ile yayınladığım ilk Eğitilebilir Dosyadır, bu yüzden yanlış yaptıysam özür dilerim! Herhangi bir sorunuz varsa, lütfen bunu aklınızda bulundurun…

Kullandığım temel yazılım aşağıdaki gibidir:

  • Raspbian Stretch Lite
  • PiGPIO (servo vb. sürmek için harika bir kitaplık)
  • _433.py kodu (RF kontrol kodlarını kodlamak ve kodunu çözmek için) - PiGPIO web sitesinden bağlantılıdır.
  • Python3 (Raspbian ile birlikte gelir)

Kullandığım ek yazılımlar:

  • pyephem (şafak ve alacakaranlık zamanlarını hesaplar - ışık geçişi için kullanışlıdır)
  • Android telefonumda uzaktan kumanda oluşturmak için mükemmel 'Tasker' ve 'AutoTools SSH' - fotoğrafa bakın (her ikisi de Google Play mağazasında mevcuttur). [Bir Tasker 'sahnesinin' nasıl oluşturulacağı, oldukça dik bir öğrenme eğrisi olduğu için bu Eğitilebilir Tablonun kapsamı dışındadır, ancak ne yaptığımı tartışmaktan mutluluk duyuyorum]

Kendi kodum (Python'da). Ham ama işlevsel:

  • tx.py - uygun kodu 433MHz vericiye gönderen menü ve/veya komut satırı bağımsız değişken yazılımı.
  • şafak-alacakaranlık - bulunduğum yerdeki şafak ve alacakaranlık zamanlarını hesaplar ve kullanıcı crontab'ını günceller (Noel ağacı ışıkları vb. için kullanılır)

Yukarıdaki kişisel koda GitHub üzerinden erişilebilir:

Projenin işlevselliği PiGPIO ve _433.py kodu ile sağlanmaktadır. İkincisi, 433MHz RF uzaktan kumandanızdan uzaktan kumanda komutlarını dinleyen ve zamanlama darbelerinin kodunu çözen bir alma işlevine sahiptir, bu da gönderme işlevi tarafından daha sonra kullanılmak üzere saklanabilen bir çıktı üretir. Bu, sistemin herhangi bir 'normal' 433MHz RF uzaktan kumandayı öğrenmesine izin verir. Prensip olarak, komşunuzun RF uzaktan kumandalarını da öğrenmek için kullanılabilir. Komşular rastgele çalan kapı zillerinin komik tarafını nadiren gördükleri için buna şiddetle karşı çıkıyorum. yapmazdım.

Kurmak

Bu uygulamadaki Pi, monitör veya klavye olmadan 'başsız' (yani) çalıştırıldığından, ssh aracılığıyla konuşmanız gerekir. Başsız bir Pi'nin nasıl kurulacağını anlatan çok sayıda kılavuz var, ancak işleri basit tutmak için Pi'yi önce bir monitör ve klavye ile başlattığınızı varsayacağım. Önyüklendikten sonra terminali başlatın ve 'sudo raspi-config' girin. '5'i seçin. Arabirim seçenekleri' ve ardından 'P2 SSH'. Ssh sunucusunu etkinleştirin ve raspi-config'i kapatın (muhtemelen yeniden başlatma ile sona erecektir).

Pi ile sonraki iletişimler daha sonra ssh aracılığıyla uzak bir terminalden gerçekleştirilebilir. Kodun Pi için sabit bir LAN IP adresi gerektirmediğini, ancak kesinlikle yardımcı olduğunu unutmayın (ve Tasker kontrolüne girerseniz kesinlikle gereklidir). Yine, bunun nasıl yapılacağını anlatan çevrimiçi birçok öğretici var. Ev yönlendiricim, Pi'nin MAC adresine sabit bir IP adresi atamama izin veriyor, bu yüzden Pi'nin kurulumunu düzenlemek yerine bu şekilde yapıyorum.

PiGPIO'yu yükleme:

Pi'ye ssh yazın ve aşağıdaki komutları girin:

sudo uygun güncelleme

sudo apt yükleme pigpio python-pigpio python3-pigpio

sudo apt git git

git klonu

sudo apt python3-RPi. GPIO'yu kurun

PiGPIO'yu önyüklemede çalıştırmak için:

crontab -e

aşağıdaki satırı ekleyin:

@reboot /usr/local/bin/pigpiod

433MHz RF uzaktan kodlarını iletmek ve kodunu çözmek için Python kodunu alın:

wget

_433_py.zip dosyasını açın

Sıkıştırılmamış _433.py dosyasını uygun bir dizine taşıyın (örn.) ~/software/apps

Yazma (bu dizinde)

_433.py

Pi'yi 433 rx moduna yerleştirir ve GPIO pin 38'de demodüle edilmiş RF uzaktan kumanda kodlarını bekler.

433MHz alıcı bağlandığında, yakınlarda bir 433MHz uzaktan kumanda kullanıldığında, ekranda aşağıdaki gibi bir veri görülecektir:

kod=5330005 bit=24 (boşluk=12780 t0=422 t1=1236)

Bu veriler, uzaktan kumandadan iletimi yeniden oluşturmak için Python programınızda kullanılır.

Bu verileri daha sonra kullanmak üzere bir dosyaya aktarmak için şunu çalıştırın:

_433.py > ~/software/apps/remotedata.txt

Verileri aldıktan sonra, bir sonraki adım, GitHub depomdan kopyalayabileceğiniz 'tx.py' kodunu düzenlemek için kullanmaktır. Bu kod, verileri 433MHz verici tarafından iletilecek uzak soket(ler) tarafından anlaşılan dalga formları oluşturmak için kullanır. Umarım gerekli düzenlemeler oldukça açık olacaktır ve gerisi size kalmış…..

Önerilen: