串口连接MYSQL或者sqlite数据库

您好!我看了你发的帖子,我是用QT软件编程的,我想问你一下,有没有串口收到的数据存入数据库的代码,或者串口收发数据并且存入数据库的程序的代码。如果有请发给我一份借鉴借鉴,麻烦了,万分感谢。

该回答引用ChatGPT4与博主@晓码自在合作编写:

这里是一个QT串口收发并存入数据库的示例:

cpp
#include <QSerialPort>
#include <QSqlDatabase>
#include <QSqlQuery>

int main(int argc, char *argv[])
{
    // 连接数据库
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("database.db");
    db.open();

    // 打开串口
    QSerialPort serialPort;
    serialPort.setPortName("COM1");
    serialPort.open(QIODevice::ReadWrite);
    serialPort.setBaudRate(9600);

    while (true) {
        if (serialPort.canReadLine()) {
            // 读取一行数据
            QByteArray line = serialPort.readLine();
            // 插入数据库
            QSqlQuery query(db);
            query.prepare("INSERT INTO data (content) VALUES (:content)");
            query.bindValue(":content", line);
            query.exec();
        }

        // 发送数据
        QByteArray data = "Hello";
        serialPort.write(data);
    }

    serialPort.close();
    db.close();
} 

这个程序:

  1. 连接到SQLite数据库,打开database.db文件
  2. 打开串口COM1,设置波特率9600
  3. 一直循环读取串口数据,当有一行完整数据时,插入到数据库data表中
  4. 定期向串口发送"Hello"字符串
  5. 在结束时关闭串口和数据库连接

这个示例演示了如何使用QT打开串口通信,读取和发送数据,以及如何将串口数据插入SQLite数据库。

关键部分在于QSerialPort类用于串口通信,QSqlDatabase和QSqlQuery用于数据库操作。