Publicitate

Am mai vorbit despre meritele relative ale Arduino și Zmeură Pi înainte - fiecare are atuurile lor. Cu toate acestea, nu trebuie să fie o alegere - combinați-le pentru a obține cele mai bune din ambele lumi. Automatizarea la domiciliu este candidatul perfect pentru acest lucru. Piața automatizării casnice este inundată cu sisteme de consum scumpe, incompatibile între ele și costisitoare de instalat. Dacă aveți o zmeură Pi Raspberry Pi: Tutorialul neoficialIndiferent dacă sunteți un proprietar actual de Pi care dorește să învețe mai multe sau un potențial proprietar al acestui dispozitiv de dimensiune a cardului de credit, acesta nu este un ghid pe care doriți să îl pierdeți. Citeste mai mult și un Arduino, puteți obține același lucru la o fracțiune din preț, presupunând că sunteți dispus să depuneți timpul și efortul.

Actualizare: De când a fost scris acest articol, am descoperit OpenHAB, o platformă de automatizare casă gratuită și deschisă care funcționează pe Raspberry Pi și poate fi integrat cu o gamă uriașă de kit-uri inteligente pentru acasă, precum și Arduino. Consultați videoclipul de mai jos pentru a găsi un vârf ciudat, apoi mergeți mai departe către pagina noastră

instagram viewer
Noțiuni introductive cu OpenHAB pe Raspberry Pi Noțiuni introductive cu OpenHAB Home Automation pe Raspberry PiOpenHAB este o platformă de automatizare casă matură, open source, care rulează pe o varietate de hardware și este protocol agnostic, ceea ce înseamnă că se poate conecta la aproape orice hardware de automatizare de pe piață astăzi. Citeste mai mult ghid pentru a afla mai multe.

Heimcontrol.js este o aplicație Node.js creată pentru a rula pe Raspberry Pi. În combinație cu un Arduino și câteva prize de control de la distanță de pe raft, face ușor controlul aparatelor de curent alternativ. Puteți adăuga senzori de temperatură și chiar controla televizorul dvs., dar vom păstra lucrurile de bază astăzi și vom extinde proiectul într-un tutorial ulterior.

Iată o defalcare a proiectului:

  • Raspberry Pi va acționa ca creierul și gateway-ul operațiunilor - va rula o aplicație Node, conectată la o bază de date Mongo și va servi interfața front-end la orice browser web.
  • Un Arduino, alimentat de la Pi, va interfața, deocamdată, între comutatoarele electronice - comutatoare de alimentare cu radio.

Pentru a face acest lucru, veți avea nevoie de:

  • Arduino și un zmeură Pi
  • Câteva prize și controler de la distanță (am folosit aceste)
  • Hub USB alimentat
RC-prize

Înainte de a începe, iată un videoclip demonstrativ de la creatorul proiectului.

Începeți din nou

Vom folosi Raspian pentru acest proiect 11 sisteme de operare care rulează pe zmeura dvs. PiIndiferent de proiectul dvs. Raspberry Pi, există un sistem de operare pentru acesta. Vă ajutăm să găsiți cel mai bun sistem de operare Raspberry Pi pentru nevoile dvs. Citeste mai mult și sugerez cu tărie să începeți de la o nouă instalare dacă ați efectuat anterior alte hacks și altele. Descărcați cea mai recentă versiune Imagine raspiană, copiați-l pe cardul dvs. SD și asigurați-vă că extindeți sistemul de fișiere și activați SSH. Restul acestui ghid presupun că ați făcut acest lucru și că vă conectați prin SSH utilizând un utilizator implicit.

Dacă nu ați făcut acest lucru înainte, acest videoclip explică procesul de pregătire a cardului SD în OS X:

Și acesta pentru utilizatorii Windows:

preparare

Procesul de instalare este destul de laborios și provine din instrucțiuni aici. Din păcate, acestea au fost depășite sau nu au fost concepute pentru Raspian, așa că le-am ajustat foarte jos. Codurile de mai jos pot fi lipite în majoritate în blocuri - nu trebuie să lipiți unul câte unul. Întrucât compilăm câteva lucruri despre Pi în sine, fiți atenți că acest întreg proces va dura mult timp. Aș spune că mergeți să vă faceți o ceașcă de ceai - dar când spun un „timp îndelungat”, mă refer la cea mai bună parte a unei zile - deci 178 de căni ar fi mai potrivite.

Toate comenzile trebuie introduse în terminal și este posibil să fie nevoie să apăsați Enter în unele puncte. Aceste primele câteva comenzi vor actualiza sistemul și vor instala pre-cerințele:

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

În continuare, trebuie să instalăm Node:

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

Adăugați o variabilă PATH la profilul dvs., astfel încât sistemul de operare să știe unde se află nodul. Utilizați editorul de text nano după cum urmează:

sudo nano / etc / profile. 

Localizați linia care spune export CALEA și înlocuiți-l cu:

NODE_JS_HOME = "/ opt / nod" PATH = "$ PATH: $ NODE_JS_HOME / bin" export CALEA.

Apăsați Ctrl-X pentru a ieși, iar Y pentru a salva.

Este posibil să fie nevoie să vă deconectați și să vă conectați din nou pentru ca modificările de cale să intre în vigoare, dar puteți testa cu comanda:

care nod. 

Dacă nu primiți nicio ieșire care indică binarul nodului, ceva nu a mers corect.

Mongo

Următoarea lucrare este instalarea Mongo. Mongo este o bază de date No-SQL bazată pe documente, utilizată din ce în ce mai mult de aplicațiile web. Din păcate, acest lucru va lua pentru totdeauna instalarea, deoarece trebuie să o compilăm. În timp ce executați următoarele comenzi, veți primi o mulțime de erori precum:

