arduino get data from asp
  • String toGet = "GET /arduino.asp?sicaklik=33 HTTP/1.0";
    komut satırında problem yok ve sıcaklık değişkenimize 33 değerini post etmektedir. ancak sıcaklık değişkenimize sabit değer yerine ısı sensöründen okunan değeri yazdırmaya çalışıyorum olmuyor,
  • sabit yollayınca oluyor ama sicaklik yerine koydugun değer gitmiyor oylemi. yolladığın veride sicaklik=40 yerine sicaklik=[bosluk]40 giderse olmayabilir. yollamadan once serial monitorden değeri bir bas gör doğrumu gidiyor
  • yani aslında öğrenmek istediğim,
    String toGet = "GET /arduino.asp?sicaklik=33 HTTP/1.0";
    33 yazan yerde değişken nasıl kullanabilirim.
  • String sensondata="1";
    String toGet = "GET /arduino.asp?sicaklik="+sensordata+" HTTP/1.0";
  • program kodları aşağıdakigibidir, string toGet satırında "invalid operator" hatısı veriyor.



    #include
    #include

    void setup()
    {

    }





    void loop()
    {
    float sensordata; //Analog değeri dönüştüreceğimiz sıcaklık
    float olculendeger; //Ölçeceğimiz analog değer
    int sicaklikpin=1; //Analog değer girişi


    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    IPAddress server(192,168,1,44);
    //char serverName[] = "192,168,1,44";
    IPAddress ip(192,168,1,238);
    IPAddress gateway(192,168,1,1);
    IPAddress subnet(255,255,255,0);

    EthernetClient client;

    Ethernet.begin(mac, ip);
    Serial.begin(9600);

    // Sıcaklık Ölçümü
    olculendeger = analogRead(sicaklikpin); //A1'den değeri alacak
    olculendeger = (olculendeger/1023)*5000;//değeri mV'a dönüştürecek
    sensordata = olculendeger /10,0; // mV'u sicakliğa dönüştürecek
    Serial.print("Sicaklik : ");
    Serial.print (sensordata);
    Serial.println (" derece");
    delay (5000); //1sn aralıklarla yapacak


    //delay(1000);

    if (client.connect(server, 4268)) {

    Serial.print(millis());
    Serial.print(":");
    Serial.print("Connected to ");
    Serial.println(server);
    Serial.println("Making HTTP request...");
    //construct HTTP GET request to app engine:

    //String toGet = "GET /arduino.asp?sicaklik='"&isi&"' HTTP/1.0";
    String toGet = "GET /arduino.asp?sicaklik="+sensordata+" HTTP/1.0";

    //Make the request
    client.println(toGet);
    //Pass a host header as well
    client.print("HOST: ");
    client.println (server);
    client.println();
    Serial.print(millis());
    Serial.print(":");
    Serial.println("HTTP request completed.");


    }else {
    Serial.println("connection failed");
    }

    if (client.available()) {
    char c = client.read();
    Serial.print(c);


    }
    }



  • String data= String(sensordata);
    String toGet = "GET /arduino.asp?sicaklik="+data+" HTTP/1.0";
  • sensordata değişkeninin tipini float değilde int yaptığım zaman string() fonksiyonu çalıştı, değerleri ondalık alamıyorum ama yinede arduino.asp dosyasına sicaklık parametresini gönderebildim. çok teşekkür ederim sizlere @kurdmem ve @okoman
  • float da "." değeri gittiği için tcp protokolü şaşırıyor bilgi olsun diye diyorum tcp de "." ve boşluk " " yerine göre çok değişik anlamları vardır bunlardan uzak durun yada yollamadan filtre edin. 3.22 diye bir bilgi yollayacağına bunu 100 le çarpıp 322 diye yollayın daha güzel olur.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.