Raspberry PI và GPIO pins: Điều khiển LED từ một giao diện web

Trong bài viết mới nhất của loạt bài này, Chúng tôi đã thấy họ là các chân GPIO và để phục vụ, và Làm thế nào để kiểm soát sức mạnh của đèn LED từ nhà ga; trước khi bạn bắt đầu Chúng tôi đã cài đặt các thư viện GPIO cho Python, và các lắp ráp mạch điện tử và làm việc.
Ứng dụng web trong HTML + PHP + Python để xử lý một vài đèn LED thông qua GPIO.

Nhân dịp này chúng tôi sẽ cài đặt các máy chủ web Apache, và tìm hiểu để viết các Mã trong HTML và PHP để điều khiển các LED cùng, hoặc một số, từ một giao diện web.

gpioprogramar0pngLần đầu tiên chúng ta phải làm là cài đặt các máy chủ web đèn, Vì vậy, gõ các lệnh sau trong terminal:

#Actualizamos los repositorios y el software de la pi
usuario@maquina:~$ sudo apt-get update && sudo apt-get upgrade

#Instalamos LAMP
usuario@maquina:~$ sudo apt-get install apache2
usuario@maquina:~$ sudo apt-get install php5 libapache2-mod-php5
usuario@maquina:~$ sudo service apache2 restart

Bây giờ chúng tôi sẽ thêm như sudoer cho người dùng www-data, Đây không phải là tùy chọn thêm an toàn nhưng hãy nhớ rằng chúng tôi đang làm một bài kiểm tra trong một môi trường kiểm soát; Đối với môi trường trong sản xuất chúng tôi cần tìm một cách khác để chạy script bằng python là sudoer.

Để chỉnh sửa các cấp phép này, đã viết sudo visudo tại nhà ga và ở phần cuối của tập tin Thêm www-data như sudoer, Nó phải là như vậy.

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

Cho mỗi pin GPIO Chúng ta cần phải tạo một thư mục con và ba kịch bản Python; để bật, để tắt, và một kịch bản cuối cùng đã làm cho chúng tôi nhấp nháy đèn LED, Dưới đây là một ví dụ với các MÃ PIN 4.

#!usr/bin/env/ python
## enciende.py
#Importamos la libreria y le cambiamos el nombre a GPIO
nhập RPi.GPIO như GPIO
#Chúng tôi thiết lập hệ thống đánh số mà chúng tôi muốn, 
#trong trường hợp này hệ thống BCM
GPIO.setmode(GPIO. BCM)
#Đặt cấu hình mã pin GPIO 4 như là một đầu ra
GPIO.setup(4, GPIO. RA)
#Chúng tôi lần lượt vào các dẫn
GPIO.output(4, GPIO. CAO)
#!usr/bin/env/ python
## apaga.py
#Chúng tôi nhập viện và thay đổi tên của mình để GPIO
nhập RPi.GPIO như GPIO
#Chúng tôi thiết lập hệ thống đánh số mà chúng tôi muốn, 
#trong trường hợp này hệ thống BCM
GPIO.setmode(GPIO. BCM)
#Đặt cấu hình mã pin GPIO 4 như là một đầu ra
GPIO.setup(4, GPIO. RA)
#Tắt led
GPIO.output(4, GPIO. THẤP)
#Và chúng tôi giải phóng GPIO
GPIO.cleanup()
#!usr/bin/env/ python
## parpadea.py
#Chúng tôi nhập viện và thay đổi tên của mình để GPIO
nhập RPi.GPIO như GPIO

#Cần thiết cho sự chậm trễ
nhập thời gian

#Chúng tôi thiết lập hệ thống đánh số mà chúng tôi muốn, 
#trong trường hợp này hệ thống BCM
GPIO.setmode(GPIO. BCM)

#Đặt cấu hình mã pin GPIO 4 như là một đầu ra
GPIO.setup(4, GPIO. RA)

#Bật và tắt các led 5 thời gian
cho tôi trong phạm vi(0,5):

        GPIO.output(4, GPIO. CAO)
        Time.Sleep(1)(1)
        GPIO.output(4, GPIO. THẤP)
        Time.Sleep(1)(1)

#Và chúng tôi giải phóng GPIO
GPIO.cleanup()

Bây giờ là thời gian để tạo ra trang chủ của chúng tôi trong HTML và PHP, chứa các nút mà chúng tôi sẽ báo chí để chạy các script Python từ một giao diện web, sau đó chúng tôi sẽ xem làm thế nào hệ thống cấp bậc cuối cùng.

<html>
 <head>
                        <!--index.php--> 
 </head>
 <body>

  <!--GPIO17--> 
  <form action="" method="post">
   GPIO 17&nbsp;<input type="submit" name="encender17" value="Encender">
   <input type="submit" name="apagar17" value="Apagar">
   <input type="submit" name="parpadear17" value="Parpadear">

 <br></br>

  <!--GPIO27--> 
  <form action="" method="post">
   GPIO 27&nbsp;<input type="submit" name="encender27" value="Encender">
   <input type="submit" name="apagar27" value="Apagar">
   <input type="submit" name="parpadear27" value="Parpadear">

 <br></br>

  <!--GPIO4--> 
  <form action="" method="post">
   GPIO 04&nbsp;<input type="submit" name="encender4" value="Encender">
   <input type="submit" name="apagar4" value="Apagar">
   <input type="submit" name="parpadear4" value="Parpadear">

 <br></br>

  <!--GPIO22--> 
  <form action="" method="post">
   GPIO 22&nbsp;<input type="submit" name="encender22" value="Encender">
   <input type="submit" name="apagar22" value="Apagar">
   <input type="submit" name="parpadear22" value="Parpadear">

 </body>
</html>

<?php

