Tartalomjegyzék:

Smart Home by Raspberry Pi: 5 lépés (képekkel)
Smart Home by Raspberry Pi: 5 lépés (képekkel)

Videó: Smart Home by Raspberry Pi: 5 lépés (képekkel)

Videó: Smart Home by Raspberry Pi: 5 lépés (képekkel)
Videó: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, November
Anonim
Raspberry Pi intelligens otthona
Raspberry Pi intelligens otthona

Már számos olyan termék létezik, amelyek okosabbá teszik a lakást, de a legtöbb saját megoldás. De miért van szüksége internetkapcsolatra, hogy okostelefonjával lámpát kapcsoljon? Ez volt az egyik ok arra, hogy saját intelligens otthoni megoldást készítsek.

Egy Raspberry Pi -n futó szerveralkalmazást programoztam. Ez egy java alapú nyílt forráskódú projekt, amely lehetővé teszi a lakás konfigurálását és több kliens és "vezérelhető egység" összekapcsolását. Mutatok egy megoldást, amely kezeli az rc tápellátás kapcsolóit, zenét és videót játszik le a Raspberry Pi -n, megjeleníti az állapotot az intelligens tükörben, és egy androidos alkalmazással és két kavicsos alkalmazással vezérelhető. A forrás a githubon található

1. lépés: A szükséges dolgok

A szükséges dolgok
A szükséges dolgok

Az intelligens otthon beállításához a következő összetevőkre van szüksége

  • Raspberry Pi legalább 2 B modell
  • 433 MHz-es adó, valami ilyesmi:
  • 3 jumper kábel a Raspberry Pi és a küldő között
  • Néhány rádióvezérlő aljzat 433 MHz -en
  • Android okostelefon a kliens alkalmazás futtatásához

Ezenkívül az intelligens otthont további opcionális ügyfelekkel és ilyen egységekkel is bővítheti

  • Kavicsos okosóra
  • Smart Mirror, nézze meg ezt a projektet
  • 433 MHz-es vezérlésű LED-szalag, lásd ezt a

2. lépés: Készítse elő a Raspberry Pi -t 433 MHz -re

Készítse elő a Raspberry Pi -t 433 MHz -re
Készítse elő a Raspberry Pi -t 433 MHz -re
Készítse elő a Raspberry Pi -t 433 MHz -re
Készítse elő a Raspberry Pi -t 433 MHz -re

A következő lépésekben hozzá kell férnie a Raspberry Pi parancssorához. A hozzáférés megszerzéséhez olvassa el ezt az útmutatót:

Csatlakoztassa a 433 MHz -es küldőt a Raspberry Pi -hez a fenti képen látható módon

  • GND (feladó) 6 GND (raspi)
  • VCC (küldő) 2 +5V (raspi)
  • DATA (küldő) 11 GPIO 17 (raspi)

Kérjük, csatlakoztasson egy 17 cm -es antennát is az ANT (küldő) tűhöz. Ez jelentősen növeli a jelet.

Mivel szükségünk van néhány könyvtárra más git -tárolókból, telepítenünk kell a git -et

sudo apt-get install git-core -y

A Raspberry Pi 433 MHz -es kommunikációhoz való beállításához szükségünk van a vezetékeket tartalmazó Pi könyvtárra a GPIO -k jobb kezelése érdekében.

git klón git: //git.drogon.net/wiringPi

cd wiringPi./build

Ezután szükségünk van egy könyvtárra, amely tipikusan rc tápellátási protokollokat valósít meg.

git klón git: //github.com/dabastynator/rcswitch-pi.git

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

A 'küldés' futtatható fájl lehetővé teszi kódok küldését a rendelkezésre álló tápegységek nagy részének váltásához.

Az intelligens otthoni beállításomban van egy rc LED szalag is, amelyet az alábbi utasítás ír le: https://www.instructables.com/id/RC-controlled-LED… Ennek a LED szalagnak a színének beállításához szüksége van egy másik küldő futtatható fájlra, amely lehetővé teszi bármilyen egész szám elküldéséhez (ez kódolja a színt).

