3186|7

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

网页控制后,repl连接会断开。 [复制链接]

 
import network,usocket
from machine import Pin,PWM,SoftI2C
import time
from ssd1306 import SSD1306_I2C

i2c = SoftI2C(sda=Pin(4), scl=Pin(5))
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
led = Pin(2, Pin.OUT)
ssid = '...'
password = '...'

def WIFI_Connect():

    WIFI_LED=led

    global wlan
    wlan = network.WLAN(network.STA_IF) 
    wlan.active(True)                   
    start_time=time.time()              

    if not wlan.isconnected():
        wlan.connect(ssid, password) 

        while not wlan.isconnected():

            WIFI_LED.value(1)
            time.sleep_ms(300)
            WIFI_LED.value(0)
            time.sleep_ms(300)

            if time.time()-start_time > 15 :
                break

    if wlan.isconnected():

        WIFI_LED.value(1)

        oled.fill(0)   
     
        oled.text('IP:'+ wlan.ifconfig()[0],0,38)
    
        oled.show()
        return True

    else:
        return False

if WIFI_Connect():
    s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
    s.setsockopt(usocket.SOL_SOCKET, usocket.SO_REUSEADDR, 1)
    s.bind(('', 80))
    s.listen(5)

S1 = PWM(Pin(12), freq=50, duty=0) 
S2 = PWM(Pin(13), freq=50, duty=0) 

def Servo(servo,angle):
    servo.duty(int(((angle+90)*2/180+0.5)/20*1023))

def web_page():
    if led.value() == 1:
        gpio_state = '打开'
    else:
        gpio_state = '关闭'
    
    # html code ...
    html = """<html><head><meta charset="UTF-8"><title>LEGO Robot Arm For Light</title> <meta name="viewport" content="width=device-width, initial-scale=1">
   <style>html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;}
  h1{color: #0F3376; padding: 2vh;}p{font-size: 1.5rem;}.button{display: inline-block; background-color: #e7bd3b; border: none; 
  border-radius: 4px; color: white; padding: 16px 40px; text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}
  .button2{background-color: #4286f4;}</style></head><body> <h1>LEGO Robot Arm For Light</h1> 
  <p>状态: <strong>""" + gpio_state + """</strong></p><p><a href="/?led=on"><button class="button">打开</button></a></p>
  <p><a href="/?led=off"><button class="button button2">关闭</button></a></p></body></html>"""
    return html

while True:
    if wlan.isconnected():
        conn, addr = s.accept()
        req = conn.recv(1024)
        req = str(req)
        led_on = req.find('/?led=on')
        led_off = req.find('/?led=off')
        if led_on == 6:
            led.value(1)
            oled.fill_rect(0, 56, 128, 64, 0)
            oled.text('Status:ON',0,56)
            oled.show()
            Servo(S2,70)
            time.sleep_ms(500)
            Servo(S1,20)
            time.sleep_ms(500)
            Servo(S1,50)
            time.sleep_ms(500)
            Servo(S2,-90)
        elif led_off == 6:
            led.value(0)
            oled.fill_rect(0, 56, 128, 64, 0)
            oled.text('Status:OFF',0,56)
            oled.show()
            Servo(S2,20)
            time.sleep_ms(500)
            Servo(S1,20)
            time.sleep_ms(500)
            Servo(S1,50)
            time.sleep_ms(500)
            Servo(S2,-90)
        else:
            pass
        response = web_page()
        conn.send('HTTP/1.1 200 OK\n')
        conn.send('Content-Type: text/html\n')
        conn.send('Connection: close\n\n')
        conn.sendall(response)
        conn.close()
    else:
        machine.reset()

运行后,只要在浏览器发送请求后,repl的连接就会断开,但是我并没有使用串口啊。板子是8266。还有一个问题是,如果运行过一会后,再在浏览器发送请求,会有延迟。

最新回复

你说连接舵机 ,有可能是 舵机启动时产生干扰,干扰到8266.   详情 回复 发表于 2021-11-23 19:19
点赞 关注
 
 

回复
举报

3227

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 

运行后,只要在浏览器发送请求后,repl的连接就会断开,但是我并没有使用串口啊。板子是8266。还有一个问题是,如果运行过一会后,再在浏览器发送请求,会有延迟。

----你说的问题太笼统了,建议你好好上网查询一下,webrepl相关的知识再试验一下。 

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

不是webrepl,我是浏览器控制舵机,就是在浏览器发送命令后,usb连接的repl就断开了。还有一个问题,就是刚启动的时候,程序运行正常,但是过一段时间后就掉线了,页面控制不了了。

点评

你说的太笼统了。什么硬件连接,什么东西都没说,网友怎么帮你。  要想别人帮你,先把问题描述清楚。  详情 回复 发表于 2021-11-23 19:17
 
 
 

回复

3227

帖子

0

TA的资源

五彩晶圆(中级)

4
 
fideliu 发表于 2021-11-23 17:22 不是webrepl,我是浏览器控制舵机,就是在浏览器发送命令后,usb连接的repl就断开了。还有一个问题,就是刚 ...

你说的太笼统了。什么硬件连接,什么东西都没说,网友怎么帮你。 

要想别人帮你,先把问题描述清楚。

 
 
 

回复

3227

帖子

0

TA的资源

五彩晶圆(中级)

5
 

你说连接舵机 ,有可能是 舵机启动时产生干扰,干扰到8266.

点评

还有一个问题就是程序跑一会,不知道是不是跑死了,浏览器打不开页面,不知道原因在哪    详情 回复 发表于 2021-11-24 09:26
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

6
 
tagetage 发表于 2021-11-23 19:19 你说连接舵机 ,有可能是 舵机启动时产生干扰,干扰到8266.

还有一个问题就是程序跑一会,不知道是不是跑死了,浏览器打不开页面,不知道原因在哪

 

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

7
 

求解

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 

求解

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表