Hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino

  • Mark Lucas
  • 0
  • 1900
  • 237
Reklame

Vi har talt om de relative fordele ved Arduino og Raspberry Pi før - de har hver deres styrker. De behøver dog ikke være et af enten et valg eller et valg - kombiner dem for at få det bedste fra begge verdener. Hjemmeautomatisering er den perfekte kandidat til dette. Hjemmeautomatiseringsmarkedet er oversvømmet af dyre forbrugersystemer, uforenelige med hinanden og dyre at installere. Hvis du har en Raspberry Pi Raspberry Pi: Den uofficielle tutorial Raspberry Pi: Den uofficielle tutorial Uanset om du er en nuværende Pi-ejer, der vil lære mere eller en potentiel ejer af denne enhed med kreditkortstørrelse, er dette ikke en guide vil gå glip af. og en Arduino, kan du dybest set opnå den samme ting til en brøkdel af prisen, hvis du antager, at du er villig til at bruge tid og kræfter.

Opdatering: Siden denne artikel blev skrevet, har jeg opdaget OpenHAB, en gratis og open source hjemmeautomatiseringsplatform, der kører på Raspberry Pi og kan integreres med et stort udvalg af hylde-smart-hjemmekit såvel som Arduino. Se videoen nedenfor for en sneak peak, og gå derefter videre til vores Kom godt i gang med OpenHAB på Raspberry Pi Kom godt i gang med OpenHAB Home Automation på Raspberry Pi Kom i gang med OpenHAB Home Automation på Raspberry Pi OpenHAB er en moden, open source hjemmeautomation platform, der kører på en række hardware og er protokollagnostisk, hvilket betyder, at den kan oprette forbindelse til næsten enhver hjemmeautomatiseringshardware på markedet i dag. guide til at lære mere.

Heimcontrol.js er en Node.js app bygget til at køre på Raspberry Pi. Kombineret med en Arduino og nogle fjernbetjeninger uden for hylden gør det nemt at kontrollere vekselstrømsapparater. Du kan tilføje temperatursensorer og endda styre dit tv - men vi holder tingene basale i dag og udvider projektet i en senere tutorial.

Her er en oversigt over projektet:

  • Raspberry Pi vil fungere som hjernen og porten til operationer - den kører en Node-app, bundet til en Mongo-database, og serverer front-end interface til enhver webbrowser.
  • En Arduino, drevet fra Pi, vil grænseflade mellem elektronik - radiokontrol strømafbrydere, indtil videre.

For at gøre dette skal du:

  • Arduino og en hindbærpi
  • Nogle fjernbetjente stikkontakter og controller (jeg brugte disse)
  • Drevet USB-hub

Inden vi begynder, her er en demovideo fra projektskaberen selv.

Start Afresh

Vi vil bruge Raspian til dette projekt 11 Raspberry Pi-operativsystemer, du kan prøve 11 Raspberry Pi-operativsystemer, du kan prøve Uanset hvilket som helst Raspberry Pi-projekt, der er et operativsystem til det. Vi hjælper dig med at finde det bedste Raspberry Pi OS til dine behov. , og jeg vil kraftigt foreslå at starte fra en ny installation, hvis du tidligere har udført andre hacks og sådan. Download det nyeste Raspian-billede, kopier det til dit SD-kort, og sørg for at udvide filsystemet og aktiver SSH. Resten af ​​denne vejledning antager, at du har gjort det, og opretter forbindelse via SSH ved hjælp af standardbrugeren.

Hvis du ikke har gjort dette før, forklarer denne video processen med at forberede dit SD-kort i OS X:

Og denne til Windows-brugere:

Forberedelse

Installationsprocessen er temmelig besværlig og afledt af instruktionerne her. Desværre var disse forældede eller ikke designet til Raspian, så jeg har justeret dem kraftigt nedenfor. Koderne nedenfor kan for det meste indsættes i blokke - du behøver ikke indsætte en ad gangen. Da vi samler et par ting på selve Pi, skal du advares om, at hele denne proces vil tage lang tid. Jeg vil sige, gå, skab dig en kop te - men når jeg siger a “lang tid”, Jeg mener, den bedste del af en dag - så 178 kopper ville være mere passende.

Alle kommandoer skal indtastes i terminalen, og du skal muligvis trykke på Enter på nogle punkter. Disse første par kommandoer vil opdatere systemet og installere forudsætninger:

sudo apt-get-opdatering sudo apt-get-opgradering sudo apt-get installere git-core git scons build-essential scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-optioner-dev libboost-thread-dev libboost-filesystem-dev 

Derefter skal vi installere Node:

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 

Tilføj en PATH-variabel til din profil, så operativsystemet ved, hvor Node er placeret. Brug nano-teksteditoren som følger:

sudo nano / etc / profile 

Find den linje, der siger eksport PATH og erstatt det med:

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" eksport PATH 

Tryk på Ctrl-X for at afslutte, og Y for at gemme.

Det kan være nødvendigt at du logger ud og igen for at ændre stien til at træde i kraft, men du kan teste med kommandoen:

hvilken knude 

Hvis du ikke får noget output, der peger på Node binær, gik der noget galt.

Mongo

Det næste job er at installere Mongo. Mongo er en dokumentbaseret No-SQL-database, der i stigende grad bruges af webapps. Desværre tager det evigt at installere, da vi er nødt til at kompilere det. Når du kører følgende kommandoer, får du en masse fejl som:

standardindgang: 13085: Advarsel: swp b brug udskrives til denne arkitektur 

Må ikke bekymre dig om disse. Så kør disse kommandoer for at installere Mongo:

