แนะนำ lib ที่ดึงค่าจาก Sql ที่ select ใน arduino

ประเด็นคือให้เช็คก่อนว่า บนหน้าเบราเซอร์เราเข้า my SQL เราได้ไหม ถ้าเข้าได้ปกติ บอร์ดเราก็สามารถเข้าถึงได้เช่นกัน ถ้าไม่ได้เราก็มาแก้ไขตรงนี้ก่อน

ลอง connect ได้นะครับ

1 Likes

ลองใส่เป็น 127.0.0.1 หน่อยได้ไหม

127.0.0.1 ก็ได้ปกติครับ

ดูที่ xampp เราหน่อยว่า MySQL มันใช้ port อะไรอยู่

apache 80,443
MySQL 3306 ครับ มาตรฐานเลย

1 Likes

หาทางแก้ต่อยังไงดีครับ

ผมว่าน่าจะเกี่ยวข้องกับตรงนี้แหละครับ กำลังคิดอยู่ อืมมม ผมอาจจะต้องลองช่วยเทสอีกแรงนึง

ขอบคุณครับ ขอเเค่เป็นไกด์กับตัวอย่างให้ผมก็พอฮะ

ผมว่าเบิ้องต้นเราลองระบุข้อมูลในนั้นเลยแล้ว ดึวแบบระบุค่านั้นออกมาเลย


หมายถึงว่า ระบุในส่วนที่ query หรอครับ

ลองไปลุยตัวอย่างนี้ดูครับ แล้วลองเอามาอัพเดทกันอีกที ผมดูคลาวๆ เห็นข้อมูลดีอยู่

ขอบคุณครับพรุ่งนี้ผมจะมาอัพเดทให้นะครับ ขอไปทำ google data studio ก่อนครับ

สอนผมบ้างสิครับ เอาไปใช้อะไรได้บ้าง อิอิ

ผมก็เพิ่งศึกษาได้ไม่นานเพราะมาเริ่มงานสายนี้55555
ก็ใช้ทำ report dashboard query จาก db เเต่ตอนนี้ที่รู้สึกว่ายากคือการเลือก กราฟให้เหมาะสมกับ data ที่มี

1 Likes

เยี่ยมเลยครับ ว่างๆ ผมอาจจะเข้าไปเล่นดูบ้าง มีเทคนิก ดีๆ อย่าลืมแชร์กันบ้างนะครับ เผื่อผมจะได้เข้าไปเล่นง่าย ขึ้น 555

วันนี้ผมลองหา example เจอ โค้ดนี้คือตรงกับที่อยากได้ แต่ก็ connect ไมไ่ด้เช่นเคย 55

#include <ESP8266WiFi.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

const char* ssid     = "WIFI-SSID";
const char* password = "WIFI-PASSWORD";

byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress server_addr(192,168,1,100);  // IP ของ MySQL server
char dbuser[] = "DB-USERNAME";         // MySQL username
char dbpassword[] = "DB-PASSWORD";       // MySQL password

// SELECT query (เงื่อนไขในการ Query ข้อมูล)
char query[] = "SELECT * FROM DBName.TableName WHERE id = '5' ";  //กำหนดชื่อฐานข้อมูลและชื่อตาราง  DBName.TableName

WiFiClient client;    
MySQL_Connection conn((Client *)&client);

void setup() {
  Serial.begin(115200);
  delay(10);

  // Connect to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
    }

  Serial.println("");
  Serial.print("WiFi connected to ");
  Serial.print("IP : ");
  Serial.println(WiFi.localIP());
  Serial.println("Your device is now online to internet.");
  Serial.println("");

 //MySQL Connection
  Serial.println("Connecting...");
  if (conn.connect(server_addr, 3306, dbuser, dbpassword)) {
    delay(1000);
    Serial.println("MySQL Connected.");
  }
  else
    Serial.println("Connection failed.");
  //conn.close();
  
}

void loop() {
  row_values *row = NULL;
  //String head_count ; 
  delay(10000);
  
  Serial.println("Selecting data.");

  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  
  cur_mem->execute(query); // Execute the query
  column_names *columns = cur_mem->get_columns(); // Fetch the columns

  // Read the row (we are only expecting the one)
  do {
    row = cur_mem->get_next_row();
    if (row != NULL) {
      Serial.println(row->values[1]); //ค่าที่ SELECT ได้จากฐานข้อมูล
    }
  } while (row != NULL);
  delete cur_mem;  // Deleting the cursor also frees up memory used 
}
1 Likes

ลอง ping Esp ดูก่อนไหม ในวงมันเจอกันรึป่าว ไม่ก็ ping จากคอม ไปที่ ip ของ esp เลย

เจอข้อมูลขนาดนี้ ถ้าไม่ได้นี้ เป็นงู งูฉกตายละนะครับ 555

Jungle Book Snake GIF


เจออยู่นะครับ