{input standard}: 13085: Avertisment: utilizarea swp {b} este neprevăzută pentru această arhitectură. 

Nu vă faceți griji pentru acestea. Așadar, executați aceste comenzi pentru a instala Mongo:

git clone git: //github.com/RickP/mongopi.git. cd mongopi. scons. sudo scons --prefix = / opt / mongo instalează scons -c. 

După ce s-a terminat, mai întâi avem nevoie de o configurare suplimentară pentru a remedia problemele de autorizare și pentru a ne asigura că funcționează la pornire.

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

Această ultimă comandă va lansa serverul Mongo și va trebui să deschideți un nou terminal pentru a continua cu celelalte comenzi. Nu sunt în totalitate încrezător în acest pas, așa că, dacă cineva poate corecta acest lucru în comentariile despre cum se poate lansa automat mongod la pornire, ar fi foarte apreciat. Deocamdată, funcționează, dar nu elegant.

sudo închidere -r acum

În cele din urmă, este timpul să instalați aplicația Heimcontrol.js Node.

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

Puteți începe să rulați aplicația tastând


nod heimcontrol.js. 

În acest moment, ar trebui să puteți accesa interfața de control cu http://localhost: 8080 din Pi, sau înlocuiți localhost cu adresa IP dacă îl accesați de la un computer diferit (și puteți de asemenea configurați redirecționarea portului Ce este Port Forwarding și cum mă poate ajuta? [FaceUseOf Explică]Plângi puțin înăuntru când cineva îți spune că există o problemă de redirecționare a porturilor și de aceea aplicația ta nouă și strălucitoare nu va funcționa? Xbox-ul dvs. nu vă va permite să jucați jocuri, descărcările de torrent refuză ... Citeste mai mult pentru a-l accesa de oriunde în lume), așa că v-aș fi încurajat să aruncați o privire și să verificați că toate funcționează cu baza de date înainte de a atașa Arduino

Hardware

În cele din urmă, mi-ar plăcea un releu cu fir, dar deocamdată voi folosi opțiunea mai sigură de comutatoare radio controlate.

Am folosit câteva seturi relativ ieftine de 20 de lire de la Maplin care vin cu 3 prize și am deschis telecomanda, astfel încât să pot interfața direct cu cipul de 433 MHz din interior. Am găsit instrucțiunile pentru asta aici.

rc-controler-hack

De asemenea, puteți achiziționa emițătoare individuale de 433 MHz gata de utilizare pe eBay sau de la furnizori de electronice hobby. Nu trebuie decât să conectați VCC la 5 V de pe Arduino, GND-urile și un singur pin de control - amintiți-vă care l-ați folosit. (Schematic de Willi Thiel)

Arduino-rcswitch

Pluginul funcționează trimitând „coduri tristate”, dar acestea vor varia în funcție de producător. Consultați secțiunea Documentația RCSwitch pentru a găsi codurile dvs. exacte. Acest ghid wiki poate ajuta, de asemenea.

Comunicarea cu Arduino se face folosind o bibliotecă numită Node Duino. Opriți aplicația Heimcontrol dacă rulează și instalează podul Arduino folosind următoarea comandă.

npm instala duino. 

Arduino trebuie să aibă acest cod încărcat - Vă sugerez să copiați și să lipiți pentru a instala acest lucru de pe un computer diferit. Este, în esență, un program ascultător care răspunde la comenzile seriale din Pi, dar nu există nimic care să te oprească să-l extinzi cu propriile caracteristici.

rc-settings

Odată cu lansarea aplicației web, accesați secțiunea Setări meniu> Arduino.

heimcontrol-meniu-settings

De acolo puteți adăuga un element nou, alegând metoda RCSwitch, pinul emițătorului dvs. și codul adresei tristate. Nu uitați să salvați, apoi întoarceți-vă la ecranul principal al noului buton.

rcswitch-setare

Gandaci:

După mai multe ore de depanare a codului, am găsit numere de pini cu o singură cifră care nu funcționează - asigurați-vă că emițătorul dvs. este plasat pe pin 10 a fi sigur.

Am descoperit, de asemenea, că pluginul Arduino a fost hardcodat cu biți finali incorecte pentru codurile tristate de care aveau nevoie receptorii mei. Mai întâi o mică explicație: codurile tristate constau din 3 octeți de informații. Primul ne determină numărul de rețea (1-4), iar cel de-al doilea furnizează adresa transceiverului (din nou, 1-4, producând maximum 16 prize). Octetul final este format din doi biți de umplere, plus 2 biți pentru pornire / oprire. Din păcate, octetul final este codat în pluginul Arduino - iar în cazul meu, codul on / off a fost incorect.

A trebuit să edit manual plugins / Arduino / index.js pentru a utiliza codurile corecte. Dacă utilizați aceleași prize pentru telecomandă ca mine, schimbă liniile 80 în continuare pentru:

// Trimite cod RC. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF"); // schimbare din FF0F. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // schimbare din FF00. }

Iată un videoclip demonstrativ cu tot ce funcționează:

O voi lăsa aici în acest moment, dar sunt citite senzori și telecomenzi IR de asemenea, sprijinit. Probabil că le voi revizui mai târziu cu alte îmbunătățiri. Dacă toate acestea au fost un pic prea complexe pentru tine, poate verifică acestea proiecte Arduino prietenoase pentru începători 15 mari proiecte Arduino pentru începătoriVă interesează proiectele Arduino, dar nu sunteți sigur de unde să începeți? Aceste proiecte pentru începători vă vor învăța cum să începeți. Citeste mai mult .

James are licență în inteligență artificială și este certificat CompTIA A + și Network +. Este dezvoltatorul principal al MakeUseOf și își petrece timpul liber jucând VR paintball și boardgames. Construiește calculatoare de când era mic.