git klon git: //github.com/RickP/mongopi.git cd mongopi scons sudo scons --prefix = / opt / mongo installere scons -c 

Når det er færdigt, har vi brug for lidt mere opsætning først for at løse tilladelsesproblemer og sikre, at det kører ved opstart.

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/36d45897cd943fbd6d71bbd6d71b .sh sudo chmod + x mongodb sudo update-rc.d mongodb er standard mongod

Denne sidste kommando starter Mongo-serveren, og du bliver nødt til at åbne en ny terminal for at fortsætte med de andre kommandoer. Jeg er ikke helt sikker på dette trin, så hvis nogen kan rette dette i kommentarerne til, hvordan man automatisk lancerer mongod ved opstart, ville det være meget værdsat. For tiden fungerer det bare ikke elegant.

sudo nedlukning -r nu

Endelig er det tid til at installere Heimcontrol.js Node-applikationen.

cd ~ pi git klon git: //github.com/ni-c/heimcontrol.js.git cd heimcontrol.js npm installation 

Du kan begynde at køre appen ved at skrive

 node heimcontrol.js 

På dette tidspunkt skal du være i stand til at få adgang til kontrolgrænsefladen med http: // localhost: 8080 fra Pi, eller erstatt localhost med IP-adressen, hvis du får adgang til den fra en anden computer (og du kan også konfigurere portvideresendelse. Hvad er portvideresendelse & hvordan kan det hjælpe mig? [MakeUseOf Explains] Hvad er portvideresendelse & Hvordan kan det hjælpe mig? [MakeUseOf Explains] Græder du lidt indeni, når nogen siger, at der er et portvideresendelsesproblem, og det er grunden til, at din skinnende nye app ikke fungerer? Din Xbox lader dig ikke spille spil, dine torrent-downloads nægter ... at få adgang til det hvor som helst i verden), så jeg vil opfordre dig til at stikke rundt og tjekke, at alt fungerer med databasen, før du vedhæfter Arduino.

Hardware

Til sidst vil jeg gerne have et fastnet relæ, men i øjeblikket bruger jeg den sikrere mulighed for radiostyrede afbrydere.

Jeg har brugt nogle rimeligt billige £ 20 sæt fra Maplin, der leveres med 3 stikkontakter, og åbnet fjernbetjeningen, så jeg kunne interface direkte med 433 MHz-chippen inde. Jeg fandt instruktionerne her.

Du kan også købe individuelle 433 MHz sendere klar til brug på eBay eller fra hobbyelektronikleverandører. Alt hvad du behøver er at forbinde VCC til 5 V på Arduino, GND'erne og en enkelt kontrolnål - husk hvilken du brugte. (Skematisk af Willi Thiel)

Plugin fungerer ved at sende “tristate koder”, men disse vil variere fra producent. Se dokumentationen til RCSwitch for at finde dine nøjagtige koder. Denne wiki-guide hjælper muligvis også.

Kommunikation med Arduino foregår ved hjælp af et Node-bibliotek kaldet duino. Stop Heimcontrol-appen, hvis den kører, og installer Arduino-broen ved hjælp af følgende kommando.

npm installere duino 

Arduino'en skal have denne kode uploadet - jeg foreslår, at du kopierer og indsætter for at installere denne fra en anden computer. Det er i det væsentlige et lytterprogram, der reagerer på serielle kommandoer fra Pi, men der er intet der forhindrer dig i at udvide det med dine egne funktioner.

Gå til. Med web-appen lanceret Indstillinger menu> Arduino.

Derfra kan du tilføje en ny vare ved at vælge RCSwitch-metode, din senders pin og den tristate adressekode. Husk at gemme, og gå derefter tilbage til hovedskærmen for din nye knap.

Bugs:

Efter mange timers fejlsøgning af koden fandt jeg, at enkeltcifrede pin-numre ikke fungerer - sørg for, at din sender er placeret på pin 10 at være sikker.

Jeg fandt også, at Arduino-pluginet var hardkodet med forkerte endelige bits til de tristate koder, som mine modtagere havde brug for. En lille forklaring først: tristatkoder består af 3 byte af information. Den første bestemmer os netværksnummeret (1-4), og det andet giver transceiveradressen (igen, 1-4, der producerer maksimalt 16 adresserbare stikkontakter). Den endelige byte består af to bit polstring plus 2 bit til / fra. Desværre er den endelige byte hardkodet til Arduino-pluginet - og i mit tilfælde var on / off-koden forkert.

Jeg måtte manuelt redigere plugins / Arduino / index.js at bruge de korrekte koder. Hvis du bruger de samme fjernbetjeningsstik som jeg er, skal du skifte linie 80 og frem til:

// Send RC-kode hvis (item.value) returner that.pins [item.pin] .triState (item.code + "FFFF"); // skift fra FF0F andet return that.pins [item.pin] .triState (item.code + "FFF0"); // ændre fra FF00

Her er en demovideo af alt, hvad der fungerer:

Jeg vil forlade det her på dette tidspunkt, men sensorlæsninger og IR-fjernbetjeninger understøttes også. Jeg vil sandsynligvis gennemgå disse på et senere tidspunkt med nogle flere forbedringer. Hvis dette alt sammen har været lidt for kompliceret for dig, kan du tjekke disse begyndervenlige Arduino-projekter 15 Store Arduino-projekter for begyndere 15 Store Arduino-projekter for begyndere Interesserede i Arduino-projekter, men ikke sikker på, hvor de skal starte? Disse nybegynderprojekter vil lære dig, hvordan du kommer i gang. .




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.