import serial
import time
import string
import binascii
import threading
#定義乙個函式:
def timerdelay():
s=serial.serial(『/dev/ttyusb0』,4800) #我用的usb介面波特率為4800,你們的可以自行設定。
n=s.inwaiting() #採集緩衝資料
if n:
data= str(binascii.b2a_hex(s.read(n)))[2:-1]
l=int(data[6:10],16) #他返還了一堆十六進製制數,其中第6到第9表示濕度資訊,並將其轉換成10進製。
l=l/1000 #根據關係計算出濕度資訊
print(『當前濕度為:rh』.format(l)) #輸出
if data[10]==1: #溫度資訊 如果這一位為一,證明是負數,需要進行下列操作計算得出溫度數值。
t=int(data[10:14],16)
t=t/10
a=bin(t)
a=~a
b=int(a,2)
b=-b
print(『當前溫度為:%.1f℃』%b)
else: #如果是正數,則根據如下計算。
t=int(data[10:14],16)
t=t/10
print(『當前溫度為:%.1f℃』%t)
d=bytes.fromhex(『01 03 00 00 00 02 c4 0b』) #這是傳送的命令,感測器接收到後會返還溫濕度資訊。
s.write(d)
s.close()
global q
q=threading.timer(2,timerdelay) #進行週期性採集,那個2證明間隔兩秒採集一次
q.start()
q= threading.timer(10,timerdelay) #10表示傳遞乙個資料的時間
q.start()
程式就是如上所示,作為初學者第一次寫,如不完善請見諒。
常用介面 RS485
rs485電路設計 差分傳輸 半雙工 rs 485是針對uart串列埠的一種介面標準,它定義了序列通訊系統中傳送器和接收器的一系列電氣特性。相比於rs 232,rs 485標準的通訊系統抗干擾能力較強,可實現長距離資料傳輸 同時支援多個收發器連線到同乙個通訊網路中。因此,rs 485在工業控制領域以...
rs485除錯軟體 RS485 三種硬體電路設計
rs485介面具有抗干擾性強,適合長距離傳輸和多站點通訊等特點,因此在工業控制中被普遍使用。微控制器只有uart介面,如果需要使用rs485通訊,需要外面加乙個transceiver。由於rs485工作在半雙工模式,因此傳送和接收的方向切換是設計過程中的乙個重要問題。通常的介面電路有以下三種 1 第...
rs485除錯助手 RS485通訊連線方式是怎樣的
電工之家 www.dgzj.com qq群 2179090 rs485是串列埠的一種,常見的還有rs232,rs422,都屬於串列埠,它們都只是定義了電氣特性的通訊結構,並沒有定義資料傳輸的協議。有的人很容易混淆它們之間的概念,比如人家問你是什麼通訊協議,你回答是rs485,那麼別人就悶了。所謂的通...