Ahududu Pi ve Arduino ile Ev Otomasyonu Rehberi

  • Harry James
  • 0
  • 4497
  • 893
reklâm

Daha önce Arduino ve Raspberry Pi'nin göreceli değerleri hakkında konuştuk - her birinin güçlü yanları var. Yine de bir seçim ya da seçim yapmaları gerekmez - her iki dünyanın en iyisini elde etmek için onları birleştirin. Ev otomasyonu bunun için mükemmel bir adaydır. Ev otomasyonu pazarı, birbiriyle uyumlu olmayan ve kurulumu pahalı olan pahalı tüketici sistemleriyle doludur. Bir Ahududu Pi'niz varsa Ahududu Pi: Resmi olmayan Eğitim Ahududu Pi: Resmi Olmayan Eğitim Kitabı Daha fazla bilgi edinmek isteyen şu anki bir Pi sahibi ya da bu kredi kartı boyutundaki cihazın potansiyel bir sahibi olsanız da, bu bir rehber değil özlemek istiyorum ve bir Arduino, zamana ve emeğe istekli olduğunuzu varsayarak temelde aynı şeyi fiyatın bir kısmında elde edebilirsiniz..

Güncelleme: Bu yazı yazıldığı için, Raspberry Pi ile çalışan ve Arduino'nun yanı sıra çok çeşitli kullanıma hazır akıllı ev kiti ile entegre edilebilecek ücretsiz ve açık kaynaklı bir ev otomasyon platformu olan OpenHAB'ı keşfettim. Sinsi bir zirve için aşağıdaki videoyu izleyin, ardından Raspberry Pi'de OpenHAB ile Başlarken Raspberry Pi'de OpenHAB ile Başlarken Raspberry Pi'de OpenHAB Ev Otomasyonu ile Başlayın RasHberry Pi'de OpenHAB Ev Otomasyonu ile Başlayın OpenHAB, olgun, açık kaynaklı bir ev otomasyonu Çeşitli donanımlarda çalışan ve protokolden bağımsız olan ve bugün piyasadaki hemen hemen tüm ev otomasyon donanımlarına bağlanabileceği anlamına gelen bir platform. daha fazla bilgi edinmek için rehber.

Heimcontrol.js, Raspberry Pi'de çalıştırılmak üzere oluşturulmuş bir Node.js uygulamasıdır. Bir Arduino ve bazı kullanıma hazır uzaktan kumanda soketleri ile birlikte, AC cihazlarının kontrolünü kolaylaştırır. Sıcaklık sensörleri ekleyebilir ve hatta TV'nizi kontrol edebilirsiniz - ancak bugün işleri temelde tutacak ve projeyi daha sonraki bir derste genişleteceğiz..

İşte projenin bir dökümü:

  • Ahududu Pi beyinleri ve işlemlerin ağ geçidi gibi davranacak - bir Node uygulamasını çalıştıracak, bir Mongo veritabanına bağlı olacak ve ön uç arayüzünü herhangi bir web tarayıcısına sunacak.
  • Pi'den güç alan bir Arduino, şimdilik elektronikler arasında iletişim kuracak - radyo kontrol güç anahtarları, şimdilik.

Bunu yapmak için, ihtiyacınız olacak:

  • Arduino ve Ahududu Pi
  • Bazı uzaktan kumandalı soketler ve denetleyiciler (bunları kullandım)
  • Elektrikli USB hub

Başlamadan önce, işte proje yaratıcısının kendisinden bir demo video.

Afresh'i başlat

Bu proje için Raspian kullanacağız. 11 Raspberry Pi İşletim Sistemleri Deneyebileceğiniz 11 Raspberry Pi İşletim Sistemleri Deneyebileceğiniz Raspberry Pi projeniz ne olursa olsun, bunun için bir işletim sistemi var. İhtiyaçlarınız için en iyi Raspberry Pi İşletim Sistemini bulmanıza yardımcı oluyoruz. ve daha önce başka korsanlarla uğraşırsanız, yeni bir kurulumdan başlamanızı şiddetle tavsiye ederim. En son Raspian görüntüsünü indirin, SD kartınıza kopyalayın ve dosya sistemini genişlettiğinizden ve SSH'yi etkinleştirdiğinizden emin olun. Bu kılavuzun geri kalanı bunu yaptığınızı varsaymaktadır ve varsayılan kullanıcıyı kullanarak SSH üzerinden bağlanmaktadır..

Bunu daha önce yapmadıysanız, bu video SD kartınızı OS X’te hazırlama işlemini açıklar:

Ve bu Windows kullanıcıları için:

Hazırlık

