ESP32是一款功能強大的物聯網設備,它可以通過WiFi模塊實現數據的上傳和下載。為了方便管理數據,我們可以使用MySQL數據庫進行數據存儲。
假設我們已經搭建好了MySQL環境并建立了一張數據表,我們需要在ESP32端編寫代碼實現數據的上傳操作。下面是一個示例代碼:
#include <WiFi.h> #include <MySQL_Connection.h> #include <MySQL_Cursor.h> // WiFi連接信息 const char* ssid = "your_SSID"; const char* password = "your_password"; // MySQL連接信息 IPAddress server_addr(192,168,1,100); unsigned int server_port = 3306; const char* user = "your_username"; const char* password = "your_password"; const char* database = "your_database"; // 數據上傳的SQL語句 char* insert_stmt = "INSERT INTO your_table (data1, data2, data3) VALUES (%d, %d, %d)"; // 數據 int data1 = 10; int data2 = 20; int data3 = 30; // WiFi客戶端對象 WiFiClient client; // MySQL連接對象和游標對象 MySQL_Connection conn((Client*)&client); MySQL_Cursor* cursor; void setup() { Serial.begin(115200); // WiFi連接 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } // MySQL連接 if (conn.connect(server_addr, server_port, user, password, database)) { Serial.println("Connected to MySQL."); cursor = new MySQL_Cursor(&conn); } else { Serial.println("MySQL connection failed."); while (1); } } void loop() { // 發送SQL語句 char stmt[100]; sprintf(stmt, insert_stmt, data1, data2, data3); cursor->execute(stmt); // 延時1s,上傳數據周期可以根據需求設置 delay(1000); }
在這段示例代碼中,我們首先定義了WiFi連接信息和MySQL連接信息。在setup()函數中,我們通過WiFi.begin()函數連接無線網絡,然后通過MySQL_Connection對象的connect()函數連接MySQL數據庫。如果連接成功,我們就可以創建一個MySQL_Cursor對象,用于執行SQL語句。
在loop()函數中,我們通過sprintf()函數將數據插入到SQL語句中,然后通過MySQL_Cursor對象的execute()函數發送SQL語句。上傳數據的周期可以根據需要設置,這里我們簡單地設置為1s。
總的來說,ESP32上傳數據到MySQL非常方便,我們只需要在代碼中設置好WiFi和MySQL連接信息,然后編寫SQL語句即可。有了這樣的功能,我們可以輕松地實現數據的采集和存儲,為我們的物聯網應用帶來更多可能性。