Beiträge von housedoor

    Guten Abend

    Ich versuche folgenden Code zu kompilieren: https://github.com/phoggren/PiLCD

    Zu erst wollte ich eine eigene C-Datei mit folgendem Inhalt kompilieren um zu testen:

    Das ganze nun mit

    Code
    gcc -Wall testlcd.c -o test

    kompilieren.

    Dabei kommt aber immer folgende Fehlermeldung:

    Code
    In Function 'main':
    
    
    /home/pi/lsm/PiLCD-master/testlcd.c: ... undefined reference to 'lcd_dev_init(int, int)'...

    Hab das ganze auch schon mit -include pilcd.h versucht, kompiliert aber nie zu ende.

    Wie muss ich vorgehen?

    PS: Auch mit der Datei example.c aus der repository habe ich die selben Probleme

    Gruss :danke_ATDE:

    Guten Abend

    Nach längerem probieren funktioniert nun diese index.phtml:
    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <title>GPIO test</title>
    </head>
    <body>

    <?php

    echo "PHP Test";

    ?>
    </body>
    </html>
    [/php]

    Wenn ich stattdessen den Code vom Tutorial einfüge, wird noch immer nichts angezeigt:

    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <title>GPIO test</title>
    </head>
    <body>

    <?php
    $GPIO = array();
    $GPIO['17'] = "out";
    $GPIO['27'] = "out";
    $GPIO['22'] = "in";
    $GPIO['23'] = "in";
    $GPIO['24'] = "out";

    if (!empty($_GET["gpio"])) {
    if (!file_exists("/sys/class/gpio/gpio".$_GET['gpio']."")) { init_GPIO($_GET['gpio'], $GPIO[$_GET['gpio']]); }
    file_put_contents("/sys/class/gpio/gpio".$_GET['gpio']."/value", $_GET['state']);
    }

    foreach($GPIO AS $pin => $direction) {
    if ($direction == "out") {
    echo "GPIO ".$pin.": <a href='?gpio=".$pin."&state=1'>An</a> / <a href='?gpio=".$pin."&state=0'>Aus</a>";
    if (GetGPIOpinValue($pin) == 1) {
    echo "<div id='gpioOn' style='width: 25px; height: 20px; background-color:Green'>On</div>\n";
    } else {
    echo "<div id='gpioOff' style='width: 25px; height: 20px; background-color:Red'>Off</div>\n";
    }
    } else {
    if (GetGPIOpinValue($pin) == 1) {
    echo "GPIO ".$pin." <div id='gpioOn' style='width: 25px; height: 20px; background-color:Green'>On</div>\n";
    } else {
    echo "GPIO ".$pin." <div id='gpioOff' style='width: 25px; height: 20px; background-color:Red'>Off</div>\n";
    }
    }
    echo "<br/>\n";
    }


    //-------- Functions

    function init_GPIO($pin, $direction) {
    if (!file_exists("/sys/class/gpio/gpio".$pin."")) {
    file_put_contents("/sys/class/gpio/export", $pin);
    usleep(200000); //Programm-Verzoegerung in Mikrosekunden: 0.2s
    file_put_contents("/sys/class/gpio/gpio".$pin."/direction", $direction);
    }
    }

    function GetGPIOpinDirection($PIN) {
    $Direction='';
    if (file_exists("/sys/class/gpio/gpio".$PIN."")) {
    $Direction = trim(file_get_contents("/sys/class/gpio/gpio".$PIN."/direction"));
    }
    return $Direction;
    }

    function GetGPIOpinValue($PIN) {
    $Value='';
    if (file_exists("/sys/class/gpio/gpio".$PIN."")) {
    $Value = trim(file_get_contents("/sys/class/gpio/gpio".$PIN."/value"));
    }
    return $Value;
    }
    ?>
    </body>
    </html> [/php]

    Ein Blick in /var/log/apache2/error.log zeigt dann "PHP Parse error: Syntax error, unexpected { in ... line 18. (Nach dem ersten if)
    Soweit ich PHP durchblicke, ist dies recht nahe an "C", da gehört doch die geschweifte Klammer hin?

    Guten Abend

    Ich versuche mich nun schon eine ganze Weile an meigrafd's GPIO Tutorial, komme aber nicht vom Fleck.
    Solange ich folgende Code-Zeilen in meine index.php einfüge, funktioniert alles wie es soll:

    [code=php]<?php echo "hello world"; ?>
    <?php echo date('Y-m-d H:i:s'); ?>
    <?php phpinfo(); ?>[/php]

    aber sobald ich diese durch das Script mit sowohl html als auch PHP ersetze, wird mir gar nichts mehr angezeigt (Firefox) oder gar ERROR 500 (Edge) ausgegeben:

    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <title>GPIO test</title>
    </head>
    <body>

    <?php

    echo "PHP Test";

    ?>[/php]

    Es scheint ein Problem mit dem HTML zu geben, wisst ihr wo ich suchen muss, um den Fehler zu beheben?
    Die Datei heisst bei mir index.php und liegt in /var/www/html, muss ich diese in einen anderen Ordner legen?


    Liebe Grüsse
    housedoor

    Hallo zusammen

    Ich habe zu Hause, mit der Hilfe von diesem Forum, die Terrasse
    mit Hilfe von vier Relais automatisiert.

    Das Relais-Bord ist ein Standartteil von Sainsmart, dass in vielen grösseren Online-
    Versandhäusern erhältlich ist.

    Nach dem ich das ganze mit diesem Skript zum laufen gebracht habe, dachte ich mein Problem währe gelöst.

    Nun ist mir aber aufgefallen, das die Relais zwischendurch einfach klacken, ohne das sich der Schaltzustand ändert. Entweder hat die Spannung am GPIO-Port schwankungen, vielleicht die Masse, oder die Spannung stimmt nicht. Ein Wackelkontakt kann ich mehr oder weniger ausschliessen, auch bei grösseren Erschütterungen passiert nichts.

    Das ganze ist wie folgt angeschlossen:

    OptoRelayChannelData-800.jpg

    Der Jumper ist geöffnet, an JD-VCC ist der 5V Pin
    An VCC der 3V3 Pin
    GND an GND
    und IN1-4 an den jeweiligen GPIO Ports

    Habt ihr eine Idee wo das Problem liegen könnte?

    Oder haben tatsächlich die Ports Schwankungen?
    Dann könnte man mit hilfe eines Kondensators eine "entprellung" vornehmen?

    Vielen Dank für eure Hilfe

    Hi,

    Vielen Dank für eure Hilfe, die App macht genau was sie soll, alles top :bravo2: :D

    Falls ich nun irgend wann einmal die GPIO-Ports tauschen möchte, kann ich dies direkt in der HTML ändern, auch falls ich weitere Ports schalten möchte, müsste man nur einen weiteren Button Block hinzufügen, richtig?

    Ein grosses Dankeschön für die Tolle Arbeit, der Code sieht sehr schlank aus :)

    Liebe Grüsse

    PS: Wie kann ich im Forum Spoiler machen?

    Hallo zusammen

    Vielen Dank für eure Hilfe

    Ich habe den Code nun folgend angepasst:

    Spoiler anzeigen

    Hier bringt mir validator.w3.org zwar immer noch Fehler, ich verstehe diese aber nicht wirklich und mein Mobile und der PC zeigen die Site korrekt an.

    Das Interface besteht nun nur noch aus dem:

    Spoiler anzeigen

    und die App

    Spoiler anzeigen

    Leider erfolgt dabei bereits beim Start folgende Meldung:

    Müsste da app.listen(port); ... noch weg? Sofern .../pi-node-relay/app.js:36 Zeile 36 bedeutet, währe es diese Zeile.
    :helpnew:

    --------------------------------------------------------------------------------------------

    Ich habe es deshalb mit meinem eigenen, angepasstem Code nochmals versucht:

    Spoiler anzeigen
    Spoiler anzeigen


    Edit: Unterdessen sogar bereinigt.

    und:

    Spoiler anzeigen

    und was die Shell dazu meint:

    Damit funktionierte alles mehr oder weniger gewünscht, ich will aber trotzdem das "Schöne Skript" noch zum laufen bringen, könnt ihr mir helfen wo der Fehler liegt?

    Vielen :danke_ATDE: Dank für die grosszügige Unterstützung

    Hallo liebe Community

    Ich habe in den letzen Tagen mal endlich Zeit gefunden um ein bischen am RPi zu experimentieren und wollte schnell mehr.

    Unterdessen habe ich einige Breadboards, ein 4-Kanal-Relaisboard und DS18b20-Sensoren hier.

    Nun wollte ich zum Anfang mal die GPIO-Ports (also das Relais) übers Internet steuern.
    Dazu habe ich dieses Tutorial von OpenHomeAutomation gefunden.

    Dieses habe ich nach ein bischen Pröbeln schnell zum laufen gebracht.
    Ich hab heute einmal den Code analysiert, wobei ich besser anschauen sagen sollte, da ich mich nur sehr begrenzt mit den Code's auskenne. Der Code ist zur Zeit noch für nur ein Relais geschrieben, ich will aber alle vier ansteuern.

    Dazu habe ich als erstes das HTML-Interface ergänzt:

    Spoiler anzeigen

    Der Code hat noch ein dazugehörendes CSS File, aber ich denke dieses muss ich hier nicht posten.

    Danach wollte ich die Datei interface.js anpassen, leider habe ich da aber den Zusammenhang zwischen interface.js und app.js nicht ganz verstanden.

    Die interface.js fragt an, ob der Button im Web gedrückt wird, ist das richtig?
    Wenn dieser gedrückt wird, leited sie dies an die app.js weiter.

    Wenn ich also nun die interface.js ergänze, wie muss ich dann in der app.js dies auswerten, da ist ja nur "on" und "off" ausgewertet (stimmt das?), wie sieht das bei vier mal "on" und "off" aus?
    Müsste ich da on1..on2...on3... erstellen?

    Spoiler anzeigen

    und die app.js, noch originalbelassen:

    Spoiler anzeigen

    queryData.state fragt den Status ab?


    Vielen Dank für eure Unterstützung
    housedoor

    Hallo zusammen

    Ich bin auch noch neu in der Community und komme deshalb im Thread noch nicht ganz nach.

    Ich habe ähnlich wie der Threadsteller ein 4-Kanal Relaisboard von Sainsmart. Leider verstehe ich die Funktionsweise des Optokopplers noch nicht ganz, wikipedia half mir auch nicht wirklich.

    Da auch ich noch zufrieden mit dem RPi bin und er noch nicht gleich eine Eigenkremation durchführen soll, will ich lieber nochmals nachfragen, ob meine Verdrahtung so passt. Als Grundlage verwendete ich folgendes Schema: How to wire a Raspberry Pi to a Sainsmart 5v Relay Board, dies ähnelt auch im Schema, bis auf die Anzahl Relais, meinem Board.

    In meinem Schema ist noch eine Erweiterung mit Temperatursensoren (DS18B20), die dann später mit einem Python-Script ausgewertet werden sollen und das Board schalten.
    Dies ist auch der Grund, weshalb ich abweichend zum Schema die Ports 17,18,22,23 benutzt habe.

    Was ist der Unterschied, bzw. Vor- und Nachteile zur empfohlenen Schaltung mit dem "Käfer"? (ULN2803 und andere genannte)

    Vielen Dank für eure Unterstützung

    Hallo zusammen

    Ich bin neu in euerm Forum und habe auch noch wenig Erfahrung mit der Raspberry Pi programmierung.

    Letze Woche kamen einige Freunde und ich auf die Idee das ein Keyless (und handless) entry System für unsere Haustüre toll währe.
    Dazu wollten wir einen Raspberry Pi nutzen, der erkennt wenn ein neues Wireless Gerät im LAN angemeldet wird. (Sobald jemand mit dem Mobile in die Reichweite des Hauswlan kommt verbindet dies ja selbstständig)
    Sobald dies der Fall ist währe es perfekt wenn mir ein GPIO? Ausgang dies melden kann. Dan würde ich mit Hilfe eines Relais den Türöffner schalten.

    Mit welchem Programm / Skript würde ich soetwas zustandebringen?

    Vielen Dank für eure Tipps und Vorschläge dazu.