溫濕度資料采集-串口通信-Delphi7,有沒有源代碼?
uj5u.com熱心網友回復:
以前搞過51單片機+DS18B20一線測溫,MAX485傳輸到上位機應該也不難。溫度范圍要多大,精度要多高?uj5u.com熱心網友回復:
濕度也有價格低廉的模塊可用。關鍵是要知道你的需求:使用環境、溫度范圍、精度,這樣才能知道該用什么傳感器。不同的傳感器,采集程式自然就不一樣了。單片機與上位機的通信部分,一般是一樣的:MAX485+雙絞線+上位機串行口。Q 382943850uj5u.com熱心網友回復:
與華圖類似產品,完整商業產品及原始碼,私聊Q:188136923uj5u.com熱心網友回復:
也是用串口,比如串口發送來01,delphi中顯示溫度多少,濕度多少,可以嗎?uj5u.com熱心網友回復:
這種東西有相應傳感器,帶串口協議的,你發一個資料過去,對方相應串傳資料過來啊,很簡單uj5u.com熱心網友回復:
串口控制元件本身單開執行緒進行接收,如果有的話,只要做好協議中自己這邊的發送部分就OK了uj5u.com熱心網友回復:
使用SPCOMM控制元件,網上搜索自己下載,Comm1.CommName:=Trim(Comprot.Text); //串口號
Comm1.BaudRate:=strtoint(Trim(Comrate.text));//波特率
Comm1.Parity:=None;//
發送端:
var
buff:array[1..8] of byte;
begin
Comm1.StartComm;
sleep(100);
buff[1]:=$00;
buff[2]:=$00;
buff[3]:=$00;
buff[4]:=$00;
buff[5]:=$00;
buff[6]:=$00;
CRC16(@buff,6);
buff[7]:=crc1;
buff[8]:=crc2;
if not comm1.writecommdata(@buff,8) then
begin
...
end
...
end
接收端:
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
viewstring:string;
buff: array[0..19] of Byte;
begin
Sleep(100);
viewstring:='';
CopyMemory(@buff,buffer,BufferLength);
memo1.lines.add('溫度:'+floattostr(((Buff[3] * 256)+(Buff[4] mod 256))*0.1)+'濕度:'+floattostr(((Buff[5] * 256)+(Buff[6] mod 256)) * 0.1)+'狀態:'+inttohex(Buff[7],2));
for i:=8 to 19 do
begin
viewstring:=viewstring+inttohex(Buff[i],2)+' ';
end;
;
Comm1.StopComm;
end;
uj5u.com熱心網友回復:
這要看你使用的溫濕度是什么協議,一般都是modbus協議轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110191.html
標籤:語言基礎/算法/系統設計
