Reklaam

Oleme juba varem rääkinud Arduino ja Raspberry Pi suhtelistest eelistest - neil kõigil on oma tugevused. Need ei pea siiski olema üks ega teine ​​valik - ühendage need, et saada paremaid mõlemast maailmast. Koduautomaatika on selleks ideaalne kandidaat. Kodutehnika automatiseerimise turg on üle ujutatud kallite tarbija süsteemidega, omavahel kokkusobimatud ja nende paigaldamine kulukas. Kui teil on Raspberry Pi Vaarika Pi: mitteametlik juhendajaÜkskõik, kas olete praegune Pi omanik, kes soovib rohkem teada saada, või selle krediitkaardisuurusega seadme potentsiaalset omanikku, pole see juhend, mida soovite mööda lasta. Loe rohkem ja Arduino, võite põhimõtteliselt sama asja saavutada vaid murdosa hinnaga, eeldades, et olete valmis selleks aega ja vaeva panema.

Värskendus: alates selle artikli kirjutamisest olen avastanud tasuta ja avatud lähtekoodiga koduautomaatika platvormi OpenHAB mis töötab Raspberry Pi-l ja mida saab integreerida tohutu hulga tavalise nutika kodu komplektiga Arduino. Vaadake allolevast videost vargsi tippu, siis minge edasi meie juurde

instagram viewer
OpenHAB-iga alustamine Raspberry Pi-l Alustamine OpenHAB-i koduautomaatikast Raspberry Pi-lOpenHAB on küps, avatud lähtekoodiga koduautomaatika platvorm, mis töötab mitmesugusel riistvaral ja on Agnostic Protocol, mis tähendab, et see saab ühendada peaaegu kõigi turul pakutavate kodus kasutatavate automaatika riistvaraga täna. Loe rohkem juhend lisateabe saamiseks.

Heimcontrol.js on Raspberry Pi peal töötamiseks loodud rakendus Node.js. Koos Arduino ja mõne tavalise kaugjuhtimispuldi pistikupesaga muudab see vahelduvvooluseadmete juhtimise lihtsaks. Saate lisada temperatuuriandureid ja isegi oma telerit juhtida - kuid hoiame asju täna põhisuunas ja laiendame projekti hilisemas õpetuses.

Siin on projekti jaotus:

  • Raspberry Pi toimib ajude ja toimingute väravana - see käivitab Mongo andmebaasiga seotud Node rakenduse ja teenib kasutajaliidese mis tahes veebibrauseris.
  • Pi-toitel töötav Arduino ühendab praegu elektroonika - raadiojuhtimisega toitelülitite vahel.

Selleks vajate:

  • Arduino ja vaarikapiim
  • Mõned puldiga pistikupesad ja kontroller (kasutasin need)
  • Toitega USB-jaotur
RC-pistikupesad

Enne alustamist on siin demonstratsioonvideo projekti loojalt endalt.

Alustage uuesti

Me kasutame selle projekti jaoks Raspianit 11 opsüsteemi, mis töötavad teie vaarikapiililÜkskõik, milline on teie Raspberry Pi projekt, on selle jaoks opsüsteem. Aitame teil leida teie vajadustele parima Raspberry Pi OS. Loe rohkem ja soovitan tungivalt alustada värskest installist, kui olete varem teinud muid häkkereid ja selliseid. Laadige alla uusim Raspian pilt, kopeerige see oma SD-kaardile ja laiendage kindlasti failisüsteemi ning lubage SSH. Ülejäänud juhendis eeldatakse, et olete seda teinud, ja looge ühendus vaikekasutaja kaudu SSH kaudu.

Kui te pole seda varem teinud, selgitab see video teie SD-kaardi ettevalmistamist OS X-is:

Ja see Windowsi kasutajatele:

Ettevalmistus

