ESP32 එකක් wifi settings save කරගන්න

RadioShack

Junior member
  • Feb 13, 2024
    16
    19
    13
    ESP32 එකක් WiFi settings save කරගන්න හොද ක්‍රමය මොකද්ද? දැනට මම hardcode කරන තියෙන්නේ code එකේ මේ වගේ

    දැනට තියන අවුල තමයි customer ට වෙන router එකකට device එක connect කරන්න ඕන උනාම මට ගිහින් code එකෙන් ssid / password එක අයෙත් build කරන්න වෙන එක.. ඔයාල ලග මේකට හොද ක්‍රමයක් තියනවනම් කියන්න.. ලොකු උදව්වක් :yes:

    C:
    #include <Adafruit_GFX.h>
    #include <Adafruit_ST7735.h>
    #include <SPI.h>
    #include <WiFi.h>
    #include "Handler.h"
    
    #define TFT_RST 4
    #define TFT_DC 2
    #define TFT_CS 5
    
    const char* ssid     = "diaglog-wifi";
    const char* password = "my_password";
    
    WiFiServer server(80);
    Adafruit_ST7735 scr = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
    Handler handler;
    
    void setup()
    {
        Serial.begin(115200);
    
        scr.initR(INITR_GREENTAB);
        scr.fillScreen(ST77XX_BLACK);
        scr.setRotation(1);
        scr.setTextWrap(false);
    
        scr.setTextSize(1);
        scr.setCursor(0, 0);
        scr.println("Init...");
    
        delay(10);
    
        Serial.println();
        Serial.println();
        Serial.print("Connecting to ");
        Serial.println(ssid);
    
        WiFi.begin(ssid, password);
    
        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }
    
        Serial.println("");
        Serial.println("WiFi connected.");
        scr.println("WiFi connected.");
        Serial.println("IP address: ");
        scr.println("IP address: ");
        Serial.println(WiFi.localIP());
        scr.println(WiFi.localIP());
        
        server.begin();
    
    }
    
    void loop(){
     WiFiClient client = server.available();  
    
      if (client) {                            
        Serial.println("New Client.");           
        String currentLine = "";                
        while (client.connected()) {           
          if (client.available()) {            
            char c = client.read();          
            if (c == '\n') {             
    
              if (currentLine.length() == 0) {
                handler.displayPage(client);
                break;
              } else {  
                currentLine = "";
              }
            } else if (c != '\r') { 
              currentLine += c; 
            }
          }
        }
        if (currentLine.length() >0 ){
        handler.processRequest(currentLine);
        }
        
        client.stop();
        Serial.println("Client Disconnected.");
      }
    }
     

    66000V

    Well-known member
  • Jan 6, 2013
    2,254
    1,220
    113
    ESP32 එකක් WiFi settings save කරගන්න හොද ක්‍රමය මොකද්ද? දැනට මම hardcode කරන තියෙන්නේ code එකේ මේ වගේ

    දැනට තියන අවුල තමයි customer ට වෙන router එකකට device එක connect කරන්න ඕන උනාම මට ගිහින් code එකෙන් ssid / password එක අයෙත් build කරන්න වෙන එක.. ඔයාල ලග මේකට හොද ක්‍රමයක් තියනවනම් කියන්න.. ලොකු උදව්වක් :yes:

    C:
    #include <Adafruit_GFX.h>
    #include <Adafruit_ST7735.h>
    #include <SPI.h>
    #include <WiFi.h>
    #include "Handler.h"
    
    #define TFT_RST 4
    #define TFT_DC 2
    #define TFT_CS 5
    
    const char* ssid     = "diaglog-wifi";
    const char* password = "my_password";
    
    WiFiServer server(80);
    Adafruit_ST7735 scr = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
    Handler handler;
    
    void setup()
    {
        Serial.begin(115200);
    
        scr.initR(INITR_GREENTAB);
        scr.fillScreen(ST77XX_BLACK);
        scr.setRotation(1);
        scr.setTextWrap(false);
    
        scr.setTextSize(1);
        scr.setCursor(0, 0);
        scr.println("Init...");
    
        delay(10);
    
        Serial.println();
        Serial.println();
        Serial.print("Connecting to ");
        Serial.println(ssid);
    
        WiFi.begin(ssid, password);
    
        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }
    
        Serial.println("");
        Serial.println("WiFi connected.");
        scr.println("WiFi connected.");
        Serial.println("IP address: ");
        scr.println("IP address: ");
        Serial.println(WiFi.localIP());
        scr.println(WiFi.localIP());
       
        server.begin();
    
    }
    
    void loop(){
     WiFiClient client = server.available(); 
    
      if (client) {                           
        Serial.println("New Client.");          
        String currentLine = "";               
        while (client.connected()) {          
          if (client.available()) {           
            char c = client.read();         
            if (c == '\n') {            
    
              if (currentLine.length() == 0) {
                handler.displayPage(client);
                break;
              } else { 
                currentLine = "";
              }
            } else if (c != '\r') {
              currentLine += c;
            }
          }
        }
        if (currentLine.length() >0 ){
        handler.processRequest(currentLine);
        }
       
        client.stop();
        Serial.println("Client Disconnected.");
      }
    }
    Try this
     

    RadioShack

    Junior member
  • Feb 13, 2024
    16
    19
    13


    Use wifi manager !



    තැන්ක්ස් ඔයාලට.. දැන් මට පොඩි අදහසක් තියනවා.. පොඩි අවුලකට තියෙන්නේ මේ දෙකම ESP8266 එකට දාපුව.. EEPROM එකක් ESP32 එකෙත් තියනවා කියල මම documents වල දැක්ක නිසා මේ මම try එකක් දීල බලන්නම්
     

    hasithayad

    Well-known member
  • Sep 28, 2011
    30,793
    1
    45,000
    113
    ESP32 එකක් WiFi settings save කරගන්න හොද ක්‍රමය මොකද්ද? දැනට මම hardcode කරන තියෙන්නේ code එකේ මේ වගේ

    දැනට තියන අවුල තමයි customer ට වෙන router එකකට device එක connect කරන්න ඕන උනාම මට ගිහින් code එකෙන් ssid / password එක අයෙත් build කරන්න වෙන එක.. ඔයාල ලග මේකට හොද ක්‍රමයක් තියනවනම් කියන්න.. ලොකු උදව්වක් :yes:

    C:
    #include <Adafruit_GFX.h>
    #include <Adafruit_ST7735.h>
    #include <SPI.h>
    #include <WiFi.h>
    #include "Handler.h"
    
    #define TFT_RST 4
    #define TFT_DC 2
    #define TFT_CS 5
    
    const char* ssid     = "diaglog-wifi";
    const char* password = "my_password";
    
    WiFiServer server(80);
    Adafruit_ST7735 scr = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
    Handler handler;
    
    void setup()
    {
        Serial.begin(115200);
    
        scr.initR(INITR_GREENTAB);
        scr.fillScreen(ST77XX_BLACK);
        scr.setRotation(1);
        scr.setTextWrap(false);
    
        scr.setTextSize(1);
        scr.setCursor(0, 0);
        scr.println("Init...");
    
        delay(10);
    
        Serial.println();
        Serial.println();
        Serial.print("Connecting to ");
        Serial.println(ssid);
    
        WiFi.begin(ssid, password);
    
        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }
    
        Serial.println("");
        Serial.println("WiFi connected.");
        scr.println("WiFi connected.");
        Serial.println("IP address: ");
        scr.println("IP address: ");
        Serial.println(WiFi.localIP());
        scr.println(WiFi.localIP());
      
        server.begin();
    
    }
    
    void loop(){
     WiFiClient client = server.available();
    
      if (client) {                          
        Serial.println("New Client.");         
        String currentLine = "";              
        while (client.connected()) {         
          if (client.available()) {          
            char c = client.read();        
            if (c == '\n') {           
    
              if (currentLine.length() == 0) {
                handler.displayPage(client);
                break;
              } else {
                currentLine = "";
              }
            } else if (c != '\r') {
              currentLine += c;
            }
          }
        }
        if (currentLine.length() >0 ){
        handler.processRequest(currentLine);
        }
      
        client.stop();
        Serial.println("Client Disconnected.");
      }
    }
    හොඳම වැඩේ අර led display panel වල තියනව වගේ microSD card reader එකක් සෙට් කරලා, ඒකෙන් settings read කරන්න හදාගන්න. EEPROM එක blank නම් settings read කරනකල් වැඩ කරන්නෙ නැහැ. microSD card එක ගහපු ගමන් ඒකෙ තියන ෆයිල් එකක් රීඩ් කරලා EEPROM එකේ සේව් කරගන්නව.

    images
     

    RadioShack

    Junior member
  • Feb 13, 2024
    16
    19
    13
    හොඳම වැඩේ අර led display panel වල තියනව වගේ microSD card reader එකක් සෙට් කරලා, ඒකෙන් settings read කරන්න හදාගන්න. EEPROM එක blank නම් settings read කරනකල් වැඩ කරන්නෙ නැහැ. microSD card එක ගහපු ගමන් ඒකෙ තියන ෆයිල් එකක් රීඩ් කරලා EEPROM එකේ සේව් කරගන්නව.

    images
    sdcard module ekak try karanna. memory chip eke text file ekaka ssid password save karanna.

    තැන්ක්ස් idea එකට. දැනට මගේ ලග SD card reader module එකක් නෑ.. අරගෙන try කරලා බලන්නම්


    RC522 rfid reader eken data txtbox ekakata load karanna dannawada ?

    Untitled.jpeg


    මේ වගේ module එකකින්ද read කරන්නේ මචන් ?
     
    • Like
    Reactions: lilman

    RadioShack

    Junior member
  • Feb 13, 2024
    16
    19
    13

    අපේ company එකේ code base එකේ තියනවා SunFounder MFRC522 RFID Card Reader කියල module එකක් use කරල තියන code එකක්..

    එකේ මේ library එක පාවිච්චි කරලා තියෙන්නේ https://github.com/sunfounder/sunfounder_vincent_kit_for_arduino/blob/master/library/RFID1.zip

    එකේ sample code එකක් තිබ්බ.. වැඩ කරනවද කියලනම් දන්නෑ

    C:
    #include"rfid1.h"
    
    #define RST_PIN 4
    #define SDA_PIN 2
    #define MOSI_PIN 23
    #define MISO_PIN 19 
    #define SCK_PIN 18 
    #define CS_PIN 5 
    
    
    RFID1 rfid; //create a variable type of RFID1
    
    void setup()
    {
      Serial.begin(9600); //initialize the serial
      rfid.begin(CS_PIN,SCK_PIN,MOSI_PIN,MISO_PIN,SDA_PIN,RST_PIN)
      delay(100);//delay 1 second
      rfid.init(); //initialize the RFID
    }
    void loop()
    {
      uchar status;
      uchar str[MAX_LEN]; //The maximum length of the array is 16
    
      // Search card, return card types
      status = rfid.request(PICC_REQIDL, str);
      if (status != MI_OK)
      {
        return;
      }
      Serial.print("Card type: ");
      Serial.println(rfid.readCardType(str));
    
      //Prevent conflict, return the 4 bytes Serial number of the card
      status = rfid.anticoll(str);
      if (status == MI_OK)
      {
        Serial.print("The card's number is: ");
        int IDlen=4;
        for(int i=0; i<IDlen; i++){
            Serial.print(str[i],HEX);
        }
        Serial.println();
        Serial.println();
      }
     
      delay(500);
      rfid.halt(); //command the card into sleep mode
    }
     

    pasindu201

    Well-known member
  • Dec 25, 2017
    1,738
    1,524
    113
    wifi walinma update karanna hadanna,podi pahe ekak hadanna log wela password wenas karanna,ehema kqrama eka save kragena ayeth connect karanna puluwanne.