Obsah:

Smart Home od Raspberry Pi: 5 krokov (s obrázkami)
Smart Home od Raspberry Pi: 5 krokov (s obrázkami)

Video: Smart Home od Raspberry Pi: 5 krokov (s obrázkami)

Video: Smart Home od Raspberry Pi: 5 krokov (s obrázkami)
Video: Блок питания с встроенным аккумулятором и функцией UPS на 5, 9, 12 вольт 2024, Júl
Anonim
Smart Home od Raspberry Pi
Smart Home od Raspberry Pi

Existuje už niekoľko produktov, vďaka ktorým je váš byt múdrejší, ale väčšinou ide o proprietárne riešenia. Prečo však potrebujete na zapnutie svetla pomocou smartfónu internetové pripojenie? To bol jeden z dôvodov, prečo som si vybudoval vlastné riešenie Smart Home.

Naprogramoval som serverovú aplikáciu, ktorá beží na Raspberry Pi. Toto je open source projekt založený na jave, ktorý vám umožní nakonfigurovať váš byt a pripojiť niekoľko klientov a „ovládateľných jednotiek“. Ukazujem riešenie, ktoré zvláda vypínače napájania na diaľkové ovládanie, prehráva hudbu a video na Raspberry Pi, ukazuje stav na inteligentnom zrkadle a dá sa ovládať pomocou aplikácie pre Android a dvoch kamienkových aplikácií. Zdroj je hostený na serveri github

Krok 1: Veci, ktoré potrebujete

Veci, ktoré potrebujete
Veci, ktoré potrebujete

Na nastavenie inteligentnej domácnosti potrebujete nasledujúce „prísady“

  • Raspberry Pi aspoň model 2 B
  • Odosielateľ 433 MHz, niečo také
  • 3 prepojovacie káble spájajúce Raspberry Pi a odosielateľ
  • Niektoré zásuvky pre rádiové ovládanie na frekvencii 433 MHz
  • Smartfón so systémom Android na spustenie klientskej aplikácie

Smart Home môžete navyše rozšíriť o ďalších voliteľných klientov a podobné jednotky

  • Kamienkové inteligentné hodinky
  • Smart Mirror, pozrite si tento projekt
  • LED pásik ovládaný 433 MHz, pozrite si tento

Krok 2: Pripravte Raspberry Pi na 433 MHz

Pripravte si Raspberry Pi na 433 MHz
Pripravte si Raspberry Pi na 433 MHz
Pripravte si Raspberry Pi na 433 MHz
Pripravte si Raspberry Pi na 433 MHz

V nasledujúcich krokoch potrebujete prístup k príkazovému riadku na Raspberry Pi. Ak chcete získať prístup, môžete si prečítať tento návod na

Pripojte vysielač 433 MHz k Raspberry Pi, ako je znázornené na obrázku vyššie

  • GND (odosielateľ) 6 GND (raspi)
  • VCC (odosielateľ) 2 +5V (raspi)
  • DATA (odosielateľ) 11 GPIO 17 (raspi)

Pripojte tiež 17 cm anténu k kolíku ANT (odosielateľ). To výrazne zvyšuje signál.

Pretože potrebujeme niektoré knižnice z iných úložísk git, musíme nainštalovať git

sudo apt-get install git-core -y

Na nastavenie Raspberry Pi na komunikáciu 433 MHz potrebujeme káblovú knižnicu Pi na lepšie ovládanie GPIO.

klon git git: //git.drogon.net/wiringPi

cd wiringPi./build

Potom potrebujeme knižnicu, ktorá implementuje spravidla protokoly napájania RC.

git klon git: //github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi make cp send/usr/bin/

Spustiteľný súbor „odoslať“vám umožňuje odosielať kódy na prepínanie väčšiny dostupných zdrojov napájania.

V mojom nastavení Smart Home mám tiež rc LED pásik popísaný týmto návodom: https://www.instructables.com/id/RC-controlled-LED… Na nastavenie farieb pre tento LED pásik potrebujete ďalší odosielací spustiteľný súbor, ktorý vám umožní na odoslanie akejkoľvek celočíselnej hodnoty (ktorá kóduje farbu).

