1. 程式人生 > >嵌入式Linux--基於物聯網實驗環境的溫溼度實時顯示系統

嵌入式Linux--基於物聯網實驗環境的溫溼度實時顯示系統

實驗內容與要求:
在物聯網實驗箱上實現一個溫溼度顯示系統,系統上電啟動後自動啟動此程式。每隔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 <QObject> 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