• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • wifi模块可连接手机热点,但是连接不上电脑,但之前是可以连接的



    • ``openmv端代码`
      import network
      import sensor
      import time
      import socket
      from pyb import UART

      初始化摄像头

      sensor.reset()
      sensor.set_pixformat(sensor.RGB565) # 或sensor.GRAYSCALE
      sensor.set_framesize(sensor.QVGA) # 分辨率320x240
      sensor.skip_frames(time=2000)

      WiFi配置(STA模式连接到路由器)

      SSID = "Honor"
      PASSWORD = "12345678"

      初始化WiFi模块

      wlan = network.WLAN(network.STA_IF)
      wlan.active(True)
      wlan.connect(SSID, PASSWORD)

      等待连接成功

      while not wlan.isconnected():
      print("连接中...")
      time.sleep_ms(500)

      print("连接成功!IP地址:", wlan.ifconfig()[0])

      创建TCP服务器

      server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      server.bind(("0.0.0.0", 8080)) # 绑定所有IP,端口8080
      server.listen(2) # 允许1个客户端连接

      print("等待客户端连接...")
      client, addr = server.accept()
      print("客户端已连接:", addr)

      发送图像数据

      while True:
      img = sensor.snapshot()
      img_bytes = img.compress(quality=50).to_bytes() # JPEG压缩(质量50%)

      # 发送数据长度(4字节)
      header = len(img_bytes).to_bytes(4, 'little')
      client.send(header)
      
      # 发送图像数据
      client.send(img_bytes)
      
      import socket
      import cv2
      import numpy as np
      
      # 配置连接参数
      HOST = "192.168.201.39"  # 替换为OpenMV的IP
      PORT = 8080
      
      # 创建TCP客户端
      client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      client.connect((HOST, PORT))
      
      while True:
          # 读取4字节的帧长度
          header = client.recv(4)
          if not header:
              break
          length = int.from_bytes(header, 'little')
      
          # 读取完整图像数据
          data = b''
          while len(data) < length:
              packet = client.recv(length - len(data))
              if not packet:
                  break
              data += packet
      
          # 将字节转换为图像
          img = cv2.imdecode(np.frombuffer(data, dtype=np.uint8), cv2.IMREAD_COLOR)
      
          # 显示图像
          if img is not None:
              cv2.imshow("OpenMV Stream", img)
      
          # 按'q'退出
          if cv2.waitKey(1) & 0xFF == ord('q'):
              break
      
      # 清理资源
      client.close()
      cv2.destroyAllWindows()