基础实验——2个485传感器并接

RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。
RS-485定义的是使用平衡(也称作差分)多点传输线的驱动器(driver)和接收器(receiver)的电气特性。

多个485并联。通过地址去获取对应数据。比如我想测2个花园的土壤湿度,这时候需要2个485传感器。物联网基础呀,看看怎么用吧。

485并接实验

本次实验我用了2个485传感器。一个噪音一个土壤。别问为啥,问就是我手里就这2个485传感器.

MR开发板

在这里插入图片描述

单片机TTL转RS485模块

在这里插入图片描述
接线说明

开发板 TTL转RS485模块
A3 TXD
A2 RXD
5v 5v+
GND GND

噪声传感器模块——485信号

在这里插入图片描述
接线说明

TTL转RS485模块 噪音模块 开发板
A+ TXD_A
B- RXD_B
5v 5V
GND GND

RS485 工业型土壤水分传感器

在这里插入图片描述

接线说明

TTL转RS485模块 土壤水分传感器 开发板
A+ TXD_A 黄色线
B- RXD_B 蓝色线
5v 5V 红色线
GND GND 绿色线

接线效果图:别怀疑,2个传感器都接到转换模块这里
在这里插入图片描述

测试代码,通过地址获取噪音和土壤模块的数据

挺简单的,就是别忘了每个传感器的延时,要设置一下。

# main.py -- put your code here!
from pyb import UART,delay

u2 = UART(2, baudrate=9600)
u3 = UART(2, baudrate=9600)
barray_turang = bytearray([0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B])  #问询帧  #土壤地址1询问
barray_zaoyin = bytearray([0x02,0x03,0x00,0x00,0x00, 0x01,0x84,0x39])  #问询帧  #噪音地址2询问

# 注意2个485传感器需要延时不同。
while True:
        u2.write(barray_zaoyin)
        delay(1000)  
        if(u2.any()):
                u2by=u2.read()        # 返回的是答应帧的内容
                aa=u2by
                fenbei=int.from_bytes(aa[3:5],'big') #高位在前  转换
                fenbei=fenbei/10
                print("dB",fenbei)

        u3.write(barray_turang)
        delay(1500) 
        if(u3.any()):
                u3by=u3.read()        # 返回的是答应帧的内容
                bb=u3by
                shuifen = int.from_bytes(bb[3:5],'big')   # 土壤湿度
                shuifen=shuifen/100
                wendu = int.from_bytes(bb[5:7],'big')     # 土壤温度
                wendu = wendu/100
                print(shuifen,"%")
                print(wendu,"度")

在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>