用python採集RS485溫濕度感測器資訊

2021-08-25 16:42:13 字數 1108 閱讀 5445

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,那麼別人就悶了。所謂的通...