本教程使用 QEC-M-043T,其中包括創建控制 MySQL 連接的切換按鈕,並通過 UI 界面的切換按鈕將簡單數據發送到 MariaDB 數據庫。這個項目是一個簡單的數據收集和傳輸過程。
先決條件
您必須已配置伺服器、數據庫和伺服器端的程式語言來處理簡單數據類型。在本教程中,我們配置了一台 Debian 9 電腦來運行 MariaDB 服務器。
參考: https://www.digitalocean.com/community/tutorials/how-to-install-the-latest-mysql-on-debian-9
目標
在本教程中,我們將實現以下目標:
- 數據庫配置
- 導入相關庫(Ethernet、MySQL 和 LVGL)
- 乙太網路設置步驟
- MySQL (MariaDB) 連接
- LVGL UI 界面
所需的硬件和軟件
本教程將重點介紹從使用者界面獲取數據,並傳送到數據庫,然後在本地機器上顯示數據。
數據庫配置:
對於這個項目,我創建了一個名為“test”的數據庫,並在該數據庫中創建了一個名為“acen”的表。我們要在這個數據庫中記錄三件事:姓名、年齡和班級名稱。所以,我們需要我命名的三個字段:name、age 和 class_name。這是 Debian 9 在文本模式下的樣子:

您可以使用下面的腳本為 MariaDB 創建數據庫“test”和表“acen”。
/* Create Database */ CREATE DATABASE test; /* Create Table */ CREATE TABLE acen ( name varchar(30), age int(11), class_name varchar(30) );
開始從 QEC-M-043T 向 MySQL (MariaDB) Server 發送數據
首先使用 USB 轉 Micro USB 電纜將 QEC-M-043T 連線至個人電腦,並開啟 86Duino IDE 500。如果這是您第一次運行 86Duino sketch,我們建議您在繼續之前查看如何為86Duino設置QEC-M-043T 。

步驟 1. 檢查設備是否連接正確
QEC-M-043T 和 EB-SQL 需要加入同一個網絡。

注意:QEC-M-043T 上的 Giga Lan 帶有藍色連接器。

步驟 2. 打開 86Duino IDE。
86Duino IDE可以從官網下載。 (https://www.qec.tw/zh/software/)
步驟 3. 將下面給出的代碼複製到編輯器中。
// Import the Related Libraries #include <Ethernet.h> #include <MySQL_Connection.h> #include <MySQL_Cursor.h> #include "lvgl86.h" byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address IPAddress server_addr(192,168,2,130); // IP of the MySQL *server* here char user[] = "root"; // MySQL user login username char password[] = "roboard"; // MySQL user login password // Sample query char INSERT_SQL[] = "INSERT INTO test.acen (name, age, class_name) values ('acen', 34, '405')"; EthernetClient client; // Ethernet Client unsigned long t = 0; MySQL_Connection conn((Client *)&client); // MySQL Connection static void event_handler1(lv_obj_t * obj, lv_event_t event) { if(event == LV_EVENT_VALUE_CHANGED) { Serial.println("Recording data."); MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn); cur_mem->execute(INSERT_SQL); delete cur_mem; } } lv_obj_t *sw2; int sw_state = 0; // 0: OFF, 1: ON static void event_handler2(lv_obj_t * obj, lv_event_t event) { if(event == LV_EVENT_VALUE_CHANGED) { if (lv_switch_get_state(obj)) { if (conn.connect(server_addr, 3306, user, password)) { Serial.println("SQL Connection Success."); delay(1000); sw_state = 1; } else Serial.println("Connection failed."); } else { Serial.println("SQL Close."); conn.close(); sw_state = 0; } } } void setup() { Serial.begin(115200); while (!Serial); // wait for serial port to connect lv86_init(); Ethernet.begin(); Serial.println("Connecting..."); if (conn.connect(server_addr, 3306, user, password)) { delay(1000); } else Serial.println("Connection failed."); t = millis(); lv_obj_t *sw1 = lv_switch_create(lv_scr_act(), NULL); // This switch is for insert data lv_obj_align(sw1, NULL, LV_ALIGN_CENTER, 0, -30); lv_obj_set_event_cb(sw1, event_handler1); sw2 = lv_switch_create(lv_scr_act(), NULL); // This switch is for the Database Connection status lv_obj_align(sw2, NULL, LV_ALIGN_CENTER, 0, 30); lv_obj_set_event_cb(sw2, event_handler2); } void loop() { conn.handleData(); lv_task_handler(); if (sw_state == 1 && !conn.connected()) {lv_switch_off(sw2, LV_ANIM_OFF); sw_state = 0;} // Auto judge the connection, close switch if disconnected if (sw_state == 0 && conn.connected()) {lv_switch_on(sw2, LV_ANIM_OFF); sw_state = 1;} // Auto judge the connection, open switch if connected }
步驟 4. 驗證信息是否不同
我們需要有正確的 IP 地址、MySQL (MariaDB) 帳戶、以太網連接等才能與數據庫連接。請仔細檢查有關您的腳本的所有信息。
/* 1. MAC Address 2. Server IP Address 3. MySQL (MariaDB) account (username and password) 4. MySQL command */ byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address IPAddress server_addr(192,168,2,130); // IP of the MySQL *server* here char user[] = "root"; // MySQL user login username char password[] = "roboard"; // MySQL user login password // Sample query char INSERT_SQL[] = "INSERT INTO test.acen (name, age, class_name) values ('acen', 34, '405')"; EthernetClient client; // Ethernet Client unsigned long t = 0; MySQL_Connection conn((Client *)&client); // MySQL Connection
步驟 5. 上傳您的草圖!
點擊上傳按鈕旁邊的右箭頭按鈕(上傳)。代碼上傳後,您應該會在用戶界面上看到兩個開關。
- 頂部的開關是數據插入按鈕,打開開關後QEC-M-043T將傳輸數據。
- 底部的開關是 MySQL 連接,打開 QEC-M-043T 後您會看到它打開。
我們可以使用 SQL 語言通過 EB-SQL 來檢查數據。
SELECT * FROM test.acen;

恭喜
如果您可以在您的數據庫中找到數據,這意味著您已經使用 QEC-M-043T 成功地將您的第一個數據收集到了數據庫中。
請繼續關注 QEC 的更多項目!
如果您有任何問題/問題,請隨時發表評論!
The text of the 86Duino reference is a modification of the Arduino reference and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.