eine kurze Zusammenfassung der Gegebenheiten:
Ich habe einen ESP32, welche Sensordaten einliest und an einen Server schicken soll. Programmiert habe ich mit Micropython (also quasi Python ) in Thonny.
Die Daten sollen mittels eines Post-Requests mit einem JSON im Body (Format {"value": wert}) gesendet werden. In meinen Tests, durchgeführt mittels Einmaldurchlauf, dann stoppen des Programms und dann Neustart hat es funktioniert.
Nun aber das Problem: Wenn ich den Code mehrmals hintereinander (ob mit mehreren Daten, wie Temperatur und Feuchtigkeit oder nur Temperatur im Loop) senden möchte funktioniert das nur beim ersten Mal danach kommt die Fehlermeldung: "OSError: [Errno 12] ENOMEM". Das liegt anscheinend irgendwie am vollen RAM, aber wenn ich den abfrage, scheint Platz zu sein. Ebenfalls bringen Befehle zum "Platzschaffen" (unten auskommentiert) nichts...
Muss ich das request oder temp_data vor dem erneuten Beschreiben irgendwie vorbereiten, leeren oder so? Bin leider kein Fachmann auf dem Gebiet.
Hier die Schleife, wie gesagt der einmalige Testdurchlauf ohne Schleife hat funktioniert.
Code: Alles auswählen
while True:
url = ""
temp = 123456.789 #zum Testen
temp_data = { "value": temp}
r = urequests.post(url, json=temp_data)
#del temp_data
#del temp
#del json
#del url
#gc.collect()
time.sleep(1)
Beste Grüße, Simon