přejít na obsah přejít na navigaci

Linux E X P R E S, Inteligentní domácnost s Raspberry Pi 3

Karat

Inteligentní domácnost s Raspberry Pi 3

raspberrypi.png

V tomto článku si ukážeme, jak s pomocí mobilního telefonu, relé modulu a Raspberry Pi 3 ovládat různá zařízení v domácnosti. Podíváme se i na několik tipů pro chytrou domácnost.


reklama

Instalace aplikace a test funkčnosti

Budete potřebovat Raspberry Pi 3 s nainstalovaným Raspbianem Jessie, mobilní telefon s aplikací MyPi (k dispozici v Google Play a AppStore), relé modul a volitelně také spínací tlačítko. Pro experiment jsme použili tento modul s dvojicí relé. Nejprve do Raspberry nahrajte aplikaci pro vzdálené ovládání GPIO aplikací MyPi pomocí následujících příkazů:

cd /home/pi
sudo wget www.ioslinks.com/mypi/server.zip
sudo unzip server.zip

Spuštění aplikace provedete příkazem:

python3 mypi_server.pyc

V mobilní aplikaci klikněte na tlačítko Nastavení v pravém horním rohu. Zde vyplňte IP adresu, port (5000) a heslo (nejedná se o heslo k Raspberry, ale heslo aplikace; jako výchozí heslo je nastaveno 123456). Nyní vyzkoušejte správnost nastavení. Na Raspberry zanechte spuštěný terminál s aplikací, zároveň spusťte mobilní aplikaci (MyPi) a klikněte na Connect . Pokud na mobilu stisknete libovolné tlačítko pro ovládání, měla by se v terminálu vypsat věta:

Pin *: level=0/1

přičemž „*“ nahrazuje číslo GPIO pinu.

V případě problémů překontrolujte správnost nastavení mobilní aplikace.

Instalace a test funkčnosti aplikace Instalace a test funkčnosti aplikace

Automatické spouštění aplikace

Pokud vše funguje, jak má, nastavte aplikaci, aby se spustila s každým spuštěním vašeho Raspberry. To provedete zadáním příkazu:

sudo nano /etc/rc.local

Příkaz otevře editor nano. Na řádek před „exit 0“ napište:

python3 /home/pi/mypi_server.pyc &

Záznam uložte stisknutím kláves [Ctrl + o] a zavřete editor stisknutím kláves [Ctrl + x]. Nyní by se při každém spuštění Raspberry měla aplikace spustit. V případě, že se nespustí, zkontrolujte, že se v adresáři /home/pi nachází soubor mypi_server.pyc a soubor mypi.cfg.

Nastavení automatického spouštění aplikace Nastavení automatického spouštění aplikace

Nastavení aplikace v Raspberry Pi

Tato aplikace se nastavuje pomocí souboru mypi.cfg. Konfiguraci provedete zadáním příkazu:

sudo nano /home/pi/mypi.cfg

Soubor se otevře v terminálu pomocí editoru nano.

Nyní si vysvětlíme, co jednotlivé položky v konfiguračním souboru znamenají.

TCP_PORT = 5000
nastavení portu pro vzdálené připojení

PASSWORD = 123456
nastavení hesla aplikace. V případě, že pro připojení k aplikaci chcete využívat jiné heslo než výchozí, je třeba smazat původní heslo a vepsat vlastní. Po změně hesla je třeba aktualizovat heslo i v mobilní aplikaci.

#Outputs initial level : 0 for LOW or 1 for HIGH INIT_LEVEL = 1
nastavení výchozí hodnoty portů po zapnutí aplikace. Při zvolení hodnoty „0“, bude po spuštění aplikace na všech pinech hodnota „1“ (spuštěno). V opačném případě budou všechny piny vypnuté.

OUT1 = 7  až OUT8 = 21
nastavení výstupních portů , které aplikace ovládá. Doporučujeme zanechat výchozí a měnit pouze v případě, že jsou již tyto piny obsazeny (Není možné ovládat libovolná pin).

IN1 = 29 až IN8 = 24
nastavení vstupních portů. V případě, že dojde k sepnutí tlačítka připojeného k portu 29 (IN1), změní se hodnota na pinu OUT1 (manuální ovládání může posloužit například při poruše mobilního telefonu).

OUT1-MODE = T až OUT8-MODE = T
V případě volby „T“  bude při každém stisknutí tlačítka daného výstupu přepnut stav výstupu (vypnuto/zapnuto). V případě volby „M“ se po sepnutí tlačítka daného výstupu na výstupu nastaví „zapnuto“, po uplynutí nastavené doby se výstup sám nastaví do stavu „vypnuto“.

DELAY = 1.0
Nastavení času v sekundách, po kterém se má u výstupů nastavit „vypnuto“.

Konfigurační soubor aplikace Konfigurační soubor aplikace

Zapojení relé

Relé se připojuje ke sběrnici GPIO. V případě našeho relé se se pin Ucc na relé modulu propojuje na pin 2 (+5V) na Raspberry. Pin GND na relé modulu se připojuje na pin 6 (GND) na Raspberry. Ovládací piny na relé modulu (v našem případě IN1, IN2) se připojují popořadě na ovládací piny Raspberry.

