«

»

Lis 24 2014

3. Vzdálené ovládání zásuvky na 220V přes ssh, android zařízením…

 

Zasuvka220Rele_1

Další možnost využití Raspberry Pi v domácnosti :). Před časem jsem si pořídil zařízení WD My Cloud – 3TB od western digital (byl za cenu HDD) a zjistil jsem, že není třeba, aby zařízení běželo 24/7. Spotřeba tohoto zařízení v klidovém stavu je cca 6-10 watů, a to o proti raspberry pi je téměř 5ti násobné. Jenže takovéto domácí cloudy se dají pouze vypnout přes webové rozhraní, ale už nejdou nijak vzdáleně spustit. Jak to tedy udělat, aby si každý v domácnosti toto zařízení sám vzdáleně spustil, popřípadě zkontroloval, zda již neběží. (Samozřejmostí je mít veřejnou IP adresu, aby se to dalo ovládat i přes internet. Pokud není, tak bude fungovat pouze na místní síti).

 

 

 

 

Základní součástky a zapojení

  • relé
  • prodlužovací kabel se zásuvkou na 220V o délce 1,5m
  • mikro spínač
  • odpor 10K
  • kabely a nepájivé pole

 

zapojení tlačítka

bude umístěné na stole v nepájivém poli pro případné zapnutí, vypnutí NAS serveru (pokud člověk nechce zapínat přes aplikaci přes telefon, popřípadě přes ssh), zapojeného do této zásuvky

Zasuvka220Rele_5Zasuvka220Rele_6

Zasuvka220Rele_4Zasuvka220Rele_3

prodlužovací kabel se zásuvkou + relé

Zasuvka220Rele_8  Zasuvka220Rele_10

 

kabel pro ovládání relé

nůžkami jsem odstřihnul 4 pin, tak aby to šlo zastrčit do relé

Zasuvka220Rele_11 Zasuvka220Rele_12 Zasuvka220Rele_13 Zasuvka220Rele_17

 

 

Ovládání pomocí mikrotlačítka

skript pro ovládání tlačítkem, musí nejdříve zkontrolovat stav (zapnuto/vypnuto) a poté udělat příslušnou operaci.

vytvoření skriptu button.py

a vložit

uzavřít a uložit soubor (CTRL+x a pak „y“ a enter)

aby se tento skript automaticky vždy spustil po startu RPi (aby mohlo být tlačítko obslouženo, v případě stisknutí), tak je nutné dodat řádek do cronu s nastavením pro tento skript

na konec přidáme tento řádek

uzavřít a uložit soubor (CTRL+x a pak „y“ a enter)

Ovládání a kontrola stavu pomocí konzole (přes SSH)

vytvoření skriptu status.py pro kontrolu stavu, zda je nyní zásuvka zapnutá, popřípadě vypnutá

a vložit

 uzavřít a uložit soubor (CTRL+x a pak „y“ a enter)

test skriptu status.py

Zasuvka220Rele_18

vytvoření skriptu cloud.py pro zapnutí, popřípadě vypnutí (záleží na tom, v jakém je to aktuálním stavu)

a vložit

uzavřít a uložit soubor (CTRL+x a pak „y“ a enter)

test skriptu cloud.py

Zasuvka220Rele_19

 

Ovládání a kontrola stavu přes Android zařízení 

pro ovládání přes internet je nutné mít veřejnou IP adresu. (Jinak funguje pouze po připojení v místní síti). Ve skriptu programu pro android, se při spuštění zkontroluje současný stav přes StatusCloud()  – zavolá dotaz na PHP skript (android_cloud.php) a tento skript zavolá skript pro zjištění stavu v PYTHONu (status.py viz. výše), pak se zjistí google účet (GetUserAccount()) a ID zařízení (GetAndroidID()) a to z toho důvodu, aby ovládání zásuvky ovládal jen oprávněný uživatel a nemohlo dojít k nějakému zneužití :). Poslední metodou tam je CloudControl(), který může ovládat zásuvku, který pošle dotaz s uživatelským jménem a ID zařízení na PHP skript (android_cloud_control.php), který nejdříve ověří, že se jedná o oprávněného uživatele a pokud ano, tak PHP skript zavolá skript v PYTHONu (cloud.py viz. výše), který provede změnu.

Zasuvka220Rele_22 Zasuvka220Rele_21

 

MainActivity.java

je3t2 je nutné zde sudo nano /etc/sudoers přidat tento řádek, aby bylo možné spouštět python skripty z PHP kódu.

přidat na konec tento řádek:

www-data ALL=(ALL) NOPASSWD: ALL

uzavřít a uložit soubor (CTRL+x a pak „y“ a enter)

android_cloud.php

 

android_cloud_control.php

Share Button