Arduino Ethernet ile MYSQL Haberleşme
  • Merhaba arkadaşlar.
    Ben arduino ethernet ile serverdeki mysql veritabanına veri yazmak istiyorum. Ama bu işi bilgisayarsız yapmak istiyorum.
    Örnek verecek olursam arduino her 10 sn de bir analog değer okuyup mysql deki bir analog tablosunun içine bunları kayıt edecek.
    Bu işlemi yaparken arduino herhangibir bilgisayar ile iletişimde olmayacak.
  • arduino ethernet zaten direk internete bağlanarak veri okumayı yazmayı yapmak için geliştirilmiştir.

    http://arduino.cc/en/Reference/Ethernet

    ethernetclient aşağıdaki gibi basitçe bir web sitesine bağlanabilmekte parametre aktarabilmekte sonucunu alıp değerlendirebilmektedir.

    #include -Ethernet.h-
    #include -SPI.h-


    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    byte ip[] = { 10, 0, 0, 177 };
    byte server[] = { 64, 233, 187, 99 }; // Google

    EthernetClient client;

    void setup()
    {
    Ethernet.begin(mac, ip);
    Serial.begin(9600);

    delay(1000);

    Serial.println("connecting...");

    if (client.connect(server, 80)) {
    Serial.println("connected");
    client.println("GET /search?q=arduino HTTP/1.0");
    client.println();
    } else {
    Serial.println("connection failed");
    }
    }

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

    if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
    ;
    }
    }


    yukarıdaki setup bölümündeki
    client.println("GET /search?q=arduino HTTP/1.0");
    satırını basit bir değişiklikle aşağıdaki gibi değiştirirseniz
    client.println("GET /analog?val1=512 HTTP/1.0");
    web sunucudaki analog sayfasına val1=512 değerini aktarmış/yazmış olursunuz.
    web sunucu kodunu burada göstermiyorum ama özel birşey yapmıyorsunuz sitede normal olarak verileri nasıl mysql e yazıyorsanız değişiklik olmadan devam edin...

    şurada http://arduinoturkiye.com/?s=ethernet arkadaşlarımızın yaptığı ethernet çalışmalarına da göz atın.

    Acaba arduinonuz var mı led yakıp söndürme örneğini yaptınız mı?
    http://arduinoturkiye.com/sifirdan-baslamak/
    http://arduinoturkiye.com/blog-blog-blog-iste-butun-mesele/
    http://arduinoturkiye.com/bilgiyi-kullanma-klavuzu/


  • dediğiniz gibi yaptım. Şu ayarları güncelledim. char server[] = "www.xxxxxx.net"; // şeklinde yaptım. ve client.println("GET /deneme2.php?veri=512 HTTP/1.0"); // dedim. ama olmadı. serialden şöyle bir mesaj alıyorum. connecting... connected HTTP/1.1 404 Not Found Date: Sun, 17 Mar 2013 15:52:42 GMT Server: Apache Last-Modified: Wed, 18 Apr 2012 14:28:12 GMT ETag: "8f2038-3bf-4bdf4dd75d700" Accept-Ranges: bytes Content-Length: 959 Vary: Accept-Encoding Connection: close Content-Type: text/html <HTML> <HEAD> <TITLE>404 Not Found</TITLE> </HEAD> <BODY> <H1>Not Found</H1> The requested document was not found on this server. <P> <HR> <ADDRESS> Web Server at @domain_name@ </ADDRESS> </BODY> </HTML> <!-- - Unfortunately, Microsoft has added a clever new - "feature" to Internet Explorer. If the text of - an error's message is "too small", specifically - less than 512 bytes, Internet Explorer returns - its own error message. You can turn that off, - but it's pretty tricky to find switch called - "smart error messages". That means, of course, - that short error messages are censored by default. - IIS always returns error messages that are long - enough to make Internet Explorer happy. The - workaround is pretty simple: pad the error - message with a big comment like this to push it - over the five hundred and twelve bytes minimum. - Of course, that's exactly what you're reading - right now. --> disconnecting. acaba nerede hata yaptım? adresi tarayıcıya http://xxxxxx.net/deneme2.php?veri=1115 yazarak mysql'e veri gönderebiliyorum. ama arduino ile gerçekleştiremedim.
  • sayfayı bulamıyor deneme2.php yerine direk root dizinden dene parametre geçirme şimdilik. yada direk örneği deneyince ne alıyorsun ?
  • ethernetshiled kütüphanesi dns i çözemiyor olabilir web sitenizin ip adresinden bağlanmayı deneyin ama büyük ihtimal servis sağlayıcınız tek ip den 5bin tane web server host ettiğinden sizin (xxx. ler ip adresiniz) xxx.xxx.xxx.xxx/websitesi/deneme2.php gibi bir url den bağlanma imkanınız olabilir bunu onlara sorun ip den ulaşmak istersek adres nedir diye sorun size söylerler.
  • merhaba,

    ben kayan yazı uygulması yapıyorum. Ethernet Shield kullanılarak verileri çekiyorum ancak ethernet Shield digital çıkışlardaki sinyalleri bozuyor. Karakterler geçmiyor ledler rastgele karışık kaymadan yanıp sönüyor. nasıl çözebilirim bu problemi
  • ethernetten verileri alırken sistem çok yavaşlıyordur yazıları kaydıran rutininde bu geçikmeden dolayı performansı düşüyordur. ethernetten veri çekme işini led matrixi temizlediğin anda yap onun dışında yaptığında yazı kaydırma kalitesi bozulur.

Howdy, Stranger!

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

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