嵌入式Linux--基于物联网实验环境的温湿度实时显示系统

2019-07-12 16:43发布

实验内容与要求:
在物联网实验箱上实现一个温湿度显示系统,系统上电启动后自动启动此程序。每隔2秒自动刷新温湿度数据。温湿度数据从物联网试验箱自带的温湿度传感器获取。温湿度显示界面采用QT编程技术实现。 //formtemp.cpp #include "formtemp.h" #include "ui_formtemp.h" FormTemp::FormTemp(QWidget *parent) : QWidget(parent), ui(new Ui::FormTemp) { ui->setupUi(this); this->init(); } FormTemp::~FormTemp() { delete ui; } void FormTemp::init() { ui->lcd_temp->setNumDigits(3); ui->lcd_temp->setStyleSheet("QLCDNumber{background: transparent;}"); ui->lcd_hum->setNumDigits(3); ui->lcd_hum->setStyleSheet("QLCDNumber{background: transparent;}"); serial_server = new SerialService(); serial_server->openCom(); timer = new QTimer; connect(timer, SIGNAL(timeout()), this, SLOT(displayTempAndHum())); timer -> start(2000); temphum = new TempHum(); } void FormTemp::displayTempAndHum() { serial_server->readFromSerial(buff); temphum ->setValue(buff); if(temphum->getTemperature()&&temphum->getHumidity()){ ui->lcd_temp->display(temphum->getTemperature()); ui->lcd_hum->display(temphum->getHumidity()); } } //temphum.cpp #include "temphum.h" TempHum::TempHum() { temperature = 0; humidity = 0; } void TempHum::setValue(QByteArray& byte) { temperature = (byte[5] << 8) + byte[6]; humidity = (byte[7] << 8) + byte[8]; } int TempHum::getTemperature() { return temperature; } int TempHum::getHumidity() { return humidity; } //temphum.h #ifndef TEMPHUM_H #define TEMPHUM_H #include class TempHum :public QObject { Q_OBJECT public: explicit TempHum(); void setValue(QByteArray&); int getTemperature(); int getHumidity(); private : int temperature; int humidity; float light; }; #endif // TEMPHUM_H 这里写图片描述
完整工程:http://download.csdn.net/detail/qq_29777421/9892878