气象站基础呀
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 黄线 | | 5v | | 5V 红线 | GND | GND 绿线 | |
PS:基本485的接线都一样了
示例程序
获取光照度
此485传感器范围0~200000Lux
勒克斯(lux,法定符号lx)照度单位,1 勒克斯等于 1流(lumen,lm)的光通量均匀分布于 1㎡ 面积上的光照度。 1 lx大约等于1烛光在1米距离的照度,我们在摄像机参数规格中常见的最低照度(MINIMUM.ILLUMINATION),表示该摄像机只需在所标示的LUX数值下,即能获取清晰的影像画面,此数值越小越好,说明CCD的灵敏度越高。同样条件下,黑白摄像机所需的照度远比尚须处理色彩浓度的彩色摄像机要低10倍。
一般情况:夏日阳光下为100,000 lx;阴天室外为10000 lx;室内日光灯为100 lx;距60W台灯60CM桌面为300lx;电视台演播室为1000 lx;黄昏室内为10 lx;夜间路灯为0.1 lx;烛光(20CM远处)10~15 lx。
PS:我买的485光照是可以测室外的毕竟范围有20Wlx 而夏日的阳光就有10Wlx。所以如果测的是室外,买的时候问清楚量程。 室内的是0~65535lx
from machine import UART
import time
uart= UART(2, baudrate=9600, bits=8, parity=None, rx=22,tx=23, stop=1, timeout=100)
barray = bytearray([0x01,0x03,0x00,0x02,0x00, 0x02 ,0x65 ,0xcb])
while True:
uart.write(barray)
time.sleep(1)
if(uart.any()):
u2by=uart.read()
aa=u2by
G10 = int.from_bytes(aa[3:5],'big')
G1= int.from_bytes(aa[5:7],'big')
GZ=G10*10+G1
print(GZ,"LUX")
串口输出光照值,我在室内测的哈
修改地址
除此之外我们同样可以配置地址。 如下地址配置成功,我现在的传感器地址就是00
>>> from machine import UART
>>> uart= UART(2, baudrate=9600, bits=8, parity=None, rx=22,tx=23, stop=1, timeout=100)
>>> barray = bytearray([0x00,0x06,0x00,0x20,0x00, 0x01 ,0x48 ,0x11])
>>> uart.write(barray)
8
>>> u2by=uart.read()
>>> print(u2by)
b'\x00\x06\x00 \xe1\xfd'
我们可以测一下
from machine import UART
import time
uart= UART(2, baudrate=9600, bits=8, parity=None, rx=22,tx=23, stop=1, timeout=100)
barray = bytearray([0x00,0x03,0x00,0x02,0x00, 0x02 ,0x64 ,0x1A])
while True:
uart.write(barray)
time.sleep(1)
if(uart.any()):
u2by=uart.read()
aa=u2by
G10 = int.from_bytes(aa[3:5],'big')
G1= int.from_bytes(aa[5:7],'big')
GZ=G10*10+G1
print(GZ,"LUX")
看吧毫无疑问,是好使的~
|