Skelbimas

Anksčiau kalbėjome apie santykinius Arduino ir Raspberry Pi nuopelnus - jie visi turi savo stipriąsias puses. Jie nebūtinai turi būti abu pasirinkimai - derinkite juos, kad gautumėte geriausią iš abiejų pasaulių. Namų automatika yra tobulas kandidatas. Namų automatikos rinka yra užtvindyta brangių vartotojų sistemų, nesuderinamų viena su kita ir brangiai kainuojančių įrengimo. Jei turite aviečių pi Raspberry Pi: Neoficialus vadovėlisNesvarbu, ar esate dabartinis „Pi“ savininkas, norintis sužinoti daugiau, ar potencialus šio kredito kortelės dydžio įrenginio savininkas, tai nėra vadovas, kurio norite praleisti. Skaityti daugiau ir Arduino, iš esmės tą patį galite pasiekti už nedidelę kainos dalį, darant prielaidą, kad norite skirti laiko ir pastangų.

Atnaujinimas: Kadangi šis straipsnis buvo parašytas, atradau nemokamą ir atviro kodo namų automatikos platformą „OpenHAB“ kuris veikia „Raspberry Pi“ ir kurį taip pat galima integruoti su didžiuliu asortimentu „protingų namų“ rinkinyje Arduino. Peržiūrėkite žemiau esantį vaizdo įrašą, ar nėra slapta piko, tada eikite į mūsų

instagram viewer
Darbo su „OpenHAB“ pradžia naudojant „Raspberry Pi“ Darbo su „OpenHAB Home Automation“ pradžia naudojant „Raspberry Pi“„OpenHAB“ yra brandi, atviro kodo namų automatikos platforma, veikianti įvairia aparatine įranga ir tokia Agnostic Protocol, ty jis gali prisijungti prie beveik bet kurios rinkoje esančios namų automatikos aparatūros šiandien. Skaityti daugiau vadovas sužinoti daugiau.

„Heimcontrol.js“ yra „Node.js“ programa, sukurta paleisti „Raspberry Pi“. Kartu su „Arduino“ ir kai kuriais standartiniais nuotolinio valdymo lizdais jis lengvai valdo kintamosios srovės prietaisus. Galite pridėti temperatūros jutiklius ir net valdyti savo televizorių, tačiau šiandien laikysimės pagrindinių dalykų ir pratęsime projektą vėliau.

Čia yra projekto suskirstymas:

  • „Raspberry Pi“ veiks kaip smegenys ir operacijų vartai - ji paleis „Node“ programą, susietą su „Mongo“ duomenų baze, ir aptarnaus „front-end“ sąsają su bet kuria interneto naršykle.
  • Šiuo metu „Arduino“, maitinamas iš „Pi“, bus sąsaja tarp elektronikos - radijo valdymo maitinimo jungiklių.

Norėdami tai padaryti, jums reikės:

  • Arduino ir aviečių pi
  • Kai kurie nuotoliniu būdu valdomi lizdai ir valdiklis (aš naudojau šie)
  • Maitinamas USB šakotuvas
RC lizdai

Prieš pradėdami, pateikiame paties projekto kūrėjo demonstracinį vaizdo įrašą.

Pradėkite iš naujo

Šiam projektui naudosime „Raspian“ 11 operacinių sistemų, veikiančių jūsų „Raspberry Pi“Kad ir koks būtų jūsų „Raspberry Pi“ projektas, jame yra operacinė sistema. Mes padėsime jums rasti geriausią jūsų poreikius atitinkančią „Raspberry Pi“ OS. Skaityti daugiau , ir aš labai rekomenduočiau pradėti nuo naujo įdiegimo, jei anksčiau atlikote kitus tokius įsilaužimus. Atsisiųskite naujausią Raspian įvaizdis, nukopijuokite jį į SD kortelę ir būtinai išplėskite failų sistemą ir įgalinkite SSH. Likusiame vadove bus manoma, kad jūs tai padarėte, ir prisijungiate per SSH naudodamiesi numatytuoju vartotoju.

Jei to nepadarėte anksčiau, šiame vaizdo įraše paaiškinamas SD kortelės paruošimo procesas naudojant OS X:

O šis „Windows“ vartotojams:

Paruošimas