Yükleme işlemi oldukça zahmetli ve buradaki talimatlardan kaynaklanıyor. Ne yazık ki, bunlar modası geçmiş ya da Raspiyan için tasarlanmadı, bu yüzden onları çok aşağıya ayarlarım. Aşağıdaki kodlar çoğunlukla bloklara yapıştırılabilir - tek tek yapıştırmanız gerekmez. Pi'nin kendisiyle ilgili birkaç şey derlediğimiz için, tüm bu sürecin uzun zaman alacağı konusunda uyarılırsınız. Git kendini bir bardak çay yap derim - ama “uzun zaman”, Günün en iyi kısmını kastediyorum - yani 178 bardak daha uygun olur.

Tüm komutlar Terminal'e yazılmalıdır ve bazı noktalarda Enter tuşuna basmanız gerekebilir. Bu ilk birkaç komut sistemi günceller ve önkoşulları kurar:

sudo apt-get güncelleme sudo apt-get yükseltme sudo apt-get yükleme git-çekirdek git scons inşa-temel scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-seçenekleri-dev libboost-thread-dev libboost-filesystem-dev 

Sonra Düğümü yüklememiz gerekiyor:

sudo mkdir / opt / node wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz tar xvzf node-v0.10.2-linux-arm-pi. tar.gz sudo cp -r düğümü-v0.10.2-linux-arm-pi / * / opt / düğümü sudo ln-s / opt / düğüm / bin / düğüm / düğüm / usr / yerel / bin / düğüm sudo ln -s / opt / node / bin / npm / usr / yerel / bin / npm 

İşletim sisteminin Düğümün nerede olduğunu bilmesi için profilinize bir PATH değişkeni ekleyin. Nano metin editörünü aşağıdaki gibi kullanın:

sudo nano / etc / profile 

Yazan satırı bulun PATH ver ve ile değiştirin:

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" dışa aktarma PATH 

Çıkmak için Ctrl-X tuşlarına basın ve kaydetmek için Y tuşuna basın..

Yol değişikliklerinin etkili olması için oturumu kapatıp tekrar açmanız gerekebilir, ancak şu komutu kullanarak test edebilirsiniz:

hangi düğüm 

Düğüm ikiliyi gösteren herhangi bir çıktı bulamazsanız, bir şeyler ters gitti.

Mongo

Bir sonraki iş Mongo'yu kurmak. Mongo, giderek artan oranda web uygulamaları tarafından kullanılan bir belge tabanlı No-SQL veritabanıdır. Ne yazık ki, onu derlemek zorunda kaldığımızdan emin olmak için bu sonsuza kadar sürecek. Aşağıdaki komutları çalıştırırken, aşağıdaki gibi birçok hata alırsınız:

standard input: 13085: Dikkat: swp b kullanımı bu mimari için uygun değil 

Bunlar hakkında endişelenme. Bu yüzden, Mongo'yu kurmak için şu komutları çalıştırın:

git klon git: //github.com/RickP/mongopi.git cd mongopi scons sudo scons - önre = / opt / mongo yükleme scons -c 

Bu iş bittiğinde, izin sorunlarını düzeltmek ve başlangıçta çalıştığından emin olmak için önce biraz daha kursa ihtiyacımız var.

sudo useradd mongodb sudo mkdir / data / dbb sudo chown $ USER / veri / db cd /etc/init.d sudo wget -O mongodb https://gist.github.com/ni-c/fd4df404b406bda6e87fb718/raw/36d45897d4df404b406bda6e87fb718/raw .sh sudo chmod + x mongodb sudo güncelleme-rc.d mongodb varsayılanları mongod

Bu son komut Mongo sunucusunu başlatacak ve diğer komutlara devam etmek için yeni bir Terminal açmanız gerekecek. Bu adımdan tam olarak emin değilim, bu yüzden eğer birisi Mongod'un başlangıçta otomatik olarak başlatılması konusundaki yorumlarında bunu düzeltebilirse, çok memnun olurum. Şimdilik, işe yaramaz, zarif değil.

sudo kapatma -r şimdi

Son olarak, Heimcontrol.js Düğüm uygulamasını kurma zamanı.

cd ~ pi git klon git: //github.com/ni-c/heimcontrol.js.git cd heimcontrol.js npm kurulum 

Yazarak uygulamayı çalıştırmaya başlayabilirsiniz.

 heimcontrol.js düğümü 

