Pi Camera Module V2 - met python foto's maken en uploaden

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • nielsgeode
  • Registratie: Juli 2003
  • Laatst online: 19-09 09:46
Ik wil een Raspberry Pi 4B met Camera Module 2 elke x minuten een foto laten maken en die automatisch naar ftp laten uploaden. Ik ben al zeker 10 uur bezig en ik krijg het níet werkend. FTP credentials zijn zeker goed, die heb ik copy/paste en werken gewoon in WinSCP. Uiteraard hier even de werkelijke data vervangen voor wat anders ;)

Mijn code ziet er als volgt uit:
from picamera2 import Picamera2
from datetime import datetime
import time
from ftplib import FTP

camera = Picamera2()
camera.resolution = (3280, 2464)

ftp = FTP('server')
ftp.login('user','pass')

pics_taken = 0
max_pics = 10

while pics_taken <= max_pics:
camera.start()
time.sleep(2)
current_datetime = datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
filename = "base_" + current_datetime + ".jpg"
camera.capture(filename)
pics_taken += 1
time.sleep(60)
file = open(filename, 'rb')
ftp.storbinary('STOR ' + filename, file)
file.close()
ftp.quit()
De jpg's die ik lokaal krijg zijn selchts ca. 20 kb en 640x480 ipv 1.5MB en 3280x3464. Hoe krijg ik full-res jpg's?

In de command prompt krijg ik dit te zien, gevolgd door een knipperende cursor die blijft:
[0:06:45.923365002] [1792] INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[0:06:45.967353994] [1793] WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
[0:06:45.968612714] [1793] INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media1 and ISP device /dev/media2
[0:06:45.968792841] [1793] INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
Als ik interrupt met CTRL+C krijg ik dit:
Traceback (most recent call last):
File "/home/pi/photo6.py", line 9, in <module>
ftp = FTP('server')
File "/usr/lib/python3.9/ftplib.py", line 119, in __init__
self.connect(host)
File "/usr/lib/python3.9/ftplib.py", line 156, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout,
File "/usr/lib/python3.9/socket.py", line 831, in create_connection
sock.connect(sa)
KeyboardInterrupt
Wat gaat hier mis, hoe krijg ik het werkend?

Alle reacties


Acties:
  • 0 Henk 'm!

  • naarden 4ever
  • Registratie: Juni 2010
  • Laatst online: 18:12
Ik heb zelf te weinig ervaring met de Raspberry Pi om inhoudelijk op je vraag in te gaan, maar wat wel altijd een goede aanvalstactiek is op dit soort problemen is om het vraagstuk op te hakken in kleinere stukjes en die stuk voor stuk werkend te maken, om het dan later samen te voegen in je uiteindelijke programma.

Probeer dus even om los van elkaar werkende programmaatjes te maken voor het maken van een foto iedere x seconden en deze lokaal op te slaan/weer te geven op een display, en een los programmaatje waarmee je een lokaal bestand via ftp upload naar de server. Als deze los van elkaar goed werken, dan zal de combinatie ook wel goed werken. En als één van de twee programmaatjes niet doet wat het moet doen, heb je in ieder geval kunnen convergeren waar het probleem 'm precies in zit.

Succes! :)

Edit: Of het de oorzaak van je probleem is durf ik niet te zeggen, maar je krijgt wel een waarschuwing die mogelijk te maken heeft met je probleem:
[0:06:45.967353994] [1793] WARN RPI vc4.cpp:383 Mismatch between Unicam and CamHelper for embedded data usage!
Zie:
https://github.com/raspberrypi/picamera2/issues/231

Dit kan te maken hebben dat er twee versies van libcamera zijn geïnstalleerd en je programma probeert de oudere versie aan te spreken. Mogelijk dat de stappen uit deze GitHub thread je verder helpen.

[ Voor 25% gewijzigd door naarden 4ever op 02-07-2024 08:48 ]