Wenn Sie ESP32-CAM schnell verwenden möchten, können Sie Arduino IDE verwenden.
Das ist wirklich mühsam.
Hier kommt MicroPython ins Spiel.
Zitiert aus der offiziellen Dokumentation
MicroPython funktioniert auf einer Vielzahl von System- und Hardwareplattformen.
Da ESP32-CAM derzeit nicht unterstützt wird, gibt es keine Bibliothek für die Verwendung der Kamera. (Es gibt eine benutzerdefinierte FW, die die Kamera verwenden kann, und diesmal habe ich sie verwendet) Darüber hinaus ist MicroPython eine Teilmenge von Python, sodass einige Methoden und Module nicht unterstützt werden.
MicroPython verfügt über eine Bibliothek namens urequest, die fast wie Anforderungen verwendet werden kann. Einfach zu installieren.
import upip
upip.install('urequests')
Als ich es auf diese Weise installiert habe, konnte ich die Methode jedoch nicht aufrufen. Also habe ich den aus dem offiziellen MicroPython-Repository gezogenen auf esp32 übertragen und verwendet. urequest.py Die Übertragung auf esp32 ist mit ampy einfach.
#Installieren Sie ampy
$ pip install adafruit-ampy
#Dateiübertragung zu esp32
$ ampy -p /dev/tty.<Je nach Umgebung> put <Datei>
Anfangs genau wie bei der Verwendung von Python-Anfragen
urequests.post(url, files={'image': open('Bilddatei', 'rb)})
Ich habe mich gefragt, ob ich dorthin gehen könnte, aber urequests hat keine Dateien.
Als Ergebnis verschiedener Untersuchungen stellte ich fest, dass ich es einmal zu JSON machen konnte.
buf = camera.capture()
img_byte = base64.b64encode(buf)
img_json = ujson.dumps({"image": img_byte})
res = urequests.post(url, data=img_json)
Ich habe auf diesen Artikel verwiesen. Bilddaten als JSON in Python über das Netzwerk senden / empfangen
Die Verarbeitung auf der empfangenen Serverseite (Flask) sieht folgendermaßen aus
data = request.data.decode('utf-8')
data_json = json.loads(data)
image = data_json['image']
image_dec = base64.b64decode(image)
data_np = np.frombuffer(image_dec, dtype='uint8')
decimg = cv2.imdecode(data_np, 1)
cv2.imwrite(filename, decimg)
Der Zweck von "POST das von ESP32-CAM aufgenommene Bild" wurde vorerst erfüllt. Klicken Sie hier für das, was ich gemacht habe ↓ ESP32-CAM_ImagePost
Recommended Posts