Installiprotsess on üsna töömahukas ja tuletatud süsteemist juhised siin. Kahjuks olid need vananenud või polnud Raspianile mõeldud, nii et olen neid allpool tugevalt kohandanud. Allolevaid koode saab enamasti kleepida plokkideks - te ei pea kleepima ükshaaval. Kuna me koostame mõnda asja Pi ise, siis tuleb hoiatada, et kogu see protsess võtab kaua aega. Ma ütleksin, et mine tee endale tass teed - aga kui ütlen “pikk aeg”, pean silmas päeva parimat osa - nii oleks 178 tassi sobivam.

Kõik käsud tuleks sisestada terminali ja mõnel hetkel peate võib-olla vajutama sisestusklahvi. Need paar esimest käsku värskendavad süsteemi ja installivad eeltingimused:

sudo apt-get update sudo apt-get upgrade. 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. 

Järgmisena peame installima sõlme:

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

Lisage oma profiilile muutuja PATH, nii et OS teaks, kus sõlme asub. Kasutage nano-tekstiredaktorit järgmiselt:

sudo nano / etc / profile. 

Leidke rida, mis ütleb eksport PATH ja asendada see järgmisega:

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / prügikast" eksport PATH.

Väljumiseks klõpsake Ctrl-X ja salvestamiseks Y.

Teekonna muudatuste jõustumiseks peate võib-olla välja logima ja uuesti sisse logima, kuid võite testida käsuga:

mis sõlme. 

Kui te ei saa ühtegi väljundit, mis osutab kahendsõlmele Node, läks midagi valesti.

Mongo

Järgmine töö on installimine Mongo. Mongo on dokumendipõhine No-SQL andmebaas, mida veebirakendused kasutavad üha enam. Kahjuks kulub selle installimine igavesti, kuna peame selle kompileerima. Järgmiste käskude käitamisel saate palju vigu, näiteks:

{standardsisend}: 13085: Hoiatus: swp {b} kasutamine on selle arhitektuuri jaoks aegunud. 

Ärge muretsege nende pärast. Mongo installimiseks käivitage need käsud:

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

Kui see on lõpule jõudnud, vajame esmalt lubade probleemide parandamiseks ja veendumaks, et see töötab käivitamisel, natuke rohkem seadistust.

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 vaikeseaded. mongod

Viimane käsk käivitab Mongo serveri ja peate teiste käskudega jätkamiseks avama uue terminali. Ma ei ole selle sammu suhtes täiesti kindel, nii et kui keegi suudab seda parandada kommentaarides selle kohta, kuidas mongod käivitada automaatselt, siis oleks see väga teretulnud. Praegu see töötab, lihtsalt mitte elegantselt.

sudo shutdown -r nüüd

Lõpuks on aeg installida rakendus Heimcontrol.js Node.

cd ~ pi. git kloon git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. npm installimine. 

Rakenduse käivitamiseks võite kirjutada


sõlm heimcontrol.js. 

Sel hetkel peaks teil olema juurdepääs juhtimisliidesele http://localhost: 8080 Pi kaudu või asendage localhost IP-aadressiga, kui pääsete sellele juurde teisest arvutist (ja võiksite ka sadama edastamise seadistamine Mis on sadamate edastamine ja kuidas see mind aidata saab? [MakeUseOf selgitab]Kas nutad natuke sees, kui keegi ütleb sulle, et teil on pordi edastamise probleem ja sellepärast teie läikiv uus rakendus ei tööta? Teie Xbox ei lase teil mänge mängida, torrentide allalaadimine keeldub ... Loe rohkem sellele juurde pääseda kõikjalt maailmast), seega soovitaksin teil enne Arduino kinnitamist ringi vaadata ja kontrollida, kas kõik töötab andmebaasiga.

Riistvara

Lõpuks sooviksin juhtmega releed, kuid praegu kasutan raadio teel juhitavate lülitite ohutumat võimalust.

