📜  como leer datos de mysql esp32 - SQL (1)

📅  最后修改于: 2023-12-03 15:14:13.394000             🧑  作者: Mango

如何用ESP32读取MySQL数据库

介绍

ESP32是一款功能强大的微控制器,可以用来开发各种不同的物联网设备。其中一个应用场景就是与MySQL数据库进行通信,以读取和存储数据。本文将介绍如何使用ESP32通过SQL协议与MySQL数据库进行通信,并读取其中的数据。

准备工作

在开始之前,您需要准备以下的工作:

  • 一台安装了MySQL数据库的服务器
  • 一个ESP32开发板
  • 安装了Arduino IDE的计算机
  • 安装了MySQL Connector/Arduino的Arduino库
步骤
1.安装MySQL Connector/Arduino

MySQL Connector/Arduino是一个Arduino库,它提供了与MySQL数据库进行通信的功能。在使用这个库之前,您需要先安装它。您可以使用Arduino IDE中的“库管理器”功能进行安装。

在Arduino IDE中,打开“工具”菜单,然后选择“管理库”。在搜索框中输入“MySQL Connector”,然后选择“MySQL Connector/Arduino”进行安装。

2.配置数据库

在开始读取数据之前,您需要配置数据库。在MySQL数据库中,您需要创建一个名为“test”的数据库,其中包含一个名为“data”的表。表中包含两列数据:一个称为“id”的自动递增整数列,和一个称为“value”的文本列。

运行以下命令来创建数据库和表:

CREATE DATABASE test;
USE test;
CREATE TABLE data (id INT NOT NULL AUTO_INCREMENT, value VARCHAR(255), PRIMARY KEY (id));
3.编写代码

现在,我们可以编写代码来读取MySQL数据库中的数据。请把以下代码复制到Arduino IDE中的新项目中:

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

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

char ssid[] = "your-ssid"; // Your WiFi SSID
char pass[] = "your-password"; // Your WiFi password
char server[] = "your-server-ip"; // MySQL server IP address
char user[] = "your-mysql-user"; // MySQL user
char password[] = "your-mysql-password"; // MySQL password
int port = 3306; // MySQL port number

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

  Serial.println("Connecting to WiFi...");
  WiFi.begin(ssid, pass);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  Serial.println("WiFi connected!");

  Serial.println("Connecting to MySQL server...");
  if (conn.connect(server, port, user, password)) {
    Serial.println("MySQL connected!");
  } else {
    Serial.println("MySQL connection failed.");
    return;
  }

  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  cur_mem->execute("SELECT * FROM data");

  column_names *cols = cur_mem->get_columns();  
  for (int f = 0; f < cols->num_fields; f++) {
    Serial.print(cols->fields[f]);
    Serial.print("\t\t");
  }
  Serial.println("");

  row_values *row = NULL;
  do {
    row = cur_mem->get_next_row();
    if (row != NULL) {
      for (int f = 0; f < cols->num_fields; f++) {
        Serial.print(row->values[f]);
        Serial.print("\t\t");
      }
      Serial.println("");
    }
  } while (row != NULL);

  delete cur_mem;

}

void loop() {
  // do nothing
}
4.进行测试

现在,您可以上传代码到ESP32开发板并运行它。在串口监视器中,您应该可以看到从MySQL数据库中读取的数据。如果您更改了数据库中的数据,您可以重新运行代码来读取更新后的数据。

结论

通过使用ESP32和MySQL Connector/Arduino库,您可以轻松地读取和存储MySQL数据库中的数据。即使你没有MySQL数据库的经验,你也可以轻松地创建一个测试数据库来练习。尝试一下,看看你能读取到什么数据!