Oglas

Prej smo govorili o relativnih zaslugah Arduina in Raspberry Pi - vsaka ima svoje prednosti. Vendar ne smejo biti ne izbira ne kombinacija - združite jih, da boste lahko izkoristili najboljše iz obeh svetov. Domača avtomatizacija je popoln kandidat za to. Trg domače avtomatizacije je preplavljen z dragimi potrošniškimi sistemi, ki so med seboj nezdružljivi in ​​drage za namestitev. Če imate malino Pi Malina Pi: Neuradna vadnicaNe glede na to, ali ste trenutno lastnik Pi, ki se želi naučiti več, ali pa potencialni lastnik te naprave z velikostjo kreditne kartice, to ni vodnik, ki ga želite zamuditi. Preberi več in Arduino, lahko v bistvu dosežete isto stvar za del cene, ob predpostavki, da ste pripravljeni vložiti čas in trud.

Posodobitev: Odkar je bil napisan ta članek, sem odkril OpenHAB, brezplačno in odprtokodno platformo za avtomatizacijo doma ki deluje na Raspberry Pi in ga je mogoče integrirati z veliko paleto pametnih hišnih kompletov, ki niso na voljo Arduino. Oglejte si spodnji videoposnetek za vrhunec sneženja, nato pa nadaljujte do našega

Uvod v OpenHAB na Raspberry Pi Uvod v OpenHAB domačo avtomatizacijo na Raspberry PiOpenHAB je zrela, odprtokodna platforma za avtomatizacijo doma, ki deluje na različni strojni opremi in je protokol agnostik, kar pomeni, da se lahko poveže s skoraj katero koli strojno opremo za avtomatizacijo doma na trgu danes. Preberi več vodnik, če želite izvedeti več.

Heimcontrol.js je aplikacija Node.js, ki je narejena za delovanje na Raspberry Pi. V kombinaciji z Arduino in nekaterimi vtičnicami na daljinskem upravljalniku omogoča preprosto upravljanje AC naprav. Dodate lahko temperaturne senzorje in celo nadzorujete svoj televizor, vendar bomo danes ostali osnovni in projekt podaljšali v kasnejši vadnici.

Sledi razčlenitev projekta:

  • Raspberry Pi bo deloval kot možgani in prehodi poslovanja - zaganjal bo aplikacijo Node, vezano na bazo podatkov Mongo, in vmesnik v ospredju uporabil v katerem koli spletnem brskalniku.
  • Arduino, ki se napaja iz Pi, bo za zdaj vmesnik med stikali za elektronsko - radijsko krmiljenje.

Če želite to narediti, boste potrebovali:

  • Arduino in malina Pi
  • Nekaj ​​daljinsko vodenih vtičnic in krmilnika (uporabil sem teh)
  • Napajalno središče USB
RC-vtičnice

Preden začnemo, tukaj je predstavitveni videoposnetek samega ustvarjalca projekta.

Začnite znova

Za ta projekt bomo uporabili Raspian 11 Operacijski sistemi, ki delujejo na vašem Raspberry PiNe glede na vaš projekt Raspberry Pi, zanj obstaja operacijski sistem. Pomagamo vam najti najboljše Raspberry Pi OS za vaše potrebe. Preberi več in močno priporočam, da začnete s novo namestitvijo, če ste že prej izvajali druge kraje in podobno. Prenesite najnovejše Raspijska podoba, kopirajte na SD kartico in ne pozabite razširiti datotečnega sistema in omogočiti SSH. Preostali del tega priročnika bo predvideval, da ste to storili, in se povezujete prek SSH s privzetim uporabnikom.

Če tega še niste storili, ta video razlaga postopek priprave vaše SD kartice v OS X:

In to za uporabnike sistema Windows:

Priprava

Postopek namestitve je precej naporen in izhaja iz navodila tukaj. Žal so bile zastarele ali niso bile zasnovane za Raspianovo, zato sem jih spodaj močno prilagodil. Spodnje kode lahko večinoma prilepite v blokih - ne morate jih prilepiti eno za drugo. Ker na samem mestu Pi pripravljamo nekaj stvari, vas opozorimo, da bo celoten postopek trajal dolgo. Rekel bi si, da si privoščite skodelico čaja - toda ko rečem "dolgo časa", mislim na najboljši del dneva - zato bi bilo 178 skodelic bolj primerno.

Vsi ukazi naj bodo vneseni v Terminal in morda boste na nekaterih mestih morali pritisniti Enter. Teh prvih nekaj ukazov bo posodobilo sistem in namestilo predpogoje:

sudo apt-dobili posodobitev sudo apt-get upgrade. sudo apt-get install git-core git scons build-basic scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev. 

Nato moramo namestiti vozlišče:

sudo mkdir / opt / vozlišče. wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz. tar xvzf vozlišče-v0.10.2-linux-arm-pi.tar.gz. sudo cp -r vozlišče-v0.10.2-linux-arm-pi / * / opt / vozlišče. sudo ln -s / opt / vozlišče / bin / vozlišče / usr / local / bin / vozlišče. sudo ln -s / opt / vozlišče / bin / npm / usr / local / bin / npm. 

V svoj profil dodajte spremenljivko PATH, da OS ve, kje se nahaja vozlišče. Uporabite urejevalnik besedil nano na naslednji način:

sudo nano / etc / profile. 

Poiščite črto, ki pravi izvoz PATH in ga nadomestite z:

NODE_JS_HOME = "/ opt / vozlišče" PATH = "$ PATH: $ NODE_JS_HOME / koša" izvoz PATH.

Za izhod pritisnite Ctrl-X in Y, da shranite.

Za začetek veljavnosti sprememb poti se boste morda morali odjaviti in ponovno prijaviti, vendar lahko preizkusite z ukazom:

katero vozlišče. 

Če nimate nobenega izhoda, ki kaže na binarno vozlišče vozlišča, je šlo nekaj narobe.

Mongo

Naslednja naloga je namestitev Mongo. Mongo je baza podatkov, ki temelji na dokumentu, no-SQL, ki jo vedno bolj uporabljajo spletne aplikacije. Na žalost bo to trajno nameščeno, saj ga moramo sestaviti. Med izvajanjem naslednjih ukazov se prikažejo številne napake, kot so:

{standardni vnos}: 13085: Opozorilo: uporaba swp {b} je za to arhitekturo zastarela. 

Ne skrbi za to. Torej, zaženite te ukaze, da namestite Mongo:

git klon git: //github.com/RickP/mongopi.git. CD mongopi. scons. sudo scons --prefix = / opt / mongo namestite scons -c. 

Ko je to končano, moramo najprej popraviti težave z dovoljenjem in se prepričati, ali se izvaja ob zagonu.

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

S tem zadnjim ukazom boste zagnali strežnik Mongo, za nadaljevanje z drugimi ukazi pa boste morali odpreti nov terminal. Nisem povsem prepričan v ta korak, zato če bi kdo lahko to popravil v komentarjih o samodejnem zagonu mongoda, bi bil zelo cenjen. Za zdaj deluje, samo ne elegantno.

sudo izklop -r zdaj

Končno je čas, da namestite aplikacijo Heimcontrol.js Node.

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

Aplikacijo lahko začnete zagnati tako, da vtipkate


vozlišče heimcontrol.js. 

Na tej točki bi morali imeti dostop do nadzornega vmesnika http://localhost: 8080 iz Pi-ja ali zamenjajte localhost z naslovom IP, če do njega dostopate iz drugega računalnika (in lahko tudi nastavite posredovanje vrat Kaj je posredovanje pristanišč in kako mi lahko pomaga? [MakeUseOf pojasnjuje]Ali malo zajokate v notranjosti, ko vam nekdo reče, da obstaja težava s posredovanjem vrat in zato vaša bleščeča nova aplikacija ne bo delovala? Vaš Xbox ne bo dovolil igranja iger, nalaganje torrentov zavrne ... Preberi več da bi dostopali do njega od koder koli po svetu), zato bi vas spodbudil, da pokukate in preverite, ali vse deluje z bazo podatkov, preden priložite Arduino.

Strojna oprema

Sčasoma bi si želel relejski kabel, vendar zaenkrat uporabljam varnejšo možnost radijsko krmiljenih stikal.

Od Maplina sem uporabil nekaj poceni nizov 20 £, ki so priloženi s 3 vtičnicami, in odprl daljinski upravljalnik, tako da sem lahko vmesnik neposredno s čipom 433 MHz znotraj. Našel sem navodila za to tukaj.

rc-controller-kramp

Na eBayu lahko kupite tudi posamezne oddajnike 433 MHz, ki so pripravljeni za uporabo na eBayu ali pri ponudnikih elektronske opreme. Vse, kar potrebujete, je priključiti VCC na 5 V na Arduino, GND-je in en sam kontrolni zatič - zapomnite si, katerega ste uporabili. (Shema avtorja Willi Thiel)

arduino-rcswitch

Vtičnik deluje tako, da pošlje "kode tristate", vendar se lahko razlikujejo glede na proizvajalca. Glej na RCSwitch dokumentacija da najdete svoje točne kode. Tole wiki vodnik lahko pomaga tudi.

Komunikacija z Arduino poteka z uporabo knjižnice vozlišč, imenovane duino. Zaustavite aplikacijo Heimcontrol, če se zažene in namestite most Arduino z naslednjim ukazom.

npm namestite duino. 

Arduino mora imeti ta koda je bila naložena - Predlagam, da kopirate in prilepite, da to namestite iz drugega računalnika. To je v bistvu program za poslušalce, ki se odziva na serijske ukaze Pi, vendar nič ne prepreči, da bi ga razširil s svojimi lastnostmi.

rc-nastavitve

Z zagnano spletno aplikacijo pojdite na Nastavitve meni> Arduino.

nastavitve menija heimcontrol

Od tam lahko dodate nov element in izberete metodo RCSwitch, pin vašega oddajnika in tristate naslovno kodo. Ne pozabite shraniti in se vrnite na glavni zaslon za nov gumb.

nastavitev rcswitch

Hrošči:

Po več urah odpravljanja napake kode sem ugotovil, da enomestne številke pin niso delovale - preverite, ali je oddajnik nameščen na pin 10 biti prepričan.

Ugotovil sem tudi, da je bil vtičnik Arduino trdo kodiran z napačnimi končnimi biti za kode tristate, ki so jih morali imeti moji sprejemniki. Najprej malo pojasnilo: kode tristata so sestavljene iz 3 bajtov informacij. Prva nam določa številko omrežja (1-4), druga pa podaja sprejemno-sprejemni naslov (spet 1-4, ustvari največ 16 naslovnih vtičnic). Končni bajt je sestavljen iz dveh bitov oblazinjenja, plus 2 bita za vklop / izklop. Na žalost je končni bajt trdo kodiran v vtičnik Arduino - in v mojem primeru je bila koda za vklop / izklop napačna.

Ročno sem moral urediti vtičniki / arduino / index.js za uporabo pravilnih kod. Če uporabljate iste vtičnice za daljinsko upravljanje kot jaz, spremenite vrstice 80 naprej na:

// Pošlji RC kodo. if (item.value) {vrni that.pins [item.pin] .triState (item.code + "FFFF"); // spremeni iz FF0F. } else {vrni that.pins [item.pin] .triState (item.code + "FFF0"); // sprememba iz FF00. }

Tukaj je predstavljeni videoposnetek vsega, kar deluje:

Tukaj ga bom pustil tukaj, vendar so odčitki senzorjev in IR daljinski upravljalniki tudi podprto. Verjetno jih bom pozneje ponovno obiskal s še nekaj izboljšavami. Če je bilo za vas vse to preveč zapleteno, si oglejte te začetnikom prijazni projekti Arduino 15 velikih Arduino projektov za začetnikeVas zanimajo projekti Arduino, vendar niste prepričani, kje začeti? Ti začetni projekti vas bodo naučili, kako začeti. Preberi več .

James ima doktorat iz področja umetne inteligence in ima certifikat CompTIA A + in Network +. Je glavni razvijalec MakeUseOf in svoj prosti čas preživi za igranjem VR paintball in družabnih iger. Z računalniki gradi že od malih nog.