ZigBee智能家居的C#上位机源码 采集温度湿度PM风扇窗帘
温湿度、烟雾PM2.5、光敏亮度、火焰等传感器数据的采集,上位机实现窗帘的开关。
下载:上位机C#源码
源码用visual studio 编译通过。如下图所示
/* * 作用:解析串口接收过来的数据,根据字符标志位进行数据截取到对应的显示地方 */ private void analysisData() { bool getDataFlag = false; {//光敏亮度显示 string source = System.Text.Encoding.Default.GetString(buffer.ToArray()); string param; int dataLen = getCommand(source, LIGHT, out param); if (dataLen > 0) { label_light.Text = "LIGHT\r\n" + param[1] + param[2] + param[3]; buffer.RemoveRange(0, dataLen + 2); if (param[1] >= '6') //当亮度大于600时,关闭灯光 { for (int i = 0; i < 10; i++) { UartSend(createCommand(LIGHT, "0")); } } else //否则,灯光一直显示亮起 { for (int i = 0; i < 10; i++) { UartSend(createCommand(LIGHT, "1")); } } getDataFlag = true; } } {//火焰显示 string source = System.Text.Encoding.Default.GetString(buffer.ToArray()); string param; int dataLen = getCommand(source, FIRE, out param); if (dataLen > 0) { label_fire.Text = "FIRE\r\n" + param[2] + param[3]; if (param[3] == '1') //当检测到火焰气体 param[3] == '1' 时,发出警报1 { for (int i = 0; i < 10; i++) { UartSend(createCommand(FIRE, "1")); } } else //此时若没监测火焰气体 param[3] == '0',关闭警报2,也可以在上位机的按钮关掉 { for (int i = 0; i < 10; i++) { UartSend(createCommand(FIRE, "0")); } } buffer.RemoveRange(0, dataLen + 2); getDataFlag = true; } } {//烟雾显示 string source = System.Text.Encoding.Default.GetString(buffer.ToArray()); string param; int dataLen = getCommand(source, SMOKE, out param); if (dataLen > 0) { label_smoke.Text = "SMOKE\r\n" + param[2] + param[3]; buffer.RemoveRange(0, dataLen + 2); getDataFlag = true; } } {//人体显示 string source = System.Text.Encoding.Default.GetString(buffer.ToArray()); string param; int dataLen = getCommand(source, HUMAN, out param); if (dataLen > 0) { label_human.Text = "HUMAN\r\n" + param[2] + param[3]; if (param[3] == '1') //当检测到人体 param[3] == '1' 时,发出警报2 { for (int i = 0; i < 10; i++) { UartSend(createCommand(HUMAN, "1")); } } else //此时若没监测到人体 param[3] == '0',关闭警报2,也可以在上位机的按钮关掉 { for (int i = 0; i < 10; i++) { UartSend(createCommand(HUMAN, "0")); } } buffer.RemoveRange(0, dataLen + 2); getDataFlag = true; } } {//PM2.5显示 string source = System.Text.Encoding.Default.GetString(buffer.ToArray()); string param; int dataLen = getCommand(source, PM, out param); if (dataLen > 0) { label_pm.Text = "PM2.5\r\n" + param[2] + param[3]; buffer.RemoveRange(0, dataLen + 2); getDataFlag = true; }
1,本站所有资源来源于网络搜集,如有侵权请邮件联系站长删除。
2,分享目的仅供大家个人的学习用途,请不要用于商业用途。
3,如果你也有好的源码或者教程,可以投稿到本站,采纳后有积分奖励。
4,本站提供的各类资源均不保证其可用性及完整性,也没有任何技术服务。
5,如有链接无法下载、失效、过期,请联系管理员处理。
6,本站资源部分需要积分只是赞助,仅用于本站服务器和日常运营所需,不提供任何技术支持。
快捷联系方式 Email:admin@lzbk.com QQ:361113272