找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 526|回复: 0

[求助] 求助大神啊啊啊啊啊,esp32的源码

1

主题

1

帖子

1

积分

贫民

积分
1
supeng4676764 发表于 2022-8-4 21:39:40 | 显示全部楼层 |阅读模式
本帖最后由 supeng4676 于 2022-8-4 21:29 编辑


import machine, onewire, ds18x20, time,socket

ds_pin = machine.Pin(13)   # 定义DS18B20
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))

roms = ds_sensor.scan()           # 扫描是否存在DS18B20设备
print('Found a ds18x20 device')
wendu = 0            #当前温度
gaowen = 55          #高温阈值
diwen = 0            #低温阈值
isdispower = True    #高温断电
def connect():
    import network
    print(wendu)
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('RH_wangluoke', '85867777')
        while not wlan.isconnected():
            pass
    print('network config:', wlan.ifconfig())    这里是30行
# 循环函数
def start_udp():
    # 2. 启动网络功能(UDP)

    # 2.1. 创建udp套接字

    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2.2. 绑定本地信息
    udp_socket.bind(("0.0.0.0", 7788))
    return udp_socket   这里是40行。。。
def xianshi():
    print(wendu)
def makerobo_loop():
    while True:
      ds_sensor.convert_temp()
      time.sleep_ms(10)
      for rom in roms:
        wendu = ds_sensor.read_temp(rom)
#         print(ds_sensor.read_temp(rom))  # 打印出温度值
        if wendu >= 29:
            print('温度报警:',wendu)
      time.sleep(0.1)                      # 延时2s时间

# 程序入口
if __name__ == '__main__':

    connect()
    udp = start_udp()
    udp.settimeout(0.2)
    while True:
        ds_sensor.convert_temp()
        time.sleep_ms(10)
        for rom in roms:
            wendu = ds_sensor.read_temp(rom)
            print(wendu)
            if wendu >= int(gaowen):
                print('温度报警:',wendu)
        time.sleep(0.1)


        try:
            recv_data, sender_info = udp.recvfrom(1024)
            recv_data_str = recv_data.decode("utf-8")
            try:
                print(recv_data_str)
            except Exception as ret:
                print("error:", ret)

            # 5. 处理接收的数据
            if recv_data_str == "test":
                udp.sendto("200:200",sender_info)
            if recv_data_str == "1":
                print("码...")
                udp.sendto("201:"+str(wendu),sender_info)
            if recv_data_str == "2":
                print("..断电.")
                udp.sendto("202:"+str("202"),sender_info)
            elif recv_data_str.split(":")[0] == "gaowen":

                shuju = recv_data_str.split(":")
                if len(shuju) == 2:
                    gaowen = recv_data_str.split(":")[1]
                    print("成功设置高温阈值:",gaowen)
                    strt = "250:"+gaowen
                    udp.sendto(strt,sender_info)

#                 udp.sendto(str("客户信息:"),sender_info)
        except Exception as err :
#             print(err)
            pass






             # 调用循环函数




报错:
Traceback (most recent call last):
  File "<stdin>", line 64, in <module>
  File "ds18x20.py", line 40, in read_temp
  File "ds18x20.py", line 30, in read_scratch
Exception: CRC error





运行一段时间之后会报错~~~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表