comunicação wi-fi
Tutorial em vídeo 12 - Transmissão de imagem sem fios WIFI: https://singtown.com/learn/50005/
A placa de expansão oficial da OpenMV utiliza o módulo ATWINC1500, que consegue transmitir imagens.
Parâmetros detalhados: https://singtown.com/product/619
verificação de wi-fi


transmissão sem fios de imagens



transmissão sem fios das coordenadas de uma bola pequena
import csi, image, time, network, usocket, sys, json
csi0 = csi.CSI()
SSID ='OPENMV_AP' # SSID da rede
KEY ='1234567890' # Chave da rede (deve ter 10 caracteres)
HOST = '' # Utiliza a primeira interface disponível
PORT = 8080 # Porta arbitrária não privilegiada
green_threshold = ( 0, 80, -70, -10, -0, 30)
# Reinicia o sensor
csi0.reset()
csi0.framesize(csi.QQVGA)
csi0.pixformat(csi.GRAYSCALE)
# Inicializa o módulo wlan em modo AP.
wlan = network.WLAN(network.AP_IF)
wlan.config(ssid=SSID, key=KEY, channel=2)
wlan.active(True)
# Pode bloquear a execução à espera que o cliente se ligue
#print(wlan.wait_for_sta(10000))
def response(s):
print ('Waiting for connections..')
client, addr = s.accept()
# define o tempo limite do socket do cliente para 2s
client.settimeout(2.0)
print ('Connected to ' + addr[0] + ':' + str(addr[1]))
# Lê o pedido do cliente
data = client.recv(1024)
# O pedido do cliente deveria ser processado aqui
# Envia o cabeçalho multipart
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")
# Relógio de FPS
clock = time.clock()
# Inicia a transmissão de imagens
# NOTA: Desative a pré-visualização do IDE para aumentar o FPS de transmissão.
img = csi0.snapshot()
blobs = img.find_blobs([green_threshold])
if blobs:
for b in blobs:
img.draw_rectangle(b[0:4]) # retângulo
img.draw_cross((b[5], b[6])) # cx, cy
client.send(json.dumps(blobs))
client.close()
while (True):
# Cria o socket do servidor
s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
try:
# Associa e escuta
s.bind([HOST, PORT])
s.listen(5)
# Define o tempo limite do socket do servidor
# NOTA: Devido a um bug de firmware do WINC, o socket do servidor deve ser fechado e reaberto
# se o cliente se desligar. Utilize um tempo limite aqui para fechar e recriar o socket.
s.settimeout(3)
response(s)
except OSError as e:
s.close()
print("socket error: ", e)
#sys.print_exception(e)
Tal como na transmissão de imagens, introduza 192.168.1.1:8080 no browser\ para obter os dados json

Se quiser obter os dados no seu próprio código, basta fazer um GET a 192.168.1.1:8080\ para obter o JSON.
Por exemplo, em python:
import requests
r = requests.get('192.168.1.1:8080')
transmitir apenas uma imagem
import csi, image, time, network, usocket, sys
csi0 = csi.CSI()
SSID ='OPENMV_AP' # SSID da rede
KEY ='1234567890' # Chave da rede (deve ter 10 caracteres)
HOST = '' # Utiliza a primeira interface disponível
PORT = 8080 # Porta arbitrária não privilegiada
# Reinicia o sensor
csi0.reset()
# Define as definições do sensor
csi0.contrast(1)
csi0.brightness(1)
csi0.saturation(1)
csi0.gainceiling(16)
csi0.framesize(csi.QQVGA)
csi0.pixformat(csi.GRAYSCALE)
# Inicializa o módulo wlan em modo AP.
wlan = network.WINC(mode=network.WINC.MODE_AP)
wlan.start_ap(SSID, key=KEY, security=wlan.WEP, channel=2)
# Pode bloquear a execução à espera que o cliente se ligue
#print(wlan.wait_for_sta(10000))
def response(s):
print ('Waiting for connections..')
client, addr = s.accept()
# define o tempo limite do socket do cliente para 2s
client.settimeout(2.0)
print ('Connected to ' + addr[0] + ':' + str(addr[1]))
# Lê o pedido do cliente
data = client.recv(1024)
# O pedido do cliente deveria ser processado aqui
# Envia o cabeçalho multipart
client.send("HTTP/1.1 200 OK\r\n" \
"Server: OpenMV\r\n" \
"Content-Type: image/jpeg\r\n\r\n")
# Relógio de FPS
clock = time.clock()
# Inicia a transmissão de imagens
# NOTA: Desative a pré-visualização do IDE para aumentar o FPS de transmissão.
frame = csi0.snapshot()
cframe = frame.compressed(quality=35)
client.send(cframe)
client.close()
while (True):
# Cria o socket do servidor
s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
try:
# Associa e escuta
s.bind([HOST, PORT])
s.listen(5)
# Define o tempo limite do socket do servidor
# NOTA: Devido a um bug de firmware do WINC, o socket do servidor deve ser fechado e reaberto
# se o cliente se desligar. Utilize um tempo limite aqui para fechar e recriar o socket.
s.settimeout(3)
response(s)
except OSError as e:
s.close()
print("socket error: ", e)
#sys.print_exception(e)
Introduza 192.168.1.1:8080 no browser para ver uma imagem.