温湿度采集系统,单片机;串行通信;数据交换 第11页
温湿度采集系统,单片机;串行通信;数据交换 第11页
SetText(strTemp1); //调用线程
}
if (!serialPort1.IsOpen) //如果串口关闭
{
serialPort1.Open(); //打开串口
}
}
delegate void SetTextCallback(string strText); //线程安全
private void SetText(string strText) //定义线程
{
if (this.richTextBox_Receive.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.
else
{
richTextBox_Receive.Text = strText; //赋值给
richTextBox_Receive.Text
}
}
程序运行后结果如图4.1所示:
图 4.1 数据接收
(4)数据发送程序:
private void btn_Send_Click(object sender, EventArgs e)
{
string senddata = “
//senddata = Encrypt(senddata);//把字符串转换为字节数组
this.serialPort1.WriteLine(senddata);//把字节值写入缓冲区
}
如图4.1所示界面,点击“发送”按钮即可发送指定数据,也可设定计时器的属性,设置为自动发送。
·4.2 数据库实现
当采集到的温度、湿度、露点显示在界面上,通过连接数据库,使其自动保存在数据库中,并且提供插入、修改、查询、更新等操作。
(1) 插入数据程序:
private void btnAdd_Click(object sender, EventArgs e)
{
string strAnalysisTime = DateTime.Now.ToString(); //赋值记录时间
string connStr, insertSql; //定义变量
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ff.mdb";//连接数据源
into data(温度,湿度,露点,记录时间)Values('" + txtTemp.Text + "','" + txtHum.Text + "','" + txtLu.Text + "','" + strAnalysisTime + "')"; // 设置插入数据
OleDbCommand Icmd = new OleDbCommand(insertSql, conn);
Icmd.ExecuteNonQuery(); //执行插入
conn.Close(); //关闭连接
}
程序运行后结果如图4.2所示:
图4.2 数据插入
(2) 数据查询程序:
private void btn_select_Click(object sender, EventArgs e)
{
string sTime = select_Time.Value.ToString();
int iSpace = sTime.IndexOf(" ");
string sdate = sTime.Substring(0, iSpace);
string selectCmd = "SELECT * FROM data WHERE 记录日期 = '" + sdate + "'";
string connStr ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ff.mdb";
OleDbConnection conn = new OleDbConnection(connStr); //建立连接
OleDbDataAdapter myAdapter = new OleDbDataAdapter(selectCmd, conn);
DataSet myDataSet = new DataSet();
myAdapter.Fill(myDataSet, "data");
dataGridView1.DataSource = myDataSet.Tables["data"];
}
程序运行后结果如图4.3所示:
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>