1 Star 0 Fork 1

chenshangwei/micropython_esp8266_插座

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.py 2.67 KB
一键复制 编辑 原始数据 按行查看 历史
李建钢 提交于 2022-08-08 15:01 . 输出日志改到mac上
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')
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/perseverance51/micropython-esp8266-socket.git
git@gitee.com:perseverance51/micropython-esp8266-socket.git
perseverance51
micropython-esp8266-socket
micropython_esp8266_插座
master

搜索帮助