Bu noktada kontrol arayüzüne erişebilmeniz gerekir. http: // localhost: 8080 Pi'den alın veya farklı bir bilgisayardan erişiyorsanız localhost'u IP adresi ile değiştirin (ve ayrıca bağlantı noktası iletmeyi de ayarlayabilirsiniz) Bağlantı Noktası Yönlendirme Nedir ve Bana Nasıl Yardımcı Olabilir? [MakeUseOf Açıklaması] Bağlantı Noktası Yönlendirme Nedir? Bana Nasıl Yardım Edebilir? [MakeUseOf Explains] Birisi size limanı yönlendiren bir sorun olduğunu söylediğinde içeride biraz ağlıyor musunuz ve bu yüzden parlak yeni uygulamanızın işe yaramadığını mı düşünüyorsunuz? reddetmek… (dünyanın her yerinden ona erişmek için), bu yüzden Arduino'yu eklemeden önce etrafı karıştırmanı ve hepsinin veri tabanı ile çalışıp çalışmadığını kontrol etmeni öneririm..

Donanım

Sonunda kablolu bir röle istiyorum, ancak şimdilik radyo kontrollü anahtarların daha güvenli seçeneğini kullanacağım.

Maplin'den 3 soketle gelen oldukça ucuz £ 20 takımlar kullandım ve uzaktan kumandayı açtım, böylece içerdeki 433 MHz çip ile doğrudan arayüze geçebiliyorum. Bunun için talimatları burada buldum.

Ayrıca, eBay'de veya hobi elektroniği tedarikçilerinden kullanıma hazır 433 MHz vericileri satın alabilirsiniz. Tek yapmanız gereken VCC'yi Arduino, GND'ler ve tek bir kontrol pimindeki 5 V'a bağlamak - hangisini kullandığınızı hatırlayın. (Willi Thiel'den şematik)

Eklenti göndererek çalışır “tristate kodları”, ancak bunlar üreticiye göre değişecektir. Tam kodlarınızı bulmak için RCSwitch belgelerine bakın. Bu wiki rehberi ayrıca yardımcı olabilir.

Arduino ile iletişim duino adı verilen bir Node kütüphanesi kullanılarak yapılır. Çalışıyorsa Heimcontrol uygulamasını durdurun ve Arduino köprüsünü aşağıdaki komutu kullanarak kurun.

npm duino yüklemek 

Arduino bu kodu yüklemiş olmalı - Bunu farklı bir bilgisayardan yüklemek için kopyalayıp yapıştırmanızı öneririm. Temelde Pi'nin seri komutlarına cevap veren bir dinleyici programı, ancak onu kendi özelliklerinizle genişletmenizi durduracak hiçbir şey yok.

Web uygulaması başlatıldığında, Ayarlar menü> Arduino.

Buradan, RCSwitch yöntemini, vericinizin pimini ve tristate adres kodunu seçerek yeni bir öğe ekleyebilirsiniz. Kaydetmeyi unutmayın, ardından yeni düğmeniz için ana ekran ekranına dönün.

Hatalar:

Kodda hata ayıklamadan birkaç saat sonra, tek haneli pin numaralarının çalışmadığını gördüm - vericinizin pin üzerine yerleştirildiğinden emin olun 10 emin olmak.

Ayrıca, Arduino eklentisinin, alıcılarımın ihtiyaç duyduğu tristate kodları için hatalı son bitlerle kodlanmış olduğunu da tespit ettim. İlk önce küçük bir açıklama: tristate kodları 3 bayt bilgi içermektedir. Birincisi bize ağ numarasını (1-4) belirler ve ikincisi alıcı-verici adresini sağlar (yine, 1-4, maksimum 16 adreslenebilir soket üretir). Son bayt iki bit dolgudan oluşur, artı açma / kapama için 2 bit. Maalesef, son bayt Arduino eklentisine kodlanmış - ve benim durumumda açma / kapama kodu yanlış.

El ile düzenlemek zorundaydım eklentileri / Arduino / index.js Doğru kodları kullanmak için Benim gibi aynı uzaktan kumanda soketlerini kullanıyorsanız, 80. satırları şu şekilde değiştirin:

// eğer if (item.value) dönüş that.pins [item.pin] .triState döndürün (item.code + "FFFF"); // FF0F ile değiştiriniz return that.pins [item.pin] .triState (item.code + "FFF0"); // FF00'dan değiştir

İşte çalışan her şeyin bir demo videosu:

Bu noktada burada bırakacağım, ancak sensör okumaları ve IR uzaktan kumandaları da desteklenmektedir. Muhtemelen bunları biraz daha geliştirmelerle daha sonraki bir tarihte tekrar ziyaret edeceğim. Bunların hepsi sizin için biraz karmaşık olmuşsa, belki de başlangıç ​​seviyesindeki Arduino projelerini inceleyin. 15 Yeni Başlayanlar İçin Büyük Arduino Projeleri 15 Yeni Başlayanlar İçin Büyük Arduino Projeleri Arduino projelerine ilgi duyuyor ancak nereden başlayacağınızdan emin değil misiniz? Bu başlangıç ​​projeleri size nasıl başlanacağınızı öğretecek. .




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.