Oglas

Prije smo razgovarali o relativnim zaslugama Arduina i Raspberry Pi-a - svi imaju svoje snage. Ipak ne treba biti izbor ili izbor - kombinirajte ih da biste postigli najbolje iz oba svijeta. Kućna automatizacija je savršen kandidat za to. Tržište kućne automatizacije preplavljeno je skupim potrošačkim sustavima, nespojivim jedni s drugima i skupim za instalaciju. Ako imate Raspberry Pi Raspberry Pi: Neslužbeni udžbenikBez obzira jeste li trenutni vlasnik Pi-a koji želi naučiti više ili ste potencijalni vlasnik ovog uređaja veličine kartice, ovo nije vodič koji želite propustiti. Čitaj više i Arduino, u osnovi možete postići istu stvar u djeliću cijene, pod pretpostavkom da ste spremni uložiti vrijeme i trud.

Ažuriranje: Otkad je ovaj članak napisan, otkrio sam OpenHAB, besplatnu i open source platformu za kućnu automatizaciju koja se pokreće na Raspberry Pi i može se integrirati s ogromnim rasponom kompletnog pametnog kućnog kompleta Težak. Pogledajte videozapis u nastavku za vrhunac vrhunskog sna, a zatim krenite prema našem

Prvi koraci s OpenHAB-om na Raspberry Pi Prvi koraci s OpenHAB kućnom automatizacijom na Raspberry PiOpenHAB je zrela platforma za kućnu automatizaciju otvorenog koda koja radi na različitim hardverima i jest protokol agnostički, što znači da se može povezati s gotovo svim hardverom kućne automatizacije na tržištu danas. Čitaj više vodič za saznanje više.

Heimcontrol.js je aplikacija Node.js izgrađena za pokretanje na programu Raspberry Pi. U kombinaciji s Arduino i nekim utičnicama za daljinsko upravljanje, to olakšava upravljanje AC uređajima. Možete dodati senzore temperature, pa čak i kontrolirati svoj televizor, ali mi ćemo danas biti osnovni i proširiti projekt u kasnijem vodiču.

Evo rascjepa projekta:

  • Raspberry Pi će djelovati kao mozak i gateway operacija - pokrenut će aplikaciju Node, vezan za Mongo bazu podataka i poslužiti sučelje s bilo kojim web sučeljem.
  • Arduino, napajan iz Pi-ja, zasad će se povezivati ​​između sklopke za napajanje elektronikom i radijskim upravljanjem.

Da biste to učinili, trebat će vam:

  • Arduino i malina Pi
  • Neke daljinsko upravljačke utičnice i kontroler (ja sam koristio ovi)
  • Napajanje USB koncentratora
RC-utičnice

Prije nego što započnemo, evo demo videa samog tvorca projekta.

Počnite iznova

Koristit ćemo Raspian za ovaj projekt 11 Operativni sustavi koji rade na vašem Raspberry PiBez obzira na projekt Raspberry Pi, za to postoji operativni sustav. Pomažemo vam da pronađete najbolje Raspberry Pi OS za svoje potrebe. Čitaj više , i toplo predlažem da započnete s novom instalacijom ako ste prethodno izvodili druge hakere i slično. Preuzmite najnovije Raspanska slikakopirajte je na SD karticu i obavezno proširite datotečni sustav i omogućite SSH. Ostatak ovog vodiča pretpostavlja da ste to učinili i povezujete se preko SSH-a koristeći zadanog korisnika.

Ako to niste učinili, ovaj videozapis objašnjava postupak pripreme SD kartice u OS X:

I ovaj za Windows korisnike:

priprema

Proces instalacije prilično je naporan i proizilazi iz upute ovdje. Nažalost, oni su zastarjeli ili nisu dizajnirani za Raspijan, pa sam ih u nastavku dobrim prilagodio. Šifre u nastavku uglavnom se mogu zalijepiti u blokove - ne morate ih zalijepiti jedan po jedan. Budući da sastavljamo nekoliko stvari o samom Piju, budite upozoreni da će cijeli ovaj postupak trajati dugo. Rekao bih da si napravite šalicu čaja - ali kad kažem "dugo vremena", mislim na najbolji dio dana - pa bi 178 šalica bilo prikladnije.

Sve naredbe trebate upisati u Terminal, a možda ćete trebati pritisnuti Enter u nekim trenucima. Ovih prvih nekoliko naredbi ažurirat će sustav i instalirati preduvjete:

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

Zatim je potrebno instalirati čvor:

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

Dodajte promenljivu PATH u svoj profil da OS zna gdje se nalazi čvor. Upotrijebite nano text editor na sljedeći način:

sudo nano / etc / profile. 

Pronađite liniju koja kaže izvoz PATH i zamijenite ga s:

NODE_JS_HOME = "/ opt / čvor" PUT = "$ PATH: $ NODE_JS_HOME / bin" izvoz PATH.

Pritisnite Ctrl-X za izlaz, a Y za spremanje.

Možda ćete se morati odjaviti i ponovo prijaviti kako bi promjene putanje stupile na snagu, ali možete testirati pomoću naredbe:

koji čvor. 

Ako nemate izlaz koji upućuje na binarni čvor, nešto je pošlo po zlu.

Mongo

Sljedeći je posao instalacija Mongo. Mongo je no-SQL baza podataka koja se temelji na dokumentima i koju web aplikacije sve više koriste. Nažalost, to će trajati zauvijek kako bismo ga trebali sastaviti. Prilikom pokretanja sljedećih naredbi vidjet ćete puno pogrešaka poput:

