13 Haziran 2016 Pazartesi

Uzaktan Erişimli Led Kontrol

Web arayüzünden HTML ve PHP ile hazırlanmış bir sayfa ile python kodlarını çalıştırarak ledleri kontrol edebiliriz.

Öncelikle php web server kurulumunu yapalım.
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
sudo service apache2 restart

Hedef dizinimiz /var/www/html/  Oluşturduğumuz dosyalar bu  dizinde çalışacak.

Sonra /etc/sudoers.d/README dosyasından yetkilendirme ayarlarını yapıyoruz. 
Bunu için terminale:
sudo nano /etc/dudoers.d/README  yazarak dosyayı açıyor ve şu kodları ekliyoruz:
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL


Daha sonra her bir GPIO pini için (12,16,25,26) ayrı ayrı “on.py” ve “off.py” dosyalarını oluşturmalıyız.

on.py
1
2
3
4
5
6
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(12,GPIO.OUT)

GPIO.output(12,1)

off.py
1
2
3
4
5
6
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(12,GPIO.OUT)

GPIO.output(12,0)
index.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<html>
 <head>
                        <!--index.php--> 
 </head>
 <body>

  <!--GPIO12----> 
  <form action="" method="post">
   GPIO 12&nbsp;<input type="submit" name="on12" value="ON">
   <input type="submit" name="off12" value="OFF">

 <br></br>

  <!--GPIO16--> 
  <form action="" method="post">
   GPIO 16&nbsp;<input type="submit" name="on16" value="ON">
   <input type="submit" name="off16" value="OFF">

 <br></br>

  <!--GPIO25--> 
  <form action="" method="post">
   GPIO 25&nbsp;<input type="submit" name="on25" value="ON">
   <input type="submit" name="off25" value="OFF">

 <br></br>

  <!--GPIO26----> 
  <form action="" method="post">
   GPIO 26&nbsp;<input type="submit" name="on26" value="ON">
   <input type="submit" name="off26" value="OFF">

 </body>
</html>

<?php
  if ($_POST[on12]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/12/on.py");
   echo $a;
  }
  if ($_POST[off12]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/12/off.py");
   echo $a;
  }
  
  if ($_POST[on16]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/16/on.py");
   echo $a;
  }
  if ($_POST[off16]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/16/off.py");
   echo $a;
  }
  
  if ($_POST[on25]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/25/on.py");
   echo $a;
  }
  if ($_POST[off25]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/25/off.py");
   echo $a;
  }
  
  if ($_POST[on26]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/26/on.py");
   echo $a;
  }
  if ($_POST[off26]) { 
   $a- exec("sudo python /var/www/html/leds/gpio/26/off.py");
   echo $a;
  }

?>
Oluşturduğumuz dosyaları şu şeklide oluşturup hedef klasörümüze kopyalayalım.



Raspberry Pi cihazımızın ağdaki adresini öğrenelim:


Benim cihazımın ağdaki adresi resimde görüldüğü gibi 192.168.1.35
Ağımıza bağlı bir bilgisayardan 192.168.1.35 yazıp enter’a basalım. Artık kontrol edebiliriz.







2 yorum:

  1. Merhaba,

    Paylaşım için teşekkürler. Emeğinize sağlık.
    Peki kendi ağı dışında gerçekten remote control nasıl yapabiliriz?
    Bu şekilde denemeleriniz oldu mu? Azure üzerinde vs.

    Teşekkürler.
    Yavuz Kömeçoğlu

    YanıtlaSil
    Yanıtlar
    1. Raspberry Pi Statik IP alabilirseniz bu sistemle internet olan her yerden kontrol edebilmelisiniz.
      Bu konuyu araştırıp bir yazı yazayım.
      İlginiz için teşekkürler.

      Sil