【问题描述】
我们周围的环境对生活有很大的影响,设计一个Zigbee的智能农业大棚环境检测系统,自动检测农业生态信息,可以自动开启或关闭指定设备。并且设计一个显示界面,在PC机上实时显示相应的环境变量。
解决方案以各个传感器接收的数据为输入,最终PC机上的图形界面输出结果。程序编写包括传感器节点的C语言编程,在Visual Studio 2015平台构建已C++为基础的MFC控件编程。此外还涉及了MySQL数据库,重点功能如下。
设计的基本要求如下:
1实现对传感器数据的采集
2 拥有友善的可视化界面显示系统相关信息与数据
3 可连接数据库,向数据库中插入数据与数据库互动
4 模拟了组播传输的特点进行系统设计
设计的扩展要求如下:
模拟了农业大棚系统对环境进行调控的操作
MFC界面设计组件过程
主要代码
温湿度传感器相关程序
#include "stdafx.h"
#include "SmartHome.h"
#include "AirControlDlg.h"
#include "equAdp.h"
#include "afxdialogex.h"
//因为数据库是通过网络连接的,必须包含网络相关头文件
#include "winsock.h"
//这个没什么好说的,mysql头文件自然要包含
#include "mysql.h"
#include <cstring>
#include<string>
// SH_AIR_CONTROL_DLG dialog
IMPLEMENT_DYNAMIC(SH_AIR_CONTROL_DLG, CDialogEx)
SH_AIR_CONTROL_DLG::SH_AIR_CONTROL_DLG(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_DIALOG_AIRCTL, pParent),
C_SERIAL_COM_ADP()
{
}
SH_AIR_CONTROL_DLG::~SH_AIR_CONTROL_DLG()
{
}
void SH_AIR_CONTROL_DLG::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(SH_AIR_CONTROL_DLG, CDialogEx)
ON_BN_CLICKED(IDCANCEL, &SH_AIR_CONTROL_DLG::OnBnClickedCancel)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON_AC_OPEN, &SH_AIR_CONTROL_DLG::OnBnClickedButtonAcOpen)
ON_BN_CLICKED(IDC_BUTTON_AC_CLOSE, &SH_AIR_CONTROL_DLG::OnBnClickedButtonAcClose)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_BUTTON11, &SH_AIR_CONTROL_DLG::OnBnClickedButton11)
END_MESSAGE_MAP()
// SH_AIR_CONTROL_DLG message handlers
void SH_AIR_CONTROL_DLG::OnBnClickedCancel()
{
// TODO: Add your control notification handler code here
closeComm();
CDialogEx::OnCancel();
}
BOOL SH_AIR_CONTROL_DLG::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: Add extra initialization here
bool bRet = openComm();
if (false == bRet)
{
MessageBox(_T("Open Serial port Failed"));
}
else
{
SetTimer(TIMER_AIR_CTL_REFRESH, 1000, NULL);
}
return TRUE; // return TRUE unless you set the focus to a contro