代码拉取完成,页面将自动刷新
同步操作将从 李建钢/micropython_esp8266_插座 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
from time import localtime
import socket
import time
import network
from machine import Pin,PWM,I2C,Timer,RTC
import ntptime
wlan = network.WLAN(network.STA_IF) #STA模式
wlan.active(True)#
rtc = RTC()
count = 0
WIFI_LED=Pin(2, Pin.OUT) #初始化WIFI指示灯
pwm2=PWM(WIFI_LED,freq=1000)
p13 = Pin(13,Pin.OUT)
ssid,password = 'Embedled2.4G', '27881580embedled'
def wlan_connect(ssid,password):
if not wlan.isconnected():
print('connecting to network...')
wlan.connect(ssid,password)
while not wlan.isconnected():
#未连接到WIFI时LED闪烁提示
WIFI_LED.value(1)
time.sleep_ms(300)
WIFI_LED.value(0)
time.sleep_ms(300)
#超时判断,15秒没连接成功判定为超时
start_time=time.time()#记录时间做超时判断
if time.time()-start_time > 15 :
print('WIFI Connected Timeout!')
break
if wlan.isconnected():#如果WIFI连接上,就把网络的各种参数输出在OLED屏幕中
pwm2.duty(1000)
print('network information:', wlan.ifconfig())
sync_ntp()
send_data(logger('OK'))
def send_data(data):
ip = '192.168.2.47'
port = 9292
if wlan.isconnected():
server = socket.socket()
server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
server.connect((ip,port))
server.send(data.encode('uft-8'))
server.close()
def sync_ntp():#联网获取时间
ntptime.NTP_DELTA = 3155644800 #UTC+8偏移秒数
ntptime.host = 'ntp1.aliyun.com'
ntptime.settime()
def logger(msg):#打印本地日志,生成发送网络时间日志
datetime= rtc.datetime()
print("[%02d-%02d-%02d %02d:%02d:%02d] %s" % ((localtime()[:-2]) + (msg,)))
return str(datetime[0])+'-'+ str(datetime[1])+'-'+str(datetime[2])+' '+str(datetime[4])+\
':'+str(datetime[5])+':'+str(datetime[6])+ '//' + msg
def jiaoshui(t):
global count
count += 1
p13.value(1)
logger('开始供水')
time.sleep(5) #供水时间,单位为秒
p13.value(0)
logger('结束供水')
try:
send_data(f'{logger('succeed')},count:{count}')
except NameError:
logger('发送失败')
def main(H):
wlan_connect(ssid,password)
miao = H * 1000 * 60 *60 # 1小时
# miao = H * 1000*60 # 1分钟
logger('开始')
#上电自检
p13.value(1)
time.sleep(0.5)
p13.value(0)
return miao
t=Timer(1)#使用1号定时器
t.init(period=main(2),mode=Timer.PERIODIC,callback=jiaoshui)#参数为定时时间,单位是小时
# p4 = Pin(4,Pin.IN)
# if p4.value != 1:
# main(60)
# else:
# raise TypeError('debug mode')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。