Advertisement
RuiViana

CodeRCB

Jan 30th, 2017
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.17 KB | None | 0 0
  1. #include <EEPROM.h>
  2. #include <WiFiClient.h>
  3. #include <ESP8266WiFi.h>
  4. #include <ESP8266WiFiMulti.h>
  5.  
  6. ESP8266WiFiMulti WiFiMulti;
  7.  
  8. //String cofig[4];
  9. char cofig[4];
  10. char a;
  11. const char * rede;
  12. const char * minhaSenha;
  13. int pos=0;
  14. int x, b, c ;
  15. boolean y, z ;
  16. String qsid;
  17. String esid;
  18. String ssid, senha, ip, porta;
  19. String ssiD, senhA, iP, portA;
  20. boolean t=0;
  21. char thisChar;
  22. byte Flag =0;
  23. String MySSID = "";
  24. String MyPW = "";
  25. const char* port;
  26. const char* host;
  27.  
  28.  
  29. void APmode()
  30. {
  31.    if(digitalRead(D1) == 0)
  32.      {
  33.         const char *ssid = "IOTechConfig";
  34.         String dados;
  35.         int status = WL_IDLE_STATUS;
  36.         boolean alreadyConnected = false;
  37.         WiFiServer server(23);
  38.         WiFiClient client;
  39.         delay(1000);
  40.         Serial.begin(115200);
  41.         Serial.println();
  42.         Serial.print("Configuring access point...");
  43.         WiFi.softAP(ssid);
  44.         delay(5000);
  45.         IPAddress myIP = WiFi.softAPIP();
  46.         Serial.print("AP IP address: ");
  47.         Serial.println(myIP);
  48.         Serial.println("\nStarting server...");
  49.         // start the server:
  50.        server.begin();
  51.        while(true)
  52.              {
  53.                if (!client)
  54.                  {
  55.                    client = server.available();
  56.                  }else
  57.                      {
  58.                         if (client.status() == CLOSED)
  59.                            {  
  60.                               client.stop();
  61.                               Serial.println("connection closed !");
  62.                            }
  63.                         if (!alreadyConnected) // when the client sends the first byte, say hello:
  64.                            {
  65.                              client.flush();
  66.                              Serial.println("We have a new client");
  67.                              client.println("Hello, client!");
  68.                              alreadyConnected = true;
  69.                            }
  70.                       if(client.available() > 0)
  71.                            {
  72.                              if(pos == 0)
  73.                                {
  74.                                   thisChar = client.read();
  75.                                   if(thisChar != '\n')
  76.                                      {
  77.                                        qsid+=thisChar;
  78.                                      }else
  79.                                          {
  80.                                           int charLength=qsid.length();
  81.                                            Serial.println("writing eeprom ssid:");
  82.                                            for (int i = 0; i < qsid.length(); ++i)
  83.                                                 {
  84.                                                   EEPROM.write(i, qsid[i]);
  85.                                                   Serial.print("Wrote: ");
  86.                                                   Serial.println(qsid[i]);
  87.                                                   int qtdChar=qsid.length();
  88.                                                   EEPROM.write(100,qtdChar);
  89.                                                   delay(10);
  90.                                                 }
  91.                                                
  92.                                                
  93.                                                 Serial.println(EEPROM.read(100));
  94.                                                 delay(10);
  95.                                                 EEPROM.commit();
  96.                                          }              
  97.                            }
  98.                      }
  99.  
  100.      }
  101.   }
  102.  
  103.  
  104.  
  105.    }
  106. }
  107.  
  108. void dadosConfig()
  109. {
  110.   if(z ==0)
  111.      {
  112.        for (int i = 0; i<EEPROM.read(100); ++i)
  113.            {
  114.              if (EEPROM.read(i) == '£')
  115.              Flag = 1;
  116.              if (Flag == 0)
  117.              {
  118.                 MySSID += char(EEPROM.read(i));
  119.                  Serial.println(MySSID);
  120.              }
  121.              if (Flag ==1)
  122.              {
  123.                 MyPW += char(EEPROM.read(i));
  124.                  Serial.println(MyPW);
  125.              }
  126.              Serial.println(esid);
  127.              Serial.println(i);
  128.              //Serial.println("Passou por aqui");
  129.              delay(10);
  130.            }
  131.        z=1;
  132.      }  
  133.   while(y == 0)
  134.        {
  135.           a=esid.charAt(x);
  136.           if(a != '£')
  137.             {
  138.               cofig[b]+=a;
  139.             }else{
  140.                    b++;
  141.                  }
  142.          x++;
  143.          if(b == 4)
  144.             {
  145.               Serial.println(cofig[0]);
  146.               Serial.println(cofig[1]);
  147.               Serial.println(cofig[2]);
  148.               Serial.println(cofig[3]);
  149.                y=1;
  150.               //  cofig[0].toCharArray(rede,16);
  151.               //   cofig[1].toCharArray(minhaSenha,16);
  152.             }
  153.        }  
  154. }    
  155.      
  156.  
  157. void setup() {
  158.     pinMode(D1, INPUT_PULLUP);
  159.     Serial.begin(115200);
  160.     delay(10);
  161.     APmode();
  162.     dadosConfig();
  163.  
  164.     // We start by connecting to a WiFi network
  165.     WiFiMulti.addAP(rede, minhaSenha);
  166.  
  167.     Serial.println();
  168.     Serial.println();
  169.     Serial.print("Wait for WiFi... ");
  170.  
  171.     while(WiFiMulti.run() != WL_CONNECTED) {
  172.         Serial.print(".");
  173.         delay(500);
  174.     }
  175.  
  176.     Serial.println("");
  177.     Serial.println("WiFi connected");
  178.     Serial.println("IP address: ");
  179.     Serial.println(WiFi.localIP());
  180.  
  181.     delay(500);
  182. }
  183.  
  184.  
  185. void loop() {
  186.     port = MySSID;
  187.     host = MyPW;
  188.    
  189.     //cofig[2].toCharArray(host,16); // ip or dns
  190.     if(digitalRead(D1) == 0)
  191.        {
  192.          
  193.     Serial.print("connecting to ");
  194.  //   Serial.println(host);
  195.  
  196.     // Use WiFiClient class to create TCP connections
  197.     WiFiClient client;
  198.  
  199.      if (!client.connect(host, port)) {
  200.         Serial.println("connection failed");
  201.         Serial.println("wait 5 sec...");
  202.         delay(5000);
  203.         return;
  204.     }
  205.  
  206.     // This will send the request to the server
  207.     client.print("rele1");
  208.  
  209.     //read back one line from server
  210.     String line = client.readStringUntil('\r');
  211.     client.println(line);
  212.  
  213.     Serial.println("closing connection");
  214.     client.stop();
  215.    
  216.     Serial.println("wait 5 sec...");
  217.     delay(5000);
  218.        }
  219.    
  220.    
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement