Vodič za kućnu automatizaciju Raspberry Pi i Arduino

  • Joseph Goodman
  • 0
  • 829
  • 7
Oglas

Prije smo razgovarali o relativnim zaslugama Arduina i Raspberry Pi-a - svi imaju svoje snage. Ipak im ne treba biti ni izbor ni 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, nekompatibilnim jedni s drugima i skupim za instalaciju. Ako imate Raspberry Pi Raspberry Pi: Neslužbeni udžbenik Raspberry Pi: Neslužbeni vodič Bez obzira jeste li trenutni vlasnik Pi-a koji želi saznati više ili ste potencijalni vlasnik ovog uređaja veličine veličine kreditne kartice, to vas ne vodi. želite propustiti. i Arduino, u osnovi možete postići istu stvar uz djelić cijene, pod pretpostavkom da ste spremni uložiti vrijeme i trud.

Ažuriranje: Otkad je napisan ovaj članak, otkrio sam OpenHAB, besplatnu i open source platformu za automatizaciju kućanstava koja radi na Raspberry Pi i može se integrirati s ogromnim spektrom kompletnog pametnog kućnog kompleta kao i Arduino. Pogledajte videozapis u nastavku za vrhunac vrhunskog sna, a zatim krenite prema našem članku s OpenHAB-om na Raspberry Pi Uvod u OpenHAB kućnu automatizaciju na Raspberry Pi Uvod u OpenHAB kućnu automatizaciju na Raspberry Pi OpenHAB je zreli, kućni automatizacija otvorenog koda platforma koja radi na različitim hardverima i protokolarna je, što znači da se danas može povezati s gotovo svim hardverom za kućnu automatizaciju na tržištu. 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 daljinskim upravljačima, 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 kasnijim tutorialima.

Evo podjele projekta:

  • Raspberry Pi će djelovati kao mozak i gateway operacija - pokrenut će aplikaciju Node, vezan za Mongo bazu podataka i poslužit će sučelje bilo kojeg web preglednika.
  • 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 (koristio sam ih)
  • Napajanje USB koncentratora

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

Počnite iznova

Koristit ćemo Raspian za ovaj projekt. 11 Raspberry Pi operativni sustavi koji možete isprobati 11 Raspberry Pi operativni sustavi koji možete isprobati bez obzira na vaš projekt Raspberry Pi, za to postoji operativni sustav. Pomažemo vam da pronađete najbolje Raspberry Pi OS za vaše potrebe. , i toplo bih preporučio krenuti od novog instaliranja ako ste prethodno izvodili druge hakere i slično. Preuzmite najnoviju raspiansku sliku, kopirajte 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 video opisuje postupak pripreme vaše SD kartice u OS X:

I ovaj za Windows korisnike:

priprema

Postupak instalacije prilično je naporan i proizlazi iz ovdje navedenih uputa. Nažalost, ove su zastarjele ili nisu dizajnirane za Raspijan, pa sam ih u nastavku znatno prilagodio. Šifre u nastavku uglavnom se mogu zalijepiti u blokove - ne morate ih zalijepiti jedan po jedan. Budući da sastavljamo nekoliko stvari na samom Pi, upozorite da će cijeli ovaj postupak trajati dugo. Rekao bih da si napravite šalicu čaja - ali kad kažem ja “Dugo vrijeme”, Mislim na najbolji dio dana - pa bi 178 šalica bilo primjerenije.

Sve naredbe trebaju biti upisane 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 sudo apt-get nadogradnja 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 / 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 čvor-v0.10.2-linux-arm-pi / * / opt / čvor sudo ln -s / opt / node / bin / čvor / usr / local / bin / node sudo ln -s / opt / node / bin / npm / usr / local / bin / npm 

Dodajte varijablu 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 / node" PATH = "$ 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 ne dobijete nijedan izlaz koji upućuje na binarni čvor, nešto je pošlo po zlu.

Mongo

Sljedeći je posao instalirati 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 za instaliranje kao što ga moramo sastaviti. Tijekom sljedećih naredbi dobit ćete puno pogrešaka poput:

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

Ne brinite zbog ovih. 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 osigurali da se pokreće pri pokretanju.

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 zadani zadaci 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 se automatski pokrenuti mongod pri pokretanju, bilo bi jako zahvalno. Za sada djeluje, samo ne elegantno.

sudo shutdown -r sada

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

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

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 postaviti i prosljeđivanje porta. Što je prosljeđivanje porta i kako mi može pomoći? [MakeUseOf Explains] Što je prosljeđivanje porta & 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 luka i da zbog toga vaša sjajna nova aplikacija neće raditi? Vaš Xbox neće dopustiti igranje igrica, preuzimanja torrenta odbijte ... 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 Arduino-a.

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. Ovdje sam pronašao upute za to.

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 kontrolni pin - sjetite se kojeg ste koristili. (Shema: Willi Thiel)

Dodatak funkcionira slanjem “tristate kodovi”, ali one će se razlikovati od proizvođača. Pogledajte dokumentaciju RCSwitch da pronađete svoje točne kodove. Ovaj wiki vodič također može pomoći.

Komunikacija s Arduinom ostvaruje se pomoću biblioteke čvora koja se naziva duino. Zaustavite aplikaciju Heimcontrol ako se pokreće i instalirajte Arduino most pomoću sljedeće naredbe.

npm instalirajte duino 

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

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

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.

Nedostaci:

Nakon više sati uklanjanja pogrešaka koda, ustanovio 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čivanje i isključivanje. Nažalost, konačni bajt je tvrdo kodiran u Arduino dodatak - a 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 od 80 na dalje:

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

Evo demo videa o svemu što radi:

Ostavit ću ga ovdje ovdje, ali podržana su i očitanja senzora i IR daljinskog upravljača. Vjerojatno ću ih pregledati kasnije s još nekim poboljšanjima. Ako vam je sve ovo bilo previše složeno, možda pogledajte ove Arduino projekte prilagođene početnicima 15 Veliki Arduino projekti za početnike 15 Veliki Arduino projekti za početnike Zainteresirani za Arduino projekte, ali niste sigurni gdje započeti? Ovi početnički projekti naučit će vas kako započeti. .




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.