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
  ESP8266 esp-12e development board & BME280 falsche Werte Lurchi 6 237 09.05.2017 00:54
Letzter Beitrag: Lurchi
  Char Werte ausgeben Scotch 5 298 31.03.2017 15:37
Letzter Beitrag: Scotch
  SD-Library pins ändern. möglich? stefan-87 3 419 14.03.2017 11:46
Letzter Beitrag: Tommy56
  RGB Animation über Serial Steuern Medolino 5 261 20.02.2017 16:14
Letzter Beitrag: Medolino
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 426 18.02.2017 08:33
Letzter Beitrag: renid55
  Servo-Ansteuerung über einen Push-Button Aubergine83 1 232 16.02.2017 19:49
Letzter Beitrag: georg01
  LED langsam über 15 Minuten dimmen Kriskind 14 655 09.02.2017 13:26
Letzter Beitrag: Kriskind
  Display über I2-Bus betreiben mfri 22 935 23.01.2017 11:06
Letzter Beitrag: renid55
  Messdatenausgabe auf Webserver über NanoESP RivaDynamite 10 745 10.01.2017 15:49
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 759 09.01.2017 20:12
Letzter Beitrag: Tommy56

Gehe zu:


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