|
本帖最后由 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
运行一段时间之后会报错~~~
|
|
|