溫濕度、煙霧PM2.5、光敏亮度、火焰等傳感器數據的采集,上位機實現窗簾的開關。
上位機C#源碼.zip
(1.66 MB, 售價: 3 E幣)
2022-6-1 17:26 上傳
點擊文件名下載附件
售價: 3 E幣 [記錄]
[ 購買]
源碼用visual studio 編譯通過。如下圖所示
1.jpg (113.36 KB)
下載附件
2022-6-1 16:01 上傳
部分源碼:完整源碼見附件
- /*
- * 作用:解析串口接收過來的數據,根據字符標志位進行數據截取到對應的顯示地方
- */
- 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、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|