Įdiegimo procesas yra gana sunkus ir kilęs iš instrukcijas čia. Deja, jie buvo pasenę arba nebuvo skirti „Raspian“, todėl aš juos šiek tiek pakoregavau žemiau. Žemiau pateiktus kodus dažniausiai galite įklijuoti blokais - nereikia įklijuoti po vieną. Kadangi mes kaupiame keletą dalykų pačiame „Pi“, perspėkite, kad visas šis procesas užtruks ilgai. Aš sakyčiau: pasidaryk sau puodelį arbatos - bet kai sakau „ilgai“, turiu omenyje geriausią dienos dalį - taigi 178 puodeliai būtų tinkamesni.

Visos komandos turėtų būti įvestos terminale, o kai kuriuose taškuose gali tekti paspausti Enter. Šios kelios pirmosios komandos atnaujins sistemą ir įdiegs išankstinius reikalavimus:

„sudo apt-get“ atnaujinimas sudo apt-get atnaujinimas. 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. 

Toliau turime įdiegti mazgą:

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 / node / bin / npm / usr / local / bin / npm. 

Pridėkite savo profilio kintamąjį PATH, kad OS žinotų, kur yra mazgas. Naudokite nano teksto rengyklę taip:

sudo nano / etc / profile. 

Raskite eilutę, kuri sako eksportuoti PATH ir pakeisk jį į:

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / šiukšliadėžė" eksportuoti PATH.

Paspauskite „Ctrl-X“, kad išeitumėte, ir Y, jei norite išsaugoti.

Jei kelio pakeitimai įsigalios, gali tekti atsijungti ir vėl prisijungti, tačiau galite išbandyti naudodami komandą:

kuris mazgas. 

Jei negaunate jokios išvesties, nukreipiančios į dvejetainį mazgą, kažkas nutiko.

Mongo

Kitas darbas yra įdiegti Mongo. „Mongo“ yra dokumentų pagrindu sukurta No-SQL duomenų bazė, kurią vis dažniau naudoja žiniatinklio programos. Deja, diegti prireiks amžinai, nes turime ją kompiliuoti. Vykdydami šias komandas gausite daug klaidų, tokių kaip:

{standartinis įvestis}: 13085: Įspėjimas: „swp“ {b} naudojimas šiai architektūrai nebeaktualus. 

Nesijaudink dėl šių dalykų. Taigi, norėdami įdiegti „Mongo“ paleiskite šias komandas:

git clone git: //github.com/RickP/mongopi.git. CD mongopi. paplotėliai. sudo scons --prefix = / opt / mongo install scons -c. 

Kai tai baigsite, pirmiausia reikia šiek tiek daugiau sąrankos, kad galėtume išspręsti leidimų problemas ir įsitikinti, kad jie veikia paleidžiant.

sudo useradd mongodb. sudo mkdir / data / dbb. sudo chown $ USER / data / db. cd /etc/init.d. sudo wget -O mongodbas https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.sh. sudo chmod + x mongodb. „sudo update-rc.d mongodb“ numatytieji nustatymai. mongodas

Ši paskutinė komanda paleis „Mongo“ serverį, ir jūs turėsite atidaryti naują terminalą, kad galėtumėte tęsti kitas komandas. Nesu visiškai įsitikinęs šiuo žingsniu, todėl, jei kas nors galėtų tai ištaisyti komentaruose, kaip automatiškai įjungti „mongod“ paleidimą, jis būtų labai dėkingas. Kol kas tai veikia, tik ne elegantiškai.

sudo išjungimas -r dabar

Galiausiai atėjo laikas įdiegti Heimcontrol.js mazgo programą.

cd ~ pi. „git clone git“: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. npm įdiegti. 

Galite pradėti vykdyti programą įvesdami


mazgas heimcontrol.js. 

Šiuo metu turėtumėte turėti galimybę pasiekti valdymo sąsają su http://localhost: 8080 iš „Pi“, arba pakeiskite „localhost“ IP adresu, jei jį naudojate iš kito kompiuterio (ir taip pat galėtumėte nustatyti uosto ekspedijavimą Kas yra uosto ekspedijavimas ir kaip jis gali man padėti? [„MakeUseOf“ paaiškina]Ar jūs šiek tiek verkiate, kai kas nors jums sako, kad yra prievadų peradresavimo problema, todėl jūsų naujoji blizgi programa neveiks? „Xbox“ neleis jums žaisti žaidimų, jūsų torrentų atsisiuntimai atsisako ... Skaityti daugiau pasiekti iš bet kurios pasaulio vietos), todėl prieš prijungdamas „Arduino“, raginčiau jus pasižvalgyti ir patikrinti, ar viskas veikia su duomenų baze.

Aparatūra

Galiausiai norėčiau laidinės relės, tačiau kol kas naudojuosi saugesne radijo bangomis valdomų jungiklių parinktimi.

