基于Qt的简单arduino上位机

这篇博客介绍了如何利用Qt创建一个简单的上位机,与ESP8266 NodeMCU通过UDP通信,实现数据获取与显示,并将数据存入数据库。内容包括Qt界面设计、UDP Socket通信和信号槽的使用,目标是最终实现无线视频传输。
摘要由CSDN通过智能技术生成

day02

使用Qt上位机获取esp8266nodemcu的相关数据并插入数据库中,旨在实现相关控制与插入功能,后续的数据可视化可以参考大佬们的demo


一、准备工作

一块esp8266,安装arduinoIDE、Qt、navecate、mysql/**若没有mysql可直接采用sqllist。

二、QT上位机

通信协议采用UDP(TCP同理),通过ip地址与端口实现数据获取与显示,主要用到socket。

代码如下

por文件添加network、与sql。

QT       += core gui network
QT       += sql

cpp文件。


2.建立界面如图:

在这里插入图片描述
绑定端口(.cpp程序)

void Widget::on_pushButton_2_clicked()
{
   

    My_Port = ui->MyPort_Edit->text();
    //My_Port为string类型,bind为int型
    //绑定端口号,监听发送到端口的所有信息
    m_udpSocket->bind(My_Port.toUInt());
}

这里的m_udpSocket为自定义的QUdpSocket指针


3.接受信息:

f1 udpsocket了解udp通信下的接受信号与槽,连接信号与槽实现数据显示;
参考
在这里插入图片描述
注意socket套接字触发的信号

// 接受信息代码:
//接受信息
void Widget::recevMsg()
{
   
    QHostAddress clientIP;
    quint16 clientPort;

    char buf[1024]={
   0};
    while (m_udpSocket->hasPendingDatagrams()) {
   
        m_udpSocket->readDatagram(buf,sizeof(buf),&clientIP,&clientPort);
        //定义数据格式
        QString str = QString("[%1,%2] %3").arg(clientIP.toString()).arg(clientPort).arg(buf);
        ui->textEdit->setPlainText(str);
    }

//    ui->textEdit->clear();
    //参考csdn大佬方式
//    QByteArray ba;
//       while(m_udpSocket->hasPendingDatagrams())
//       {
   
//           ba.resize(m_udpSocket->pendingDatagramSize());
//           m_udpSocket->readDatagram(ba.data(), ba.size());
//       }
}

4.发送信息:

下面展示一些 内联代码片注意:socket通信下port为int型,所以要用qint!!!.

void Widget::on_pushButton_clicked()
{
   
    //获取发送内容
    QString Data = ui->lineEdit->text();
    //获取IP号
    qDebug()<<Data;
    QString Any_IP = ui->AnyIP_Edit->text
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值