• 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 黄线
    5v5V 红线
    GNDGND 绿线

    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
    #ESP32可以映射引脚,初始化的时候设置就行,串口号一般设置成2(0和1尽量别用。)
    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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    串口输出光照值,我在室内测的哈
    在这里插入图片描述

    修改地址

    除此之外我们同样可以配置地址。
    在这里插入图片描述
    如下地址配置成功,我现在的传感器地址就是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'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    我们可以测一下

    from machine import UART
    #ESP32可以映射引脚,初始化的时候设置就行,串口号一般设置成2(0和1尽量别用。)
    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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    看吧毫无疑问,是好使的~
    在这里插入图片描述

  • 相关阅读:
    基于JAVA中山学院教室管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
    【目标检测】Fast R-CNN前言
    19 Java 转换流&& 对象操作流 && Properties集合
    小白学go基础04-命名惯例对标识符进行命名
    mitmproxy 抓包神器-8.阿里云/腾讯云服务器无法访问mitmweb问题解决?
    复习单片机:IO串转并(内含:1. 74HC595 芯片介绍+2. 硬件设计+3. 软件设计+4.原始代码+5. 实验现象)
    智能指针一些实现分析
    深入浅出Spring(27)
    哪个文字转语音配音软件最好用?
    MVC第三波书店实现用户评论展示
  • 原文地址:https://blog.csdn.net/weixin_45020839/article/details/126122091