{standardni ulaz}: 13085: Upozorenje: swp {b} upotreba je zastarjela za ovu arhitekturu. 

Ne brini zbog toga. Dakle, pokrenite ove naredbe za instaliranje Mongo:

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

Po završetku prvo nam je potrebno malo više postavljanja da bismo riješili probleme s dozvolama i provjerili da se pokreće.

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

Ova zadnja naredba pokrenut će Mongo poslužitelj, a morat ćete otvoriti novi terminal da biste nastavili s ostalim naredbama. Nisam potpuno uvjeren u ovaj korak, pa ako netko to može ispraviti u komentarima o tome kako automatski pokrenuti mongod prilikom pokretanja, bilo bi jako zahvalno. Za sada djeluje, samo ne elegantno.

sudo shutdown -r sada

Napokon je došlo vrijeme za instalaciju aplikacije Heimcontrol.js Node.

cd ~ pi. git clone git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. npm instalacija. 

Aplikaciju možete započeti s unosom


čvor heimcontrol.js. 

U ovom trenutku trebali biste moći pristupiti upravljačkom sučelju sa http://localhost: 8080 iz Pi-ja ili zamijenite localhost IP adresom ako mu pristupate s drugog računala (a možete i uspostaviti prosljeđivanje porta Što je prosljeđivanje porta i kako mi može pomoći? [MakeUseOf objašnjava]Plačete li malo unutra kad vam netko kaže da postoji problem s prosljeđivanjem porta i da zbog toga vaša sjajna nova aplikacija neće raditi? Xbox vam neće dopustiti igranje igara, torrent preuzimanja odbijaju ... Čitaj više da mu pristupite s bilo kojeg mjesta na svijetu), pa bih vas potaknuo da pokucate i provjerite da li sve radi s bazom podataka prije priključivanja Arduina.

Hardver

Na kraju bih volio žičani relej, ali zasad ću koristiti sigurniju opciju radio-kontroliranih sklopki.

Koristio sam nekoliko jeftinih kompleta od Maplina od 20 funti koji dolaze s 3 utičnice i otvorio daljinski upravljač kako bih mogao izravno sučeliti s 433 MHz čipom iznutra. Našao sam upute za to ovdje.

RC-regulator-pijuk

Također možete kupiti pojedinačne odašiljače od 433 MHz koji su spremni za upotrebu na eBayu ili od dobavljača hobi elektronike. Sve što trebate je spojiti VCC na 5 V na Arduino, GND-ove i jedan upravljački pin - sjetite se kojeg ste koristili. (Shema: Willi Thiel)

Težak-rcswitch

Dodatak funkcionira slanjem „tristate kodova“, ali oni će se razlikovati od proizvođača. Pogledajte u RCSwitch dokumentacija da pronađete svoje točne kodove. Ovaj wiki vodič može pomoći.

Komunikacija s Arduinom ostvaruje se pomoću biblioteke Node pod nazivom Duino. Zaustavite aplikaciju Heimcontrol ako se pokrene i instalirajte Arduino most pomoću sljedeće naredbe.

npm instalirajte duino. 

Arduino mora imati ovaj kôd je prenesen - Predlažem da kopirate i zalijepite kako biste to instalirali s drugog računala. To je u osnovi program za slušanje koji odgovara na serijske naredbe Pi-a, ali ne može vas zaustaviti da ga proširite vlastitim značajkama.

RC-settings

Kada je web aplikacija pokrenuta, idite na postavke izbornik> Težak.

heimcontrol-meni-postavke

Odatle možete dodati novu stavku odabirom RCSwitch metode, igle vašeg odašiljača i tristate adrese. Ne zaboravite spremiti, pa se vratite na glavni zaslon za novi gumb.

rcswitch-postavka

Nedostaci:

Nakon više sati uklanjanja pogrešaka koda, otkrio sam da jednocifreni brojevi PIN-a ne rade - provjerite je li vaš odašiljač postavljen na pin 10 biti siguran.

Također sam otkrio da je Arduino dodatak tvrdo kodiran s pogrešnim završnim bitovima za tristate kodove koji su mi potrebni. Prvo malo objašnjenje: tristatni kodovi sastoje se od 3 bajta informacija. Prvi nam određuje mrežni broj (1-4), a drugi pruža adresu primopredajnika (opet, 1-4, stvarajući maksimalno 16 adresabilnih utičnica). Konačni bajt sastoji se od dva bita paddinga, plus 2 bita za uključenje / isključenje. Nažalost, konačni bajt je tvrdo kodiran u Arduino dodatak - i u mom slučaju, kôd za uključivanje / isključivanje bio je netočan.

Morao sam ručno urediti plugins / Arduino / index.js koristiti ispravne kodove. Ako koristite iste utičnice za daljinski upravljač kao i ja, promijenite crte 80 nadalje na:

// Pošaljite RC kod. ako (item.value) {vrati taj.pins [item.pin] .triState (item.code + "FFFF"); // promijeni iz FF0F. } else {vratite that.pins [item.pin] .triState (item.code + "FFF0"); // promjena iz FF00. }

Evo demo videa o svemu što funkcionira:

Ostavit ću ga ovdje u ovom trenutku, ali očitanja senzora i IR daljinskog upravljača su također podržani. Vjerojatno ću ih pregledati kasnije sa još nekim poboljšanjima. Ako vam je sve ovo bilo previše složeno, pogledajte ovo početni Arduino projekti prilagođeni početnicima 15 sjajnih Arduino projekata za početnikeZainteresirani za Arduino projekte, ali niste sigurni gdje započeti? Ovi početnički projekti naučit će vas kako započeti. Čitaj više .

James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.