Preto skompilovajte sendInt.cpp v repo rcswitch-pi a presuňte ho do/usr/bin/sendInt.

sudo g ++ sendInt.cpp -o/usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch -pi -lwiringPi

Teraz by ste mali byť schopní odosielať príkazy rc pomocou dvoch spustiteľných súborov/usr/bin/send a/usr/bin/sendInt

Krok 3: Nastavte server Smart Home

Najprv musíte nainštalovať niekoľko balíkov. Aplikácia Smart Home je založená na jave a funguje dobre s openjdk-11. Nie som si istý inými runtime prostredím java. Mplayer je minimalistický prehrávač hudby príkazového riadka. Prehrávač omx používa na kódovanie videa grafiku Raspberry Pi, takže by sa mala používať na videá. Na zostavenie java aplikácie je potrebný program mravenec.

sudo apt-get nainštalovať mplayer omxplayer openjdk-11-jdk ant -y

Nastavte adresáre pre súbor jar a protokoly.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Logs

Nakonfigurujte štartovací skript, aby sa aplikácia automaticky spustila pri štarte. Skopírujte preto priložený skript smart-home do adresára /etc/init.d/ Tiež som vytvoril skript v/usr/bin/, ktorý odosiela príkazy do priloženého skriptu, takže do konzoly zadám príkaz smart-home a spustím príkazy.

sudo cp smart-home /etc/init.d/smart-home

sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#!/bin/bash'>/usr/bin/smart -home" sudo sh -c "echo '/etc/init. d/smart-home / $ 1 '>>/usr/bin/smart-home "sudo chmod +x/usr/bin/smart-home sudo update-rc.d predvolené nastavenia smart-home

Teraz je načase skontrolovať úložisko a vytvoriť aplikáciu. Ak ho nechcete zostavovať sami, stačí si stiahnuť priložený súbor smarthome.jar a presunúť ho na/opt/neo/

git clone [email protected]: dabastynator/SmartHome.git

ant -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

Skúste spustiť inteligentný dom a skontrolujte súbor denníka. Ak chcete získať prístup k GPIO, aplikáciu musí spustiť sudo.

štart inteligentného domova sudo

mačka Záznamy/smarthome.log

Mali by ste vidieť chybové hlásenie Konfiguračný súbor neexistuje, ktoré nás odkazuje na ďalší krok. Úložisko obsahuje súbor readme, ktorý vysvetľuje konfiguračný súbor. Toto môžete krásne vykresliť na github:

Skopírujte tento xml na /home/pi/controlcenter.xml, potom nastavte umiestnenie pre svoj mediálny server a zmeňte obsah podľa potreby. Po dokončení konfigurácie a reštarte inteligentného domu (sudo smart-home restart) by ste v smarthome.log mali vidieť nasledujúci obsah

24.05-08: 26 DIAĽKOVÉ INFORMÁCIE od de.neo.smarthome.cronjob. CronJob@15aeb7ab: Naplánovať prácu cron

24.05-08: 26 DIAĽKOVÉ INFORMÁCIE od [trigger.light]: Počkajte 79391760 ms na vykonanie 24.05-08: 26 INFORMÁCIE RMI pridaním webového obslužného programu (5061/ledstrip) 24.05-08: 26 INFORMÁCIE RMI pridaním webového obslužného programu (5061 /akcia) 24.05-08: 26 RMI INFORMÁCIE od Add web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION od Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/controlcenter) 24.05-08: 26 RMI INFORMATION by Start webserver with 5 handler (localhost: 5061) 24.05-08: 26 REMOTE INFORMATION by Controlcenter: Add 1. control unit: MyUnit (xyz)…

Web server je spustený:-)

Krok 4: Nastavenie klientov

Nastavenie klientov
Nastavenie klientov
Nastavenie klientov
Nastavenie klientov
Nastavenie klientov
Nastavenie klientov

Smartfón klient pre Android

Úložisko git pre aplikáciu smart-home obsahuje aj zdroj pre klienta Android, takže si ho môžete zostaviť sami. Ale pre tento krok som pripojil APK, čo to uľahčuje. Pri prvom spustení aplikácie vás požiada o server, ako na prvom obrázku vyššie. Zadajte webovú adresu servera a bezpečnostný token.

To by malo byť. Teraz máte prístup na server a môžete ovládať svoj byt, prehrávať hudbu a sledovať videá na diaľku na svojom Raspberry Pi. Upozorňujeme, že na domovskú obrazovku môžete pridať miniaplikácie, vďaka ktorým budú prepínače a ovládanie hudby prístupnejšie.

Smartwatch Pebble klient

Zdroj pre dvoch klientov s kamienkami je hostený na github. Jedna aplikácia zobrazuje aktuálne prehrávaný hudobný súbor: https://github.com/dabastynator/PebbleRemoteMusic… To vám tiež umožňuje pozastaviť/prehrať a zvýšiť/znížiť hlasitosť.

Druhá aplikácia spustí tri akcie: https://github.com/dabastynator/PebbleControl Názvy spúšťačov sú: mobile.come_home mobile.leaving a mobile.go_to_bed. Ak definujete pravidlá udalostí pre tento spúšťač v konfiguračnom xml, spustíte ich pomocou hodiniek.

Všetko je to open-source, ale nemusíte si to zostavovať sami, priložil som aj kamienkové aplikácie. Stiahnite si PBW's do svojho smartfónu, váš telefón by ich mal nainštalovať do hodiniek. Na komunikáciu so serverom vyžadujú kamienkové aplikácie konfigurácie. Priložil som snímku obrazovky, ako vyzerajú moje nastavenia.

Smartwatch klient Garmin

K dispozícii je aj klient pre inteligentné hodinky Garmin. Aplikácia je k dispozícii v obchode s aplikáciami garmin connect a je možné ju nainštalovať tu:

apps.garmin.com/en-US/apps/c745527d-f2af-4…

Klient Smart Mirror

Už som vytvoril návod, ktorý vysvetľuje, ako vytvoriť Smart Mirror, pozrite sa na https://www.instructables.com/id/Smart-Mirror-by-R…. Zdrojový kód je hostiteľom aj na github: https:// github.com/dabastynator/SmartMirror. Softvér Smart Mirror načíta konfiguráciu zo súboru smart_config.js, ktorý nie je súčasťou úložiska git. Obsah konfiguračného súboru by mal vyzerať takto:

var mOpenWeatherKey = 'your-open-wheather-key';

var mSecurity = 'your-security-token';

Tiež musíte upraviť prvé dva riadky súboru smart_mirror.js tak, aby určovali IP adresu servera Smart Home a umiestnenie, aby bolo dosiahnuté správne počasie.

Viac klientov

Serverová aplikácia je jednoduchý webový server. To vám umožní vykonávať akcie z ľubovoľného klienta, ktorého chcete, jednoduchými webovými hovormi. V ukážke videa zobrazujem nástroj na vytváranie aplikácií pre Android v kombinácii s AutoVoice. To mi umožňuje spúšťať udalosti jednoduchými hlasovými príkazmi. Napríklad „ok google, time to sleep“môže spustiť mobile.go_to_bed. Môžete však tiež uskutočňovať webové hovory, napríklad z IFTTT. Čo hovoríte na žlto blikajúci pásik LED na upozornenie e -mailom?

Môžete požiadať server o možné webové hovory ako nasledujúce odkazy (nahraďte IP, port a token podľa svojej konfigurácie)

localhost: 5061/controlcenter/api? token = secu …

localhost: 5061/action/api? token = zabezpečenie -…

localhost: 5061/mediaserver/api? token = secure…

localhost: 5061/switch/api? token = zabezpečenie -…

localhost: 5061/ledstrip/api? token = zabezpečenie-…

Krok 5: Záver

Stále existuje niekoľko funkcií, ktoré je možné implementovať: Pretože server poskytuje iba jednoduché webové rozhrania API, klienti často hlasujú. Na zníženie hlasovania chcem integráciu MQTT pre lepšie upozornenie. Napájacie zdroje wifi by tiež mali fungovať spoľahlivejšie ako napájacie zdroje na diaľkové ovládanie, pretože diaľkové ovládanie je iba jednosmerná komunikácia.

Vývoj tohto projektu je veľmi zábavné. A je celkom fajn ovládať byt niekoľkými zariadeniami, aj keď sa preruší internetové pripojenie.

Odporúča: