INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Über PHP Werte ändern
14.05.2014, 11:44
Beitrag #9
RE: Über PHP Werte ändern
Hallo Thorsten,

genau an sowas habe ich auch schon gedacht. Halt nur der Aspekt zum PHP Programmieren fehlt.


Nur zur Information, die Auswertung und alle Einstellungen laufen über einen Raspberry (als Server) , also Daten speichern und über PHP halt ändern.

Als Beispiel: Arduino ließt Temperaturwerte ein und gibt diese dem Raspberry,
Raspberry speichert die Daten und gibt dem Arduino einen SOLL Wert mit.
Arduino vergleich IST und SOLL und führt darauf verschiedene Handlungen aus.

Werde nachher mal den Code einspielen, schon mal vielen Dank für die Hilfe. Manchmal brauch man nur einen Denk-Anstoß.


Mit freundlichen Grüßen

Robin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 19:44
Beitrag #10
RE: Über PHP Werte ändern
Code:
while(finder.findUntil("var", "\n\r"))       {      
    int  num = finder.getValue();    
    int  val = finder.getValue();      
    switch num {
        case 1:
           VAR1 = val;
           break;
       case 2:
           VAR2 = val;
           break;
// Default.........
   }
}

Wenn ich dies in meinem Sketch einpflege bekomme ich Fehlermeldungen wie:

Code:
In function 'void serveranbindung()':
error: 'finder' was not declared in this scope
error: expected `(' before 'num'
error: case label not within a switch statement
error: 'returnvalue' was not declared in this scope
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 19:46
Beitrag #11
RE: Über PHP Werte ändern
Hi,
ich bin davon ausgegangen, dass Dein Coding so aussieht, wie in dem einen Link. Stell' doch mal Dein Coding hier rein, dann kann man Dir vielleicht helfen.
100% stimmt mein Coding wahrscheinlich sowieso nicht...
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 20:58
Beitrag #12
RE: Über PHP Werte ändern
Hallo Thorsten,

also den Link hatte der andere Kollege gepostet. Ich speichere meine Homepage und alle Daten auf einem Raspberry.

Hier mein Code zum testen:

Code:
#include <SPI.h>
#include <Ethernet.h>


EthernetServer server(80);

byte mac[] = { 0x00, 0x00, *************** };
byte ip[] = { 192, 168, ***, *** };
byte gateway[] = { 192, 168, ***, *** };
byte subnet[] = { 255, 255, 255, 0 };
byte serverip[] = { 192, 168, ***, ***};


int VAR1 = 0;
int LED = 9;


void setup ()
{
   pinMode (LED, OUTPUT);
  
   Serial.begin(9600);
   Serial.flush();
  
   Ethernet.begin(mac, ip);
  
   delay(1000);
}


void loop ()
{
   Serial.println(VAR1);
   delay(1000);
   if (VAR1 == 5)
   {
     digitalWrite(LED, HIGH);
   }
  
   if (VAR1 == 9)
   {
   digitalWrite(LED, LOW);
   }

   serveranbindung();
}


void serveranbindung()
{
EthernetClient client = server.available();

   if(client)
   {
      {
       char typ = client.read();
       int  var = client.read();
       int  val = client.read();

        if(typ == 'D')
       {
         digitalWrite(var, val);
         Serial.print(" - D"+String(var));
       }

       else if(typ == 'A')
       {
         analogWrite(var, val);
         Serial.print(" - A"+String(var));
       }

       else Serial.print(" - Falscher Typ");

       if(val==1) Serial.println(" ein"); else Serial.println(" aus");
     }
   }
  }

Von der Seite (http://fluuux.de/2012/11/daten-senden-un...zogerung/) habe ich das mit den Pins setzen übernommen und das funktioniert auch.

Vllt. sollte ich nochmal von vorne anfangen, habe auch schon an eine Variablen Deklaration via SQL gedacht, dass diese dann an den Arduino übermittelt werden...


Thorsten, erstmal vielen Dank an dich, dass du so hilfsbereit bist!
Schönen Abend noch.

Mit freundlichen Grüßen

Robin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 22:42
Beitrag #13
RE: Über PHP Werte ändern
Naja, das client.read() liest halt immer nur einzelne Bytes. Das ist ein bisschen zufällig, dass das funktioniert. Experimentiere mal etwas mit verschiedenen URLs rum und schreibe coding, dass die Dir in Teile zerlegt und in Zahlen wandelt. (Das ganze auf Serial ausgeben...)

Ich mache das z.B. so:
Code:
void handleNetwork(){
  // listen for incoming clients
  EthernetClient client = server.available();
  if(!client) return;

#if defined(DEBUGMODE)      
  Serial.println("new network client");
#endif    

  // an http request ends with a blank line
  boolean currentLineIsBlank = true;
  char firstLine[50] = "";
  int index = 0;
  while (client.connected()) {
    if (client.available()) {
      char c = client.read();
#if defined(DEBUGMODE)  
      Serial.write(c);
#endif        
      // completely ignore /r
      if (c == '\r') continue;
      // If it isn't a new line, add the character to the buffer
      if (c != '\n') {
        currentLineIsBlank = false;
        if(index >= 0 && index < 49){
          firstLine[index] = c;
          index++;
          firstLine[index] = 0;
        }  
        // continue to read more data!
        continue;
      }
      // if you've gotten to the end of the line (received a newline
      // character) and the line is blank, the http request has ended,
      if (currentLineIsBlank) {
        // extract command
        char* command = 0;
        if(strlen(firstLine) <= 5){
          firstLine[0] = 0;
          command = firstLine;
        }
        else{
          command = firstLine + 5;
          int i = 0;
          for(; command[i] != 0 && command[i] != ' '; i++);
          command[i] = 0;
        };      
#if defined(DEBUGMODE)  
        Serial.println(command);
#endif  
        sendResponse(&client, &String(command));
        break;
      }
      // you're starting a new line and curtent line is not blank
      index = -1;
      currentLineIsBlank = true;
    }
  }
  // give the web browser time to receive the data (?)
  delay(10);
  // close the connection:
  client.stop();
#if defined(DEBUGMODE)
  Serial.println("client disonnected");
#endif  

};

Das extrahiert mir den command-String (also das nach dem "/" hinter der URL). Das kann man dann weiterverarbeiten. (In meinem Fall mit der Funktion sendResponse.) Wenn man die String-Klasse nutzt, dann geht das recht komfortabel, z.B.:
Code:
if(command->indexOf("set") == 2)
...bedeutet dass das Kommando so aussieht: xxset.... (mit xx = irgendwas).
oder
Code:
if(command->substring(5,8) == "tmp")
Bedeutet, dass "tmp" an den Stellen 5,6,7 steht.

Code:
int value = command->substring(8).toInt();
Das kannst Du jetzt vielleicht selbst erraten.

Damit müsstest Du jetzt sowas wie
<URL>/setVAR1=25
parsen können.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2014, 08:53
Beitrag #14
RE: Über PHP Werte ändern
Hallo Thorsten,

werde es heute Abend mal ausprobieren. Eher schaffe ich es leider nicht. Schonmal Danke, aber leider stehe ich immer noch etwas auf dem Schlauch, hast du evtl. Lektüre dafür, die du empfehlen kannst? Möchte das auch verstehen, was dahinter steckt.


Mit freundlichen Grüßen

Robin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2014, 09:21
Beitrag #15
RE: Über PHP Werte ändern
Hi,
Lektüre? Ich benutze immer google und lese dann, was ich finde. Mit der Zeit lernt man, wo was vernünftiges steht.
Ansonsten glaube ich, dass Du Deine Herangehensweise ein klein wenig ändern solltest:
1. Mach kleinere Schritte. Wenn irgendwas nicht funktioniert, wie Du Dir das vorstellst, dann lass so lange Sachen weg, bis das Programm etwas macht, was Du verstehst.
2. Baue viele Serial.print(...) ein, damit Du immer siehst, was das Ding gerade treibt. Wenn Du Dir 100% sicher bist, dass es klar ist, dann baue sie wieder aus.
3. Bevor Du den nächsten kleinen Schritt angehst, versuche Dein bisheriges Programm vollständig zu verstehen. Gib Dich niemals damit zufrieden, dass Dein Programm funktioniert.
4. Habe Geduld. Software-Entwicklung ist nur etwas für Leute mit hoher Frustrationstoleranz.
5. Wenn Du 1 bis 4 beachtet hast und trotzdem nicht weiterkommst, dann frag' im Forum. Versuche Deine Fragen so spezifisch wie möglich und zu einem so kleinen Teilthema wie möglich zu stellen.
HTH...
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2014, 11:07
Beitrag #16
RE: Über PHP Werte ändern
Hallo Thorsten,

also kleine Schritte mache ich ja, habe mir nur gedacht, dass es wahrscheinlicher simpler ist, als es aussieht. Also die Netzwerkgeschichte.

Serial.print habe ich in meine Hauptprojekte immer mit drinnen, alleine um Fehlerquellen zu suchen. (Programmabläufe anzeigen etc.)

Werde erstmal die Beispiele von Arduino.cc durchgehen und wahrscheinlich dann hier erneut Fragen stellen.

Mit dem Programm verstehen - ist auch in meinem Interesse, ich möchte Niemands-Gedanken stellen. Nur manchmal brauch man einen Denkanstoß, damit es weiter geht.

Trotzdem vielen Dank und ich werde definitiv die Tage versuchen, alle Informationen umzusetzen.


Mit freundlichen Grüßen

Robin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Richtungsblinker und Warnblinker über jeweils einen Schalter Crazydiver 25 1.203 04.10.2017 12:47
Letzter Beitrag: hotsystems
  Kommunikation über das WiFi-Shield Flap 13 1.553 12.09.2017 22:12
Letzter Beitrag: Flap
  Countdown - Werte ändern am Touchscreen ElAleMaNo 2 422 04.07.2017 18:43
Letzter Beitrag: Tommy56
  Motor Steuerung durch Sensoren Werte Zerebrator 14 955 12.06.2017 14:36
Letzter Beitrag: Franz54
  Arduino Sensor zeigt falsche Werte an Sandro2504 4 512 04.06.2017 09:03
Letzter Beitrag: hotsystems
  Sketch ändern für ACS712 Sandro2504 3 363 04.06.2017 05:55
Letzter Beitrag: Bitklopfer
  Char Werte ausgeben Scotch 5 720 31.03.2017 15:37
Letzter Beitrag: Scotch
  SD-Library pins ändern. möglich? stefan-87 3 675 14.03.2017 11:46
Letzter Beitrag: Tommy56
  RGB Animation über Serial Steuern Medolino 5 770 20.02.2017 16:14
Letzter Beitrag: Medolino
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 827 18.02.2017 08:33
Letzter Beitrag: renid55

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste