Hallo Gemeinde. Ich probiere mich gerade an dem ESP8266. Unter Linux habe ich mit dem esptool.py eine NodeMCU-Firmware flashen können. Jetzt hatte ich erwartet, dass ich endlich mal vetnünftige Zeichen unter einem Prog wie hterm (Windows) oder putty (Linux) sehe. Fehlanzeige. Ich habe natürlich mit den Baudrate herumgespielt, leider nur Nonsens auf der Leitung. Woran kann das noch liegen? Ich habe eine bin-Datei von folgender Seite an die Adresse 0x00000 erfolgreich geflasht. https://github.com/nodemcu/nodemcu-firmware/releases/tag/0.9.6-dev_20150704 Muss ich nochmehr tun? Bin echt am Verzweifeln... Danke!
Der Bootloader sollte sich mit einer Baudrate von 74880 Bit/s melden.
Im Ernst? Wo kommt denn die "krumme" Zahl her? Das ist wohl kein Standardwert...
Die CPU fährt mit 26MHz hoch und schaltet dann auf 40MHz um. Hans
Stefan S. schrieb: > Ich habe eine bin-Datei von folgender Seite an die Adresse 0x00000 > erfolgreich geflasht. > > https://github.com/nodemcu/nodemcu-firmware/releases/tag/0.9.6-dev_20150704 Das ist leider eine wirklich urururalte Version der NodeMCU-Firmware. Würde ich definitiv von abraten, mittlerweile ist die NodeMCU-Firmware irgendwo bei Version 2.1. Ein aktuelle, vorkompilierte NodeMCU-Firmware mit den wichtigsten Modulen findest Du z.B. hier: https://github.com/oyooyo/nodemcu-firmware/raw/uuid.space-dev/bin/nodemcu-firmware.bin Funktioniert allerdings nur auf ESP8266 mit mindestens 1MB Flash-Speicher. Ansonsten ist der Standardweg, sich unter https://nodemcu-build.com/ eine eigenes Firmware-Image mit den gewünschten Modulen erstellen und per eMail zuschicken lassen. Was die merkwürdige Baudrate von 74880 betrifft: Die ist zwar korrekt, betrifft aber wirklich nur die allerersten Zeichen direkt nach dem Booten mit einer kurzen Statusmeldung. Wird üblicherweise einfach ignoriert. Aktuelle NodeMCU-Firmwares benutzen standardmässig 115200. Wenn Du also eine aktuellen NodeMCU-Firmware flashst, das Terminalprogramm auf 115200 einstellst und dann resettest, sollte (nach einigen unleserlichen Zeichen) dann eine leserliche Boot-Meldung mit "NodeMCU" kommen. Die oben erwähnte uralte 0.9.6 Version benutzte allerdings glaube ich standardmässig noch eine andere Baudrate.
Okay, mittlerweile läuft es richtig gut. Ich habe die NodeMCU-Firmware drauf und ich bekomme den Lua-Interpreter unter Esplorer (und unter hterm) angezeigt. Ein simples Programm, um den ESP8266 als AccessPoint zu verwenden hat so weit auch funktioniert. Allerdings bekomme ich bei dem Versuch den ESP8266 als Webserver zu betreiben immer eine "out of memory" Fehlermeldung. Als Sourcecode zeile wird immer
1 | srv:listen(80,function(conn) |
angekreidet. Das müsste doch eigentlich funktionieren. Der ESP8266 hat bis hierhin eine IP-Adresse von meiner FritzBox erhalten und wird auch unter dem FritzBox-Webinterface aufgelistet als WLAN-Teilnehmer.
Ich habe den Code von dieser Seite hergenommen: https://randomnerdtutorials.com/esp8266-web-server/
1 | wifi.setmode(wifi.STATION) |
2 | wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD") |
3 | print(wifi.sta.getip()) |
4 | led1 = 3 |
5 | led2 = 4 |
6 | gpio.mode(led1, gpio.OUTPUT) |
7 | gpio.mode(led2, gpio.OUTPUT) |
8 | srv=net.createServer(net.TCP) |
9 | srv:listen(80,function(conn) |
10 | conn:on("receive", function(client,request) |
11 | local buf = ""; |
12 | local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); |
:
Bearbeitet durch User
...wenn ich mich nicht irre, fehlt ein
1 | wifi.sta.connect() |
...plus dem üblichen Gedöns, dass die Verbindung aufgebaut ist, bevor man das Eigentliche startet...
Stefan S. schrieb: > Ich habe den Code von dieser Seite hergenommen: > > https://randomnerdtutorials.com/esp8266-web-server/ > >
1 | > wifi.setmode(wifi.STATION) |
2 | > wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD") |
3 | > print(wifi.sta.getip()) |
4 | > led1 = 3 |
5 | > led2 = 4 |
6 | > gpio.mode(led1, gpio.OUTPUT) |
7 | > gpio.mode(led2, gpio.OUTPUT) |
8 | > srv=net.createServer(net.TCP) |
9 | > srv:listen(80,function(conn) |
10 | > conn:on("receive", function(client,request) |
11 | > local buf = ""; |
12 | > local _, _, method, path, vars = string.find(request, "([A-Z]+) |
13 | > (.+)?(.+) HTTP"); |
14 | >
|
Mal ein paar Sachen, die mir da auffallen: - Das ist definitiv nicht der komplette Code, danach muss noch etwas kommen - Das Code-Fragment sieht aus, als ob es für eine alte Version der NodeMCU-Firmware geschrieben wurde. Du hast aber leider nicht geschrieben, welche Version Du der NodeMCU-Firmware Du verwendest. - Die Fehlermeldung besagt ja bereits explizit, dass Du zuviel RAM verbrauchst; höchstwahrscheinlich genau in dem Teil des Codes, den Du unterschlagen hast. Bei Verwendung von NodeMCU-LUA darf man nicht verschwenderisch mit RAM umgehen, idealerweise sollte man vielmehr gewisse Tricks kennen, um RAM zu sparen. Wenn man mit dem verfügbaren RAM partout nicht hinkommt, dann im Zweifelsfall lieber zu C wechseln, da kennt man normalerweise keinen RAM-Mangel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.