ESP32 485风速

阅读: 评论:0

ESP32 485风速

ESP32 485风速

ESP32 485风速

  • 材料及接线
  • 示例程序
    • 获取风速
    • 风级提醒

气象站基础呀

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


材料及接线

ESP32
单片机TTL转RS485模块

接线说明

开发板TTL转RS485模块
22TXD
23RXD
5vVCC
GNDGND

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()):u2by&#ad()        # 返回的是答应帧的内容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()):u2by&#ad()        # 返回的是答应帧的内容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 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23