als experte für die blöden fragen hier sei wieder mal eine gestattet : kann ich ein esp8266-modul an einen atmega2560 (arduino mega) hängen, ohne rumgebastel am modul seriell daten draufgeben, und diese am anderen ende vom wlan im pc lesen ? (die hw geht, der 8266 spielt acesspoint, dhcp geht, ping auch .. aber was macht jetzt die firmware im modul ??) http oder telnet bringen keine verbindung ..
Reiner D. schrieb: > http oder telnet bringen keine verbindung Was erwartest du? Läuft auf dem ATMega ein Webserver (http) oder ein Telnet-Server?
ich dachte die firmware im esp macht die höhere kommunikation. ich schicke dem ding nur bytes auf der seriellen schnittstelle. oh.
Reiner D. schrieb: > http oder telnet bringen keine verbindung .. schau mal hier https://learn.adafruit.com/esp8266-temperature-slash-humidity-webserver/overview Je nach verwendetem ESP8SP8266-Modul brauchts nicht mal einen µC.
Reiner D. schrieb: > ich schicke dem ding nur bytes auf der seriellen schnittstelle. Richtig! Du musste dem Modul sagen was es tun soll. Dann tut es das auch, oder es meldet einen Fehler. Siehe bei Google: "esp8266 at commands"
vielen dank ! ich verstehs, es wird ein webserver im esp implementiert mittels der arduino-ide. arduino brauchts dann gar nicht mehr .. ich will aber folgendes : ich hab den arduino mega als prozessor in nem fahrzeug (programmiere allerdings in c++). der macht messungen, und die messwerte (byte) möchte ich am pc graphisch darstellen. telemetrie sozusagen. der 8266 soll nur die verdammten bytes an den pc schicken, wenn die als http kommen muss ich halt dort parsen. ich dachte nun, die fw des 8266-moduls kann das ohne neuprogrammierung ... -> letzte antwort zu spät gesehen : danke für den tipp mit den modem-kommandos, bin schon beim lesen.
:
Bearbeitet durch User
Reiner D. schrieb: > ich dachte nun, die fw des 8266-moduls kann das ohne neuprogrammierung Ja das geht!
Ein lesenswerter Artikel: https://blog.thesen.eu/stabiler-http-1-1-wlan-webserver-mit-dem-esp8266-microcontroller/ Reiner D. schrieb: > tipp mit den modem-kommandos Zu der Variante mit den "modem-kommandos" steht da: > Es hat zwar funktioniert, wurde aber regelmäßig instabil. Und es ist > offen gesagt relativ furchtbar zu programmieren. Das kann ich bestätigen. Klar, mit viel Aufwand bekommt man auch diese Variante stabil: Einen Balkon nach dem anderen dran bauen.
:
Bearbeitet durch User
Wenn du es ohne zusätzliche Software am PC abfragen willst, gehts recht einfach über HTTP. Du verbindest den PC zu dem Accesspoint (also dem ESP-Modul). Beim ESP startest du einen Server auf port 80
1 | AT+CIPMUX=1 |
2 | AT+CIPSERVER=1,80 |
Dann gibst du im browser auf dem PC die IP-Adresse vom ESP-Modul ein: => http://192.168.0.30:80 Beim ESP wartest du nun auf den eingehenden String "GET / HTTP" und wenn du ihn bekommst schickst du einfach deine messdaten per "AT+CIPSEND=<laenge_des_messdaten_Strings>" und dann feuerst du deinen String durch
:
Bearbeitet durch User
...ich finde diese Module auch ganz interessant und wollte mich mal damit befassen.... Reiner D. schrieb: > vielen dank ! ich verstehs, es wird ein webserver im esp > implementiert ...das kann kann ich mir aber nicht vorstellen?! Reiner D. schrieb: > ich dachte nun, die fw des 8266-moduls kann das ohne neuprogrammierung > ... grundsätzlich denke ich man kann das Modul über AT-Befehle nur initialisieren und in einen Datenmodus versetzen, ähnlich wie bei Bluetooth oder GSM-Modulen oder? Jetzt liegt es an Dir die Daten in ein standardisiertes oder eigenes Protokoll zu packen oder eben als Rohdaten zu übertragen... Kenne das Modul aber wie gesagt noch nicht :)
danke, masterfx ! (wieder zu langsam) auf 115200 baud kommen meine at-befehle im klartext zurück, baudrate und so scheint zu stimmen. aber er tut nix. weder im browser noch telnet 192.168.4.1 80 klappen. er findet die ip offenbar, aber dann kommt "verbindung fehlgeschlagen". @bestromer : bin mir eigentlich sicher, daß das in dem artikel so gemacht wird.
:
Bearbeitet durch User
kommt auf AT<CR><LF> ein OK zurück? Es ist wichtig dass du Carrige Return und Line Feed sendest!
ich sedne den at-string mit docklight, nem terminalprogramm. das setzt doch die endezeichen selber dahinter, oder ? jedenfalls kommen alle zeichen gespiegelt zurück, aber nur bei der richtigen baudrate, werden offenbar also schon übertragen.
Timmo H. schrieb: > Beim ESP startest du einen Server auf port 80 ...startest Du da wirklich einen Server? Ich denke da wird nur ein Port (in dem Fall Port80) im IP-Stack geöffnet, also ein Socket der jetzt benutzbar ist. Schliesslich bekommst Du ja die Rohdaten vom PC, also die HTTP-Anfrage welche Du nun beantworten musst, also muss der Server im Atmega "implementiert" werden ;-) Wenn die Http-Anfrage konform beantwortet werden soll,dann muss eben dein Atmega auch in der Lage sein dieses Protokoll bedienen zu können und man kann jetzt ganze Webseiten zurück geben... Ansonsten kannst Du eben auch mit Telnet auf das Modul zugreifen und übers Terminal normal Zeichen austauschen.....in dem Fall musst Du Deinen Telnet-Clienten eben überreden auf Port80 zu connecten, oder Deinem Modul den Telnet-Port (ich glaube Port22) öffnen lassen....
Das Modul empfängt deine Befehle dann schon mal und weil die Echo Funktion aktiv ist sendet es sie auch zurück, aber wenn auf AT kein OK kommt erkennt es deine Befehle nicht. Bei mir lag es daran das ich kein \r\n sondern nur \n gesendet habe. Guck mal ob du das bei deinem Terminalprogramm einstellen kannst.
mit "telnet 192.168.4.1 80" probier ich das ja, oder ? (das ist die ip vom esp) -> es konnte keine verbindung zu dem host aufgebaut werden. hab auch andere prots probiert. wenn ich einen apache so anspreche, kann ich ihm mit GET daten rauskitzeln.
Reiner D. schrieb: > mit "telnet 192.168.4.1 80" probier ich das ja, oder ? > > (das ist die ip vom esp) > > -> es konnte keine verbindung zu dem host aufgebaut werden. hab auch > andere prots probiert. wenn ich einen apache so anspreche, kann ich ihm > mit GET daten rauskitzeln. Du musst dem esp sagen, dass er auf Port 80 lauschen soll. Dein atmega2560 muss die empfangenen Daten lesen, verarbeiten und eine Antwort zum esp übertragen.
Reiner D. schrieb: > wenn ich einen apache so anspreche, kann ich ihm > mit GET daten rauskitzeln. der Apache ist ja auch das Software-Konstrukt was dir fehlt, Dein Controller muss jetzt das GET beantworten ;-) Ein PC ohne Apache(WEB-Server Software) hat eine Netzwerkschnittstelle die Du konfigurieren kannst und weiter nix, also analog wie bei Deiner Zusammenstellung ---> das Modul ist die Netzwerkschnittstelle welche Du konfiguriert hast und jetzt brauchst Du eine Software auf deinem Controller um die eingehenden Daten von Deiner Schnittstelle verarbeiten zu können, also z.B. auf das GET antworten.... oder sehe ich das falsch ;-)
Ulrich hat es etwas knapper formuliert, aber da sind ja schon Zwei der gleichen Meinung :)
docklight ist mist. mit HTERM gehts ! AT mit \r\n dahinter bringt ein wunderschönes OK. dann CIPMUX und CIPSERVER, und dann mit dem browser oder telent gekitzelt kommen nach GET auch massig daten vom mozilla-server. CIPSEND = 1 und dann ein Byte geht aber noch nicht ...
Reiner D. schrieb: > -> es konnte keine verbindung zu dem host aufgebaut werden. Dann stimmt die Konfiguration über die AT-Befehle nicht...Du schreibst ja,das ein Ping funktioniert hat, ist das immernoch so? Kannst Du irgendwie überprüfen ob wirklich der port 80 geöffnet ist? Versucht Dein Telnet-Client wirklich auf Port 80 zu verbinden? mit Telnet sollte es auf jeden Fall klappen,da dies eine einfache Terminalemulation ist und keine Antwort erwartet, es muss aber auch auf den Socket(IP/Port) verbinden können..... Es stimmt also etwas mit Deinem Socket nicht :)
ist verzwickt.. im einzelnen : AT \r\n -> OK AT+CIPMUX=1 \r\n ->OK AT+CIPSERVER = 1,80 \r\n ->OK jetzt kommt : 0,CONNECT+IPD,0,287:GET HTTP 1.1 HOST (usw....) Connection: keep-alive jetzt schicke ich AT+CIPSEND=2 \r\n -> ERROR 0,CLOSED
:
Bearbeitet durch User
der fehler (und das problem) ist der CIPSEND-befehl. bei CIPMUX=1 (nötig für serverbetrieb) muß der als parameter die id und die länge der nachricht haben. ich kann aber nicht finden, wie ich die id rauskriege ...
jetzt gehts, hab einfach geraten : id=0 der esp sagt nun auf AT+CIPSEND = 0,2 -> OK und wenn ich 2 byte schicke kommt : -> busy, RECV 2 Bytes, Send OK das im pc parsen ist eher ne leichtere übung hoffe ich ;-)
> geraten
Wenn du die AT Kommandos nochmal sorgfältig untersuchst, wirst du
feststellen, dass dir der ESP die ID frei Haus liefert.
Nutze diese ID!
Mit raten wirst du in eine Falle tappen.
Helmut H. schrieb: > Lesenswert: > > http://esp8266-server.de/ Wenn er denn den ESP standalone betreiben wollte, wäre das evtl. hilfreich. Aber er möchte ihn an einen Arduino Mega2560 klemmen. Warum auch immer.... Der ESP hat mehr Speicher als der Mega, schnelleren Tackt, nur weniger Beinchen.
wenn ich nicht irre, muß ich dann erstmal mit nem client (pc) einen request schicken, der dann beantwortet wird und esp-seitig am terminal die id abgibt, z.b. : +IPD,0,313:GET/ ... wobei hier wieder die 0 die id ist. @combie : weil ich den arduino eh schon im fahrzeug hab, und der sich bislang eher langweilt.
:
Bearbeitet durch User
Helmut H. schrieb: > Lesenswert: > > http://esp8266-server.de/ Sehr interessant...scheint ja wirklich so zu sein,das man ein kleines Web-Serverchen direkt auf der CPU zum laufen bringen kann, cool;-)
Bestromer schrieb: > Helmut H. schrieb: >> Lesenswert: >> >> http://esp8266-server.de/ > > Sehr interessant...scheint ja wirklich so zu sein,das man ein kleines > Web-Serverchen direkt auf der CPU zum laufen bringen kann, cool;-) Ja! Bei mir im Einsatz. Meine ersten Knoten bestanden aus einem ProMini+ESP8266-01 Ich hatte keine Lust mehr mich mit dem fürchterlichen AT Gedöns herumzuschlagen. Das ist echt gruselig. Auch hat der ATMega328 zu wenig Ressourcen um das WEB Gedöns vernünftig abzuhandeln. String Verarbeitung in 2KB, ist echt knapp. Jetzt nutze ich die ESP8266-01 und ESP8266-201 Standalone. Nach einspielen der ESP Erweiterung in die Arduino IDE lässt sich damit auch recht gut umgehen. Die Anzahl der angepassten Libs ist noch etwas mau. Also noch recht viel Eigenentwicklung nötig. Aber die Unterstützung wird täglich besser. Der ESP hat so ziemlich alles mehr, besser und schneller, als die (Arduino) AVRs. Nur weniger Beinchen.
zunächst mal zusammenfassend (danke an alle !!!) : der esp8266 kann mit ein paar wenigen at-commands als webserver am arduino betrieben werden. damit kann man eine anzugebende zahl zeichen übers wlan senden. weiter : wenn man sich auf sendeseite (arduino) mit den zeichen ein wenig mühe gibt, kann man also auch xml schicken. das xml kann man am empfänger (=client) z.b. in visual basic sehr einfach mit microsofts xmldom parsen, und damit hat man die daten. aber : das ist ziemlich viel protokolloverhead, ich fürchte mit schnelleren messdaten (ich hab z.b. 100hz) wird das eng. also : udp-übertragung ohne http. was mir hier völlig unklar ist, ist die frage wie man auf clientseite hier nen udp/ip-socket aufbaut und die daten parst. (gegoogelt hab ich natürlich, aber ich scheine unbegabt) korrektur : https://www.youtube.com/watch?v=15H2_ikPr9E
:
Bearbeitet durch User
Scheinst ähnliche Anforderungen zu haben, Michael hat Software entwickelt um mit der NetIO-App eine schöne Applikation als Haussteuerung nur mit einem ESP-01, I2C-Bausteinen, 16-Opto_In und 16 ULN_Out auf 6er Hutschienenbasis zu machen. Da ist XML-Ausgabe auch gern gesehen ;-) ESP meldet sich mit der Erklärung wie was funktioniert: PCF8574 Adr 000-Input 1-7 Adr 001 Input 8-16 PCF8574 Adr 010-Output 1-7 Adr 011 Output 8-16 http://Dein IP/Setstate.php?PinNr=9&State=1 -Ausgang 9 einschalten State kann 0,1 oder T sein T-Bedeutet Zuschand wechseln http://Dein IP/Getstate.php -Input Staus abfragen http://Dein IP/Getstate.xml -Daten im XML-Format So ähnlich wie Pokeys Haus mit Pokeys57E auf http://netio.davideickhoff.de/de/projects/
Wenn es darum geht einen Web-Server auf dem ESP laufen zu lassen würde sich auch die alternative Firmware NodeMCU anbieten. Diese integriert einen LUA Interpreter auf dem ESP, wodurch man den Controller im ESP quasi standalone betreiben kann ohne einen externen Controller anzuschließen. Damit ist ein Webserver sehr einfach zu programmieren. NodeMCU beherrscht GPIO, I2C, SPI und OneWire von Haus aus, wodurch etliche gängige Sensoren und LCDs sehr einfach ansteuerbar sind. Damit rentiert sich zumindest der im ESP integrierte 80MHz Controller etwas mehr. :) Ciao, Rainer https://github.com/nodemcu/nodemcu-firmware
80MHz? Per Software auf 160MHz umschaltbar. LUA Interpreter? Die Sprache gefällt mir nicht so.... Vielleicht bin ich auch nur zu faul, diese auch noch zu lernen. Bin mit C/C++ auf dem ESP zufrieden. Aber wer es mag, mag es so tun .... ;-)
Ulrich F. schrieb: > LUA Interpreter? > Die Sprache gefällt mir nicht so.... > Vielleicht bin ich auch nur zu faul, diese auch noch zu lernen. Lua ist etwas gewöhnungsbedürftig, das ist aber bei den meisten Interpretersprachen so finde ich (z.B. auch Python). Hat man sich aber mit der Syntax mal angefreundet sind diese ganz brauchbar. > Bin mit C/C++ auf dem ESP zufrieden. Ich bin auch eher ein Freund von C/C++, aber eine Interpretersprache bietet manchmal doch ein paar Vorteile. Z.B. dass man den ESP live programmieren und seinen Code testen kann, ohne jedes mal ein neues Programm zu flashen. Und Lua bietet eine recht gute High-Level API, wodurch z.B. ein Webserver in wenigen Zeilen Code programmiert ist. Dass die Effizienz natürlich bei weitem nicht an ein C/C++ Programm heran reicht ist auch klar. Aber ich denke für viele kleine Aufgaben lassen sich mit Lua sehr schnell funktionierende Programme erstellen ohne extra Compiler, IDE, Flasher. > Aber wer es mag, mag es so tun .... ;-) War ja auch nur als Alternative ein Vorschlag. :)
Reiner D. schrieb: > der esp8266 kann mit ein paar wenigen at-commands als webserver am > arduino betrieben werden. damit kann man eine anzugebende zahl zeichen > übers wlan senden. ...was ist wenn Du den Web-Server mal aussen vor läaast und einfach Daten im transparendten Modus sendest und empfängst? Unvarnished Transmission Mode Wrap return “>” after execute command. Enters unvarnished transmission, 20ms interval between each packet, maximum 2048 bytes per packet. When single packet containing “+++” is received, it returns to command mode. ...klingt für mich, als könnte man da in einen transparenten Datenmodus schalten und aus diesen explizit per sequenz +++ zurück in den Befehlsmodus kehren kann.... Somit kannst Du mit Deinem Atmega im transparenten Modus auf alles Antworten wie Du magst, d.h. bei einer Anfrage auch eine HTTP Seite zurück senden, natürlich mit Deinem Layout und Deinen Werten. Es liegt jetzt an Dir, die Seite so zu gestalten,das nach deren Übertragung auf das anfragende Gerät Scripte gezielt Variablen per GET von Deinem Atmega abfragen und in Intervallen Auffrischen, oder Du auf dem Endgerät einen Datenstrom aufbereitest. Ich habe mir auf jeden Fall drei solcher Module bestellt, Du hast mich jetzt neugierig gemacht :)
für das geld ein prima spielzeug ! ich will genau was du beschreibst, eine transparente dfü. den webserver hab ich nur benutzt, damit überhuapt mal was geht, mit xml wärs wohl im "hype", aber eigentlich unsinn.. ich will seriell vom arduino in den esp bytes einfüllen, und am pc(labtop) in vb die bytes empfangen und wie an nem digitaloszi graphisch darstellen. die grafik und so hab ich schon alles, aber nur für drahtgebundene rs232. jetzt bastle ich also am udp-kanal ...
... wird ein Weilchen dauern bis die Module da sind, ich behalte den Thread auf jeden Fall im Auge und melde mich wenn es was neues gibt :)
Ich habe mir vor ein paar Tagen mal das "ESP Link" von JeeLabs geflasht. Realisiert eine Bridge zwischen TCP Port 23 (Telnet) und den seriellen Pins. Hat (nicht mit der Beta, nur mit stable 1.0) super funktioniert - aber habe noch keinen Langzeittest durchgeführt. Source (für ESP SDK) und Binary ist verfügbar, inkl. Webserver. AP zum Einrichten usw. https://github.com/jeelabs/esp-link
Das Teil ist gut und ich verwende es gerne als Basis für Projekte. Diskussion zum esp-link ist hier (dort ist auch der Autor aktiv): http://www.esp8266.com/viewtopic.php?f=34&t=3445&p=24907#p24907
Reiner D. schrieb: > ich will seriell vom arduino in den esp bytes einfüllen, wie das denn? mein Problem, ein Arduino mit 16MHz ist nicht schnell genug für die 115k Baud der ESP Defaultlieferung bei geringstem Baudratenfehler. Ergo habe ich den ESP erst mal umprogrammiert mit einer fertigen Firmware zu 9600 Bd. Wie also willst du vom Arduino mit 16MHz seriell zum ESP schreiben und vom ESP lesen?
Tja wenn man arduino nimmt ist 115k wohl schon zu schnell. Nativ ist das kein Problem.
1. Wenn das nativ geht, dann gehts auch per Arduino.(vielleicht nicht offensichtlich, aber geht) 2. Dem ESP kann man per AT Kommando eine andere Baudrate verpassen.
Joachim B. schrieb: > mein Problem, ein Arduino mit 16MHz ist nicht schnell genug für die 115k > Baud der ESP Defaultlieferung bei geringstem Baudratenfehler. Das glaub ich Dir aber nun garnicht ;-) Also ich behaupte mal sogar ganze sequenzen oder Befehlsketten aus einem Datenstrom mit 115kB heraus filtern zu können... Ein 16 MHz-Quarz ist ja nicht wirklich geeignet,man sollte schon ein Baudratenquarz bei solchen Vorhaben verwenden, oder die Taktrate etwas mit den Fuses verbiegen...
>mein Problem, ein Arduino mit 16MHz ist nicht schnell genug für die 115k >Baud Das hat mit schnell genug evtl. wenig zu tun. Mit U2X = 0 ist der Baudratenfehler -3,5%. Mit U2X = 1 noch 2,1%.
Bestromer schrieb: > Das glaub ich Dir aber nun garnicht ;-) musst du nicht.... Bestromer schrieb: > Ein 16 MHz-Quarz ist ja nicht wirklich geeignet,man sollte schon ein > Baudratenquarz bei solchen Vorhaben verwenden ich weiss und habe die schon in 14,xxx MHz und 18,xxx MHz hier zu liegen, aber auch viele andere Baustellen als mich mit einem Arduino Bootloader und Umgebung rumzuprügeln. holger schrieb: > Das hat mit schnell genug evtl. wenig zu tun. weiss ich doch ist bei euch alle so warm oder was ist an meinen Worten nicht zu verstehen? Arduino zu kaufen 8 oder 16 MHz, diese sind nicht wirklich baudratengerecht für 115k, den ESP umzupatchen geht zwar, ist aber auch Arbeit. Wie mans auch dreht und wendet, "lalala, eines von diesen Dingen passt nicht zu den anderen" Arduino mit 16MHz und ESP mit 115k PUNKT
@Joachim Du bist ja ganz aufgeregt, das ist bei der Hitze wirklich nicht gut :) Joachim B. schrieb: > weiss ich doch ist bei euch alle so warm oder was ist an meinen Worten > nicht zu verstehen? ...passt schon ;-) Schönen Abend noch...
Bestromer schrieb: > @Joachim > Du bist ja ganz aufgeregt, woran kann es wohl liegen? Bestromer schrieb: > Ein 16 MHz-Quarz ist ja nicht wirklich geeignet, btt: Reiner D. schrieb: > kann ich ein esp8266-modul an einen atmega2560 (arduino mega) hängen, JA Reiner D. schrieb: > ohne rumgebastel am modul seriell daten draufgeben, BEDINGT, 1.) ESP8266 umpatchen auf 9600 Bd oder für 2.) 115k im Arduino einen Baudratenquarz einsetzen und den ganzen Arduino neue SW verpassen und dieses der Arduino IDE mitzuteilen, ich wüsste auf Anhieb nicht wo man überall ändern müsste. ohne rumgebastel also NEIN
Joachim B. schrieb: > ohne rumgebastel also NEIN Neuere ESP Firmwares kennen: AT+CIOBAUD=9600 Joachim B. schrieb: > und dieses der Arduino IDE mitzuteilen, ich > wüsste auf Anhieb nicht wo man überall ändern müsste. An einer Stelle: In der boards.txt Tipp: Besser eine eigene boards.txt anlegen. Die IDE bietet einen solchen Ort, der auch beim Update nicht verloren geht. Das anlegen eigener Boards wird sowieso jeder, auch nur halbwegs ernsthafte Arduinobastler, irgendwann machen.
Reiner D. schrieb: > atmega2560 (arduino mega) Ulrich F. schrieb: > Joachim B. schrieb: >> und dieses der Arduino IDE mitzuteilen, ich >> wüsste auf Anhieb nicht wo man überall ändern müsste. > > An einer Stelle: In der boards.txt > > Tipp: > Besser eine eigene boards.txt anlegen. btw. hat ein Arduino mega2560 nicht 2 µC drauf und 2 ISP 12560 und einen für die USB Ich gehe mal davon aus das der Quarz am 2560 gemeint ist (ist das ein Quarz oder Resonator?) Reicht es wirklich das in der boards.txt einzutragen? muss auf der USB Seite nix geändert werden? klingt zwar machbar, aber einen Ardu m2560 original zu verändern ist schon gewöhnungsbedürftig, hat man 2 auf dem Tisch oder gar 5 kanns verwirrend werden oder ich baue alle gleich um und schmeisse alle 16MHz m2560 in der boards.txt raus, muss nur daran denken wenn ich mit dem ardu an andere Rechner gehe das die nix von wissen. Ulrich F. schrieb: > Neuere ESP Firmwares kennen: AT+CIOBAUD=9600 wie werden die ausgeliefert mit 115k? dann hilft das ja nicht weil der AT Befehl über einen Arduino nie ankommt.
:
Bearbeitet durch User
Joachim B. schrieb: > btw. hat ein Arduino mega2560 nicht 2 µC drauf und 2 ISP 12560 und einen > für die USB So ist es! Das gilt für die meisten "großen" Arduinos. Einige haben stattdessen einen FTDI oder vergleichbaren Bausteinen an Board Die kleinen nix dergleichen.... Joachim B. schrieb: > (ist das ein > Quarz oder Resonator?) Meist Resonator Joachim B. schrieb: > Reicht es wirklich das in der boards.txt einzutragen? Ja! Der alt bekannte FCPU Wert wird da eingestellt. Alle Abhängigen Werte / Registerinhalte werden mit Macros usw. berechnet. Ich habe dir mal eine von meinen angehangen Joachim B. schrieb: > muss auf der USB Seite nix geändert werden? Tja... Die 8U2 und 16U2 haben auch einen 16MHz Quarz Das mit den 115200 Baud funktioniert übrigens erstaunlich gut. Ein paar Fehler gibts, ja... Aber das raus pumpen von AT+CIOBAUD=9600 klappt. (spätestens beim dritten mal)
Ulrich F. schrieb: > Ja! > Der alt bekannte FCPU Wert wird da eingestellt. > Alle Abhängigen Werte / Registerinhalte werden mit Macros usw. > berechnet. > Ich habe dir mal eine von meinen angehangen du hast leider noch nicht alles beantwortet: Joachim B. schrieb: > Ulrich F. schrieb: >> Neuere ESP Firmwares kennen: AT+CIOBAUD=9600 > > wie werden die ausgeliefert mit 115k? dann hilft das ja nicht weil der > AT Befehl über einen Arduino nie ankommt. Ich nutze ja m1284p mit FTDI momentan mit 16 MHz optiboot und 1M Bd müsste erst mal die Optiboot neu übersetzen, wäre toll mit 921600 Bd knapp weniger als Optiboot mit 1M Quarze wären aber nur: 7.3728 (0%) scheidet aus der soll ja nicht kastriert werden. 14.7456 (0%) ist leider weniger als 16 MHz 22.1184 (0%) ich hätte Bock den 1284p moderat zu überreizen den hat mein dealer sogar in SMD, morgen mal einige kaufen
Joachim B. schrieb: > Ich nutze ja m1284p mit FTDI momentan mit 16 MHz optiboot und 1M Bd Joachim B. schrieb: > du hast leider noch nicht alles beantwortet: Die letzten habe ich mit 115200 Baud bekommen. Aber das interessiert mich nicht sonderlich. Die, welche ich jetzt (meist) einsetze sind von der 201er Variante der ESP Boards. Standalone. Die haben mehr Power, in vielen Belangen, als dein 1284p, so dass du den AVR eigentlich in die Tonne kloppen kannst, wenn da auch noch ein ESP8266 im Spiel ist. Pins! Da ist etwas Mangel. Als Entwicklungsumgebung benutze ich die Arduino IDE. (kann man drüber streiten, aber tuts) Joachim B. schrieb: > 22.1184 (0%) > ich hätte Bock den 1284p moderat zu überreizen Der ESP zuckt mit wahlweise 80 oder 160MHz
Ulrich F. schrieb: > Joachim B. schrieb: >> 22.1184 MHz (0%) >> ich hätte Bock den 1284p moderat zu überreizen > > Der ESP zuckt mit wahlweise 80 oder 160MHz der ESP interessiert mich nur als Skave für wlan zum 1284p, ich verstehe deine Antwort nicht. Es ist ja das Problem der Baudrate ohne Baudraten Quarz. Optiboot mit 1 M bei 16 MHz gefällt mir, mit Baudratenquarz 22.1184 MHz akzeptiere ich auch etwas weniger mit 921600 Bd zum Proggen und zum ESP gehen dann auch 115k Bd
Joachim B. schrieb: > Ulrich F. schrieb: >> Der ESP zuckt mit wahlweise 80 oder 160MHz > > der ESP interessiert mich nur als Skave für wlan zum 1284p, ich verstehe > deine Antwort nicht. Ich vermute er wollte damit sagen, dass der ESP selber deutlich schneller und leistungsfähiger als ein Atmega ist und man diesen alternativ auch standalone ohne extra Atmega betreiben könnte. Auch wenn das ja offensichtlich nicht das ist was du machen willst. ;)
So ist es.... Als wenn man ein Rennpferd und einen Ackergaul an den selben Karren spannt... Das sieht nicht nur komisch aus, die finden auch keinen Rhythmus. Wie wäre es denn mit Alternativen? z.B. per SPI anbinden (oder I2C) Das können auch beide. Meiner bescheidenen Meinung nach, ist der AT Befehlssatz und die Serielle eher ein Klotz am Bein.
Ulrich F. schrieb: > So ist es.... > Als wenn man ein Rennpferd und einen Ackergaul an den selben Karren > spannt... > Das sieht nicht nur komisch aus, die finden auch keinen Rhythmus. Projekt minutengenaue wordclock Ich werde aber jetzt nicht anfangen im Galopp die Pferde zu wechseln ;-)
Joachim B. schrieb: > Projekt minutengenaue wordclock Dann kommst du auch mit 9600 Baud aus. Es kann gut sein, dass der ESP die Baudrate auch über den Reset/Stromausfall hinaus behält. (ungetestet, die Frage stellte sich mir noch nicht) Denn die Wlan Zugangsdaten behält er auch über den Reset/Stromausfall hinaus. (getestet)
Ulrich F. schrieb: > Dann kommst du auch mit 9600 Baud aus. ich weiss brauche den ESP nur für NTP oder wer hardcore progger ist für fernsteuerbare Uhrspielereien. Da es aber ein Nachbauprojekt wird möchte ich schon gerne so einfach wie möglich, aber es scheint nicht zu klappen. 1.) der Arduino mighty atmega1284p kann fertig bestellt werden nur mit 16MHz Quarz, müsste also umgebaut werden auf Baudratenquarz und neuen Bootloader bekommen, nicht für jeden zu stemmen. 2.) der ESP muss umgepatched werden auf 9600 Bd habe ich ja gemacht aber kann auch nicht jeder interessierte Nachbauer. Frank ist ja nun beim STM angekommen, aber ich hatte ja vor 1-2 Jahren mit wordclock1 Nachbau begonnen auf Arduino, der Prototyp mit 119 LEDs in WS2812b Stripes läuft, wlan Verbindung läuft, DCF77 läuft wenn auch bescheiden, I2C Clock und Tastatur z. manuellen Stellen läuft, sogar Displays nach Wunsch Oled 128x64 oder Nokia5110 läuft. Bin dann zur wordclock2 gewechselt und habe zwischendurch eine Binninger Berlin Uhr gebaut
:
Bearbeitet durch User
stand der dinge : esp8266 hängt seriell an der tx von usart1 vom arduino_mega. dieser sendet : AT AT+CIPMUX=1 AT+CIPSERVER=1,80 AT+CIPSEND=0,2 alles brav mit cr/lf dahinter, alles wird vom ESP mit OK beantwortet. die antworten schcike ich nicht zum Ardu, sondern zu ner FTDI, die mir das komfortabel in den PC übersetzt (dort terminalprogramm) aber : jetzt schicke ich bytes, und bekomme fehlermeldungen. auch wenn ich vorher mit dem laptop eine wlan-verbindung aufbaue (was incl. dchp funktioniert) -> ich hab die befehlsfolge für den unvarnished mode nicht verstanden, oder ? ist da jemand schlauer ?
Reiner D. schrieb: > -> ich hab die befehlsfolge für den unvarnished mode nicht verstanden, > oder ? Vermutlich .... Du musst natürlich erst eine "Verbindung" aufbauen, bevor du was sendest.... Ziel Ip Adresse, Port und Protokoll ist dazu nötig. https://github.com/espressif/esp8266_at/wiki/at_example_0020000903
hallo, genau den gleichen link hab ich parallel auch gefunden. ist super ... danke für deine mühe ! mit dem tcp-server tools auf dem laptop kann ich nun bytes empfangen, die der arduino über den esp sendet. nun noch ein tcp_listener in vb geschrieben, dann sollte ne telemetrie übner wlan möglich sein. bin gespannt, welche datengeschwindigkeit ich bei tcp oder udp hinkriege. by the way : der ardu sendet brav mit 115200 baud, die paar prozent fehler scheinen die usart nicht zu stören.
Gibt es einen Grund Doll, warum du dich nicht an die Netiquette hältst? --- Wichtige Regeln - erst lesen, dann posten! - Groß- und Kleinschreibung verwenden)
Reiner D. schrieb: > nun noch ein tcp_listener in vb geschrieben, dann sollte ne telemetrie > übner wlan möglich sein. bin gespannt, welche datengeschwindigkeit ich > bei tcp oder udp hinkriege. erhoff dir nicht allzu viel - das packetweise schaufeln von uart zu wifi und wifi zu uart dauert leider mit den at befehlen; direkt programmierung ( luna ide / xtensa ide )sieht es anders aus. lg ;-)
netiquette ? soll ich ne krawatte anziehen vor dem losschicken von nem post ? ------------- also : es funktioniert gut. der esp kriegt folgende ini im konstruktor seiner klasse :
1 | AT+CIPSTART="TCP", "192.168.4.1",1 |
2 | AT+CIPMODE=1 |
3 | AT+CIPSEND |
dann werden in einer methode in der main die daten (es sind 6 byte meßwerte) geschickt, einfach die bytes direkt mit 115200 baud an den uart zum esp. meine main zykelt mit 100hz, das scheint problemlos zu reichen mit tcp, man könnte wohl mit udp noch ein wenig optimieren. auf rechnerseite verbindet der pc problemlos mit dhcp übers wlan auf den esp, und die daten werden hier von einem "tcp-listener" in vb empfangen, mit der methode readbyte des getstream-objekts kann byte für byte transparent gelesen werden.
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.