Olen kasutanud Maplinilt mõnda mõistlikult odavat 20 naelsterlingi komplekti, millel on 3 pistikupesa, ja avasin puldi, et saaksin otse liidestada selle sees oleva 433 MHz kiibiga. Leidsin selle jaoks juhised siin.

rc-kontroller-häkkida

Samuti saate eBay-st või hobielektroonika tarnijatelt osta üksikuid kasutamiseks valmis 433 MHz saatjaid. Kõik, mida vajate, on ühendada VCC Arduino, GND-de ja 5 juhtpingega - ühe juhtpistikuga - pidage meeles, kumba kasutasite. (Skeem autor Willi Thiel)

arduino-rcswitch

Pistikprogramm töötab kolmepoolsete koodide saatmisega, kuid need erinevad tootjate kaupa. Vt RCSwitchi dokumentatsioon oma täpsete koodide leidmiseks. See wiki juhend võib ka aidata.

Suhtlus Arduinoga toimub Node teegi abil duino. Peatage Heimcontroli rakendus, kui see töötab, ja installige Arduino sild järgmise käsu abil.

npm install duino. 

Arduinol peab olema see kood üles laaditud - Selle teisest arvutist installimiseks soovitan teil kopeerida ja kleepida. See on sisuliselt kuulajaprogramm, mis vastab Pi-i käsklustele, kuid miski ei takista teid selle laiendamisel oma funktsioonidega.

rc-seaded

Kui veebirakendus on käivitatud, minge lehele Seadistused menüü> Arduino.

heimcontrol-menüü-seaded

Sealt saate lisada uue üksuse, valides RCSwitchi meetodi, saatja tihvti ja kolmepoolse aadressi koodi. Ärge unustage salvestada, seejärel minge tagasi uue nupu kuvamiseks põhiekraanile.

rcslüliti seadistamine

Vead:

Pärast mitu tundi koodi silumist leidsin, et ühekohalised PIN-koodid ei tööta - veenduge, et saatja oleks kinnitatud 10 et olla kindel.

Samuti leidsin, et Arduino pistikprogramm oli kõvakodeeritud valede bittidega nende vastuvõtjate jaoks vajalike kolmikkoodide jaoks. Esiteks väike selgitus: kolmikud koodid koosnevad 3 baidist teabest. Esimene määrab meile võrginumbri (1-4) ja teine ​​annab transiiveri aadressi (jällegi 1-4, andes maksimaalselt 16 adresseeritavat pistikupesa). Lõplik bait koosneb kahest bitist polsterdusest, millele lisanduvad 2 bitti sisse / välja lülitamiseks. Kahjuks on viimane baidi Arduino pistikprogrammis kõvakodeeritud - ja minu puhul oli sisse / välja lülitamise kood vale.

Pidin käsitsi redigeerima pluginad / arduino / index.js õigete koodide kasutamiseks. Kui kasutate samu kaugjuhtimispuldi pistikupesasid kui mina, muutke read 80 edasi:

// Saada RC-kood. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF"); // muuda FF0F-st. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // muuda FF00-st. }

Siin on demovideo kõige toimimisest:

Ma jätan selle praegu siia, kuid andurite näidud ja IR-puldid on ka toetatud. Tõenäoliselt vaatan need hiljem uuesti läbi, saades veel mõned täiendused. Kui see kõik on olnud teie jaoks liiga keeruline, siis vaadake neid algajasõbralikud Arduino projektid 15 suurepärast Arduino projekti algajateleKas olete huvitatud Arduino projektidest, kuid pole kindel, kust alustada? Need algajate projektid õpetavad teile, kuidas alustada. Loe rohkem .

Jamesil on tehisintellekti BSc ning ta on CompTIA A + ja Network + sertifikaadiga. Ta on MakeUseOfi juhtiv arendaja ja veedab oma vaba aega VR-i paintballi ja lauamänge mängides. Ta on lapsest peale arvutit ehitanud.