// Funciones PHP del pin GPIO 17

  if ($_POST[encender17]) { 
   $a- exec("sudo python /var/www/leds/gpio/17/enciende.py");
   echo $a;
  }

  if ($_POST[apagar17]) { 
   $a- exec("sudo python /var/www/leds/gpio/17/apaga.py");
   echo $a;
  }

  if ($_POST[parpadear17]) { 
   $a- exec("sudo python /var/www/leds/gpio/17/parpadea.py");
   echo $a;
  }

// Fin de las funciónes del pin GPIO 17


// Funciones PHP del pin GPIO 27

  if ($_POST[encender27]) { 
   $a- exec("sudo python /var/www/leds/gpio/27/enciende.py");
   echo $a;
  }

  if ($_POST[apagar27]) { 
   $a- exec("sudo python /var/www/leds/gpio/27/apaga.py");
   echo $a;
  }

  if ($_POST[parpadear27]) { 
   $a- exec("sudo python /var/www/leds/gpio/27/parpadea.py");
   echo $a;
  }

// Fin de las funciónes del pin GPIO 27


// Funciones PHP del pin GPIO 4

  if ($_POST[encender4]) { 
   $a- exec("sudo python /var/www/leds/gpio/4/enciende.py");
   echo $a;
  }

  if ($_POST[apagar4]) { 
   $a- exec("sudo python /var/www/leds/gpio/4/apaga.py");
   echo $a;
  }

  if ($_POST[parpadear4]) { 
   $a- exec("sudo python /var/www/leds/gpio/4/parpadea.py");
   echo $a;
  }

// Fin de las funciónes del pin GPIO 4


// Funciones PHP del pin GPIO 22

  if ($_POST[encender22]) { 
   $a- exec("sudo python /var/www/leds/gpio/22/enciende.py");
   echo $a;
  }

  if ($_POST[apagar22]) { 
   $a- exec("sudo python /var/www/leds/gpio/22/apaga.py");
   echo $a;
  }

  if ($_POST[parpadear22]) { 
   $a- exec("sudo python /var/www/leds/ejecgpio/22/parpadea.py");
   echo $a;
  }

// Fin de las funciónes del pin GPIO 22

?>

Tôi có nhóm lại nó Tất cả trên cùng một trang Nếu như việc tạo ra một trang trong PHP Đối với mỗi tùy chọn, chạy nó, tôi đã được gửi đến trang kịch bản (một trang trống); bây giờ chạy mã và ở lại trên cùng một trang.

Cuối cùng Chúng ta phải đạt được hệ thống phân cấp sau trong thư mục con của các máy chủ web /var/www.

Captura de pantalla de 2014-10-05 00:06:52Nếu bạn muốn bạn có thể theo tôi trên Twitter, Facebook, Google +, LinkedIn, hoặc chia sẻ nó với các nút trong ấn phẩm này, Nếu bạn có bất kỳ câu hỏi hoặc góp ý xin vui lòng đừng ngần ngại để bình luận.

Giúp chúng tôi để tiếp cận với nhiều người đọc Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

