RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。
RS-485定义的是使用平衡(也称作差分)多点传输线的驱动器(driver)和接收器(receiver)的电气特性。
ESP32
单片机TTL转RS485模块
接线说明
开发板 | TTL转RS485模块 |
---|---|
22 | TXD |
23 | RXD |
5v | VCC |
GND | GND |
485风速
采用工业级芯片,高精度进口光照传感器。采用RS485硬件接口,协议层兼容标准的工业Modbus-Rtu协议。
被广泛应用于温室、环境保护、气象站、船舶、码头、养殖等环境的风速测量。
接线说明
TTL转RS485模块 | 485风速 | 开发板 |
---|---|---|
A+ | TXD_A 绿线 | |
B- | RXD_B 蓝线 | |
V+ 棕线 | 外接12V适配器电,接开发板没用 | |
GND 黑线 | 外接12V适配器的地线,接开发板没用 |
PS:基本485的接线都一样了
量程:0-70m/s,分辨率 0.1m/s
from machine import UART
#ESP32可以映射引脚,初始化的时候设置就行,串口号一般设置成2(0和1尽量别用。)
import time
uart= UART(2, baudrate=4800, bits=8, parity=None, rx=22,tx=23, stop=1, timeout=100)
barray = bytearray([0x01,0x03,0x00,0x00,0x00, 0x01 ,0x84 ,0x0A]) #问询帧while True:uart.write(barray)time.sleep(1)#ad()) if(uart.any()):u2byad() # 返回的是答应帧的内容aa=u2byprint(aa)fs10 = int.from_bytes(aa[3:5],'big') # 风速fs=fs10/10 #实际值得10倍,要除以10print(fs,"m/s")
串口输出风速值
b'x01x03x02x00x00xb8D'
0.0 m/s
b'x01x03x02x00x00xb8D'
0.0 m/s
b'x01x03x02x00x00xb8D'
0.0 m/s
b'x01x03x02x00x00xb8D'
0.0 m/s
b'x01x03x02x00x01yx84'
0.1 m/s
b'x01x03x02x00x18xb8N'
2.4 m/s
b'x01x03x02x00x18xb8N'
2.4 m/s
b'x01x03x02x00%yx9f'
3.7 m/s
b'x01x03x02x00%yx9f'
3.7 m/s
b'x01x03x02x00.8X'
4.6 m/s
b'x01x03x02x000xb8P'
相关知识,风速对应的风级。
风级 | 名称 | 风速m/s |
---|---|---|
0 | 无风 | 0.0-0.2 |
1 | 软风 | 0.3-1.5 |
2 | 清风 | 1.6-3.3 |
3 | 微风 | 3.4-5.4 |
4 | 和风 | 5.5-7.9 |
5 | 劲风 | 8.0-10.7 |
6 | 强风 | 10.8-13.8 |
7 | 疾风 | 13.9-17.1 |
8 | 大风 | 17.2-20.7 |
9 | 烈风 | 20.8-24.4 |
10 | 狂风 | 24.5-28.4 |
11 | 暴风 | 28.5-32.6 |
12 | 飓风 | >32.6 |
根据上表,我们可以做一个风级提醒了
if 0.0<=fs<0.2:print:("0级:当前无风,无事发生")
elif 0.3<fs<1.5:print("1级:软风哦")...# 。
懂我意思吧,案例如下
from machine import UART
#ESP32可以映射引脚,初始化的时候设置就行,串口号一般设置成2(0和1尽量别用。)
import time
uart= UART(2, baudrate=4800, bits=8, parity=None, rx=22,tx=23, stop=1, timeout=100)
barray = bytearray([0x01,0x03,0x00,0x00,0x00, 0x01 ,0x84 ,0x0A]) #问询帧while True:uart.write(barray)time.sleep(1)#ad()) if(uart.any()):u2byad() # 返回的是答应帧的内容aa=u2by#print(aa)fs10 = int.from_bytes(aa[3:5],'big') # 土壤湿度fs=fs10/10print(fs,"m/s")if 0.0<=fs<0.2:print("无事发生")elif 0.3<fs<1.5:print("软风哦")#...else:print("大风,大风")
无事发生
0.0 m/s
无事发生
0.4 m/s
软风哦
1.2 m/s
软风哦
1.2 m/s
软风哦
0.7 m/s
软风哦
0.7 m/s
软风哦
1.4 m/s
软风哦
3.2 m/s
大风,大风
3.2 m/s
大风,大风
1.9 m/s
大风,大风
本文发布于:2024-02-01 17:30:25,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170678096038291.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |