Hirdetés

Arduino és Raspberry Pi viszonylagos érdemeiről már korábban beszéltünk - mindegyiknek megvan az ereje. De nem kell, hogy legyenek vagy választások - kombináld őket, hogy mind a két világ legjobbat megkapják. Az otthoni automatizálás a tökéletes jelölt erre. Az otthoni automatizálás piacát elárasztják drága fogyasztói rendszerek, amelyek összeegyeztethetetlenek és költségesek a telepítésükhöz. Ha van egy Málna Pi Raspberry Pi: A nem hivatalos bemutatóLegyen szó jelenlegi Pi tulajdonosról, aki többet szeretne megtudni, vagy ennek a hitelkártya méretű eszköznek a lehetséges tulajdonosai, ez nem egy útmutató, amelyet hiányozni szeretne. Olvass tovább és Arduino, alapvetően ugyanazt a dolgot az ár töredékével érheti el, feltételezve, hogy hajlandó időt és erőfeszítést fordítani.

Frissítés: A cikk írása óta felfedeztem az OpenHAB-ot, egy ingyenes és nyílt forrású otthoni automatizálási platformot amely a Raspberry Pi rendszeren fut, és integrálható egy hatalmas választékkal az intelligens otthoni készletből, amelyet polcokon is el lehet helyezni Arduino. Nézze meg az alábbi videót az alattomos csúcsért, majd induljon tovább

Az OpenHAB használatának első lépései a Raspberry Pi-n Az OpenHAB otthoni automatizálás első lépései a Raspberry Pi készülékenAz OpenHAB egy érett, nyílt forrású otthoni automatizálási platform, amely különféle hardverekkel működik és van Agnostic Protocol, azaz csatlakozhat szinte bármilyen otthoni automatizálási hardverhez a piacon Ma. Olvass tovább útmutató további információkért.

A Heimcontrol.js egy Node.js alkalmazás, amely a Raspberry Pi rendszeren fut. Egy Arduino-val és néhány polcra szerelt távirányító-aljzattal kombinálva megkönnyíti a váltóáramú készülékek vezérlését. Felvehet hőmérséklet-érzékelőket, és akár irányíthatja a TV-jét is - de ma alapvetőnek tartjuk a dolgokat, és egy későbbi bemutatóban kibővítjük a projektet.

Íme a projekt bontása:

  • A Raspberry Pi agy és a műveletek átjárójaként fog működni - fut egy Node alkalmazást, amely egy Mongo adatbázishoz van kötve, és kiszolgálja a kezelőfelületet bármely böngészőhöz.
  • Egy Arduino, amelyet a Pi-ből táplálnak, egyelőre interfészként működik az elektronika - rádióvezérlő tápkapcsolók között.

Ehhez a következőkre lesz szüksége:

  • Arduino és egy Málna Pi
  • Néhány távirányított aljzat és vezérlő (szoktam ezek)
  • Powered USB hub
RC-aljzatok

Mielőtt elkezdenénk, íme egy demonstrációs videó, amelyet a projekt készítője készített.

Frissen indul

A Raspian-t fogjuk használni ehhez a projekthez 11 operációs rendszer, amely a Raspberry Pi-en futBármi legyen is a Raspberry Pi projektjével, van egy operációs rendszer ehhez. Segítünk megtalálni az Ön igényeinek leginkább megfelelő Málna Pi operációs rendszert. Olvass tovább , és határozottan javaslom egy új telepítéstől indulni, ha korábban már végeztél más hacket és hasonlókat. Töltse le a legújabb Málna kép, másolja át az SD-kártyára, és feltétlenül bővítse ki a fájlrendszert és engedélyezze az SSH-t. Az útmutató többi része feltételezi, hogy ezt megtette, és az SSH-n keresztül csatlakozik az alapértelmezett felhasználóhoz.

Ha ezt még nem tette meg, ez a videó ismerteti az SD-kártya előkészítésének folyamatát az OS X rendszerben:

És ez a Windows felhasználók számára:

Készítmény

