ESP8266 ile WebSayfasından Veri Çekmek
  • Merhabalar ben Arduino nano ile Esp8266'yı AP modu ile başlatarak websayfasındaki input box'a kullanıcı tarafından girilen ağ adı ve şifresini çekip modülü STA modunda çalıştırmak istiyorum. Ağ adını ve şifreyi çekmek için substring() diye bir kod buldum ve bunu kullandım fakat çektiğim veriler hep yanlış geliyor. ağ adını nihanarslan girildiyse nihoarslan gibi veya başka bir şekilde çekebiliyor keza şifre de aynı kimi zaman girilen şifrenin bir kısmını alıyor kimi zaman tüm karakterleri alıyor fakat bir kaçı yanlış geliyor. Ne yapmam gerektiğini bilemedim çok uzun zamandır uğraşıyorum ama hala bi gelişme yok. Modülün eksikliğinden mi yazdığım kodların eksikliğinden mi bilemiyorum yardımcı olabilirseniz sevinirim. Kullandığım kod aşağıdaki şekilde bu kodda sadece AP modunu kullanarak websayfasından girilen ağ adı ve şifresini çekmeye çalışıyorum..


    #include "String.h"
    #include "uartWIFI.h"

    #define SSID "esp_mod_01"
    #define PASSWORD "esp_sifre_01"

    String ssid;
    String pass;
    String readString;
    String Getdata;

    WIFI wifi;
    extern int chlID;
    int webtype;


    void setup(){
    wifi.begin();

    DebugSerial.println("AP modu aciliyor");
    setupAP();

    }


    void setupAP(){
    bool b = wifi.Initialize(AP, SSID, PASSWORD, 3 ,0);
    if(!b){
    DebugSerial.println("Init error");
    }
    else{
    DebugSerial.println("Init OK!");
    }

    delay(3000);

    String ipstring = wifi.showIP();
    DebugSerial.println(ipstring);

    wifi.confMux(1);

    bool c = wifi.confServer(1,80);
    if(!c){
    DebugSerial.println("SERVER error!");
    }
    else{
    DebugSerial.println("SERVER OK!");
    webtype = 1;
    }
    }


    void loop()
    {
    if (webtype == 1){
    setupAPmode();
    }


    }


    void setupAPmode(){

    if(_cell.find("+IPD")){

    delay(1000);
    String cmd;
    cmd = "HTTP/1.1 200 OK\r\n";
    cmd += "Content-Type: text/html\r\n";
    cmd += "Connection: close\r\n";
    cmd += "\r\n";
    cmd += "<!DOCTYPE HTML>\r\n";
    cmd += "html\r\n";
    cmd += "form method=get>";
    cmd += "label>SSID
    ";
    cmd += "input type='text' name='ssid' maxlength='30' size='15'>
    ";
    cmd += "label>Password
    ";
    cmd += "input type='password' name='password' maxlength='30' size='15'>

    ";
    cmd += "input type='submit' value='connect' >";
    cmd += "/form>";
    cmd += "html\r\n";

    wifi.Send(chlID,cmd);
    wifi.closeMux(chlID);

    if(_cell.available()){

    Getdata = _cell.readString();

    int _referans = Getdata.indexOf("ssid");
    int _ssid_num = Getdata.indexOf('=',_referans+1);
    int _belirleyici = Getdata.indexOf('&');
    int _pass_num = Getdata.indexOf('=',_belirleyici+1);
    int _belirleyici2= Getdata.indexOf(' ',_pass_num+1);


    String _ssid = Getdata.substring(_ssid_num+1,_belirleyici);
    Serial.print("ssid = ");
    Serial.println(_ssid);
    String _pass = Getdata.substring(_pass_num+1, _belirleyici2);
    Serial.print("pass = ");
    Serial.println(_pass);
    if(_ssid.length()>5 && _pass.length()>5)
    webtype=0;
    }
    }
    }



    Not: html kodlarını siteye kopyaladığımda görülmüyor bu yüzden açma kapama (< >) parantezlerinin bir kısmını sildim umarım anlaşılabilir :)

Howdy, Stranger!

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

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