Ezért fordítsa össze a sendInt.cpp fájlt az rcswitch-pi repóban, és helyezze át a/usr/bin/sendInt mappába.

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

Most már képesnek kell lennie rc parancsok küldésére a két végrehajtható fájllal:/usr/bin/send és/usr/bin/sendInt

3. lépés: A Smart Home Server beállítása

Először több csomagot kell telepítenie. A Smart Home alkalmazás java alapú, és jól működik az openjdk-11-el. Nem vagyok biztos más java futási környezetekben. Az mplayer egy minimalista parancssori zenelejátszó. Az omxplayer a Raspberry Pi grafikát használja a videó kódolásához, ezért ezt kell használni a videókhoz. Az ant programra van szükség a java alkalmazás felépítéséhez.

sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y

Telepítse a jar fájl és a naplók könyvtárait.

sudo mkdir /opt /neo

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

Állítsa be az indító szkriptet az alkalmazás automatikus indításához a rendszerindításkor. Ezért másolja a mellékelt intelligens otthoni szkriptet az /etc/init.d/ könyvtárba. Létrehoztam egy szkriptet is a/usr/bin/könyvtárban, amely parancsokat küld a csatolt parancsfájlhoz, ezért csak be kell írnom az intelligens otthont a konzolra a parancsok végrehajtásához.

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 smart-home alapértelmezések

Most itt az ideje, hogy ellenőrizze a lerakatot és építse fel az alkalmazást. Ha nem akarja saját maga lefordítani, töltse le a mellékelt smarthome.jar fájlt, és helyezze át az/opt/neo/mappába

git klón [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/

Próbálja meg elindítani az intelligens otthont, és ellenőrizze a naplófájlt. A GPIO -k eléréséhez az alkalmazást a sudo segítségével kell elindítani.

sudo smart-home start

cat Logs/smarthome.log

Látnia kell a Konfigurációs fájl nem létezik hibaüzenetet, amely a következő lépésre mutat. A lerakat egy readme -t tartalmaz, amely elmagyarázza a konfigurációs fájlt. Ezt szépen láthatja a githubon:

Másolja ezt az xml fájlt a /home/pi/controlcenter.xml mappába, majd állítsa be a médiaszerver helyét, és szükség szerint módosítsa a tartalmat. Miután befejezte a konfigurációt és újraindította az intelligens otthont (sudo smart-home restart), a következő tartalmat kell látnia a smarthome.log-ban

24.05-08: 26 TÁVOLI INFORMÁCIÓK: de.neo.smarthome.cronjob. CronJob@15aeb7ab: Cron job ütemezése

24.05-08: 26 TÁVOLI INFORMÁCIÓK [trigger.light]: Várjon 79391760 ms végrehajtással 24.05-08: 26 RMI INFORMÁCIÓK Hozzáadás web-kezelő (5061/ledstrip) 24.05-08: 26 RMI INFORMÁCIÓK Hozzáadás web-kezelő (5061 /action) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/controlcenter) 24.05-08: 26 RMI INFORMÁCIÓK a Start webszerveren 5 kezelővel (localhost: 5061) 24.05-08: 26 TÁVI INFORMÁCIÓK a Controlcenter segítségével: 1. vezérlőegység hozzáadása: MyUnit (xyz)…

A webszerver most fut:-)

4. lépés: Az ügyfelek beállítása

Ügyfelek beállítása
Ügyfelek beállítása
Ügyfelek beállítása
Ügyfelek beállítása
Ügyfelek beállítása
Ügyfelek beállítása

Okostelefonos Android kliens

Az intelligens otthon alkalmazás git tárháza tartalmazza az android kliens forrását is, így saját maga is lefordíthatja. De csatoltam az APK -t ehhez a lépéshez, ez megkönnyíti. Az alkalmazás első indításakor szervert kér, mint a fenti első képen. Írja be a szerver url -jét és a biztonsági tokent.

