
Michael Cain
0
2650
425
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 - kombinujte je, abyste 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ýuka Raspberry Pi: Neoficiální výuka Ať už jste současným majitelem Pi, který se chce dozvědět více, nebo potenciálním vlastníkem tohoto zařízení velikosti kreditní karty, nejedná se o průvodce chtít minout. a Arduino, můžete v podstatě dosáhnout stejné věci 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 ji integrovat s obrovskou řadou inteligentních domácích kitů a Arduino. Podívejte se na video níže, abyste zjistili, jak se plížíte, a pak pokračujte k našemu Začínáme s OpenHAB na Raspberry Pi Začínáme s OpenHAB Domácí automatizace na Raspberry Pi Začínáme s OpenHAB Domácí automatizace na Raspberry Pi OpenHAB je vyspělá domácí automatizace s otevřeným zdrojovým kódem platforma, která běží na různých hardwarech a je protokolární, což znamená, že se může připojit k téměř jakémukoli hardwaru pro domácí automatizaci na současném trhu. průvodce se dozvíte více.
Heimcontrol.js je aplikace Node.js vytvořená pro provoz na Raspberry Pi. V kombinaci s Arduino a několika 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 prodloužit projekt 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 rádiového ovládání.
K tomu budete potřebovat:
- Arduino a Raspberry Pi
- Některé dálkově ovládané zásuvky a ovladače (použil jsem je)
- 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 Raspian. 11 Operační systémy Raspberry Pi, které můžete vyzkoušet 11 Operační systémy Raspberry Pi, které můžete vyzkoušet Ať 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. , a důrazně doporučujeme začít s novou instalací, pokud jste dříve provedli jiné hacky a podobně. Stáhněte si nejnovější obrázek Raspian, zkopírujte jej na kartu SD 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řipojují 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
Proces instalace je poměrně pracný a vychází z pokynů zde. Bohužel, tyto byly zastaralé nebo nebyly určeny 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 a “dlouho”, Myslím tím nejlepší část dne - tak by bylo vhodnější 178 šálků.
Všechny příkazy by měly být zapsá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 instalace 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 / uzel / 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 založená na dokumentech No-SQL, 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 spoustu chyb, jako 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 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ž bude hotovo, 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 sudo update-rc.d mongodb výchozí 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 spustit mongod automaticky 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 install
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] Co je předávání portů & Jak mi to může pomoci? [MakeUseOf vysvětluje] Myslíte si, pláč uvnitř, když vám někdo řekne, že máte 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, stahování torrentů odmítnout ... přistupovat k němu odkudkoli na světě), takže bych vás vyzval, abyste se hrabali kolem a před připojením Arduina zkontrolovali, jak všechno funguje s databází.
Hardware
Nakonec bych chtěl pevně zapojené relé, ale prozatím budu používat bezpečnější volbu rádiem ovládaných spínačů.
Použil jsem nějaké rozumně levné sady £ 20 od společnosti Maplin, které přicházejí se 3 zásuvkami, a otevřel jsem dálkové ovládání, abych mohl přímo propojit s čipem 433 MHz uvnitř. Pokyny jsem našel zde.
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 odesláním “zkrotit kódy”, ale ty se budou lišit podle výrobce. Přesné kódy najdete v dokumentaci k RCSwitch. Tento průvodce wiki může také pomoci.
Komunikace s Arduino probíhá pomocí knihovny uzlů zvané duino. Pokud je spuštěna aplikace Heimcontrol, zastavte ji a nainstalujte Arduino most pomocí následujícího příkazu.
npm nainstalovat duino
Arduino musí tento kód nahrát - doporučuji, abyste jej zkopírovali a vložili, abyste jej nainstalovali z jiného počítače. Je to v podstatě program pro posluchače, který reaguje na sériové příkazy od Pi, ale není nic, co by vám bránilo rozšířit jej o své 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ů informace. 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, pokud (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 jsou podporovány i hodnoty senzorů a IR dálkové ovladače. 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á si prohlédněte tyto Arduino projekty pro začátečníky 15 Velké Arduino projekty pro začátečníky 15 Velké Arduino projekty pro začátečníky Zajímáte se o Arduino projekty, ale nejste si jisti, kde začít? Tyto začátečníky vás naučí, jak začít. .