Aš panaudojau keletą gana pigių £ 20 rinkinių iš „Maplin“, kurie yra su 3 lizdais, ir atidariau nuotolinio valdymo pultą, kad galėčiau tiesiogiai susisiekti su 433 MHz lustu. Radau tam instrukcijas čia.

rc-valdiklis-nulaužti

Taip pat galite įsigyti atskirų 433 MHz siųstuvų, paruoštų naudoti „eBay“ ar iš pomėgių elektronikos tiekėjų. Viskas, ko jums reikia, yra prijungti VCC prie 5 V Arduino, GND ir vieną valdymo kontaktą - atsiminkite, kurį naudojote. (Schema: Willi Thiel)

arduino-rcswitch

Papildinys veikia siunčiant „patikimus kodus“, tačiau jie skiriasi priklausomai nuo gamintojo. Žr RCSwitch dokumentacija norėdami rasti tikslius kodus. Tai wiki vadovas taip pat gali padėti.

Bendravimas su Arduino vyksta naudojant Node biblioteką, vadinamą duino. Sustabdykite „Heimcontrol“ programą, jei ji veikia, ir įdiekite „Arduino“ tiltą naudodami šią komandą.

npm įdiegti duino. 

Arduino turi šis kodas įkeltas - Siūlau nukopijuoti ir įklijuoti, kad įdiegtumėte tai iš kito kompiuterio. Iš esmės tai yra klausytojų programa, atsakanti į nuoseklias Pi komandas, tačiau niekas netrukdys išplėsti savo savybėmis.

rc nustatymai

Paleidę žiniatinklio programą eikite į Nustatymai meniu> Arduino.

heimcontrol-meniu-nustatymai

Iš čia galite pridėti naują elementą, pasirinkdami „RCSwitch“ metodą, siųstuvo PIN kodą ir trikampį adreso kodą. Nepamirškite išsaugoti, tada grįžkite į pagrindinio ekrano ekraną, kad gautumėte naują mygtuką.

rcswitch nustatymas

Klaidas:

Po daugelio valandų derinimo kodo radau, kad neveikia vieno skaitmens PIN kodai - įsitikinkite, kad jūsų siųstuvas uždėtas ant kaiščio 10 būti tikram.

Taip pat radau, kad „Arduino“ įskiepis buvo užkoduotas neteisingais paskutinių bitų trikampiais kodais, kurių man reikėjo. Pirmiausia šiek tiek paaiškinkite: trikampius kodus sudaro 3 baitai informacijos. Pirmasis nustato tinklo numerį (1-4), o antrasis pateikia siųstuvo-imtuvo adresą (vėlgi 1-4, sukuriantį ne daugiau kaip 16 adresuojamų lizdų). Galutinis baitas susideda iš dviejų užpildymo bitų, plius 2 bitai įjungimui / išjungimui. Deja, galutinis baitas yra sunkiai koduojamas „Arduino“ įskiepyje - ir mano atveju įjungimo / išjungimo kodas buvo neteisingas.

Aš turėjau rankiniu būdu redaguoti įskiepiai / arduino / index.js naudoti teisingus kodus. Jei naudojate tuos pačius nuotolinio valdymo lizdus kaip aš, pakeiskite 80 eilutes į:

// Siųsti RC kodą. if (item.value) {grąžinti that.pins [item.pin] .triState (item.code + "FFFF"); // pakeisti iš FF0F. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // pakeisti iš FF00. }

Čia yra demonstracinis vaizdo įrašas apie viską, kas veikia:

Šiuo metu paliksiu jį čia, bet jutiklių rodmenys ir IR nuotolinio valdymo pultai yra taip pat palaikė. Tikriausiai vėliau dar kartą peržiūrėsiu juos dar su keletu patobulinimų. Jei visa tai jums buvo per daug sudėtinga, galbūt patikrinkite šiuos dalykus pradedantiesiems draugiški Arduino projektai 15 puikių „Arduino“ projektų pradedantiesiemsJus domina Arduino projektai, bet nežinote nuo ko pradėti? Šie pradedančiųjų projektai išmokys jus pradėti. Skaityti daugiau .

Jamesas yra dirbtinio intelekto bakalauras ir yra CompTIA A + bei Network + sertifikuotas. Jis yra pagrindinis „MakeUseOf“ kūrėjas ir laisvalaikį praleidžia žaisdamas VR dažasvydį ir stalo žaidimus. Nuo mažens jis statė kompiuterius.