71 suy nghĩ về"Raspberry PI và GPIO pins: Điều khiển LED từ một giao diện web

  1. Tốt, Sau khi nhìn vào Internet giải pháp tự động hóa nhà, Tôi quyết định hệ thống của bạn, có vẻ như cũng tiếp xúc.
    Ngay cả như vậy và vì kinh nghiệm của tôi nil trong mềm. nghi ngờ tôi, Tôi muốn bạn có thể giải quyết chúng, Tôi đã làm rất nhiều thử nghiệm và không có gì, Tôi không nhận được nó….:)
    thực hiện tất cả các bước giải thích và tôi quản lý gpio từ nhà ga với putty, nhưng kể từ khi trang web không thể kích hoạt các kịch bản python.
    Tôi cần phải làm một trang trên /val/www với html (index.html) để phục vụ cho nó tôi apache. Bằng cách đặt các trang web của bạn ở đây nếu các nút để lại cho tôi, nhưng không thực hiện php script. Tại trang index.php, không được đặt bên trong.
    Xin lỗi vì sự bất tiện và cảm ơn bạn.

      • Cảm ơn bạn đã trả lời quá nhanh, Yeah tôi đã bước để cấp quyền trong các tập tin mà bạn đặt cho, Tôi đang bối rối với trang index.php, bạn treo GPiO directory, chỉ nhìn thấy các nút trên trang web nếu tôi đặt nó trong /val/www….trong html!…index.html, nhưng không thực hiện PHP script. Có nên đặt các index.php hang GPIO directory?

        • Nếu bạn nhìn chặt chẽ, index.php /var/www/leds 🙂 bị treo nếu vẫn không hoạt động, Bình luận bài viết này và nhìn vào nó.

          Nếu /var/ www/index.php cuelgas sẽ thấy nó ở hướng này, nhưng nó sẽ không làm việc bất cứ điều gì:

          http://ipdelapi

          Nếu hang /var/www/leds/will làm việc đúng, nhưng kể từ khi tuyến đường này:

          http://ipdelapi/leds

          Tôi hy vọng điều này giải quyết nghi ngờ của bạn và bạn có thể di chuyển vào thế giới này như vậy thú vị.

          • Tôi vui mừng rằng bạn đã làm việc, cuối cùng, đó là con đường của các kịch bản?

            Cảm ơn bạn đã bình luận của 🙂

          • Tốt, Tôi có cùng một vấn đề như đồng bào ở trên.

            Index.php của tôi treo /var/www/html/index.html
            , Nếu tôi nhận được html index của tôi từ đó không hiển thị, nhưng tôi không có vấn đề trong việc nó có, Vấn đề của tôi đến khi xung nút và không chạy tôi scrip.

            GIÁM ĐỐC DỰ ÁN: Tôi đã cho anh ta tất cả mọi thứ và giấy phép

            Cảm ơn bạn cho câu trả lời của bạn.
            Một lời chào

            J.G.

  2. Tốt, công việc của bạn là phục vụ tôi nhiều, bạn có một máy tính!
    Tôi đang cố gắng để làm cho hệ thống tự động hóa điều khiển các đèn LED nhiều từ các trang web, nhưng tôi có một vấn đề mà bạn có thể làm giảm bớt không.
    Các chủ đề là rằng tôi đã kích hoạt GPIO tôi cần, Tôi kích hoạt chúng và tắt từ terminal, Kết nối một máy tính khác kết nối vào cùng một mạng để 192.168.X.X/leds/ và các trang web có vẻ tốt, menu điều khiển của các nhà trông hoàn hảo, nhưng các đèn LED không đáp ứng, Tôi đã thử bằng cách hoạt động và bị động, một cái gì đó tôi đang làm sai…
    Điều duy nhất tôi có thể nói là bạn hiển thị mã nguồn của trang và chỉ hiển thị các mã html, php không xuất hiện, không là nếu nó nên hay không.
    Tôi nghĩ rằng nó có thể là một cái gì đó PHP, nhưng tôi không rất thuyết phục bởi vì tôi đã cố gắng một thử nghiệm PHP và nó không tốt, Tôi đang tuyệt vọng lol

    • Hi John,

      Tôi alegro nhiều mà có thể hữu ích bài viết 🙂 của tôi luôn luôn hoan nghênh các ý kiến tích cực.

      Tất cả các mã PHP trong trình duyệt sẽ được hiển thị dưới dạng HTML, Kể từ khi chức năng PHP là vào thời điểm và tự động tạo ra các trang web được phục vụ trong trình duyệt.

      Chạy kịch bản Python trực tiếp nếu đèn LED được thắp sáng? đúng sẽ bắt đầu thử nghiệm từ đây và đi về phía trước.

  3. Cảm ơn bạn đã trả lời một cách nhanh chóng!
    Định dạng cuối cùng mâm xôi lại, Tôi theo các bước này một lần nữa và tất cả mọi thứ làm việc đẹp, không là mà có thể thất bại.
    Dù sao, nhờ sự quan tâm.
    Một lời chào

    • Cảm ơn bạn đã chia sẻ nghi ngờ của bạn, Tôi vui mừng rằng cuối cùng nó đã sắp xếp.

      Bạn đã thay đổi một cái gì đó trong quả mâm xôi của bạn cũng như các định dạng, như ví dụ microUSB máy biến áp?

      • Có, Khi tôi mua nó tôi đặt một bồn rửa chén vào micro để tăng tốc độ nó lên và như vậy sẽ làm việc nhanh hơn, nhưng không phải là thay đổi rất đáng chú ý.
        Đó là điều duy nhất mà bạn thay đổi để rasp.

        • Hi John, Tôi vui để đọc bạn một lần nữa ở đây.

          Về nguyên tắc không có ảnh hưởng đến việc ép xung trong khía cạnh này, nhưng nó có thể có là bất kỳ cấu hình; bây giờ mà bạn đang làm việc với một Raspbian làm sạch trở lại để cung cấp cho các vấn đề sau khi sản xuất, Bây giờ nếu đó sẽ đề nghị bạn tìm thấy gốc rễ của vấn đề.

          Thay đổi trong việc ép xung, bạn sẽ thấy nó trong theo nhiệm vụ cụ thể mà cần nhiều sức mạnh tính toán, nhưng một số yếu tố như cổng Ethernet sẽ tiếp tục theo cổ chai mà sử dụng.

          Bạn có thể xem xét tôi đã làm các mô hình Raspberry PI B, B + và B2 tại liên kết sau, với đầy đủ các hoạt động thử nghiệm:

          http://www.peatonet.com/raspberry-pi-y-los-pines-gpio-controlando-el-led-desde-una-interfaz-web/

          Tôi hy vọng bạn sẽ hữu ích, nhìn thấy bạn sớm 🙂

  4. Xin chào, Tôi có một ít câu hỏi/vấn đề. Tôi muốn kết nối một buzzer thay vì một led, nhưng tôi muốn thử đầu tiên với một dẫn để tìm hiểu. Nó là cần thiết để thực hiện một index.html và khác php?
    Tôi có các led kết nối với gpio4, và tôi có một kịch bản on.py và off.py khác bên trong các thư mục 4. Giao diện điều khiển công việc một cách hoàn hảo.
    và tôi không thể đặt index.html là bởi vì nó sẽ không cho phép tôi, nhưng chỉ dành cho lãnh đạo chức năng 4.

    Tôi hy vọng rằng bạn có thể giúp tôi, Tôi đã ghé thăm hồ sơ facebook của bạn và tôi hy vọng một ngày nào đó cả Raspberry Pi như bạn đã biết. Một lời chào và cảm ơn.

  5. Một trang web PHP có thể chứa HTML bằng mà chỉ cần an index.php

    Nếu bạn đặt lệnh PHP để chạy các kịch bản python trong một tệp HTML, sẽ không chạy.

    Bây giờ mà thiết chế tạo các công trình nhà ga, bạn có thể chỉ cần sao chép các index.php của hướng dẫn này, loại bỏ GPIO khác và để lại chỉ là 4 đó là những gì bạn sử dụng; và nó sẽ làm việc.

    Nếu bạn không thể chỉnh sửa các tập tin trong/var/www chắc chắn sẽ phép, trong hướng dẫn này là giải pháp và nó sẽ làm việc, Nếu nó không bình luận và tôi sẽ cố gắng cung cấp cho bạn một bàn tay.

  6. Xin chào, I 'm gonna có để đặt một câu hỏi ở đây, Nếu bạn hoặc ai đó có thể đưa tôi một dây cáp. Tôi có kịch bản này và muốn xóa thư mục với ngày một lần khởi động lại, và những gì tôi quan tâm, biết làm thế nào để làm điều đó khi nói đến một số tiền x kích thước của bắt, Tất cả được xoá hoàn toàn hoặc khởi động lại RPi. Cảm ơn một lời chào.

    #! /bin/sh
    # /etc/init.d/motionStartup
    #

    # Một số điều mà luôn luôn chạy
    #liên lạc /var/lock/motionStartup
    Logger - s “Kịch bản được gọi là motionStartup”

    # Thực hiện các chức năng cụ thể khi được yêu cầu bởi hệ thống
    trường hợp “$1” ở
    Bắt đầu)
    Logger - s “Kịch bản motionStartup bắt đầu”
    DẤU THỜI GIAN = $(ngày + %m %d %H %M %S và % | Của SED / / / g') # Không gian
    Logger - s “Kịch bản motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $ dấu thời gian || Logger - s “Mkdir bắt đầu lỗi”
    Tìm/motiontmp/chuyển động /. -loại f - kích thước 0 -print0 - xóa
    Tìm/motiontmp/chuyển động /. -MaxDepth 1 -loại f | \
    XARGS - TÔI '{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    Dừng)
    Logger - s “Kịch bản motionStartup dừng lại”
    ;;
    *)
    ECHO “Cách sử dụng: /etc/init.d/motionStartup {Bắt đầu|Dừng}”
    lối ra 1
    ;;
    ESAC

    lối ra 0

  7. Nếu bạn thêm dòng này tại đầu của script của bạn, mỗi khi bạn chạy script trước khi bạn làm bất cứ điều gì bạn sẽ xoá tất cả thư mục bên trong/motiontmp /

    sudo rm - rf/motiontmp / *

    Đối với việc xóa các tập tin khi bạn đạt đến một kích thước nhất định, bạn có thể thử concatenating lệnh df - h Hiển thị một cách sử dụng đĩa thư mục, hoặc một phân vùng:

    DF - h /motiontmp

    Với một lệnh như wc hoặc sed vì vậy mà nó chỉ đọc các cụm từ đề cập đến MB hoặc GB sử dụng, Cùng với nếu bạn có thể lập trình phần rằng nếu kết quả là lớn hơn N, chạy lệnh mô tả ở trên rm.

    • Để xóa các thư mục hoàn hảo, nhưng sau đó…
      Xin lỗi, nhưng tôi là một chút mới và tôi bị mất, vì nó sẽ làm ví dụ để khi đạt đến thư mục/motiontmp/chuyển động / 5 Gigas? Cảm ơn bạn đã chúc mừng.

  8. Xin lỗi vì vậy, nhiều bài viết tiếp theo, nhưng như tôi tìm ra bản Cập Nhật. Một cái gì đó như thế này có thể làm việc?

    #! /bin/sh
    # /etc/init.d/motionStartup
    #

    Kích thước = du - sh /motiontmp

    đọc “Kích thước”

    Nếu [ “$Kích thước” > “2048000K” ]; sau đó

    sudo rm - rf/motiontmp / *

    khác

    Logger - s “Kịch bản được gọi là motionStartup”

    # Thực hiện các chức năng cụ thể khi được yêu cầu bởi hệ thống
    trường hợp “$1” ở
    Bắt đầu)
    Logger - s “Kịch bản motionStartup bắt đầu”
    DẤU THỜI GIAN = $(ngày + %m %d %H %M %S và % | Của SED / / / g') # Không gian
    Logger - s “Kịch bản motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $ dấu thời gian || Logger - s “Mkdir bắt đầu lỗi”
    Tìm/motiontmp/chuyển động /. -loại f - kích thước 0 -print0 - xóa
    Tìm/motiontmp/chuyển động /. -MaxDepth 1 -loại f | \
    XARGS - TÔI '{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    Dừng)
    Logger - s “Kịch bản motionStartup dừng lại”
    ;;
    *)
    ECHO “Cách sử dụng: /etc/init.d/motionStartup {Bắt đầu|Dừng}”
    lối ra 1
    ;;
    ESAC

    lối ra 0

    Fi

  9. Xin chào như một người bạn đó, Xin lỗi làm theo ví dụ của bạn và các chì thắp sáng, không có vấn đề, nhưng khi bạn bấm vào nút tắt, đèn flash led, đã kiểm tra các mã và tất cả mọi thứ là chính xác :/ bạn có bất kỳ ý tưởng có thể làm sai?

    • Xin chào Fco, Cảm ơn bạn đã bình luận của bạn.

      Trên web, Có ba nút:

      Bật, Tắt, và nhấp nháy.

      Nếu bạn có thể, dán ở đây mã mà bạn đã gán cho nút tắt, Vì vậy bình luận có thể là nút bật tắt chạy kịch bản mà nên được kết hợp với nút nhấp nháy.

      Gặp lại bạn sớm.

  10. Xin chào một lần nữa cho tất cả, một nghi ngờ nhiều hơn để thêm lol.

    Trước khi tôi đặt trong nền, Nó là để kích hoạt một âm thanh buzzer (buzzer) Nó phải là một vòng lặp đặt mã pin của bạn để 1 và một 0 liên tục, không phải là một dẫn rằng dù 1 Nó vẫn còn.
    Vấn đề là làm thế nào để ngăn chặn các vòng lặp này để sử dụng nó trong một web php, bởi vì giao diện điều khiển bằng cách thêm vào cuối của kịch bản gọi một & Nó chạy trong nền và để cho giao diện điều khiển miễn phí để kêu gọi các kịch bản kết thúc nó, Ví dụ:

    sudo python sonar.py &

    Đây là hai kịch bản, điều đó làm cho nó âm thanh và đảm bảo rằng nó dừng lại đổ chuông:

    nhập thời gian
    nhập RPi.GPIO như gpio

    GPIO.SetWarnings(Sai)
    GPI.setMode(GPIO. HỘI ĐỒNG QUẢN TRỊ)
    GPIO.Setup(7,GPIO. RA)

    GPIO.output(7,1)
    Time.Sleep(1)(.3)
    GPIO.output(7,0)
    Time.Sleep(1)(.3)

    và ngắt:

    nhập thời gian
    nhập RPi.GPIO như gpio

    GPIO.SetWarnings(Sai)
    GPI.setMode(GPIO. HỘI ĐỒNG QUẢN TRỊ)
    GPIO.Setup(7,GPIO. RA)

    GPIO.output(7,0)
    GPIO.cleanup()

    nhưng chỉ đơn giản là để phá vỡ đầu tiên làm việc. Cảm ơn một lời chào.

  11. Bạn có thể tiếp nhau một số lệnh, cho rằng dựa trên tên kịch bản của bạn, nhà ga nhìn PID của bạn và sau đó giết thực hiện nó với giết.

    Một khi tìm thấy lệnh, thay đổi chức năng nhằm mục đích đóng với Ctrl + C, một thay thế, ù N lần Matt nó tự động với lệnh này.

  12. Nếu với Ctrl + C đóng trong giao diện điều khiển, nhưng tôi cố gắng thực hiện nó thông qua PHP như đèn LED đăng bài của bạn, sau đó sẽ có là một cách khác tôi nói.

    • Ở trên bạn có giải pháp để tiêu diệt các quá trình của bạn với BASH, việc tìm kiếm của bạn PID từ tên tập tin; bạn chỉ có thể tích hợp nó vào trang web PHP của bạn với “exec”.

  13. Xin chào.
    Cảm ơn bạn đã hướng dẫn.

    Tôi có một vấn đề, không thực hiện kịch bản, Nếu bạn chạy chúng từ giao diện điều khiển, nhưng kể từ khi các trang không phải, Tôi không biết rằng nó có thể. Tôi đã làm những gì bạn bình luận về
    “Chúng tôi viết sudo visudo tại nhà ga và ở phần cuối của tập tin thêm www-data như sudoer, Nó phải là như vậy.”

    Nhưng không có gì. Tôi có thể xem những gì khác?

    Kính thư.

  14. Xin chào, Xin chào,
    Tại không có gì, Cảm ơn bạn.

    Nó cho phép một câu hỏi, Tất cả mọi thứ hoạt động hoàn hảo, bây giờ, Tôi muốn để có thể thêm một màn hình chỉ ra khi đèn LED được chuyển sang Baät hoaëc taét, Tôi tìm thấy một số bài viết ngay cả với hình ảnh hiển thị màu sắc tùy thuộc vào việc thay đổi đèn đang hoạt động hay không, cố gắng để hiểu các hoạt động nhưng không để làm cho nó làm việc, Tôi nhận được để các trang web với lệnh nhưng không có gì được kích hoạt, Tôi hy vọng sẽ không phải bận tâm với cái nhìn này và khác, Cảm ơn bạn vì lòng tốt của bạn tuyệt vời.

    Ignacio từ Bỉ

    • Xin chào Ignacio, Cảm ơn bạn rất nhiều vì bình luận của bạn.

      Tôi đoán rằng bạn đang sử dụng Javascript để làm điều này, tích hợp các chức năng PHP kích hoạt các kịch bản Python cho, quản lý điện năng-đèn.

      JavaScript không domino, Kể từ khi tôi không phải là một nhà phát triển web, nhưng có lẽ bạn có thể định hướng cho mình một chút tốt hơn, hoặc một số người đọc khác có thể giúp bạn có được những gì bạn muốn; nhưng để làm như vậy nó sẽ cần phải xem mã, hoặc các hướng dẫn bạn tiếp là để thử để phát hiện các lỗi ở đâu.

      Gặp lại bạn sớm, và rất nhiều khuyến khích!

  15. Xin chào cho tất cả rất cám ơn, Tôi học rất nhiều.
    Tôi đã theo tất cả các bước tiếp xúc, Tôi có thể bật đèn LED từ các địa phương thiết bị đầu cuối, tải bản vá lỗi php theo hướng dẫn của ullu, cấp quyền truy cập thậm chí một 775—-vv. Tải một trang với các nút sau khi lãnh đạo/gpio nhưng không có gì. Tôi đang sử dụng Raspberry pi 2…..sẽ có một cái gì đó với thẻ này?. Tôi đánh giá cao sự hợp tác của bạn.

    • Xin chào Rafael, Cảm ơn bạn đã bình luận.

      Nó có thể là giải pháp trong các ý kiến của các hướng dẫn trước trong loạt bài này dành cho tự động hóa nhà giá cả phải chăng dựa trên Raspberry PI.

      Các bước để làm theo là tương thích với mọi phiên bản của IP, Nó xảy ra với tôi rằng bạn có thể thay đổi thực hiện của các kịch bản python trên các trang web bằng lệnh sau đó sẽ tạo ra một tập tin trong thư mục chính của mâm xôi của bạn:

      sudo touch /home/pi/funciona

      Nếu tất cả là làm việc tốt, Tệp này nên được tạo ra.

      • Cảm ơn bạn đã phản ứng nhanh chóng của bạn. Tôi đã thực hiện những thay đổi, như ông nói với tôi, ở index.html bằng cách loại bỏ các phần của python và đặt lại: sudo touch /home/pi/funciona , nhưng đáng tiếc là các tập tin không được tạo ra trong mâm xôi của tôi. Tôi nghĩ rằng nó là một thử nghiệm tuyệt vời và kết quả tôi tin nó tập trung các vấn đề trong khu vực của trang web. Tôi sẽ tìm kiếm thêm thông tin trong hướng dẫn khác. Cảm ơn bạn đã giúp đỡ của bạn. Giữ liên lạc.

        • Xin chào Rafael, sau đó bạn có thể làm cùng một bài kiểm tra một chút thay đổi đường dẫn tập tin để kiểm tra nếu vấn đề nằm với các quyền truy cập vào thư mục/var/www.

          sudo touch /var/www/funciona

  16. Xin chào, Tôi có thể nói một cách để đặt một thẻ với trạng thái đèn LED từ giao diện web PHP
    sự thay đổi đó sẽ tự động để cung cấp cho cách nhấp vào cho nút hoặc bật, Tắt, nhấp nháy… có một nhãn hiệu cho bạn biết rằng tình trạng. Cảm ơn cho đầu vào của bạn, tôi hy vọng bạn có thể giúp tôi..

    • Xin chào Chaka, Cảm ơn bạn rất nhiều vì bình luận của bạn.

      Tôi nghĩ rằng bạn có thể làm điều đó với PHP, JavaScript nếu bạn muốn cung cấp cho một số hiệu ứng thị giác, hoặc thực hiện thay đổi cho nút.

      Nếu bạn chỉ muốn thêm một chú thích văn bản theo áp lực nút, Bạn chỉ nên mở rộng các chức năng liên kết với mỗi đầu vào; Tôi kèm theo một danh sách các chức năng có sẵn trong PHP:

      http://php.net/manual/es/indexes.functions.php

    • Xin chào Jameson,

      Tôi cũng không hiểu các câu hỏi, nhưng để tìm các IP của thiết bị, bạn có thể sử dụng NMAP.

      Bạn cũng có giao diện đồ họa các công cụ như ZenMap dựa trên NMAP và Fing for điện thoại Android.

    • Xin chào Jameson,

      IP bạn phải gõ vào trình duyệt của bạn là thực sự của Raspberry PI vì đây là hoạt động như một máy chủ web, Nếu tập tin php của bạn không liệt kê nó như là index.php bạn cũng sẽ có thêm tên của tập tin riêng biệt của bạn bằng một sau ip “/”.

      Trong trường hợp của IP là trong phạm vi 10.42.0.0 Vì nó là một IP loại NAT được cung cấp bởi một giao diện mạng ảo.

  17. Xin vui lòng tôi cần giúp đỡ. Vấn đề là tôi có tất cả mọi thứ như vậy mà giải thích cho bạn, nhưng không làm việc trong PHP scripts.

    Cảm ơn nhiều

    • Chào Sergio,

      Tôi đoán bạn đang đề cập đến kịch bản Python, những người khác có cùng một vấn đề và có một số giải pháp trong các ý kiến trước đó; Nếu sau khi thử nghiệm chúng vẫn tồn tại những sai lầm nếu bạn mang theo nhiều dữ liệu hơn có lẽ độc giả khác hoặc tôi có thể giúp bạn.

      Gặp lại bạn sớm.

    • Xin chào Roberto, Chào mừng.

      Tôi không phải là một chuyên gia trong php, và trong những khoảnh khắc mà tôi nhìn cho một hướng dẫn để thực hiện các lệnh trong các thông dịch viên bash từ php và do đó tìm thấy nó.

      Nó sẽ là thích hợp hơn để sử dụng để = exec thay vì?- exec?

      Cảm ơn bạn rất nhiều vì bình luận của bạn, Gặp lại bạn sớm.

  18. Nếu bạn làm việc trên web nhưng nếu kịch bản, Tôi sớm sẽ làm cho một bài viết, do đó, bạn có thể sửa chữa nó; Nhờ những thông tin tôi đã thu thập được nhiều người dùng đã không làm việc.

    Nếu bạn chạy nhanh để sửa chữa nó, Bạn có thể kiểm tra xem nếu thư mục var tồn tại trong mâm xôi của bạn, và nếu như vậy bạn phải di chuyển tất cả các tập tin đến đường dẫn đó và thay thế trong kịch bản “/var/www” bởi “/var/www/html” kể từ bây giờ
    Đây là đường dẫn máy chủ web mặc định.

    Nó cũng có thể bạn đã không xóa các chỉ số theo mặc định, “index.html” hoặc không có bạn thay đổi nó bằng cách “index.php”.

    Tôi hy vọng để giúp đỡ, Gặp lại bạn sớm.

  19. Xin chào Antonio,
    Tôi đã tự hỏi nếu một máy chủ web có thể được gắn để phù hợp với một hệ thống tự động hóa nhà, sau đó thử twitter api để bật đèn vv… (Tôi đã thấy rằng nó cũng có thể được thực hiện bởi trăn với một số thư viện và dễ dàng để làm theo hướng dẫn… nhưng bạn có thể làm như tôi nói và với php? tức là, quả mâm xôi là máy chủ web với twitter và gpio cổng bắt cháy đèn LED
    Cảm ơn trước.

    • Xin chào Nano,

      Từ các trang web php có thể chạy bất kỳ lệnh chỉ huy thông dịch viên BASH, điều đó bao gồm các kịch bản trong Python.

      Bạn có thể sử dụng các thư viện hoặc Twitter API để khi bạn sẽ gửi một tweet trích dẫn của tên người dùng tài khoản bot, tắt hoặc bật ánh sáng hoặc thiết bị liên kết với thông điệp đặc biệt.

      Tôi thấy một vấn đề, và nó là bất cứ ai có thể bật bạn và biến bạn đèn chiếu sáng và thiết bị gia dụng; trừ khi nó có thể hạn chế phụ thuộc vào người sử dụng gửi các tweet.

      Nó sẽ được thú vị nếu bạn đang bình luận về những gì bạn tìm thấy trong lĩnh vực này.

      Cảm ơn bạn đã cho ý kiến, Gặp lại bạn sớm.

  20. Chào bạn,
    Tôi theo hướng dẫn, chép đoạn code web, lưu nó như là php, trong thư mục đã tạo ra tôi server var , bởi vì nếu tôi đặt các index.php trong thư mục html không tìm thấy tôi các tập tin, nhưng tốt, Có vẻ như tất cả mọi thứ là OK. Tôi chỉ thử nghiệm với GPIO 17, Tôi sau đó tạo ra hai .py, để bật và tắt, Tôi có nằm trong cùng một thư mục như các tập tin index.php. Tôi mở trình duyệt, nhập vào các chỉ số, nhưng sẽ không hoạt động tôi là led. Nếu tôi có ssh lưu trữ truy cập ignites và thực hiện nó thông qua giao diện điều khiển nếu mà làm việc. không phải là nơi tôi thất bại. Tất nhiên thay đổi đường dẫn đến các kịch bản từ php, Vì nó là khác nhau từ của bạn dạy kèm.
    Tôi hy vọng bạn có thể cho tôi vay một bàn tay, Tôi đang bị bắt.
    Một lời chào.

    Cảm ơn nhiều.

    • Chào Charlie,

      Từ một vài phiên bản, Raspbian đã cập nhật Apache và các trang web được phục vụ từ var thay vì của/var/www

      Một phiên bản mới của trang web mà bạn có thể làm mà không sử dụng các tệp bổ sung, Bạn cũng có thể hợp tác phát triển thông qua github nếu bạn muốn:

      http://www.peatonet.com/raspberry-pi-implementando-un-sistema-domotico-asequible-parte-iii/

      Dù sao, nếu bạn muốn sử dụng phiên bản này của bảng điều khiển bạn có thể thử thêm người dùng www-data group gpio, Có vẻ như đây là vấn đề vì điều đó làm việc thông qua ssh.

  21. Xin chào peatonet, Tôi đang cố gắng để làm một sáng chế để kích hoạt một mô-đun của 4 Tôi đã chuyển tiếp từ các trang web để bật hoặc tắt đèn một địa phương, vấn đề là trong thử nghiệm, dẫn đầu với redistencia bắt đầu và dừng lại sẽ từ các trang web, nhưng khi tôi kết nối pin40 (đó là điều mà tôi đã đặt cấu hình) loại bỏ kháng chiến và lãnh đạo, tắt ánh sáng màu đỏ của các mô-đun tiếp sức và không bật hoặc tắt tôi phải kiểm tra các bóng đèn.

    Xin vui lòng giúp tôi bởi vì không còn là nếu đó là sai relay module (damn aliexchinapress) nhưng không ai trong số các 2 Mô-đun mà tôi đã làm việc hoặc là raspberrypi không gửi đủ điện áp để relay (như VCC tôi có bạn kể từ khi pin3)

    Xin lỗi cho tirade và cảm ơn trước

    Chúc mừng bạn bè

    • Xin chào, autorespondo tôi tôi bạn bè, vấn đề đã có nó trong pin20 (trong trường hợp của tôi) đã phải đặt một sức đề kháng, Tôi đặt nó trong 330 nối đất.
      Tôi cho rằng đó là bởi vì khi bạn vượt qua dẫn đến relay loại bỏ kháng chiến

      Cảm ơn bạn cho tất cả mọi thứ ?

      • Xin chào Chúa Giêsu, Rất cám ơn bạn đã chia sẻ các giải pháp với chúng tôi.

        Xin lỗi nếu tôi không thể trả lời trước khi nhưng tôi bắt với sốt, trong tuần cuối cùng của các lớp học chuẩn bị kỳ thi, và công việc (sự tự do không có sự cho phép để có được bệnh).

        Đối với pin mà bạn đã kết nối VCC, trong trường hợp của tôi kết nối với pin 2 hoặc đến các 4 thất bại đã đòi hỏi 5V cung cấp điện.

        Nếu bạn muốn bạn có thể cho biết thêm chi tiết của bạn bằng chứng của khái niệm, sau đó, bạn đang sử dụng đèn LED thay vì 220V AC outlets?

        Cảm ơn bạn đã bình luận của bạn.

  22. Xin chào, Tôi đang làm một dự án cho các trường học và đã tự hỏi nếu đó là cách bạn có thể mô phỏng các hệ thống này từ một ứng dụng android, tức là, Làm thế nào để xử lý các chân của mâm xôi theo cách này có vẻ như 100 thời gian dễ dàng hơn trong một ứng dụng android, Tôi tự hỏi, nếu việc tạo ra một ứng dụng có thể ở bất kỳ cách nào chỉ đạo tôi đến loại này của hệ thống tự động để tránh việc phải học từ đầu chương trình như vậy là một điều trong android. Thật không may tôi nghĩa vụ phải cung cấp dự án như một ứng dụng điện thoại di động, không phải là mẫu web.
    Tôi hy vọng câu trả lời của bạn

  23. Xin chào bạn cảm ơn bạn!! lời giải thích tuyệt vời!! sinh sống lâu dài mã nguồn mở. Cảm ơn bạn đã nhập vào của bạn.

  24. Xin chào và cảm ơn bạn cho tất cả mọi thứ, Tôi lặp lại câu hỏi của tôi, Sự khác biệt cho họ làm việc ở pi mâm xôi là gì 3, trước,

    Cảm ơn bạn

    • Xin chào Ignacio, Cảm ơn bạn đã cho ý kiến.

      Hướng dẫn này được phát triển trên một Raspberry PI 3 bởi những gì nên chạy mà không có biến chứng.

      Nếu ngay cả như vậy, không quản lý để làm cho nó làm việc, Bạn có thể chia sẻ bất kỳ lỗi hay vấn đề bạn đã tìm thấy.

  25. Xin chào đồng nghiệp, Tôi cần giúp đỡ của bạn bởi vì tôi đang đắm mình trong một dự án giữa 3 đặc sản, điện, Khoa học máy tính và điện tử, Tôi domino phần điện nhưng không phải tôi là chuyên gia trong hai còn lại. Tôi giải thích cho họ, Tôi cần phải kết nối máy phân tích mạng M2DL2 với Raspberry pi để ghi lại dữ liệu tiêu thụ hiện tại, đồng thời để chuyển chúng cho mâm xôi và đăng ký nó và hiển thị trong một bảng dữ liệu là lần lượt. Tôi biết rằng tín hiệu mà làm cho các máy quét RS485 và RS232 mà nên vào mâm xôi là những gì tôi cần một bộ chuyển đổi của một tín hiệu khác, những gì tôi không biết làm thế nào để làm cho kết nối giữa các Analyzer, bộ chuyển đổi và quả mâm xôi. Bạn biết gì về việc này hoặc có thể hướng dẫn cho tôi nơi tìm thông tin?
    Kính thư.
    Ramon.

  26. Xin chào như bạn đang?
    Nếu bạn muốn kiểm tra tình trạng của một gpio, thông qua php, Vì vậy, cho tôi biết nếu này ON / RA kể từ khi tôi từ xa. Như nó nên?

    Có lẽ đó là một số cách mà rasp trả về giá trị là gpio.

    Nhưng thỏ trong một db bằng cách nhập 1 o 0 bằng cách nhấn các nút, nhưng mà tôi thấy vừa mộc mạc

    • Hola thi, Cảm ơn bạn đã cho ý kiến.

      GPIO subsystem là cuối cùng và trong vòng một phần của the/sys của GNU/Linux tập tin hệ thống, và trên thực tế được quản lý bằng cách chỉnh sửa các giá trị của mỗi tập tin ánh xạ cổng GPIO.

      Bạn có thể kiểm tra nếu một GPIO hoạt động hoặc không hoạt động đọc tập tin có chứa các giá trị của bạn, một ví dụ trong PHP cho GPIO 18:

      $estado_gpio18 = file_get_contents(“/SYS/lớp/gpio/gpio18/giá trị”);

      Nếu giá trị “1” GPIO đang hoạt động, mặt khác, nếu giá trị “0” nhàn rỗi.

      Gặp lại bạn sớm.

  27. Xin chào, lần đầu tiên cảm ơn bạn vì những rắc rối của việc chia sẻ kiến thức của bạn mà chúng tôi có lo ngại tương tự.

    Tôi muốn làm cho bạn một tham khảo ý kiến (Tôi hy vọng nó không phải là rất ngớ ngẩn), vài tháng trước đây mà tôi đã mulling trên các vấn đề của việc tạo ra các giao diện web cho raspi. Bình luận của bạn chủ đề cung cấp quyền truy cập vào www-data, nhưng mà, Nó sẽ được tốt đẹp như một chú thích cho các truy cập từ môi trường địa phương hoặc thử nghiệm. Rằng các giải pháp đề nghị cho các môi trường an toàn hơn?

    Một lời chào và cảm ơn một lần nữa

    • Xin chào Gon, Cảm ơn bạn đã bình luận của bạn; Tôi chỉ cố gắng để tài liệu như tôi học hỏi mỗi ngày về thế giới hấp dẫn này, hình thức trực tuyến do đó chúng tôi có thể tìm hiểu nhau.

      Tôi muốn nhắc nhở tất cả độc giả rằng mặc dù chức năng bảng này là không hoàn toàn hoàn hảo, là một ví dụ cơ bản thực sự của những gì nó có thể làm và càng có nhiều tôi tìm hiểu thêm tôi nhận ra bao nhiêu mà có thể được cải thiện; Năm nay tôi đang cố gắng để cải thiện kỹ năng của tôi như là một lập trình viên kể từ khi tôi luôn luôn dành nhiều hơn để các hệ thống và bảo mật, và ông đã không chỉ các khái niệm về cấu trúc mã, thiết kế phương pháp hoặc thuật toán; Tôi hy vọng trong ngắn dành thời gian để cải thiện các bảng điều khiển web và chia sẻ một phiên bản tiếp theo của mà đã không phải tôi không quá averguence.

      Về nguyên tắc kể từ phiên bản 3 Các trang Web là đủ để thêm www dữ liệu người dùng vào nhóm GPIO bang pins tránh cho sudoer quyền quản lý; Điều này có thể được thực hiện bằng cách sử dụng lệnh sau đây:

      sudo usermod G - a - gpio www-data

      Dù sao tôi nghĩ rằng câu hỏi của bạn tập trung hơn vào hạn chế quyền truy cập vào bảng điều khiển bằng cách xác thực, và điều này có thể được thực hiện với mô-đun mod_auth Apache2; Nó cũng được khuyến khích để sử dụng mod_ssl hoặc với một chứng chỉ tự ký.

      Nếu bạn đang đi để truy cập từ bên ngoài luôn luôn bạn có thể thêm một lớp bảo mật bằng cách cấu hình VPN, mà bạn có thể bảo vệ truy cập với x 509 chứng chỉ, tên người dùng và mật khẩu, và các hệ thống phòng chống như fail2ban trong số những người khác.

      Tôi hy vọng tôi đã làm rõ một chút nghi ngờ của bạn, Cảm ơn bạn đã quan tâm của bạn trong bài viết.

      • Xin chào Antonio! Đầu tiên của tất cả cảm ơn bạn đã trả lời rất nhanh và.

        Mi một tôi đi một chút về phía sau, Tôi là nhà phát triển web đang cố gắng để đắm mình trong thế giới của hệ thống và bảo mật. Đó là một niềm vui mà mọi người có như bạn đầu tư thời gian của họ, tài liệu về dự án của họ để những người khác có thể tìm hiểu thêm một chút mỗi ngày.

        Cho bạn biết rằng tôi đã giúp rất nhiều. Tôi có một dự án nhỏ kết nối với raspi, và nó đã tháng xoay quanh các giao diện mà không có nhiều để làm quyết định của tôi ( Nếu php, Nếu cylon.js, loại dịch vụ mydevice đã được tạo ra và tương tự…) và tôi luôn luôn tìm thấy nghi ngờ cùng: cấp phép, An ninh, …vv. Bài viết của bạn (Tôi đọc nhiều tin rằng) là số ít đi xa hơn một chút như puncturing cáp GPIO, Do đó yêu cầu bạn.

        Cảm ơn một lần nữa, bạn đã làm rõ nhiều nghi ngờ.

        Tôi sẽ thử nghiệm và triển khai thực hiện khi bạn có thời gian miễn phí, và nếu bạn quan tâm đến tôi đề cập đến kết quả.

        Một lời chào

  28. Xin chào các ứng dụng có thể được sử dụng trong xe ô tô
    Nó có thể là rằng công việc milrrolling
    Một ai đó để bỏ bất kỳ dự án về chủ đề này
    Saúde

Gửi phản hồi