python做工控机_[Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台

import usocket as socket

except:

import socket

import network

from machine import UART

from machine import Pin

led_flag=Pin(2, Pin.OUT)#esp8266模块上的小灯 高电平:灭 低电平:亮

led = Pin(4, Pin.OUT)#发光二极管的控制引脚

motor = Pin(5, Pin.OUT)#直流电机的控制引脚

#初始化

led.low()

motor.low()

led_flag.high()

def do_connect(ssid,pwd):

sta_if = network.WLAN(network.STA_IF)#STA 模式

sta_if.active(False)

if not sta_if.isconnected():#判断是否连接

sta_if.active(True)

sta_if.connect(ssid,pwd)#ssid:WIFI名称 pwd:WIFI 密码

while not sta_if.isconnected():

pass

if sta_if.isconnected():

return sta_if.ifconfig()[0]

def main(ip_,dev_data,login_data,name,pwd):

s = socket.socket()

ai = socket.getaddrinfo(ip_, 80)

addr = ai[0][-1]

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind(addr)

s.listen(5)

led_flag.low()

#s_data=login_data

while True:

res = s.accept()

client_s = res[0]

client_addr = res[1]

led_flag.high()

req =client_s.readline()

while True:

h = client_s.readline()

if h == b"" or h == b"\r\n":

break

#print(h)

req+=(h.decode('utf-8').lower())

print("Request:")

req=req.decode('utf-8').lower().split('\r\n')

#http header 解析

req_data=req[0].lstrip().rstrip().replace(' ','')

print(req_data)

if req_data.find('favicon.ico')>-1:

client_s.close()

continue

else:

if len(req_data)<=12:

#说明是第一次访问,输入login.html

s_data=login_data

else:

req_data=req_data.replace('get/?','').replace('http/1.1','')

_name=req_data.find('name')

_pwd=req_data.find('pwd')

if _name>-1 and _pwd>-1:

#判断是否是用户登录

if req_data.find(name)>-1 and req_data.find(pwd)>-1:

s_data=dev_data

print('Login Success!')

else:

f=open('fail.html','r')

s_data=f.read()

f.close()

print('Login Fail!')

else:

#判断是否是控制LED

_index=req_data.find('led=')

if _index>-1:

s_data=dev_data

led_val=req_data[_index+4:_index+6].lstrip().rstrip()

print('led:',led_val)

if led_val=='on':

led.value(1)

else:

led.value(0)

#判断是否是控制电机

_index=req_data.find('motor=')

if _index>-1:

s_data=dev_data

motor_val=req_data[_index+6:_index+8].lstrip().rstrip()

print('motor_val:',motor_val)

if motor_val=='on':

motor.value(1)

else:

motor.value(0)

print('-----------')

client_s.send(s_data)

client_s.close()

led_flag.low()

f=open('device.html','r')

dev_html=f.read()

f.close()

f=open('login.html','r')

login_html=f.read()

f.close()

f=open('info.txt','r')

info=f.read()

f.close()

name=info.split(',')[0].lstrip().rstrip()

pwd=info.split(',')[1].lstrip().rstrip()

print('name:',name)

print('pwd:',pwd)

myip_=do_connect('essid','pwd')#家中网络的WIFI名称和密码

print(myip_)

main(myip_,dev_html,login_html,name,pwd)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值