A telepítési folyamat meglehetősen fárasztó, és a következőkből származik utasítások itt. Sajnos ezek elavultak voltak, vagy nem Raspian számára lettek tervezve, tehát erősen alább igazítottam őket. Az alábbi kódok többnyire blokkokba illeszthetők - nem kell beillesztenie egyenként. Mivel néhány dolgot magában a Pi-ban állítunk össze, figyelmeztetjük, hogy ez a teljes folyamat hosszú időt vesz igénybe. Azt mondanám, menjen el magának egy csésze teát - de amikor azt mondom, hogy „hosszú idő”, a nap legjobb részét értem, akkor 178 csésze megfelelőbb lenne.

Minden parancsot be kell gépelni a terminálba, és lehet, hogy néhány ponton meg kell nyomnia az Enter billentyűt. Az első néhány parancs frissíti a rendszert és telepíti az előfeltételeket:

sudo apt-get frissítés sudo apt-get frissítés. sudo apt-get install git-core git scons build-essential scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev. 

Ezután telepítenünk kell a Node-ot:

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 node-v0.10.2-linux-arm-pi / * / opt / node. sudo ln -s / opt / node / bin / node / usr / local / bin / node. sudo ln -s / opt / csomópont / bin / npm / usr / local / bin / npm. 

Adjon hozzá PATH változót a profiljához, hogy az operációs rendszer tudja, hol található a csomópont. Használja a nano szövegszerkesztőt az alábbiak szerint:

sudo nano / etc / profile. 

Keresse meg azt a sort, amely azt mondja export PATH és cserélje le:

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" export PATH.

A kilépéshez nyomja meg a Ctrl-X billentyűt, a mentéshez pedig az Y billentyűt.

Lehet, hogy be kell jelentkeznie és újra be kell lépnie az elérési út változásaihoz, de tesztelheti a következő paranccsal:

melyik csomópont. 

Ha nem kap semmilyen kimenetet, amely a Node binárisra mutat, akkor valami rosszra fordult.

Mongo

A következő feladat a telepítés Mongo. A Mongo egy dokumentum-alapú No-SQL adatbázis, amelyet egyre inkább használnak a webes alkalmazások. Sajnos ennek telepítése örökké tart, mivel össze kell állítanunk. A következő parancsok futtatása közben sok olyan hibát fogsz kapni, mint például:

{standard input}: 13085: Figyelem: az swp {b} használat elavult ehhez az architektúrához. 

Ne aggódjon ezek miatt. Tehát futtassa ezeket a parancsokat a Mongo telepítéséhez:

git klón git: //github.com/RickP/mongopi.git. CD mongopi. scons. sudo scons --prefix = / opt / mongo install scons -c. 

Amikor ez befejeződött, először egy kicsit további beállításra van szükségünk az engedélyekkel kapcsolatos problémák kijavításához és annak ellenőrzéséhez, hogy az induláskor működik-e.

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 alapértelmezés. mongod

Ez az utolsó parancs elindítja a Mongo szervert, és új terminált kell nyitnia, hogy folytathassa a többi parancsot. Nem vagyok benne teljesen biztos ebben a lépésben, tehát ha valaki meg tudja javítani ezt a megjegyzésben, hogy miként lehet a mongod automatikusan elindulni az induláskor, akkor nagyon örülnék. Egyelőre működik, csak nem elegánsan.

sudo shutdown -r most

Végül itt az ideje a Heimcontrol.js Node alkalmazás telepítéséhez.

cd ~ pi. git klón git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. npm telepítés. 

Az alkalmazás futtatását gépeléssel indíthatja el


node heimcontrol.js. 

Ezen a ponton hozzáférhet a vezérlő interfészhez a következővel: http://localhost: 8080 a Pi-ből, vagy cserélje ki a localhost-ot az IP-címre, ha egy másik számítógépről érkezik (és akkor is állítsa be a port-továbbítást Mi a kikötőszállítás és hogyan segíthet nekem? [MakeUseOf magyarázat]Sír egy kicsit belülről, amikor valaki azt mondja, hogy van egy port-továbbítási probléma, és miért nem fog működni a fényes új alkalmazásod? Xboxod nem engedi, hogy játékot játsszon, a torrent letöltések megtagadják ... Olvass tovább hogy a világ bármely pontjáról elérhesse), ezért arra ösztönzöm Önt, hogy körbejárjon, és ellenőrizze, hogy az adatbázisban dolgozik-e az Arduino csatolása előtt.

Hardver