Pro první relé je ovládací pin 7, pro druhé relé 11. Dalšími ovládacími piny jsou 13, 15, 16, 18, 19, 21. Na místo relé však můžeme připojit i třeba jen obyčejnou LED diodu. Ta se připojí anodou k libovolnému ovládacímu pinu a katodou na pin 6 (GND).

Sběrnice GPIO (zdroj: technická dokumentace Raspberry Pi) Sběrnice GPIO (zdroj: technická dokumentace Raspberry Pi)

Relé připojené k Raspberry Relé připojené k Raspberry

Jak to funguje?

Na ovládacím pinu se nastavuje napětí. V případě, že je výstup nastaven na „vypnuto“, nelze na pinu naměřit napětí. Když však nastavení pinu přepnete na „zapnuto“, je na daném pinu napětí +5V. Naše relé je nastaveno tak, že sepne při hladině +5V.

Připojení tlačítka

Každé tlačítko se připojí na pin 39 (GND). Druhá část tlačítek se může připojit na piny 29, 31, 32, 33, 36, 37, 23 a 24. Tlačítka musí být vždy zapojena jako spínací. Ke každému tlačítku je přiřazen jeden ovládací pin (stisk tlačítka změní hodnotu pinu na opačnou).

Připojení spotřebiče k relé

Naše relé nám dovoluje používat jej pro spínání zařízení s maximálním napětím 250 V a maximálním proudem 10 A. Zapojení relé by měl provést člověk se vzděláním v oboru elektro! Na přední straně našeho relé je vyvedená sběrnice, každé relé má jeden vstup a dva výstupy (zapnuto/vypnuto). Na střed zapojíme přívod elektrické energie. Zapojení obvodu na relé závisí na tom, zda má být spotřebič spuštěn při zapnutém/vypnutém relé.

Nahoru

Příspěvky

Petr Valach Inteligentní domácnost s Raspberry Pi 3
Petr Valach 25. 08. 2016, 18:40:01
Odpovědět  Odkaz 
Redakce LinuxEXPRES tímto článkem získává dalšího redaktora, kterým je osmnáctiletý člen redakce ExoSpace.cz. Je to již druhý redaktor, který od nás již takto zakotvil. A věřím, že svým článkem udělá řadě čtenářům radost.

Toník si dal na článku opravdu záležet, sledoval jsem jeho průběžné verze a byl jsem i při dodělávkách. Čtenáři tak mohou ocenit Toníkovu pečlivost a jeho znalosti.
Inteligentní domácnost s Raspberry Pi 3
Kalda 25. 08. 2016, 20:18:38
Odpovědět  Odkaz 
Díky za článek. Jen více podobných návodů. Držím palce.

Proč RPI 3? RPI a RPI 2 to neutáhnou? Pro RPI a RPI 2 hraje nižší spotřeba než u RPI 3. Nadpis je malinko přehnaný(bulvární). Co je na spínání pomocí mobilu inteligentního? Raději bych volil nadpis typu - ovládejte spotřebiče pomocí RPI a mobilu. Podle použitého nadpisu jsem čekal komplexnější systém postavený na RPI 3 :-(
Re: Inteligentní domácnost s Raspberry Pi 3
desdy 26. 08. 2016, 08:27:43
Odpovědět  Odkaz 
samozřejmě že "utáhnou", je jenom na vás, co si vyberete na SBC. Klidně to může být Banana Pi, pizero, CHIP computer nebo milion dalších. Autor měl prostě u sebe RPI3, tak zvolil to.
Inteligentní domácnost s Raspberry Pi 3
Lubomír Čevela 25. 08. 2016, 23:52:34
Odpovědět  Odkaz 
Článek jsem si s chutí přečetl. Hezký jednoduchý příklad možného využití Raspberry. Co se týče spotřeby, mám bezpečně zjištěno, že v mírné zátěži a naprázdno bere trojka jen o trochu víc, než dvojka. Myslím, že ten pythonový server Raspberry příliš nezatíží. Raspberry Pi 3 je především vybíravá potvora, co se týče napájecího zdroje. To ale neznamená, že chce těch 2.5A neustále.
Inteligentní domácnost s Raspberry Pi 3
. 26. 08. 2016, 07:32:46
Odpovědět  Odkaz 
"sudo wget", "sudo unzip" - proč sudo?
Antonín Judytka Re: Inteligentní domácnost s Raspberry Pi 3
Antonín Judytka 26. 08. 2016, 08:29:37
Odpovědět  Odkaz 
Když jsem zadal samotné wget a unzip, tak mi vždy raspberry vyběhlo s nějakou chybou, proto sem pro jistotu napsal k příkazu sudo i zde.
Re: Re: Inteligentní domácnost s Raspberry Pi 3
nobody 26. 08. 2016, 18:00:10
Odpovědět  Odkaz 
s GPIO muze naprimo pracovat jen root (resp. uzivatel pres sudo, pokud ma v sudoers prislusne opravneni), ale na wget a unzip je to zbytecne i nevhodne, pak to nemuze bezny user smazat i kdyz je to v jeho adresari atd, samozrejme nelze ukladat/rozbalovat do adresare co by byl bytvoren pres "sudo mkdir /home/pi/adresar" ;)
Inteligentní domácnost s Raspberry Pi 3
lipo 26. 08. 2016, 07:33:39
Odpovědět  Odkaz 
mno, pěkné až na to že GPIO piny RPI(1-3) jsou pouze 3.3V !!! tzn. připojení 5V logiky je pěkná prasárna, leč to nejspíš bude fungovat... tyhle relé moduly dělaj číňani i v 3.3V verzi, stejně jako arduina...


