2014 habe ich eine Reihe von ESP8266 gekauft und jetzt erst aus der
Schublade geholt. Auf den ESPs soll nun MicroPython installiert werden.
Da der ESP8266 nur 512 KBytes hat, wird ein MicroPython mit
eingeschränktem Umfang geflasht (kein Dateisystem).
https://micropython.org/download/esp8266-512k/
Ist es trotzdem möglich einen (kleinen) Webserver laufen zu lassen, der
mir Temperatur/Feuchtigkeit eines BMP180 übermittelt?
Stefan ⛄ F. schrieb:> Paul schrieb:>> nur 512 KBytes>> Mache das lieber mit Arduino, dann hast du kein Problem mit zu wenig> Speicher.
Ich habe eine Frage gestellt. Wenn Du sie nicht beantworten kannst,
solltest Du erst gar nicht schreiben.
Hallo,
gerade gesehen, meine Antwort wird genauso unerwünscht sein...
warum will man da unbedingt Python drauf haben?
Aus der ArduinoIDE ist es kein Problem, da wäre sogar noch Platz für
128k Filesystem.
Der BMP180 kann nur Temperator und Luftdruck, keine Feuchte.
Das kann aus der Serie der BME280.
Gruß aus Berlin
Michael
Michael U. schrieb:> Hallo,>> gerade gesehen, meine Antwort wird genauso unerwünscht sein...>> warum will man da unbedingt Python drauf haben?> Aus der ArduinoIDE ist es kein Problem, da wäre sogar noch Platz für> 128k Filesystem.> Der BMP180 kann nur Temperator und Luftdruck, keine Feuchte.> Das kann aus der Serie der BME280.>> Gruß aus Berlin> Michael
Man soll die Hoffnung nicht aufgeben, vielleicht findet sich noch jemand
der mir die Frage beantworten kann.
Danke für den BMP189-Hinweis. Feuchtigkeit bitte durch Luftdruck
ersetzen.
Hallo,
Paul schrieb:> Man soll die Hoffnung nicht aufgeben, vielleicht findet sich noch jemand> der mir die Frage beantworten kann.
keine Ahnung, ob es ein Forum zu MicrpPython gibt, ist für mich eher
eine Frage der Resourcen. Hier sind auch noch wenige der ersten
ESP8266-01 mit 512k im Einsatz. Fast immer genau für solche Sensoren
oder PIR und MQTT-Anbindung.
Brain 2.0 schrieb:> Du kannst auch den Speicherbaustein auf dem ESP wechseln.
würde ich bei den Preisverhältnissen nicht machen. Es sollte einer der
vom ESP8266 erkannten Typen sein und die genutzte Bauform ist auch recht
selten.
Beinchen passend biegen geht zwar, ist aber auch nicht die ideale
Lösung.
Ich habe es nur bei einem mal gemacht, lohnt sich einfach nicht
wirklich.
Gruß aus Berlin
Michael
Paul schrieb:> Ich habe eine Frage gestellt. Wenn Du sie nicht beantworten kannst,> solltest Du erst gar nicht schreiben.
OK, die Antwort lautet: Es ist möglich, aber nur mit erheblichem
Aufwand. Du musst dir dazu ein Modul in C programmieren und mit sehr
wenig Speicher (Flash und RAM) auskommen. Es ist mühsam und wird nicht
gut aussehen.
Ich gehe davon aus, dass du das in absehbarer Zeit nicht hinbekommen
wirst. Denn hättest du das nötige Know-How, dann hättest du diese Frage
nicht gestellt.
Diese unschöne Antwort wollte ich dir eigentlich ersparen, deswegen mein
Versuch dich mit Arduino abzulenken, wo das wesentlich unproblematischer
ist.
Ich habe keine eigene Erfahrung mit MicroPython, aber so wie ich die
MicroPython-Dokumentation interpretiere, ist das wesentliche Feature,
das in dem abgespeckten 512kB-Build deaktiviert ist, die Unterstützung
für ein Dateisystem. Und halt alle weiteren Features, die die
Verfügbarkeit eines Dateisystems erfordern.
Ein wirklich minimalistischer HTTP-Server, der einfach nur die Messwerte
eines Sensors zurückliefert (und auch nur im lokalen WLAN erreichbar
ist, Sicherheit etc. also keine Rolle spielt etc.), dürfte dann
tatsächlich möglich sein.
Der Webserver-Teil scheint sogar vglw. leicht zu implementieren zu sein
- in der MicroPython-Dokumentation findet sich bereits eine
Beispielimplementierung für einen minimalistischen HTTP-Server, gerade
mal ca. ein Dutzend Codezeilen lang, die für Deinen Zweck vermutlich nur
minimal verändert werden müsste:
http://docs.micropython.org/en/latest/esp8266/tutorial/network_tcp.html#simple-http-server
Das Abfragen des BMP180 wäre damit vermutlich noch das grössere Problem,
da bei Micropython offenbar kein fertiges Modul für diesen Sender
mitgeliefert wird.
Auch das dürfte allerdings kein allzu grosses Problem darstellen, denn
es gibt im Netz offenbar fertige in MicroPython geschriebene Module für
die Kommunikation mit diesem Sensor:
https://github.com/micropython-IMU/micropython-bmp180
Nachdem ich die Micropython-Dokumentation nochmal kurz überflogen habe,
fürchte ich, dass Dein Vorhaben doch nicht mit vertretbarem Aufwand
umsetzbar ist.
Denn aufgrund des fehlenden Dateisystems ist es bei den 512kb-Builds
offenbar schlicht nicht möglich, eine "main.py"-Micropython-Datei im
Flash zu speichern, die dann bei jedem Booten automatisch ausgeführt
wird.
Damit sind die 512kB-Builds offenbar wirklich nur geeignet, um ein Stück
MicroPython-Code mal kurz per REPL-Shell direkt auszuprobieren, für jede
sinnvolle Verwendung braucht man hingegen offenbar mehr als 512kB.