376|7

9

帖子

0

资源

一粒金砂(中级)

网页控制后,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。还有一个问题是,如果运行过一会后,再在浏览器发送请求,会有延迟。


回复

867

帖子

0

资源

纯净的硅(初级)

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

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


回复

9

帖子

0

资源

一粒金砂(中级)

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

点评

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

回复

867

帖子

0

资源

纯净的硅(初级)

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

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

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


回复

867

帖子

0

资源

纯净的硅(初级)

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

点评

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

回复

9

帖子

0

资源

一粒金砂(中级)

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

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

 


回复

9

帖子

0

资源

一粒金砂(中级)

求解


回复

9

帖子

0

资源

一粒金砂(中级)

求解


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

最新文章 更多>>
    随便看看
    华大单片机UID读取说明

    华大单片机每颗芯片出厂前具备唯一的 10 字节设备标识号,包括 wafer lot 信息,以及 ...

    导热垫片及绝缘材料为电动工具提供散热及保护方案

    电动工具是一种由电动机或电磁力作为动力,通过传动结构驱动工作头进行作业的手持 ...

    WT6040F-8S 语音芯片说明书

    产品概述: WTN6040F为低成本,高性能的CMOS语音芯片。最大特点为可重复烧写。现有W ...

    90kw微油螺杆式空压机 家具厂用 英格索兰RS系列

    国家现在在全国大力号召进行节能减排。什么叫节能减排?节能减排就是节约能源、降低能 ...

    诚招 硬件测试工程师 年薪:20-50万 | 经验:5年以上 | 工作地:深圳市

    岗位职责: 1、制定测试计划,包括测试工作的时间和资源调配; 2、测试需求设计, ...

    Cyntec高密度uPOL模块6A

    Cyntec高密度uPOL模块是款非隔离DC-DC转换器,提供高达6A的输出电流。PWM开关调节 ...

    关闭
    站长推荐上一条 1/8 下一条

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

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

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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