Végül szeretnék egy vezetékes relét, de egyelőre a rádióvezérelt kapcsolók biztonságosabb lehetőségét fogom használni.

Használtam néhány ésszerűen olcsó, £ 20-os készüléket a Maplin-től, amely 3 foglalattal rendelkezik, és kinyitotta a távirányítót, így közvetlenül kapcsolódhattam volna a belső 433 MHz-es chiphez. Megtaláltam ehhez az utasításokat itt.

rc-vezérlő-Hack

Emellett egyedi, 433 MHz-es adókészülékeket is vásárolhat használatra készen az eBay-en vagy a hobbi elektronikai gyártóktól. Csak annyit kell tennie, hogy csatlakoztassa a VCC-t az Arduino, a GND-k 5 V-jához, és egyetlen vezérlőtűvel - ne feledje, melyiket használta. (Willi Thiel vázlata)

Arduino-rcswitch

A plugin úgy működik, hogy “háromszögű kódot” küld, de ezek gyártónként változnak. Utal RCSwitch dokumentáció hogy megtalálja a pontos kódjait. Ez wiki útmutató szintén segíthet.

Az Arduino-val való kommunikációhoz egy Node könyvtárat hívunk Duino. Állítsa le a Heimcontrol alkalmazást, ha az fut, és telepítse az Arduino hídot a következő paranccsal.

npm install duino. 

Az Arduinónak rendelkeznie kell ez a kód feltöltve - Azt javaslom, hogy másolja és illessze be, hogy telepítse ezt egy másik számítógépről. Ez alapvetően egy hallgató program, amely válaszol a Pi soros parancsaira, de semmi sem akadályozza meg, hogy kibővítse a saját funkcióival.

rc-beállítások

A elindított webes alkalmazás segítségével lépjen a webhelyre Beállítások menü> Arduino.

heimcontrol-menü-beállítások

Innentől hozzáadhat egy új elemet, kiválasztva az RCSwitch módszert, az adó PIN-kódját és a hármas címkódot. Ne felejtse el menteni, majd térjen vissza a főképernyőre az új gombra.

rcswitch-beállítás

Hibák:

Sok órát a kód hibakeresése után azt találtam, hogy az egyjegyű PIN-kódok nem működnek - ellenőrizze, hogy az adóját a PIN-kódra helyezte-e 10 biztosnak lenni.

Azt is megállapítottam, hogy az Arduino plugin helytelenül kódolt hibás végbitekkel a vevőkhöz szükséges háromoldalú kódokhoz. Először egy kis magyarázat: a háromoldalú kódok 3 bájt információból állnak. Az első meghatározza a hálózati számot (1-4), a második pedig adja meg az adó-vevő címét (ismét 1-4, legfeljebb 16 címezhető aljzat előállítása). A végső bájt két bittel rendelkezik, plusz 2 bit a be- és kikapcsoláshoz. Sajnos a végső bájt merev kódolású az Arduino pluginbe - és az én esetemben a be / ki kód helytelen volt.

Kézzel kellett szerkesztenem a plugins / Arduino / index.js a helyes kódok használatához. Ha ugyanazt a távirányító-aljzatot használja, mint én, akkor a 80-as sorokat cserélje tovább:

// RC-kód küldése. if (item.value) {visszatér that.pins [item.pin] .triState (item.code + "FFFF"); // váltás FF0F-ről. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // váltás FF00-ról. }

Itt egy bemutató videó, amely működik mindenről:

Itt hagyom itt, de az érzékelők leolvasása és az IR távirányítók vannak szintén támogatott. Valószínűleg később újra megvizsgálom ezeket néhány további fejlesztéssel. Ha ez mind kicsit túl összetett volt neked, akkor nézd meg ezeket kezdőbarát Arduino projektek 15 nagyszerű Arduino projekt kezdőknekÉrdekli az Arduino projektek, de nem tudja hol kezdje? Ezek a kezdő projektek megtanítják az induláshoz. Olvass tovább .

James rendelkezik mesterséges intelligencia BSc-vel, CompTIA A + és Network + tanúsítvánnyal rendelkezik. A MakeUseOf vezető fejlesztője, és szabadidejét VR paintballon és társasjátékokon játszik. Gyerekkora óta épít PC-ket.