This commit is contained in:
2025-06-14 10:18:40 +02:00
parent 97a80599d6
commit 1c93f4fae7
8 changed files with 629 additions and 22 deletions

View File

@@ -4,35 +4,73 @@ from connection import connection
from machine import Pin
from time import sleep
import random
from machine import Pin, SPI, reset
from camera import *
import os
import gc
import usocket as socket
wait_pin = Pin(13, Pin.OUT)
good_pin = Pin(15, Pin.OUT)
bad_pin = Pin(14, Pin.OUT)
# Send the POST request with the raw image data as the body
url = f"http://{config.server}:{config.port}/{config.data_path}"
url = f'http://{config.server}:{config.port}/{config.data_path}'
spi = SPI(0,sck=Pin(18), miso=Pin(16), mosi=Pin(19), baudrate=8000000) # Pins for the Raspberry Pi Pico
cs = Pin(17, Pin.OUT)
cam = Camera(spi, cs, debug_text_enabled=True)
headers = {"Content-Type": "image/jpeg"}
addr = socket.getaddrinfo(config.server,config.port)[0][-1]
def send_image(image_file_path):
with open(image_file_path, "rb") as f:
image_data = f.read()
headers = {"Content-Type": "image/jpeg"}
response = urequests.post(url, headers=headers, data=image_data)
return response.json()
cam.capture_jpg()
with open(image_file_path, 'wb') as f:
f.write(b"")
cam.save_JPG(image_file_path)
with open(image_file_path, 'rb') as f:
s = socket.socket()
s.connect(addr)
# Send HTTP headers
s.send(b"POST %s HTTP/1.1\r\n" % config.data_path.encode())
s.send(b"Host: %s\r\n" % config.server.encode())
s.send(b"Transfer-Encoding: chunked\r\n")
s.send(b"Content-Type: application/octet-stream\r\n")
s.send(b"\r\n")
chunk_size = 512
while True:
chunk = f.read(chunk_size)
if not chunk:
break
hex_len = hex(len(chunk))[2:].encode()
one = hex_len + b"\r\n"
two = chunk + b"\r\n"
print(one)
s.send(one)
print(two[-5:])
s.send(two)
gc.collect()
# Final chunk to end the stream
s.send(b"0\r\n\r\n")
s.close()
return
while connection.isconnected():
good_pin.low()
bad_pin.low()
wait_pin.high()
if random.choice([True, False]):
response = send_image("1234.jpg")
else:
response = send_image("car2.jpg")
#if random.choice([True, False]):
# response = send_image("1234.jpg")
#else:
# response = send_image("car2.jpg")
response = send_image("image.jpg")
print(response)
wait_pin.low()
if response["status"]:
good_pin.high()
else:
bad_pin.high()
sleep(1)
if response:
if response["status"]:
good_pin.high()
else:
bad_pin.high()
sleep(5)