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()