Annak kellene lennie. Most már hozzáférhet a szerverhez, és vezérelheti a lakását, zenét játszhat és videókat nézhet távolról a Raspberry Pi -n. Vegye figyelembe, hogy modulokat adhat hozzá a kezdőképernyőhöz, így a kapcsolók és a zenevezérlés elérhetőbbé válik.

Smartwatch Pebble kliens

A két kavicsos kliens forrását a github tárolja. Az egyik alkalmazás megjeleníti az éppen lejátszott zenei fájlt: https://github.com/dabastynator/PebbleRemoteMusic… Ez lehetővé teszi a szüneteltetést/lejátszást és a hangerő fel/le csökkentését is.

A második alkalmazás három műveletet indít el: https://github.com/dabastynator/PebbleControl A trigger-nevek a következők: mobile.come_home mobile.leaving és mobile.go_to_bed. Ha esemény-szabályokat határoz meg ehhez a triggerhez a konfiguráció-xml fájljában, akkor az órája aktiválja azokat.

Mindez nyílt forráskódú, de nem kell saját maga fordítania, csatoltam a kavicsos alkalmazásokat is. Töltse le a PBW -ket okostelefonjával, a telefonnak telepítenie kell őket az órájára. A kavicsos alkalmazásoknak konfigurációra van szükségük, hogy beszéljenek a szerverrel. Csatoltam egy képernyőképet, hogyan néznek ki a beállításaim.

Smartwatch Garmin kliens

A Garmin okosórákhoz ügyfél is rendelkezésre áll. Az alkalmazás elérhető a garmin connect alkalmazásboltban, és itt telepíthető:

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

Smart Mirror kliens

Már létrehoztam egy utasítást, amely elmagyarázza az Intelligens tükör létrehozásának módját, lásd ezt a https://www.instructables.com/id/Smart-Mirror-by-R … címet. A forráskód a githubon is található: https:// github.com/dabastynator/SmartMirror. A Smart Mirror szoftvere beolvassa a konfigurációt a smart_config.js fájlból, amely nem része a git tárnak. A konfigurációs fájl tartalmának így kell kinéznie:

var mOpenWeatherKey = 'nyitott búzakulcs';

var mSecurity = 'saját-biztonsági token';

Be kell állítania a smart_mirror.js fájl első két sorát is, hogy megadja a Smart Home szerver IP -címét és a megfelelő időjárás elérésének helyét.

Több ügyfél

A szerver alkalmazás egy egyszerű webszerver. Ez lehetővé teszi, hogy egyszerű webes hívásokkal indítson műveleteket bármelyik kívánt ügyféltől. A bemutató videóban az Android alkalmazás taskerjét mutatom meg az AutoVoice-szal kombinálva. Ez lehetővé teszi számomra az események egyszerű hangparancsokkal történő kiváltását. Például az "ok google, ideje aludni" kiválthatja a mobile.go_to_bed fájlt. De internetes hívásokat is kezdeményezhet, például az IFTTT-ből. Mit szólnál egy sárga villogó LED csíkhoz az e -mail értesítéshez?

Kérheti a szervert a lehetséges webes hívásokhoz, például a következő linkekhez (cserélje ki az IP-t, a portot és a tokent a konfigurációjával)

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

localhost: 5061/action/api? token = security-to…

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

localhost: 5061/switch/api? token = security-to…

localhost: 5061/ledstrip/api? token = security-…

5. lépés: Következtetés

Még mindig van néhány megvalósítandó funkció: Mivel a szerver csak egy egyszerű web-api szolgáltatást nyújt, az ügyfelek sok lekérdezést végeznek. A szavazás csökkentése érdekében MQTT integrációt szeretnék a jobb értesítés érdekében. A wifi tápegységeknek megbízhatóbban kell működniük, mint az rc tápegységeknek, mivel az rc csak egyirányú kommunikáció.

Nagyon szórakoztató a fejlesztés ehhez a projekthez. És nagyon jó irányítani a lakást több eszközzel, még akkor is, ha az internetkapcsolat megszakad.

Ajánlott: