Go Down

Topic: Befehl über die Webseite wird doppelt ausgeführt!?!?!?!?!?! (Read 11936 times) previous topic - next topic

Eisebaer

hi,

Quote
Stefan ich meinte hier in diesem Threat "Befehl über die Webseite wird doppelt ausgeführt!?!?!?!?!?!"
Da in anderen Foren immer auf den privaten Austausch von Nachrichten verwiesen wird, sobald die Sache nichts mehr mit dem Hauptthema zu tun hat.


wegen sowas brauchst Du Dir hier keine sorgen machen. man sieht das nicht so eng hier wie in manchen anderen foren.

jQuery hat in erster linie nichts mit design zu tun, sondern soll die programmierung vereinfachen. alles, was Du mit jQuery machen kannst, geht auch mit javascript. der größte vorteil ist aber meiner meinung nach, daß etwas, das mit hilfe von jQuery geschrieben wurde, für alle browser paßt.

gruß stefan

skorpi080

Fals es hilft....

http://v3-1255.vlinux.de/mediawiki/index.php/Remotesocket#Sourcecode
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

TobiasR1991

Ok das ist super mit der Freiheit hier im Forum!!
Also so wie ich das verstanden und in youtube gesehen habe ist das eine vereinfachung der programmierung wie du es gesagt hast und dient der einfacheren Gestaltung der Webseite.
Ich werde mich in jQuery versuchen und hoffe es klappt, wobei es relativ simpler aussieht als anderes!
Eine Frage nebenbei: Ich habe ein tft-lcd module von sharp an der Hand und wollte wissen ob ich das mit dem Arduino Mega einfach ansteuern könnte oder ob das müll ist. Aus dem Datasheet habe ich keine Bedenken bekommen, wobei die Max. Spannung von 6V und der Max. Strom Icc von 160mA mich etwas verunsichern.
Anbei das PDF.
Vielen Dank wiedermal im Voraus und keine Angst das mich das von jQuery ablenkt, denn der Focus liegt erstmal auf jQuery!

skorpi080

playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

TobiasR1991

Der Anfang ging gut, aber nun stehe ich vor einer Mauer über die ich nicht drüber komme.....
Ich habe die zwei Hilfen von euch nach meiner Vorstellung bearbeitet, aber beim kombinieren von beiden hängt es total.

Als Startseite soll die "Homeseite-Layout" erscheinen und als Unterseite z.B. beim klicken des Schlafzimmer-Buttons soll das "Unterseitenlayout" erscheinen, aber daran hängt es leider......

skorpi080

Naja, ich hab mit null Ahnung angefangen, egal welche Programmier Sprache und musste mir selber alles beibringen.
Hier ist ne schöne seite, da kannste gut abgucken, mit der Bedingung es auch zu verstehen :D

Was dein Projekt nun betrifft, hab mal einfach frech aus 2 Dateien nur eine gemacht  :smiley-red:

playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

skorpi080

Achso, die ganzen <script> sachen brauchst du nicht, da du ein anderen Sketch und andere Befehle hast.

Wie hast du dich nun entschieden, Arduino=Server oder mit nem Webserver, auf dem Dateien liegen?
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

TobiasR1991

Hey skorpi08 ganz genau so hatte ich es gemeint !!
Ich werde das noch ein wenig anpassen und dann ist es schon echt super.
Der Link von dir war echt spitze, denn ich suche schon seit stunden eine Hilfestellung wie diese im Internet und fand wirklich nichts dergleichen !
Deine Aussage "die ganzen <script> Sachen brauchst du nicht, da du ein anderen Sketch und andere Befehle hast." verstehe ich leider nicht ganz.
Und deine Frage zu Webserver oder Arduino als Server bin ich mir noch nicht ganz klar was besser wäre und lasse mich gerne beraten.
Ich glaube das es schade wäre ein Ethernet-Shield mit SD-Kartenslot ungenutzt zu lassen, jedoch laufen würde es ja auf beide Arten wie ich das verstanden habe.

Vielen Dank für die Hilfe wiedermal und für die weitere Unterstützung!!!

skorpi080

Die Variante --> Arduino Ethernet -->Webserver -->PHP-Seite mit Button AN und AUS  ----  Ist, wie ich finde nicht elegant
Da musste immer den Arduino an PC hängen und den Sketch ändern etc
Ich hatte mal den Sketch getestet, wo die Daten auf der SD-Karte liegen, war ziemlich langsam. Bis die Daten geladen sind.....

Die Variante --> Browser <--> Webserver (PHP/HTML) <--> Arduino  ----  Besseres gibts nicht :D ausser evtl über Serial
Schau die einfach nochmal dies hier an

Zu der script geschichte....
Code: [Select]
<script>
    $(document).ready(function(){
$('#Arbeitszimmer, #Bad, #Schlafzimmer, #Flur, #Alles AN, #Alles AUS').knopf;
$('#Arbeitszimmer, #Bad, #Schlafzimmer, #Flur, #Alles AN, #Alles AUS').bind('click', function(event, ui) {
jQuery.ajaxSetup({timeout: 110});
var id = $(this).attr('id');
if (id == 'Arbeitszimmer')       $.post('/rgb', { licht: '1' } );
if (id == 'Bad')                 $.post('/rgb', { licht: '2' } );
if (id == 'Schlafzimmer')        $.post('/rgb', { licht: '3' } );
if (id == 'Flur')                $.post('/rgb', { licht: '4' } );
if (id == 'Alles AN')            $.post('/rgb', { licht: '5' } );
if (id == 'Alles AUS')           $.post('/rgb', { licht: '6' } );
});
});
</script>


Wenn du den Sketch von Eisebaer nimmst, wird das evtl funktionieren, da musst du aber den ganzen html code anpassen.
Wenn du den Sketch von dem eben geposteten link nimmst, müss (zwar nicht aber empfohlen) das raus.
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

TobiasR1991

Also nutze ich am Besten den Arduino Mega als Webserver so wie ich das vorher auch getan hatte!?
Zur Ansteuerungsgeschichte bin ich jetzt etwas verwirrt, wenn ich deinen Code den ich angepasst habe nutze geht das doch auch mit dem Ansteuern oder!?

<script>
               $('#flipswitch4').change(function (event) {
               var mySwitch = event.currentTarget;
                var val = mySwitch.value == "on" ? 0 :1 ;
             $.post('sendControl.php?device='+mySwitch.id+'&stat='+mySwitch.value+'&pin='+"9"+'&val='+val, function (response){}); 
               });
Das dürfte doch irgendwie funktionieren, dass dieser Befehl an den Arduino geht!?


Hab nun das Layout so angepasst wie ich es ungefähr gern hätte, lediglich die "flipswitches" muss ich gegen Button's austauschen da ich nur einen einmaligen "Impuls" bzw. Schaltbefehl brauche (Stromstoßrelais).

skorpi080

Und was passiert wenn du den Button drückst?
Welchen Sketch willst du nun nehmen, der von Eisebaer funktioniert in meinem fall nicht.

Ich nutze den Sketch von hier http://forum.arduino.cc/index.php?topic=102817.45
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

TobiasR1991

Wenn ich den Button drücke sendet mir die Webseite dem Arduino den Pin welchen ich schalten möchte, aber nur mit dem EINMALIGEN Schaltbefehl (Button 1x drücken = 1x "0/LOW" Schaltbefehl).
Low wegen dem Sainsmart 16-channel relaismodul, welches ein LOW-Befehl braucht und nur EINMAL den Schaltbefehl, weil ich das jeweilige Relais nur als Taster nutzen möchte, welcher auf ein Stromstoßrelais wirkt.
Der Grund für die Stromstoßrelais ist das ich autark über Taster in der Wohnung direkt die 230V schalten kann und parallel ist es mir möglich über die Webseite+Ethernet-Shield+Arduino+Sainsmart-Relaismodul, ebenso zu schalten.

Zum Thema welchen Sketch ich nehme bin ich gerade wieder mal verwirrt. Welcher Unterschied besteht in euren Sketch's?

skorpi080

Dass mit den Taster in der Wohnung musst du mir mal ausführlich schriftlich geben :D
Habe es noch nicht ganz verstanden wie es mit den Taster abläuft.

Sainsmart 16-channel und ein 8-channel habe ich hier auch liegen, blos da ist (glaub ich) keine Stromstoßrelais. Brauchen die bei dir auch extra 12 Volt?

Sketch von mir, enthält keine html oder php Dateien und da ist es ihm egal welcher Button gedrückt wurde, ob Arbeitszimmer oder WC :D
Arduino bekommt nur die Werte /pin=LOW

Dieser Sketch ist 11kb

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>

// MAC und IP Konfiguration
byte mac[] = {
  0xDE, 0xAD, 0xBC, 0xAF, 0xFE, 0xED };
IPAddress ip(192,168,0, 29);
IPAddress gateway(192,168,0, 252);
IPAddress subnet(255, 255, 255, 0);

// warten auf port 23
EthernetServer server(23);

void setup() {
  //Ethernet initialisieren
  Ethernet.begin(mac, ip, gateway, subnet);
  // Server starten
  server.begin();
  // serielle konsole öffnen (debug)
  Serial.begin(9600);
}

void loop() {

  // auf eine eingehende Verbindung warten
  EthernetClient client = server.available();
  //wenn verbindung, dann 3 bytes lesen;
  if (client) {

    char command =client.read();
    byte pinnumber =client.read();
    byte pinvalue =client.read();
    byte returnvalue = 0;

    //Kommando auswerten
    switch(command) {

    case 'S':
      Serial.print("S Kommando empfangen, setze Pin ");
      Serial.print(pinnumber);
      Serial.print(" auf ");
      Serial.println(pinvalue);
      pinMode(pinnumber,OUTPUT);
      digitalWrite(pinnumber,pinvalue);
      //gesetzten wert auch zurückliefern
      returnvalue=pinvalue;
      break;

    case 'R':
      returnvalue = digitalRead(pinnumber);
      Serial.print("R Kommando empfangen, lese Pin ");
      Serial.print(pinnumber);
      Serial.print(". Wert = ");
      Serial.println(returnvalue);
      break;

    default:
      Serial.println("Fehler, unbekanntes Kommando");   
      break;

    } 
   
    // rückantwort senden (1 byte) die "+48" sorgen dafür das der Wert 0 oder 1 als Zeichen "0" oder "1" übertragen werden.
    //das vereinfacht die verarbeitung in php.
    client.write(returnvalue+48);
   
    //übertragung erzwingen
    client.flush();
   
    //10ms delay damit daten sicher gesendet werden.
    delay(10);
   
    //wichtg! client verbindung beenden
    client.stop();
  }
}


Stell dir vor, du musst Temperatur auslesen, 20 Taster schalten usw, passt der Sketch auf dem UNO drauf?
Allein das RGB Beispiel von Webduino nimmt 16kb ein, für eine LED.

Quote
EINMALIGEN Schaltbefehl (Button 1x drücken = 1x "0/LOW" Schaltbefehl).


Wie soll der Befehl dazu sein? Wie willst du dann sehen ob die Lampe An oder Aus ist? Man kann diesen EINMALIGEN Schaltbefehl auch mit dem Switch machen.
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

TobiasR1991

#28
Aug 18, 2013, 05:52 pm Last Edit: Aug 18, 2013, 05:59 pm by TobiasR1991 Reason: 1
XD also skorpi08 ich versuche es dir zu erklären, alsoooooo.....
Du hast eine ganz "normale" Hausinstallation, aber ohne Schalter sondern Taster.
Diese Taster gehen ja auf Stromstoßrelais im Verteiler oder Unterverteiler.
Durch den EINMALIGEN Schaltimpuls durch den Taster schaltet das Stromstoßrelais bzw. zieht die Spule vom Stromstoßrelais kurz an und schaltet den/die  Schließer/Öffner des Stromstoßrelais.
Über diese Schließer/Öffner werden dann die gewünschten Stromkreise geschaltet z.B. Lichtstromkreis vom Wohnzimmer.

Soweit die "normale" Hausinstallation  XD
Jetzt mache ich nichts anderes als mit dem Sainsmart einen Taster über eines der 16-Relais vorzutäuschen und schalte damit wie ein Taster das Stromstoßrelais.
Für die Rückmeldung nutze ich nur noch einen Schließer des Stromstoßrelais und führe diesen auf einen Digitalen Input des Arduinos und lese ihn aus.
Wenn der Schließer des Stromstoßrelais für das Licht im Wohnzimmer z.B. angezogen hat, dann wird der Arduino 5V an den jeweiligen Digitalen Input bekommen und sagt das das Licht im Wohnzimmer an ist.
Bei mir werde ich beides parallel installieren und bin somit autarkt falls mal was mit der Steuerung ist.
D.h. ich kann entscheiden ob ich per Hand das Licht anschalte oder über Internet und bin somit unabhängig im notfall.

Habe ich es diesmal etwas verständlicher rübergebracht?  XD
Nebenbei bin ich Elektroniker für Automatisierungstechnik und kenne mich unter anderem mit Hausinstallationen gut aus  :)


Der Switch müsste dann aber nach dem Anklicken wieder Angeklickt werden damit er wieder in die Ausgangsstellung geht oder irre ich mich!?
Ansonsten käme doch dauerhaft das "0"-Signal und das Sainsmart schaltet jedesmal oder!?

skorpi080

Soweit ist es mir auch verständlich, ich kann mir aber kein Bild im Kopf machen, deswegen SCHRIFTLICH ausführlich ;)
Fals es dir nicht allzuviel ausmacht, könntest du es ja mal aufs papier bringen.

Also ich gehe davon aus dass das schalten der Website per Smartphone erfolgt, denn sonst ist es sinnfrei :D

Du gibst über die Website den Befehl (Wohnzimmer) LICHT AN. Gehst dann ins Wohnzimmer und machst das LICHT AUS. Was denkst du was auf der Website angezeigt wird, LICHT AN oder LICHT AUS?
Also wie macht man es dass der Arduino den Taster (aus dem Wohnzimmer) erkennt, welchen Befehl der Taster sendet.
Hast du 230V oder 12/24V Taster? Wie kann man die Taster programmieren? Oder garnicht?

Ich müsste demnächst eine EIB Steuerung realisieren  :(
Ich hab ganz normale Schalter im Haus. Wie, welche, wieviele, wohin sollte ich die Kabel verlegen?
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

Go Up