On Raspberry Pi, all GPIO banks are supplied from 3.3V. Connection of a GPIO to a voltage higher than 3.3V will likely destroy the GPIO block within the SoC.


https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md
Re: Inteligentní domácnost s Raspberry Pi 3
lipo 26. 08. 2016, 07:53:57
Odpovědět  Odkaz 
jen abych to upřesnil, tady se používá jen výstup, tzn 3.3V logikou se spíná 5V logika na relé modulu, to samozřejmě fungovat bude protože úroveň logické 1 bude určitě níž než je 3V3(co leze z maliny!) ale i tak to prostě v návodu nemá co dělat..

tzn nemusíte se bát že vám tohle nějak uškodí/něco zničí ale zároveň si nemyslete že tam pak ještě připojíte nějakej 5V vstup(tlačítko, senzor, apod) to už je teoreticky vstupenka do křemíkového nebe :)

prostě všechny RPI májí GPIO 3V3 a tečka
Antonín Judytka Re: Inteligentní domácnost s Raspberry Pi 3
Antonín Judytka 26. 08. 2016, 08:42:08
Odpovědět  Odkaz 
Nevím kde dělám chybu, ale když jsem pomocí multimetru měřil napětí na pinech GPIO naměřil jsem 5 V.
Re: Re: Inteligentní domácnost s Raspberry Pi 3
lipo 26. 08. 2016, 13:50:52
Odpovědět  Odkaz 
a jak jste to měřil? mezi 5V a gpio pinem nebo GND a gpio? gpio proti gnd by melo bejt 3V3 v log. 1 pokud se bude dělat pomoci gpio "zem" tzn. 5V proti gpio bude tam v logicke "0" 5V a v log. "1" 1.7V což už není na "nulu" zrovna málo...
Antonín Judytka Re: Re: Re: Inteligentní domácnost s Raspberry Pi 3
Antonín Judytka 26. 08. 2016, 16:23:44
Odpovědět  Odkaz 
Omlouvám se, už vím kde jsem udělal chybu, nechal jsem se zmást schématem zapojení v aplikaci MiPy a měřil napětí mezi 5 V a GPIO. Děkuju za vyvedení z omylu.
Re: Re: Re: Re: Inteligentní domácnost s Raspberry Pi 3
lipo 26. 08. 2016, 22:09:50
Odpovědět  Odkaz 
Jasny, jsme lidi a i mistr tesar se nekdy utne ;-) jen bych to radeji opravil, preci jen by nekdo mohl usoudit ze jsou ty GPIO piny 5V tolerantni a odsmazit to.. Dle meho nejsnadnejsi pouzit rele modul na 3V a je po problemu ;-)
Inteligentní domácnost s Raspberry Pi 3
Martin 19. 10. 2016, 14:43:00
Odpovědět  Odkaz 
Dovolím si opravit tvrzení, že je jedno, jaké SBC použijete. Na Raspi 1. generace (má méně GPIO) to hlásí:

pi@raspberrypi:~ $ python3 mypi_server.pyc
MyPi TCP Server v1.4
Loading configuration file: /home/pi/mypi.cfg
Init GPIO Output pins
Init GPIO Input pins
Traceback (most recent call last):
File "mypi_server.py", line 64, in
ValueError: The channel sent is invalid on a Raspberry Pi

Na Raspi 2. generace bez problému.

Aplikace na Androidu 7.0 (Nexus 5x) padá při snaze o připojení.
Inteligentní domácnost s Raspberry Pi 3
Jarouš 14. 04. 2018, 16:11:19
Odpovědět  Odkaz 
Omlouvám se za oživování starého téma.

Po zadání příkazu
python3 mypi_server.pyc

terminál vypíše
Bad magic number in .pyc file

Našel jsem řešení typu
https://shankaraman.wordpress.com/tag/how-to-fix-runtimeerror-bad-magic-number-in-pyc-file/
Ale tohle vážně nezvládám. Je nějaká pomoc ?
Děkuji

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Antonín Judytka

Je mi 19 let. Čtvrtým rokem studuji elektrotechniku na ISŠTE Sokolov. Baví mě vlastní silou zdolávat překážky. K psaní jsem se dostal díky redakci www.ExoSpace.cz , která mě naučila, jak má článek vypadat a co vše je potřeba dodržet. Volný čas trávím rád venku, popřípadě ve vlastní dílničce, kde se snažím zjistit, jak dané věci fungují.


  • Distribuce: Debian
  • Grafické prostředí: GNOME