星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 通过WiFi发送数据时,要是给他定时一定时间之后再发送数据,在浏览器输入的网址进行刷新,总是进不去



    • 通过WiFi发送数据时,要是给他定时一定时间之后再发送数据,在浏览器输入的网址进行刷新,总是进不去。
      openmv中显示这样
      0_1553406940205_8c342f26-4617-4846-82bb-c189136e0ac5-image.png
      手机显示这样0_1553407020622_5a9ae0d6-18fa-401f-92a8-f5a41058851c-image.png



    • 如果涉及代码,需要报错提示与全部代码文本,请注意不要贴代码图片



    • 代码并没有报错,只是在数据传输的时候浏览器刷新不出来。

      请在这里粘贴代码import sensor, image, time, network, usocket, sys, json
      wlan = network.WINC()
      print("\nFirmware version:", wlan.fw_version())
      while(True):
          while (True):
              i=0
              RSSI = []
              scan_result = wlan.scan()
              for ap in scan_result:
                  print("Channel:%d RSSI:%d Auth:%d BSSID:%s SSID:%s"%(ap))
                  a=scan_result[i][1]
                  i=i+1
                  RSSI.append(a)
              #print("所有的信号强度:%s"%(RSSI))
              MAXRSSI = max(RSSI)
              c=RSSI.index(max(RSSI))
              #print("ap的索引:%d"%(c))
              b=scan_result[c][3]
              d=scan_result[c][4]
              print("最强信号的SSID名称:%s"%(d),"最强信号的MAC地址:%s"%(b),"信号最强:%d"%(MAXRSSI))
              time.sleep(7000)
          
              SSID=d
              KEY='12345678'
              wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK)
              print("当前所连接的WIFI信息:%s"%(wlan.ifconfig()))
              print()
              break
          
          
          # We should have a valid IP now via DHCP
          print(wlan.ifconfig())
          
          # Create server socket
          s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
          
          def response(s):
              print ('Waiting for connections..')
              client, addr = s.accept()
              # set client socket timeout to 2s
              client.settimeout(2.0)
              print ('Connected to ' + addr[0] + ':' + str(addr[1]))
          
              # Read request from client
              data = client.recv(1024)
              # Should parse client request here
          
              # Send multipart header
              client.send("HTTP/1.1 200 OK\r\n" \
                          "Server: OpenMV\r\n" \
                          "Content-Type: application/json\r\n" \
                          "Cache-Control: no-cache\r\n" \
                          "Pragma: no-cache\r\n\r\n")
          
          
          
              client.send(json.dumps(b))
              client.close()
          
          while (True):
              # Create server socket
              s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
              try:
                  # Bind and listen
                  HOST ='0.0.0.0'     # Use first available interface
                  PORT = 8080         # Arbitrary non-privileged port
                  s.bind([HOST, PORT])
                  s.listen(5)
          
                  # Set server socket timeout
                  # NOTE: Due to a WINC FW bug, the server socket must be closed and reopened if
                  # the client disconnects. Use a timeout here to close and re-create the socket.
                  s.settimeout(3)
                  response(s)
              except OSError as e:
                  s.close()
                  print("socket error: ", e)
                  #sys.print_exception(e)
                  time.sleep(60000)
                  break
      
      


    • 在执行完第一个break的时候,好像得需要等一段时间才能执行下面的代码,这是怎么回事,该怎样改进呢



    • 定时一定时间之后再发送数据

      是什么意思



    • 是最后一个 while break,让它这个数据传送持续一段时间,之后再从头开始执行



    • break是跳出循环。和持续一段时间没关系。



    • 我的意思是想先循环一段时间再从头开始执行



    • 我不懂你要做什么。



    • 我这是个定位的程序,通过scan扫描连接最近的WiFi,然后将麦克地址在浏览器查看,过一段时间传送一次。但是现在出现了上面的问题请问怎么解决。



    • 过一段时间传送一次是什么意思。
      只能是浏览器发出请求,OpenMV检查到请求再处理回应。这个过程没有“过一段时间传送一次”的情况。



    • 第一次浏览器可以成功查看,当第二次扫描,然后连接到最强的WiFi,这时浏览器上刷新不出来,无法查看到连接最新的麦克地址