İlan

Daha önce Arduino ve Raspberry Pi'nin göreceli değerleri hakkında konuştuk - her birinin güçlü yanları var. Ya bir seçenek ya da seçim olmaları 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. Raspberry Pi'niz varsa Raspberry Pi: Resmi Olmayan Eğitimİster daha fazla bilgi edinmek isteyen mevcut bir Pi sahibi olun, ister bu kredi kartı boyutundaki cihazın potansiyel bir sahibi olun, bu kaçırmak istediğiniz bir rehber değildir. Daha fazla oku ve bir Arduino, zaman ve çaba harcamak istediğinizi varsayarak, aynı şeyi fiyatın bir kısmında elde edebilirsiniz.

Güncelleme: Bu yazı yazıldığı için ücretsiz ve açık kaynaklı bir ev otomasyon platformu olan OpenHAB'ı keşfettim Raspberry Pi üzerinde çalışır ve çok çeşitli hazır akıllı ev kiti ile entegre edilebilir Arduino. Hızlı bir zirve için aşağıdaki videoya göz atın, ardından

instagram viewer
Raspberry Pi'de OpenHAB ile çalışmaya başlama Raspberry Pi'de OpenHAB Ev Otomasyonuna BaşlarkenOpenHAB, çeşitli donanımlarda çalışan ve agnostik protokolü, yani piyasadaki neredeyse tüm ev otomasyon donanımlarına bağlanabilir bugün. Daha fazla oku Daha fazla bilgi için

Heimcontrol.js, Raspberry Pi'de çalışacak şekilde tasarlanmış bir Node.js uygulamasıdır. Arduino ve bazı 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 temel şeyleri koruyacağız ve projeyi daha sonraki bir öğreticide genişleteceğiz.

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

  • Raspberry Pi, beyin ve operasyonların ağ geçidi olarak görev yapacak - bir Nogo uygulaması çalıştıracak, bir Mongo veritabanına bağlı olacak ve herhangi bir web tarayıcısına ön uç arayüzünü sunacak.
  • Pi'den güç alan bir Arduino, şimdilik elektronik - radyo kontrol güç anahtarları arasında arayüz kuracak.

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

  • Arduino ve Ahududu Pi
  • Bazı uzaktan kumandalı soketler ve denetleyici (kullandım bunlar)
  • Elektrikli USB hub'ı
RC-prizler

Başlamadan önce, proje oluşturucunun kendisinden bir demo video.

Yeniden Başlat

Bu proje için Raspian'ı kullanacağız Raspberry Pi'nizde Çalışan 11 İşletim SistemiRaspberry Pi projeniz ne olursa olsun, bunun için bir işletim sistemi vardır. İhtiyaçlarınız için en iyi Raspberry Pi işletim sistemini bulmanıza yardımcı oluyoruz. Daha fazla oku ve daha önce başka saldırıları ve benzerlerini yaptıysanız yeni bir kurulumdan başlamanızı şiddetle tavsiye ederim. En son indir Raspian görüntü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ı varsayar ve varsayılan kullanıcıyı kullanarak SSH üzerinden bağlandığınızı varsayar.

Bunu daha önce yapmadıysanız, bu videoda SD kartınızı OS X'te hazırlama işlemi açıklanmaktadır:

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

Hazırlık

Kurulum işlemi oldukça zahmetli ve buradaki talimatlar. Ne yazık ki, bunlar modası geçmiş veya Raspian için tasarlanmamıştı, bu yüzden onları aşağıya doğru ayarladım. Aşağıdaki kodlar çoğunlukla bloklara yapıştırılabilir - tek tek yapıştırmanıza gerek yoktur. Pi'nin kendisinde birkaç şey derlediğimiz için, tüm bu sürecin uzun süreceği konusunda uyarıda bulunun. Kendinize bir bardak çay yapmayı söyleyebilirim - ama “uzun zaman” dediğimde, günün en iyi kısmını kastediyorum - bu yüzden 178 bardak daha uygun olurdu.

Tüm komutlar Terminal'e yazılmalıdır ve bazı noktalarda Enter tuşuna basmanız gerekebilir. Bu ilk birkaç komut sistemi güncelleyecek ve ön gereksinimleri yükleyecektir:

sudo apt-get güncellemesi sudo apt-get güncellemesi. sudo apt-get install git-core git scons build-essential scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-seçenekleri-dev libboost-thread-dev libboost-dosya sistemi-dev. 

Sonra Düğümü kurmamız gerekiyor:

sudo mkdir / opt / node. wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz. tar xvzf düğümü-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 / usr / yerel / bin / düğüm. sudo ln -s / opt / düğüm / bin / npm / usr / yerel / bin / npm. 

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

sudo nano / etc / profile. 

Yazan satırı bulun ihracat PATH ve aşağıdakilerle değiştirin:

NODE_JS_HOME = "/ opt / düğümü" PATH = "$ PATH: $ NODE_JS_HOME / bin" ihracat PATH.

Çıkmak için Ctrl-X 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 komutla test edebilirsiniz:

hangi düğüm. 

Düğüm ikilisine işaret eden herhangi bir çıktı almazsanız, bir şeyler ters gitti.

Mongo

Bir sonraki iş, Mongo. Mongo, web uygulamaları tarafından giderek daha fazla kullanılan belge tabanlı bir No-SQL veritabanıdır. Ne yazık ki, derlemek zorunda olduğumuz için bu kurulum sonsuza kadar sürecek. Aşağıdaki komutları çalıştırırken aşağıdaki gibi birçok hata alırsınız:

{standart girdi}: 13085: Uyarı: swp {b} kullanımı bu mimari için kullanımdan kaldırıldı. 

Bunlar için endişelenme. Yani, Mongo'yu kurmak için şu komutları çalıştırın:

git clone git: //github.com/RickP/mongopi.git. cd mongopi. scons. sudo scons --prefix = / opt / mongo yükleme scons -c. 

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

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

Bu son komut Mongo sunucusunu başlatır ve diğer komutlara devam etmek için yeni bir Terminal açmanız gerekir. Bu adımdan tam olarak emin değilim, bu yüzden mongod'un başlangıçta otomatik olarak başlatılmasına ilişkin yorumlarda kimse bunu düzeltebilirse, çok takdir edilecektir. Şimdilik, sadece zarif değil, çalışıyor.

sudo kapatma -r şimdi

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

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

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


düğüm heimcontrol.js. 

Bu noktada, kontrol arayüzüne aşağıdakilerle erişebilmelisiniz: http://localhost: 8080 Pi'den değiştirin veya farklı bir bilgisayardan erişiyorsanız localhost'u IP adresiyle değiştirin (ve ayrıca bağlantı noktası yönlendirmeyi ayarla Liman Yönlendirme Nedir ve Bana Nasıl Yardımcı Olabilir? [Açıklamalar MakeUseOf]Birisi size bir liman yönlendirme sorunu olduğunu söylediğinde biraz içeride ağlıyor musunuz ve bu yüzden parlak yeni uygulamanız işe yaramıyor mu? Xbox'ınız oyun oynamanıza izin vermiyor, torrent indirmeleriniz reddediyor ... Daha fazla oku dünyanın herhangi bir yerinden erişmek için), bu yüzden Arduino'yu bağlamadan önce etrafta konuşmanızı ve her şeyin veritabanıyla çalışıp çalışmadığını kontrol etmenizi ö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 makul fiyatlı 20 £ setler kullandım ve uzaktan kumandayı açtım, böylece içerideki 433 MHz yongasıyla doğrudan arayüz kurabilirim. Bunun için talimatları buldum buraya.

rc-kontrol-kesmek

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

Arduino-rcswitch

Eklenti, "tristate kodları" göndererek çalışır, ancak bunlar üreticiye göre değişir. Bakın RCSwitch belgeleri tam kodlarınızı bulmak için. Bu wiki kılavuzu yardımcı olabilir.

Arduino ile iletişim, şu Node kütüphanesi kullanılarak yapılır: duino. Çalışıyorsa Heimcontrol uygulamasını durdurun ve aşağıdaki komutu kullanarak Arduino köprüsünü yükleyin.

npm yükleme duino. 

Arduino'nun bu kod yüklendi - Bunu farklı bir bilgisayardan yüklemek için kopyalayıp yapıştırmanızı öneririm. Esasen Pi'nin seri komutlarına yanıt veren bir dinleyici programıdır, ancak kendi özelliklerinizle genişletmenizi engelleyecek hiçbir şey yoktur.

rc-ayarları

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

heimcontrol menü-ayarlar

Oradan RCSwitch yöntemini, vericinizin pinini 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.

rcswitch-ayar

Hatalar:

Kodda hata ayıklama yaptıktan sonra, tek haneli pin numaralarının çalışmadığını gördüm - vericinizin pime yerleştirildiğinden emin olun 10 emin olmak.

Ayrıca, Arduino eklentisinin, alıcılarımın ihtiyaç duyduğu tristat kodları için yanlış son bitlerle sabit kodlanmış olduğunu buldum. Önce küçük bir açıklama: tristat kodları 3 byte bilgi içerir. 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 ve açma / kapama için 2 bitten oluşur. Ne yazık ki, son bayt Arduino eklentisine sabit kodlanmıştır - ve benim durumumda, açma / kapama kodu yanlıştı.

Manuel olarak düzenlemek zorunda kaldım eklentileri / Arduino / index.js doğru kodları kullanmak için. Benimle aynı uzaktan kumanda soketlerini kullanıyorsanız, 80 ve daha sonraki satırları şu şekilde değiştirin:

// RC kodu gönder. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF"); // FF0F'den değiştirin. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // FF00'den 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ı ayrıca desteklendi. Muhtemelen bazı geliştirmelerle bunları daha sonraki bir tarihte tekrar ziyaret edeceğim. Bunların hepsi sizin için biraz fazla karmaşıksa, belki de bunlara göz atın. acemi dostu Arduino projeleri Yeni Başlayanlar İçin 15 Büyük Arduino ProjesiArduino projeleri ile ilgileniyor, ancak nereden başlayacağınızdan emin değil misiniz? Bu başlangıç ​​projeleri size nasıl başlayacağınızı öğretecek. Daha fazla oku .

James Yapay Zeka alanında lisans derecesine sahiptir ve CompTIA A + ve Network + sertifikalıdır. MakeUseOf'un baş geliştiricisi ve boş zamanlarını VR paintball ve boardgames oynayarak geçiriyor. Çocukluğundan beri bilgisayar yapıyor.