POST-Images von ESP32-CAM (MicroPython) an den Server

Wenn Sie ESP32-CAM schnell verwenden möchten, können Sie Arduino IDE verwenden.

  1. Schließen Sie IO0 / GND kurz und schreiben Sie eine Skizze
  2. Wenn das Schreiben abgeschlossen ist, legen Sie es zurück und starten Sie es.

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-Version von Anfragen urequests

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

POST-Images von ESP32-CAM (MicroPython) an den Server
Poste ein Bild von Python auf Tumblr
Senden Sie Protokolldaten vom Server an Splunk Cloud
So veröffentlichen Sie ein Ticket über die Shogun-API
Post von Python nach Slack
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Postgresql] SSH-Verbindung zum externen DB-Server vom Client
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Post von Python auf Facebook Timeline
[Lambda] [Python] Von Lambda auf Twitter posten!
Terminalzuordnung von der Serverseite zu Amazon SNS (Python + Boto3)
So stellen Sie die Serverzeit auf japanische Zeit ein
Push-Benachrichtigung vom Python-Server an Android
Versuchen Sie es mit Pythons Webframework Django (1) - Von der Installation bis zum Serverstart
So bedienen Sie Linux von der Konsole aus
So greifen Sie von außen auf den Datenspeicher zu
[Python] Senden Sie das von der Webkamera aufgenommene Bild an den Server und speichern Sie es
SSH-Anmeldung am Zielserver von Windows mit einem Klick auf eine Verknüpfung
Senden Sie eine Nachricht von Slack an einen Python-Server
Melden Sie sich mit SSH bei einem Remote-Server an
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
So bedienen Sie Linux von außen Vorgehensweise
So messen Sie die Leitungsgeschwindigkeit vom Terminal aus
Laden Sie den VGG Face2-Datensatz direkt auf den Server herunter
[Python] Ich werde FTP auf den FTP-Server hochladen.
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Erfahren Sie, wie Sie Bilder aus dem TensorFlow-Code aufblasen
Die Geschichte vom Umzug von Pipenv zur Poesie
Der Typ, der die Fitbit-Daten vom Server erhält
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern
Das beste Werkzeug, um Ihre Privatsphäre vor Fotos zu schützen ...!
Ich möchte den Dateinamen von DataLoader sehen
Mit matplotlib erstellte Bilder werden von dvi nach pdf verschoben
[Python] So entfernen Sie doppelte Werte aus der Liste
So erstellen Sie einen Artikel über die Befehlszeile
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
POST-Nachrichten von Python an Slack über eingehenden Webhook
Ich möchte Bilder von Katzen von Instagram erkennen
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Löschen Sie das cron.log regelmäßig, um ein Wachstum zu verhindern.
Versuchen Sie, NETCONF (ncclient) von der Software zum Router einzustellen
Ich wollte die Python-Bibliothek von MATLAB verwenden
Derjenige, der den grafisch darstellt, der die Fitbit-Daten vom Server erhalten hat
So starten Sie Jupyter Notebook sofort vom Terminal aus
Der erste Schritt, um Blender von Python verfügbar zu machen
Posten Sie mit der API auf Twitter in Ihrem Konto
Farbpunkte entsprechend dem Abstand von der Regressionskurve
Fügen wir es der Umgebungsvariablen mit dem Befehl ~ hinzu
Ich habe die Chainer-Referenz gelesen (von Zeit zu Zeit aktualisiert).
ODBC-Zugriff auf SQL Server von Linux mit Python
Senden Sie mithilfe von Google Cloud Messaging für Chrome eine Nachricht vom Server an die Chrome-Erweiterung
Python-Skript, das den Status des Servers über den Browser überprüfen kann
Ich habe versucht, den Trend der Anzahl der Schiffe in der Bucht von Tokio anhand von Satellitenbildern zu ermitteln.