Hallo, ich möchte mittels ATmega einen einfachen HTTP-Request über WLAN verschicken (alle 5 min). Gibts für den ESP8266 irgendwo eine Lib dafür. Der komplette Stack sollte schon da sein. Alles was ich bisher fand (ESP8266WiFi), enthielt .cpp Dateien - also nicht im AVRStudio mit ATmega328 nutzbar, eher für Arduino.
ZwiebelJack schrieb: > Hallo, > > ich möchte mittels ATmega einen einfachen HTTP-Request über WLAN > verschicken (alle 5 min). > Gibts für den ESP8266 irgendwo eine Lib dafür. Der komplette Stack > sollte schon da sein. Alles was ich bisher fand (ESP8266WiFi), enthielt > .cpp Dateien - also nicht im AVRStudio mit ATmega328 nutzbar, eher für > Arduino. Den ESP kannst direkt programmieren. Arduino bietet umfangreiche Beispiele
Hallo, ob Du zum direkten Programmieren des ESP die ArduinoIDE und deren Libs und Beipsiele oder das Espressif-IDF und deren Libs und Beispiele nutzt, bleibt völlig Dir, Deinen Kenntnissen und Deiner Zeit überlassen. Ich habe mich da für meine Hobbyprojekte aus Aufwandsgründen eindeutig für die ArduinoIDE entschieden... Gruß aus Berlin Michael
angenommen, ich habe wenig Zeit und Kenntnisse :-) Außerdem habe ich keinen Arduino, sondern einen einzelnen ATmega328 Chip, den ich normalerweise im STK500 flashe (über AVRburn o.ä.). Nützt mir dann die ArduinoIDE etwas?
ZwiebelJack schrieb: > Außerdem habe ich keinen Arduino, sondern einen einzelnen ATmega328 > Chip, den ich normalerweise im STK500 flashe (über AVRburn o.ä.). Was willst du mit dem ATmega328? Im Eröffnungspost schriebst du doch etwas vom ESP8266
ZwiebelJack schrieb: > Nützt mir dann die ArduinoIDE etwas? Du kannst diesen auch aus der IDE heraus direkt brennen.
Hallo, was für ein ESP8266 Modul willst nutzen? Dein Mega328 ist uninteressant, wenn der ESP alles komplett übernehmen kann/soll. Enweder kämpfst Du Dich durch die AT-Kommandos der ESP-Software im Lieferzustand durch, hängst ihn eben mit TX/RX an den AVR und läßt den AVR eben dann per AT-kommandos mit dem ESP duskutieren. Oder Du programmierst den ESP selber, ist ja schließlich eine 80MHz CPU mit rund 1MB Flash und 80kB Ram. Ob und wie Du dann den AVR brauchst, hängt von Deinem PRojekt ab und was am AVR extern dranhängt. Die ArduinoIDE zu installieren, um den ESP komplett selbst zu programmieren, dauert vielleich eine halbe Stunde. IDE als ZIP-Archiv runterkladen, irgendwohin entpacken, die IDE NICHT starten! Im Ornder der IDE (wo jetzt die arduino.exe liegt) einen Ordner mit Namen portable erstellen, dann erst die arduino.exe starten Wie bei github: https://github.com/esp8266/Arduino unter "Installing with Boards Manager" beschrieben weitermachen. Danach muß es in der Boardliste der IDE die ESps geben, fertig. Gruß aus Berlin Michael
Ich verstehe dich so, dass du den ESP8266 nur als Netzwerk-Interface nutzen möchtest. Kann man machen, auch wenn sich einige hier den Sinn dieser Vorgehensweise nicht vorstellen können. Ich sage nur "Tellerrand". Ich habe auf der Seite http://stefanfrings.de/esp8266/index.html#atcommands passende Anleitungen gesammelt. Im Grunde genommen muss dein AVR nur ein paar AT Befehle an den ESP Chip senden. Das ist einfach, vor allem wenn man auf Fehlerkorrektur verzichtet, dann brauchst du nicht einmal die Antworten des Moduls auszuwerten. Jetzt kommt noch das HTTP Protokoll, dessen Grundlagen habe ich in http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf ab Kapitel 10 erklärt. Und dann hier noch ein praktisches Anwendungsbeispiel mit ATmega328 für die umgekehrte Richtung (der µC spielt Webserver) http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%203.pdf Kapitel 13. Eine kleine Korrektur: Du hast geschrieben, dass cpp Dateien nicht mit Atmel Studio harmonieren. Das ist nicht richtig. Das Atmel Studio unterstützt auch C++. Irgendwie kann man das Atmel Studio sogar mit Arduino verheiraten, habe ich allerdings noch nicht ausprobiert.
> Ich verstehe dich so, dass du den ESP8266 nur als > Netzwerk-Interface > nutzen möchtest. Kann man machen, auch wenn sich einige hier den Sinn > dieser Vorgehensweise nicht vorstellen können. Ich sage nur > "Tellerrand". Ja, und zwar deswegen, weil ich auf meiner Schaltung 2 Blöcke habe: Block 1: - ist 24/7 aktiv und sammelt Messdaten - daher wahrscheinlich ein standard ATmega238 Block 2: - ein WLAN Modul dass die gepackten Daten aus Block1 entgegennehmen kann und sie versendet, sobald Block 1 den Befehl dazu gibt. Etwa alle 10 min. - daher nur kurzzeitig aktiv Wenn man alles den ESP machen lässt, müsste man es auch 24/7 laufen lassen. Will aber Strom sparen und daher nur das nötigste aktiv lassen.
ZwiebelJack schrieb: > Wenn man alles den ESP machen lässt, müsste man es auch 24/7 laufen > lassen. > Will aber Strom sparen und daher nur das nötigste aktiv lassen. Du kannst beim ESP auch die WLAN-Funktion herunterfahren und den Chip die Arbeit machen lassen. Nach 10min fährst die Wifi-Funktion wieder hoch (was strom kostet) und versendest deine Daten. Du kannst aber den AVR die Daten loggen lassen und mit einem zweiten Programm im ESP die Daten vom AVR abholen lassen. Wenn das einer nachbauen will ist das schon komplizierter
Stefanus F. schrieb: > Ich verstehe dich so, dass du den ESP8266 nur als Netzwerk-Interface > nutzen möchtest. Kann man machen so hatte ich auch angefangen, auf dem AVR läuft meine wordclock, mit dem ESP8266 hatte ich dann Zugang zum wlan und NTP. Nachdem die HW gestorben war ist es heute sinnvoller den ESP32 in die Arduino IDE zu integrieren und mit dem weiterzumachen wobei der Atmel eben besser mit 5V zurecht kommt, Pegelwandler braucht man dann nicht für die meiste Hardware.
:
Bearbeitet durch User
Hallo, ZwiebelJack schrieb: > Block 1: > - ist 24/7 aktiv und sammelt Messdaten > - daher wahrscheinlich ein standard ATmega238 > > Block 2: > - ein WLAN Modul dass die gepackten Daten aus Block1 entgegennehmen kann > und sie versendet, sobald Block 1 den Befehl dazu gibt. Etwa alle 10 > min. > - daher nur kurzzeitig aktiv kann man doch machen wenn man will. Kostet ein AVR-Pin, der über einen Reset-Impuls den ESP aufweckt. Verbindung z.B. über seriell, der ESP sendet wenn er oben ist ein Kennbyte zum AVR und der schickt das Datenpaket dann seriell zum ESP, entweder feste Anzahl Bytes oder ein eindeutiges Ende-Byte, daß in den Daten nicht vorkommt. Wenn der ESP die Daten komplett hat macht er seinen Web-kram und geht wieder in den DeepSleep. Kostet eine Diode vom Reset des ESP (Anode) zum AVR-Pin (Kathode) und einen Spannungsteiler 1,2k/2,2k am TX des AVR wenn dieser mit 5V läuft und keine langen Leitungen zwischen ESP und AVR sind. Sonst muß man im Zweifel eben die Pegel ordentlich anpassen. Gruß aus Berlin Michael
Jedenfalls braucht man zum Absetzen von AT Befehlen keine Library. Das sind ja nur Strings, die zeichenweise über den seriellen port herausgeschoben werden.
ZwiebelJack schrieb: >> Ich verstehe dich so, dass du den ESP8266 nur als >> Netzwerk-Interface >> nutzen möchtest. Kann man machen, auch wenn sich einige hier den Sinn >> dieser Vorgehensweise nicht vorstellen können. Ich sage nur >> "Tellerrand". > > Ja, und zwar deswegen, weil ich auf meiner Schaltung 2 Blöcke habe: > > Block 1: > - ist 24/7 aktiv und sammelt Messdaten > - daher wahrscheinlich ein standard ATmega238 > > Block 2: > - ein WLAN Modul dass die gepackten Daten aus Block1 entgegennehmen kann > und sie versendet, sobald Block 1 den Befehl dazu gibt. Etwa alle 10 > min. > - daher nur kurzzeitig aktiv Habe sowas Ähnliches laufen, in Form einer nachträglichen Internetanbindung einer vorhandenen arduinobasierten Steuerung. Dazu habe ich einen ESP8266 mit ESPlink von Jeelabs geflasht, und an rx/tx des Arduino gehängt. Sendet nun alle x Minuten Messwerte nach Thingspeak, und ich kann den Arduino nebenbei noch direkt aus der IDE ‚über‘s Internet‘ flashen... Auf Arduinoseite muss lediglich eine kleine Clientlib von Jeelabs eingebunden werden. Restproblem bei dir wäre, den ESP noch passend an- und auszuschalten, das dürfte vom Arduino aus aber ja kein Problem sein...
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.