reklama
Už jsme mluvili o relativních výhodách Arduina a Raspberry Pi - každý má své silné stránky. Nemusí to ale být ani volba, ale kombinovat je tak, aby získali to nejlepší z obou světů. Domácí automatizace je tím pravým kandidátem. Trh domácí automatizace je zaplaven drahými spotřebitelskými systémy, nekompatibilními navzájem a nákladnou instalací. Pokud máte Raspberry Pi Raspberry Pi: Neoficiální výukaAť už jste současným majitelem Pi, který se chce dozvědět více, nebo potenciálním vlastníkem tohoto zařízení s velikostí kreditní karty, nejedná se o průvodce, kterého byste si chtěli nechat ujít. Přečtěte si více a Arduino, můžete v podstatě dosáhnout totéž za zlomek ceny, za předpokladu, že jste ochotni dát čas a úsilí.
Aktualizace: Od doby, kdy byl tento článek napsán, jsem objevil OpenHAB, bezplatnou a otevřenou platformu pro domácí automatizaci který běží na Raspberry Pi a lze jej integrovat s obrovskou řadou chytrých domácích stavebnic Arduino. Podívejte se na video níže, abyste zjistili, jak se plížíte, a pak se vydejte na náš Začínáme s OpenHAB na Raspberry Pi Začínáme s domácí automatizací OpenHAB na Raspberry PiOpenHAB je vyspělá platforma pro domácí automatizaci s otevřeným zdrojovým kódem, která běží na různých hardwarech a je protokol agnostický, což znamená, že se může připojit k téměř jakémukoli hardwaru domácí automatizace na trhu dnes. Přečtěte si více průvodce se dozvíte více.
Heimcontrol.js je aplikace Node.js postavená pro provoz na Raspberry Pi. V kombinaci s Arduino a některými zásuvkami pro dálkové ovládání je ovládání AC spotřebičů snadné. Můžete přidat teplotní senzory a dokonce ovládat svůj televizor - ale dnes si budeme udržovat základní věci a projekt prodloužíme v pozdějším tutoriálu.
Zde je rozpis projektu:
- Raspberry Pi bude fungovat jako mozek a brána operací - spustí aplikaci Node, navázanou na mongolskou databázi a obsluhuje rozhraní front-end do jakéhokoli webového prohlížeče.
- Arduino, napájené z Pi, bude prozatím rozhraní mezi elektronikou - vypínačem ovládání rádia.
K tomu budete potřebovat:
- Arduino a Raspberry Pi
- Některé dálkově ovládané zásuvky a ovladače (použil jsem tyto)
- Napájený rozbočovač USB
Než začneme, zde je ukázkové video od samotného tvůrce projektu.
Začít znovu
Pro tento projekt použijeme Raspiana 11 Operační systémy, které běží na vašem Raspberry PiAť už je váš projekt Raspberry Pi jakýkoli, existuje pro něj operační systém. Pomůžeme vám najít nejlepší Raspberry Pi OS pro vaše potřeby. Přečtěte si více a důrazně doporučujeme začít s novou instalací, pokud jste již dříve provedli jiné hacky a podobně. Stáhněte si nejnovější Raspian image, zkopírujte ji na SD kartu a nezapomeňte rozšířit souborový systém a povolit SSH. Zbytek této příručky bude předpokládat, že jste tak učinili, a připojujete se přes SSH pomocí výchozího uživatele.
Pokud jste tak ještě neučinili, vysvětluje toto video proces přípravy vaší SD karty v OS X:
A toto pro uživatele Windows:
Příprava
Instalační proces je poměrně pracný a vychází z pokyny zde. Bohužel to byly zastaralé nebo nenavrhované pro Raspiana, takže jsem je upravil těžce pod. Níže uvedené kódy lze většinou vkládat do bloků - nemusíte je vkládat jeden po druhém. Protože sestavujeme několik věcí na samotném Pi, upozorňujeme, že celý tento proces bude trvat dlouho. Řekl bych, že si udělejte šálek čaje - ale když řeknu „dlouhou dobu“, myslím tím nejlepší část dne - tak by bylo vhodnějších 178 šálků.
Všechny příkazy by měly být zadány do terminálu a v některých případech bude možná nutné stisknout klávesu Enter. Těchto prvních několik příkazů aktualizuje systém a nainstaluje předpoklady:
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.
Dále musíme nainstalovat uzel:
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 uzel-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.
Přidejte do svého profilu proměnnou PATH, aby operační systém věděl, kde je uzel umístěn. Použijte nano textový editor takto:
sudo nano / etc / profile.
Vyhledejte řádek, který říká export PATH a nahraďte jej:
NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" export PATH.
Stiskněte Ctrl-X pro ukončení a Y pro uložení.
Možná se budete muset odhlásit a znovu přihlásit, aby se změny cesty projevily, ale můžete vyzkoušet pomocí příkazu:
který uzel.
Pokud nedostanete žádný výstup směřující na binární uzel, něco se pokazilo.
Mongo
Další úlohou je instalace Mongo. Mongo je databáze No-SQL založená na dokumentu, kterou stále více používají webové aplikace. Instalace bude bohužel trvat věčně, protože ji musíme kompilovat. Při spuštění následujících příkazů získáte mnoho chyb, například:
{standardní vstup}: 13085: Upozornění: použití swp {b} je pro tuto architekturu zastaralé.
Nedělejte si s tím starosti. Spusťte tedy tyto příkazy a nainstalujte Mongo:
git clone git: //github.com/RickP/mongopi.git. CD mongopi. scons. sudo scons - prefix = / opt / mongo install scons -c.
Až to skončí, potřebujeme nejprve trochu více nastavení, abychom vyřešili problémy s oprávněními a ujistili se, že běží při spuštění.
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. výchozí nastavení sudo update-rc.d mongodb. mongod
Tento poslední příkaz spustí server Mongo a budete muset otevřít nový terminál, abyste mohli pokračovat s ostatními příkazy. Nejsem si zcela jistý tímto krokem, takže pokud to může někdo napravit v komentářích o tom, jak se mongod automaticky spustí při spuštění, bylo by to velmi oceněno. Prozatím to funguje, ale ne elegantně.
sudo vypnutí -r nyní
Nakonec je čas nainstalovat aplikaci Heimcontrol.js Node.
cd ~ pi. git clone git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. Npm instalace.
Aplikaci můžete spustit zadáním
uzel heimcontrol.js.
Nyní byste měli mít přístup k ovládacímu rozhraní pomocí http://localhost: 8080 z Pi, nebo nahraďte localhost IP adresou, pokud k ní přistupujete z jiného počítače (a můžete také nastavit předávání portů Co je předávání portů a jak mi může pomoci? [MakeUseOf vysvětluje]Trochu pláčete uvnitř, když vám někdo řekne, že existuje problém s přesměrováním portů, a proto vaše nová lesklá aplikace nebude fungovat? Váš Xbox vám nedovolí hrát hry, vaše stahování torrentů odmítne ... Přečtěte si více abyste k němu měli přístup odkudkoli na světě), proto doporučujeme, abyste si před připojením Arduina zkontrolovali vše a zkontrolovali, zda vše funguje s databází.
Hardware
Nakonec bych chtěl pevně zapojené relé, ale prozatím budu používat bezpečnější možnost rádiem ovládaných spínačů.
Použil jsem některé rozumně levné sady £ 20 od společnosti Maplin, které jsou dodávány se 3 zásuvkami, a otevřel jsem dálkové ovládání, abych mohl přímo komunikovat s čipem 433 MHz uvnitř. Pokyny jsem našel tady.
Můžete si také zakoupit jednotlivé vysílače 433 MHz připravené k použití na eBay nebo od dodavatelů hobby elektroniky. Vše, co potřebujete, je připojit VCC na 5 V na Arduino, GND a jediný ovládací pin - nezapomeňte, který jste použili. (Schéma Williho Thiela)
Plugin funguje zasláním „kódů zkrácení“, ale liší se podle výrobce. Odkazovat na Dokumentace RCSwitch najít přesné kódy. Tento wiki průvodce může také pomoci.
Komunikace s Arduino probíhá pomocí knihovny uzlů s názvem duino. Zastavte aplikaci Heimcontrol, pokud je spuštěna, a nainstalujte Arduino most pomocí následujícího příkazu.
npm nainstalovat duino.
Arduino musí mít tento kód byl nahrán - Navrhuji, abyste si kopii a vložení nainstalovali z jiného počítače. Jde v podstatě o posluchačský program, který reaguje na sériové příkazy od Pi, ale není nic, co by vás zastavilo rozšiřováním o vlastní funkce.
Se spuštěnou webovou aplikací přejděte na stránku Nastavení menu> Arduino.
Odtud můžete přidat novou položku, vybrat metodu RCSwitch, pin vašeho vysílače a kód tristate adresy. Nezapomeňte uložit a poté se vraťte na hlavní obrazovku nového tlačítka.
Hmyz:
Po mnoha hodinách ladění kódu jsem zjistil, že čísla jednociferných pinů nefungují - ujistěte se, že je váš vysílač umístěn na pin 10 si být jisti.
Také jsem zjistil, že plugin Arduino byl pevně zakódován s nesprávnými konečnými bity pro kódy tristátu, které moje přijímače potřebovaly. Nejdříve malé vysvětlení: kódy tristate se skládají ze 3 bajtů informací. První určuje číslo sítě (1-4) a druhý poskytuje adresu transceiveru (znovu 1-4, produkující maximálně 16 adresovatelných soketů). Konečný bajt se skládá ze dvou bitů výplně plus 2 bity pro zapnutí / vypnutí. Bohužel je poslední bajt pevně zakódován do pluginu Arduino - a v mém případě byl kód zapnutí / vypnutí nesprávný.
Musel jsem ručně upravit pluginy / arduino / index.js používat správné kódy. Pokud používáte stejné zásuvky pro dálkové ovládání jako já, změňte řádky o 80 dále:
// Odeslat RC kód. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF"); // změna z FF0F. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // změna z FF00. }
Zde je ukázkové video všeho, co funguje:
V tuto chvíli to nechám tady, ale hodnoty senzorů a IR dálkové ovladače jsou také podporován. Pravděpodobně se k nim vrátím později s některými dalšími vylepšeními. Pokud pro vás bylo všechno příliš složité, možná se podívejte na tyto Arduino projekty pro začátečníky 15 skvělých Arduino projektů pro začátečníkyMáte zájem o projekty Arduino, ale nejste si jisti, kde začít? Tyto začátečníky vás naučí, jak začít. Přečtěte si více .
James má bakalářský titul v oboru umělé inteligence a je držitelem certifikátu CompTIA A + a Network +. Je hlavním vývojářem MakeUseOf a tráví svůj volný čas hraním VR paintballu a deskových her. Staví počítače od dětství.