Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Webiopi własny przycisk -

Małolatt 27 Mar 2015 23:12 1443 2
  • #1 27 Mar 2015 23:12
    Małolatt
    Poziom 9  

    Witam Wszystkich. Mam taki problem. Chcę zrobić własny interfejs który za pomocą webiopi będzie sterował instalacją. Pytanie do was drodzy użytkownicy jak zrobić przycisk który po włączeniu będzie uruchamiał skrypt w napisany w pythonie. Udało mi się zrobić obsługę dla poszczególnych pinów on/ off lecz nie mogę ustawić przycisku dla skryptu. Znalazłem przykładowy skrypt w którym są makra : https://code.google.com/p/webiopi/wiki/JAVASCRIPT
    Czy program wystarczy umieścić w bloku funkcji Dla Makra ? czy musze stworzc oddzielny skrypt pythona gdzie umieszczę program jak zostało to pokazane w przykładzie : https://code.google.com/p/webiopi/wiki/Tutorial_Basis
    Bardzo proszę o pomoc poniżej zamieszczam kod dla alarmu który działa na zasadzie takiej gdy czujnik PIR Wykryje ruch ustawia pin 23 na stan wysoki, działa w pętli wyświetla dodatkowo datę oraz godzinę "wykrycia ruchu przez czujnik PIR
    Zależy mi by po wciśnięciu przycisku na stronie został uruchomiony ten skrypt.
    Nie jestem pewny ale problem sprowadza się do importowania bibliotek
    http://pastebin.com/twp91ZK8
    Platforma na której pracuję to : Raspberry Pi Model B 512MB RAM

    0 2
  • #2 25 Kwi 2015 12:15
    Małolatt
    Poziom 9  

    Witam. Udało mi się utworzyć button który wykonuje skrypt pythona
    ( uruchamia alarm). Problem który jeszcze pozostał to wyłączenie alarmu nie mogę wyjść z działania pętli podczas wciśnięcia przycisku off moglibyście coś zaradzić z tym temacie ?

    Kod Pythona :

    Kod: python
    Zaloguj się, aby zobaczyć kod

    import webiopi
    import datetime
    import RPi.GPIO as GPIO
    import time
    GPIO = webiopi.GPIO
    #GPIO.setmode(GPIO.BCM)
    PIR = 23
    LED = 18
    STOP = 21


    GPIO.setup(PIR, GPIO.IN)
    @webiopi.macro
    def sendPiroff(STOP) :
    STOP = True

    @webiopi.macro
    def sendPir():

    localtime = time.asctime( time.localtime(time.time()) )
    print ("Alarma ! ")

    while True :
    if STOP == True:
    break

    else :

    if GPIO.input(PIR) :

    GPIO.setup(LED, GPIO.OUT)
    GPIO.output(LED, True)
    print ("Wykrylem Ruch :", localtime )
    time.sleep(2)
    GPIO.setup(LED, GPIO.IN)
    Kod: python
    Zaloguj się, aby zobaczyć kod


    Kod JavaScript :
    Kod: javascript
    Zaloguj się, aby zobaczyć kod

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content = "height = device-height, width = 420, user-scalable = no" />
    <title>WebIOPi | Demo</title>
    <script type="text/javascript" src="/webiopi.js"></script>
    <script type="text/javascript">
    webiopi().ready(function() {
    var content, button;
    content = $("#content");

    // create a button which call myMacroWithArgs with "1,2,3" as argument
    button = webiopi().createMacroButton("macro", "Alarm ON ", "sendPir");
    content.append(button); // append button to content div

    // create a button which call myMacroWithoutArgs
    button = webiopi().createMacroButton("macro", "Alarm Off", "sendPiroff");
    content.append(button); // append button to content div
    button = webiopi().createButton("test2", "Alarm Off 2", "sendPiroff");
    content.append(button);
    });


    function callMacro() {

    webiopi().callMacro("sendPiroff",args, macroCallback);
    webiopi().callMacro("pirOn",args, macroCallback);

    }

    function macroCallback(macro, args, data) {
    alert(macro + " returned with " + data);
    }

    </script>
    <style type="text/css">
    button {
    display: block;
    margin: 5px 5px 5px 5px;
    width: 160px;
    height: 45px;
    font-size: 24pt;
    font-weight: bold;
    color: black;
    }

    input[type="range"] {
    display: block;
    width: 160px;
    height: 45px;
    }

    #gpio7.LOW {
    background-color: White;
    }

    #gpio7.HIGH {
    background-color: Red;
    }
    </style>
    </head>
    <body>
    <div id="content" align="center"></div>
    </body>
    </html>[code]
    Kod: javascript
    Zaloguj się, aby zobaczyć kod

    0
  • #3 06 Lip 2015 21:55
    romeok01
    Poziom 35  

    Udało Ci się rozwiązać problem?

    Ja chcę stworzyć przycisk, który uruchamia program w pythonie, gdzie umieścić program w pythonie, aby go znalazł webiopi?

    0