Posts by St3v3

    PhoenixEX ersteinmal will ich dir sagen, lass dich hier nicht von anderen auf ihr Niveau runter ziehen. Es gibt halt immer User die meinen sie wären allwissend geboren. Aber deine Reaktion war nicht die beste, achte hier bitte auf deine Wortwahl.


    Nun zu deinen Fragen:

    Die erste Frage würde dir schon beantwortet. Siehe dazu den Link von daxb

    Zu deiner zweiten Frage muss ich dich jedoch fragen, ob sich der Aufwand und das Risiko aufgrund deiner Unerfahrenheit für 10-15MB lohnt. Es gibt genug kostenlose Cloud-Dienste, die zudem sicherer sind als eine eigene Cloud (zumindest sicherer als das, was du ohne Ahnung erstellen könntest).

    Befasse dich am besten ersteinmal im lokalen Netzwerk mit deinem PI und probiere Mal vieles aus. Suche nach Anfänger Projekten und arbeite dich zu deiner Cloud hoch. Vor allem solltest du dich mit dem Thema "Sicherheit" auseinander setzten, denn sonst wird dein Pi früher oder später wirklich nur ein weiterer Bot werden.


    Wenn du Projekte für Anfänger gefunden hast und dazu Fragen hast kannst du diese gerne im Forum stellen, aber lass dich nicht von unreifen Menschen zu Beleidigungen verführen.


    Viel Erfolg und Spaß mit deinem PI.

    Hi,
    eigentlich müsstest du mit der externen URL auch intern verbinden können, wenn Überall Internet vorhanden ist und die portfreigabe funktioniert (was ja wohl der Fall ist).
    Dann gehen deine Signale jedoch einen unnötigen weg über den provider. Alternativ kannst du einen eigenen DNS Server aufsetzten um in Router deine ddns auf deine interne IP aufzulösen. Aber das wäre Blödsinn, denn wie gesagt, eigentlich sollte es so klappen.


    Also am Messgerät SHORT anzeigt, obwohl zB GPIO 6 auf 0 ist.


    Versuch mal einen hohen wiederstand Zwichen pin und gnd zu tuen (parallel zur Leinwand also).
    So hatte ich ich das Problem gelöst, dass meine öffnungskontakte erst sehr spät oder gar nichts auslösten.
    Der wiederstand muss größer sein, als der wiederstand der Schaltung zum steuern der Leinwände. (Ich denke mal 10K sollten hinkommen. :) )

    Erster kontakt mit PHP sieht halt so aus xD


    Kenne ich. Meine Anfänge sahen auch nicht besser aus :)



    Wonach muss ich suchen wenn ich die funktionen in Operatoren schreiben will? Stichwort?


    Damit meinte ich, dass du zum Beispiel das ausfahren der linken seite in eine Funktion packst. Den du hast 2 mal exakt das gleiche da stehen. Einmal, wenn du links runter fährst und einmal, wenn du beides runterfahren lässt. Das selbe gilt für rechts.

    so, hatte nun mal zeit es mir am PC anzugucken. Am Handy etwas blöd.


    Du hast immer $_SESSION[$i] und $_SESSION[$j] verwendet. das ist falsch.
    Speichere es in $_SESSION['i'] und $_SESSION['j'] ab und es klappt.


    Noch ein paar tipps:


    • Wähle deutliche namen für die Variablen
    • Arbeite nicht mit verschachtelten if-anweisungen sondern nutze switch-case
    • Speichere den zustand in einer datei oder Datenbank ab und nicht in der Session, da sonst Fehler entstehen wenn du das Script woanders ausführst.
    • Schreibe dir Funktionen für die verschiedenen Operationen (verkürzt das Script)
    • Setze die GPIO pins am anfang des scriptes mit "define" fest, so kannst du die Pin Nummern später schneller ändern.
    • ggf. kanst du die GPIO befehle in bash dateien abspeichern und ausführen lassen.


    Hier nun noch eben dein Script (funktionierend):


    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Konferenzraum</title>
    <!--<meta http-equiv="refresh" content="10; URL=/">-->
    <link rel="stylesheet" type="text/css" href="style/style.css" />


    <?php
    session_start();
    //GPIO PORTS AUF AUSGANG STELLEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 17 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 18 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 27 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 22 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 23 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 24 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 16 out"));
    ?>
    </head>
    <body bgcolor="#00BFFF"; >


    <?php


    //ACHTUNG PIN BELEGUNG BEACHTEN
    //PIN 17 LEINWAND RUNTER BEFEHL LINKS
    //PIN 18 LEINWAND STOP BEFEHL LINKS
    //PIN 27 LEINWAND HOCH BEFEHL LINKS


    //PIN 22 LEINWAND RUNTER BEFEHL RECHTS
    //PIN 23 LEINWAND STOP BEFEHL RECHTS
    //PIN 24 LEINWAND HOCH BEFEHL RECHTS


    //PIN 26 BEAMER LINKS
    //PIN 20 BEAMER RECHTS


    //i = rechte leinwand fläche
    //j = linke leinwand fläche


    if(isset($_GET['Befehl']))
    {


    //LINKE LEINWAND FLACHE MIT BEAMER NUTZEN
    if($_GET['Befehl'] === 'D3')
    {
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 26 out"));//MODI UMSCHALTEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 17 1")); //LEINWAND LINKS RUNTER
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 17 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 26 0")); //BEAMER LINKS EINSCHALTEN
    sleep(5); //warten
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 18 1")); //LEINWAND LINKS STOP
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 18 0"));
    $_SESSION['j'] = 1;
    }


    //RECHTE LEINWAND FLACHE MIT BEAMER NUTZEN
    elseif($_GET['Befehl'] === 'D2')
    {
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 20 out"));//MODI UMSCHALTEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 22 1")); //LEINWAND RECHTS RUNTER
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 22 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 0")); //BEAMER RECHTS STROMZUFUHR EINSCHALTEN
    sleep(5); //warten
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1")); //LEINWAND RECHTS STOP
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 0"));
    $_SESSION[i] = 1;
    }


    //BEIDE BEAMER EINSCHALTEN UND LEINWAND AUSFAHREN
    elseif($_GET['Befehl'] === 'D1')
    {
    if (($_SESSION['j']) == 0 AND ($_SESSION['i']) == 0)
    {
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 20 out"));//MODI UMSCHALTEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 26 out"));//MODI UMSCHALTEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 17 1")); //LEINWAND LINKS RUNTER
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 17 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 22 1")); //LEINWAND RECHTS RUNTER
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 22 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 26 0")); //BEAMER EINSCHALTEN LINKS
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 0")); //BEAMER EINSCHALTEN RECHTS


    sleep(5); //warten
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 18 1")); //LEINWAND LINKS STOP
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 18 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1")); //LEINWAND RECHTS STOP
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 0"));
    $_SESSION['j'] = 1;
    $_SESSION['i'] = 1;
    }


    elseif ($_SESSION['j'] == 0 AND $_SESSION['i'] == 1)
    {
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 20 out"));//MODI UMSCHALTEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 22 1")); //LEINWAND RECHTS RUNTER
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 22 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 0")); //BEAMER RECHTS EINSCHALTEN
    sleep(5); //warten
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1")); //LEINWAND RECHTS STOP
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 0"));
    $_SESSION['j'] = 1;
    }


    elseif ($_SESSION['j'] == 1 AND $_SESSION['i'] == 0)
    {
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 26 out"));//MODI UMSCHALTEN
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 17 1")); //LEINWAND LINKS RUNTER
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 17 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 26 0")); //BEAMER LINKS EINSCHALTEN
    sleep(5); //warten
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 18 1")); //LEINWAND LINKS STOP
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 18 0"));
    $_SESSION['i'] = 1;
    }


    elseif ($_SESSION['j'] == 1 AND $_SESSION['i'] == 1)
    {
    $message = "DIE LEINWANDE SIND HERUNTERGEFAHREN";
    echo "<script type='text/javascript'>alert('$message');</script>";
    }
    }


    //ALLES AUSCHALTEN UND LEINWANDE EINFAHREN
    elseif($_GET['Befehl'] === 'D4')
    {
    $_SESSION['i'] = 0;
    $_SESSION['j'] = 0;
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 26 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g mode 20 out"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 27 1")); //LEINWAND HOCH LINKS
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 27 0"));
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 24 1")); //LEINWAND HOCH RECHTS
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 24 0"));


    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 26 1")); //ACHTUNG! BEAMER WERDEN SOFORT VOM STROM GETRENNT
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 1")); //ACHTUNG! BEAMER WERDEN SOFORT VOM STROM GETRENNT
    }
    }
    ?>
    <table style="width: 100%">
    <tr>
    <td style="width: 171px">
    <a href="<?php print($_SERVER['PHP_SELF']);?>?Befehl=D3">LINKS AUSFAHREN</a></td>
    <td style="width: 96px"><a href="<?php print($_SERVER['PHP_SELF']);?>?Befehl=D2">RECHTS AUSFAHREN</a></td>
    <td rowspan="3" style="width: 145px">
    <?php
    echo $_SESSION['id'];
    ?>
    </td>
    <td rowspan="3" style="width: 145px"> </td>
    <td rowspan="3" style="width: 1019px"> </td>


    </tr>
    <tr>
    <td colspan="2" style="height: 95px"><a href="<?php print($_SERVER['PHP_SELF']);?>?Befehl=D1">BEIDE AUSFAHREN</a></td>
    </tr>
    <tr>
    <td colspan="2" style="height: 127px"><a href="<?php print($_SERVER['PHP_SELF']);?>?Befehl=D4">ALLES AUSCHALTEN</a></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    <p><br><br></p>


    <?php
    echo 'PHP Version: ' . phpversion();
    ?



    >




    <


    /bo
    dy>


    </html>[/php]


    Ich hoffe du Kopierst es nicht nur, sondern setzt einpaar tipps von mir um.



    MfG



    St3v3

    Hi,


    ich würde die Daten per session Speicher.
    In deinem code verwendet du eine session variable ohne die session überhaupt zu starten.


    Schau dir mal "session_start()" an.


    Dann sollte es auch mit dem speichern in der session klappen.


    Edit: fals du den Weboberfläche jedoch von überall öffnen willst solltest du die Daten in einer Datenbank Speichern.

    hallo altheg,


    wie genau soll das Projekt denn ablaufen?
    Soll das Produkt irgendwann in den Verkauf gehen (bei dem Aufwand wohl ja)?
    Welsche Sicherheitsmaßnahmen gibt es in diesem fall (Stichwort: Entnahme falscher Produkte)?
    Was unterscheidet diese Idee zu herkömmlichen gekühlten Verkaufs Automaten?


    Es scheint mir, als wäre die Handhabung komplizierter, als die Verwendung bereits erhältlicher Automaten.


    Als Projekt ist dies interessant und abgewandelt auch im Privaten bereich nützlich. In Verbindung mit einem Barcode Scanner könnte man Produkte die eingelegt und entnommen werden erkennen und so ein kleines Warenwirtschaftssystem für zuhause konzipieren um einen Automatischen Einkaufszettel zu generieren.


    MfG



    St3v3

    hallo[font="Tahoma, Verdana, Arial, sans-serif"],[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]dass kann durchaus auch am Netzteil liegen. Könnte dies eventuell zu gering dimensioniert sein? [/font]


    [font="Tahoma, Verdana, Arial, sans-serif"]

    [/font]


    [font="Tahoma, Verdana, Arial, sans-serif"]Nun zu meiner Vermutung der Abstürze: Das Relaismodul ist in unmittelbarer Nähe (5cm) von der Raspberry. Das Modul schaltet direkt die 230 V.[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Die Abstürze waren immer zu einem Zeitpunkt als ein Schaltvorgang erfolgte.[/font]


    [font="Tahoma, Verdana, Arial, sans-serif"]Also daher meine Frage, ist es Zufall oder beeinflusst die unmittelbare Nähe der Hochspannung (230V und 400V) im Schaltschrank, wo auch die Raspberry war, deren Verhalten?[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]

    [/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]
    Ja, das ist möglich. Es kann sein, dass das Magnetische Feld beim Schalten dein Pi zum Absturz bringt.
    [/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Ein Beispiel: Verlege ich eine Datenleitung parallel zu einer 230V Leitung, so kann es zu Problemen auf der Datenleitung kommen, da das Magnetische Feld der 230V Leitung auf die Datenleitung übergeht.[/font]
    Jedoch ist nicht gesagt das dies hier der Grund ist, es wäre nur eine Möglichkeit.


    MfG


    St3v3

    Hallo,


    momentan arbeite ich daran, mithilfe des Raspberry Pi, eine Alarmanlage zu bauen. Bisher habe ich das Projekt soweit aufgebaut, dass es Funktioniert, will es jedoch noch erweitern und optimieren.



    Folgende Bereiche werden überwacht:


    • 1 Gartentüre
    • 2 Fenster


    Diese werden kabelgebunden überwacht.
    Die Überwachung erfolgt durch Magnetkontakte, welsche auf dem Pi aufgeschaltet sind. Im weiteren Verlauf sollen noch Funkteilnehmer hinzukommen, um die Wohnungstüre mit zu überwachen.


    Bisher Vorhandene Funktionen:


    • Anlage kann mit einem Knopf am Pi Scharf/Unscharf geschaltet werden
    • Anlage kann per Web und per App Scharf/Unscharf geschaltet werden
    • Alarm kann mit einem Knopf am Pi zurückgesetzt werden
    • Alarm kann per Web und per App zurückgesetzt werden
    • Zugang von außen nur mit einem festgelegtem Passwort möglich
    • Meldegruppen werden aus einer Datenbank ausgelesen (leicht erweiterbar)
    • Ausgänge (für z.B. LEDs oder Sounder) werden per Datenbank ausgelesen (leicht erweiterbar)
    • Ereignisse werden in einer Datenbank geloggt
    • Bei Einbruch erhalten alle Registrierten Smartphones eine Push Benachrichtigung mit Sound
    • Beim zurücksetzen eines Alarmes erhalten alle Registrierten Smartphones eine Push Benachrichtigung (ohne Sound)


    Geplante Funktionen:


    • Konfiguration per Webinterface (?und App?)
    • Mit Funkteilnehmern erweitern
    • Kamera hinzufügen (im Alarmfall soll diese ein paar Fotos machen und dann ein kleines Video, diese sollen dann an die Registrierten Smartphones gesendet werden[?Über Backup Server?])
    • Kleines Display für Informationen und Steuerung (Touch)


    Außerdem soll das ganze System nochmal überarbeitet werden um Ressourcen sparender zu arbeiten und auch, um den Sourcecode und die Programme für alle zur Verfügung zu stellen.


    Hier ein kleiner Anschlussplan (beispielhaft):


    458x293
    (Anstelle der Cyan Farbenden Kabel sollen hier die Melder (z.B. Magnetkontakte) angeschlossen werden)
    (Relais können wie die Alarm LED verwendet werden, um ggf. andere Dinge zu schalten)


    Bilder von der Handy App und Widget:
    271x482
    271x482


    Sourcecode und Erklärungen folgen nach Bearbeitung. Vieles ist allgemein gefasst und einstellbar, manches hingegen ist fest im Code vorgegeben. Bevor ich euch also die Sourcecodes und die Programme geben kann will ich es so umschreiben, dass es jeder ganz einfach selber Konfigurieren kann, ohne den Code zu durchforsten.


    Änderungen werden immer in diesem Beitrag editiert.


    Falls es jedoch schon Anregungen und Fragen gibt können diese gerne schon gepostet werden.


    MfG St3v3