Hallo, habe mir einige Teile bestellt und will gern mein erstes kleines Projekt basteln. http://www.instructables.com/id/Low-cost-WIFI-temperature-data-logger-based-on-ESP/?ALLSTEPS Leider waren nicht alle Teile erhältlich und ich habe ähnliche genommen - hoffe das funktioniert .. 1. Stromzufuhr und PC Verbindung: YS-16 FT232RL 2. DS18B20 WiFi Modul 3. DS18B20 Temp Sensor 4. AMS1117-3.3V Zuerst zum Verständnis: 1 Benötige ich zum Flashen und zur Stromzufuhr, solange ich keine Batterie habe? 2 Das LUA Programm kommt auf das WiFi Modul, da das mit einem kleinen Mikroprozessor ausgestattet ist? 4 Transformiert ein 5V Strom in ein 3,3V Strom (sorry für die Laienhafte Schreibweise - taste mich erst an das Ganze heran und habe von Elektronik nur noch ganz dunkel was in Erinnerung ;) ) Dann zur technischen Umsetzung: Die Belegung auf dem WiFi Modul ist hier sehr deutlich: http://www.instructables.com/files/orig/FBD/V03T/I4CMJ2Y6/FBDV03TI4CMJ2Y6.png Mein USB to TTL UART sieht aber etwas anders aus: Zuerst: - Ein Jumper steht auf 5V VIO - soll ich den auf 3V3 VIO stellen oder wegen dem AMS1117-3.3V auf 5V lassen? - Wie verbinde ich WiFi + AMS1117? GND habe ich gefunden. Auf dem AMS habe ich RXD und TXD - überbrückt mit einem Jumper. Den muss ich abnehmen und dann die beiden entsprechend verbinden? Vcc ist der 5V Pin? Was wäre bei meinem AMS CH_PD? So viele Fragen - bin doch noch sehr unsicher und hoffe da kann mir jemand hier helfen.
:
Bearbeitet durch User
Hallo, ich fange mal mit einer Frage an: mit welcher Spannungsversorgung soll das versorgt werden, wenn es endgültig fertig ist? Ich meine, man baut ja keinen WLAN-Temperatursensor, der letztlich irgendwo am Computer steckt. Ansonsten: der ESP8266 auf dem WLAN-Modul will 3,3V als Betriebsspannung aund auch als Logikpegel. Den FTDI-Adapter brauchst Du zum Programmieren, Vio also unbedingt auf 3,3V. Erstmal nur den FTDI-Adapter an den USB, der will seine Treiber und sollte sich dann in einem Terminalprogramm auf seiner virtuellen COM melden. Wenn Du dann was eintippst sollte das als Echo angezeigt werden, wenn Du den Jumper von RxD und TxD dann abziehst und die Echoausgabe dann weg ist, bist Du erstmal auf der richtigen COM-Schnittstelle. An den SiLabs-Adaptern mit dem CP2102 kann man das ESP-Modul wie auf dem Bild in Deinem Link zum Programmieren direkt anschließen, deren 3,3V schaffen es durchaus, den ESP8266 vorübergehend zu versorgen. Der FTDI kann 50mA auf den 3,3V liefern, man könnte also zum Test auch das WLAN-Modul von da versorgen, ist aber ziemlich unsicher, beim CP2102 zumindest mache ich das öfter mal und der überlebt auch, wenn der ESP8266 sendet. PS: ich geh hier jetzt von Windows aus, bei Linux heißen die seriellen Schnittstellen anders. Wenn das geht, kann es weitergehen... Gruß aus Berlin Michael
:
Bearbeitet durch User
Vorerst steckt das in meinem USB Hub. Wenn das später mal mit Akkus funktionieren würde wäre es gut. Mich interessiert aber vorerst ob ich sowas überhaupt hin bekomme und falls ja würde ich auf Akkus aufrüsten. Oh .. das habe ich ganz vergessen. Sitze an einem Linux Desktop. Also zunächst FTDI an einen USB Port dran, dann dmesg:
1 | [71827.106740] usb 1-1.2: new full-speed USB device number 18 using ehci-pci |
2 | [71827.217394] usb 1-1.2: New USB device found, idVendor=0403, idProduct=6001 |
3 | [71827.217399] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 |
4 | [71827.217401] usb 1-1.2: Product: FT232R USB UART |
5 | [71827.217403] usb 1-1.2: Manufacturer: FTDI |
6 | [71827.217405] usb 1-1.2: SerialNumber: A602GX9V |
7 | [71827.219951] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected |
8 | [71827.219986] usb 1-1.2: Detected FT232RL |
9 | [71827.219988] usb 1-1.2: Number of endpoints 2 |
10 | [71827.219990] usb 1-1.2: Endpoint 1 MaxPacketSize 64 |
11 | [71827.219992] usb 1-1.2: Endpoint 2 MaxPacketSize 64 |
12 | [71827.219993] usb 1-1.2: Setting MaxPacketSize 64 |
13 | [71827.220353] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 |
14 | [71827.406241] usb 1-1.2: USB disconnect, device number 18 |
15 | [71827.406399] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 |
16 | [71827.406413] ftdi_sio 1-1.2:1.0: device disconnected |
17 | [71827.686673] usb 1-1.2: new full-speed USB device number 19 using ehci-pci |
18 | [71827.797313] usb 1-1.2: New USB device found, idVendor=0403, idProduct=6001 |
19 | [71827.797318] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 |
20 | [71827.797321] usb 1-1.2: Product: FT232R USB UART |
21 | [71827.797323] usb 1-1.2: Manufacturer: FTDI |
22 | [71827.797324] usb 1-1.2: SerialNumber: A602GX9V |
23 | [71827.799866] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected |
24 | [71827.799901] usb 1-1.2: Detected FT232RL |
25 | [71827.799903] usb 1-1.2: Number of endpoints 2 |
26 | [71827.799905] usb 1-1.2: Endpoint 1 MaxPacketSize 64 |
27 | [71827.799906] usb 1-1.2: Endpoint 2 MaxPacketSize 64 |
28 | [71827.799908] usb 1-1.2: Setting MaxPacketSize 64 |
29 | [71827.800280] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 |
Dann habe ich es mit gtkterm probiert - aber da bin ich mir nicht sicher bei der Baudrate und was passieren muss. Ein leeres Terminal und wenn ich asdf eingebe und auf return drücke, bleibt der Text da. Das gleiche passiert mit und ohne gesetztem Jumper. Aber dennoch - lauf dmesg soweit sogut? Kann ich jetzt nur mit dem Teil an USB irgendwas machen? Gibt es dazu ein Toolset / Doku? -- Dann zu CP2102 - also bräuchte ich neben meinem YS-16 FT232RL noch ein CP2102 oder irgendeine andere Hardware? Habe mal ein Foto der Teile angehängt - bin mir immer noch nicht sicher wie es nachher weiter geht und ob da noch ein Kondensator fehlt oder nicht?
Chris H. schrieb: > Wenn das später mal mit Akkus funktionieren würde Kommt mir irgendwie bekannt vor. Der ESP8266 benötigt bei Aktivität einiges an Strom, so daß die Akkus schon recht groß sein müssen, damit das überhaupt einen Sinn hat. Hier Beitrag "Temp. Messung im Haus?" wollte jemand das mit Batterien anstellen ...
Dein FT232 passt schon. Beim ersten Schritt brauchst du nichmal den ESP. Als erstes lässt du den Verbinder zwischen RX und TX stecken und sendest mit deinem Terminalprogramm ein paar Zeichen. Die MÜSSEN im Bildschirm wieder zurückkommen, dann ziehst du den Verbinder ab, dann dürfen die Zeichen NICHT mehr zurückkommen. Damit weißt du, dass dein USB-Uart-Wandler funktioniert. Komm wieder wenn das geht (oder auch nicht), dann kommt der nächste Schritt mit dem ESP dabei.
Mit dem USB Netzteil wäre es vorerst auch ok. Mir geht es in erster Linie um die WiFi Datenübertragung. Ja - also tatsächlich Max D. - wie du schreibst. Wenn ich den Verbinder dran habe, dann sehe ich die eingegebenen Zeichen. Wenn ich den Verbinder abnehme, dann wird nicht wiedergegeben. Das ist jetzt dann wohl das Zeichen für einen funktionierenden USB UART Wandler :) freu Habe den Verbinder am Wandler jetzt auf 3V3 und VIO gesteckt - mich aber noch nicht getraut mit dem ESP8266 etwas zu testen. Da muss ich jetzt Ground mit Ground verbinden und RX und TX sind wohl die, die eben gerade noch den Verbinder dran hatten? Wenn das so stimmt, wundert mich nur noch: Vcc und CH_PD - muss ich da zwei Kabel zusammen löten? Und von wo gehen die aus von meinem Wandler? Ich habe ein 3V3 Pin - das wäre Vcc?
Der 3v3 Jumper passt. Vin von dem 1117er an den 5V-Ausgang am FT (direkt neben RX), Gnd bei allem verbinden, Vout an Vcc vom ESP RX vom ESP an TX vom FTDI TX entsprechend CH-PD vom ESP nach 3,3 V ziehen (widerstand oder direkt). Dann startest du dein Terminal mit 115200 8N1 un tippst "AT" ein (evtl. muss ein LF/CR nachkommen), dann sollte ein "OK" zurückkommen. Wenn nicht halt noch mit 57600 und 9600 probieren.
Hallo, CR und LF in dieser Reihenfolge sollte stimmen. Die AT-Software meiner ESPs meldet sich mit 9600. Gruß aus Berlin
Die ersten ESPs hatten eine Software die wollte 57k6 und kein CR/LF Endungen. Die spätere espressif-FW hatte 115k2 und wollte ein CR sehen (wenn ich mich richtig erinner). Die ai-thinker fw läuft mit 9k6 und will ein LF/CR sehen bevor sie den Befehl annimmt.
Hi, im ersten Post wird im Link "instructables.com..." erklärt, dass die Daten via ds1820.lua Script auf die Seite von ThingSpeak übertragen werden: ds1820.lua - measure and post data to thingspeak.com: --> conn:send("GET /update?key=YOURKEY&field1="..t1.."."..t2.." HTTP/1.1\r\n") Wie könnte ich denn z.B von einem Browser aus direkt die Daten abfragen? Der ESP8266 bekommt/hat ja eine eigene IP-Adresse. Da müsste man doch auch ohne den Umweg über ThingSpeak heran kommen...via PHP Get Abfrage o.ä.!? Hat da jemand eine Idee wie das geht? Ich möchte das ganze lokal und unabhängig aufbauen. Gruß Mike
Max D. schrieb: > Der 3v3 Jumper passt. > Vin von dem 1117er an den 5V-Ausgang am FT (direkt neben RX), > Gnd bei allem verbinden, > Vout an Vcc vom ESP > RX vom ESP an TX vom FTDI > TX entsprechend > CH-PD vom ESP nach 3,3 V ziehen (widerstand oder direkt). > > Dann startest du dein Terminal mit 115200 8N1 un tippst "AT" ein (evtl. > muss ein LF/CR nachkommen), dann sollte ein "OK" zurückkommen. Wenn > nicht halt noch mit 57600 und 9600 probieren. Das habe ich so gemacht. Die Verkabelung sieht etwas abenteuerlich aus, habe es aber alles zwei mal kontrolliert und denke das ist ok. (Verbinder/Jumper ist jetzt nur noch einer auf dem FT - das stimmt so?) LEDs sind alle an, rot, dauerleuchten und nichts riecht verbrannt. Der ESP8266 wird minimal warm. Dann die Software: Habe jetzt sudo gtkterm verwendet und alle 3 Baudraten ausprobiert. Bei 115200 kann ich etwas eintippen, bei den anderen nicht. AT und dann Enter? OK bekomme ich keines - aber ich sehe am FT leuchten die RX/TX LEDs auf, wenn ich eine Taste drücke. Könnte es auch im Terminal machen - bin mir aber nicht sicher wie ich 8N1 übergebe? stty -F /dev/ttyUSB0 115200 Das sollte jetzt ein Softwareproblem sein? Sitze an Linux, Kubuntu.
Dass die RX/TX LEDs beide blinken liegt daran, dass der ESP die Zeichen anscheinend zurück-echot. Die fw bei 115k2 ist normalerweise ohne CR/LF gebaut und erwartet stattdessen, dass die Zeichen sehr knapp nacheinander ankommen. Benutz lieber "moserial-terminal" (aus den paketquellen), damit kann man einen ganze "Satz" eintippen bevor der abgesendet wird und ausserdem die Zeilenendung manuell einstellen.
Hmm - das ist merkwürdig. Moserial sieht deutlich besser aus, danke für den Tipp. Ich bekomme aber 8N1 nicht hin. Habe alle Paritätsbits durchprobiert: None = K Odd = U Even = G Mark = M Space = L Habe jetzt alle 3 Baudraten und die CR / CR+LF / None durchprobiert - denke auch in Kombination mit allen Baudraten und einigen Paritätsbits. Aber ein OK bekomme ich leider nicht vom FW. :( Habe auch noch mal Screenshots angehängt - ist da ein Fehler zu sehen?
Mit welchen Einstellungen war denn in gtkterm das zu sehen was du eingetippt eingetippt hattest? (hattest oben sowas erwähnt) Probier mal genau diese Einstellungen in moserial
Da ist das korrekt wie du es geschrieben hattest: 8N1 - N steht bei gtkterm für None Bei moserial bekomme ich 8N1 nicht hin - None wird da mit K bezeichnet: 8K1. Liegt das an der deu Version von moserial? Soll ich nochmal einen anderen Linux PC testen?
Hallo, mach den Hardware-Handshake aus, der ESP macht keinen. Bastel Dir mal einen Resettaster an das ESP-Modul, Reset ist der freie in der Reihe neben CH_PD. Taster gegen GND. Wenn Du da kurz draufdrückst kommt erst etwas Datenmüll vom Bootlader und dann seine Startmeldung. Gruß aus Berlin Michael
Ach perfekt! Es war der Hardwarehandshake. Jetzt spricht alles mit mir. OK kommt und noch ein paar andere Zeichen und Error ebenfalls - aber das sieht schon sehr gut aus, vielen Dank für deine spitzen Hilfe! Von hier aus kann ich jetzt etwas ausprobieren und komme in den Softwarebereich in dem ich mich wohler fühle ;)
Hallo, fein das es jetzt klappt. Schick mal AT+RST Dann bekommst Du normalerweise auch die Version der AT-Software angezeigt. Welche ist denn bei Dir auf dem Modul? Gruß aus Berlin Michael
Hmm .. Bei mir scheint das nicht so zu funktionieren: (bei AT und bei AT+RST ähnlich)
1 | AT+RST |
2 | |
3 | |
4 | OK |
5 | AT+RST |
6 | |
7 | |
8 | |
9 | |
10 | busy p... |
11 | OK |
12 | |
13 | busy p... |
14 | |
15 | OK |
16 | AT+RST |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | OK |
24 | |
25 | ERROR |
26 | busy p... |
27 | |
28 | ERROR |
29 | OK |
30 | |
31 | |
32 | ERROR |
33 | busy p... |
34 | |
35 | ERROR |
36 | |
37 | |
38 | ERROR |
39 | OK |
40 | |
41 | ERROR |
42 | AT+RST |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | OK |
50 | |
51 | |
52 | |
53 | ERROR |
54 | OK |
Und das rast dann runter - scheint so als würde mein moserial hunderte AT Befehle pro Minute schicken o. Ä.?
:
Bearbeitet durch User
Jetzt könnte die Stromversorgung des Moduls zu knapp sein, das zickt dann derart rum.
Hallo, Stromversorgung wäre möglich, allerdings hängt mein Spiel-ESp oft direkt an einem CP2102-USB-Wandler und bekommt seine Spnnung von dessen 3V Anschlu0. Der kann nur 50mA, offenbar weiß er das nicht... Habe das Ding hier gestern Abend mehrmals neu programmiert, keine Probleme. Allerdings habe ich am Modul einen 220µF Elko an der Betriebsspannung hängen, vielleicht reicht das dann sogar. Würde ich ihm eigentlich jetzt auch als Test empfehlen, so 47...220µ dicht am Modul an die Betriebesspannung. Ich fürchte nur, er hat keine passende Bauteilekiste... Gruß aus Berlin Michael
Ja, ganz genau - hatte einige Sachen mehr bestellt, aber habe keinen Kondensator oder Widerstand hier. Aber wenn ihr meint, das könnte daran liegen, dann schaue ich noch mal ob ich so einen irgendwo in der Nähe finde oder muss den eben noch nachbestellen. :)
Hallo, ich noch mal :) Jetzt scheint es zu funktionieren. Habe gerade eine 220uF Kondensator bekommen und den vor das WiFi Modul an Vcc geklemmt und mich wieder verbunden. Da kam aber gar nichts zurück. Dann gerade noch mal getestet ohne den Kondensator:
1 | AT+RST |
2 | |
3 | |
4 | OK |
5 | |
6 | ets Jan 8 2013,rst cause:2, boot mode:(3,7) |
7 | |
8 | load 0x40100000, len 1396, room 16 |
9 | tail 4 |
10 | chksum 0x89 |
11 | load 0x3ffe8000, len 776, room 4 |
12 | tail 4 |
13 | chksum 0xe8 |
14 | load 0x3ffe8308, len 540, room 4 |
15 | tail 8 |
16 | chksum 0xc0 |
17 | csum 0xc0 |
18 | |
19 | 2nd boot version : 1.4(b1) |
20 | SPI Speed : 40MHz |
21 | SPI Mode : DIO |
22 | SPI Flash Size & Map: 8Mbit(512KB+512KB) |
23 | jump to run user1 @ 1000 |
24 | |
25 | n't use rtc mem data |
26 | rld |
27 | Ai-Thinker Technology Co.,Ltd. |
28 | |
29 | ready |
Sehr merkwürdig - aber zumindest scheint es jetzt zu funktionieren. Jetzt habe ich nodemcu_float_0.9.5_20150318.bin und esptool.py herunter geladen aber:
1 | sudo ./esptool.py -p /dev/ttyUSB0 write_flash 0x000000 nodemcu_float_0.9.5_20150318.bin |
2 | Connecting... |
3 | Traceback (most recent call last): |
4 | File "./esptool.py", line 532, in <module> |
5 | esp.connect() |
6 | File "./esptool.py", line 159, in connect |
7 | raise Exception('Failed to connect') |
8 | Exception: Failed to connect |
Liegt das jetzt an GND? Muss ich zum Flashen jetzt irgendwie anders verbinden? "Now to burn LUA firmware:To Burn a firmware: CH_PD pin must be always connected to HIGH and GPIO0 pin to GROUND (LOW)." Also habe ich jetzt GND vom AMS1117-3.3V mit GPIO0 am ESP8266 verbunden. CH_PD steckt am 3.3V vom YS-16 FT232RL (das ist HIGH?)
:
Bearbeitet durch User
Pack mal vor das "write_flash" ein "-b 115200" Damit läuft der Adapter langsamer, aber bei mir hilft das mit den billigen PL2303 Wandlern die immer mittendrin absterben beim flashen. Vlt. hilft es auch dir...
Hier gibt es ein Projekt, in dem sich der ESP die Uhrzeit von einem Server holt und neben ein paar anderen Kleinigkeiten auch die Temperatur aus dem DS1820 ausliest. Das alles wird über pushingbox.com abgeschickt. Sollte die Verbindung nicht klappen, wird es wiederholt, bis es läuft oder die vom User eingestellte Anzahl an Versuchen erreicht ist. Die passende Firmware steht auch in dem GitHub-Verzeichnis. Vielleicht kannst Du davon ja etwas in Deinem Projekt brauchen: https://github.com/8n1/briefkastenwaechter-mit-temp-sensor-uhrzeit-und-ipcam-event Hier wird erklärt, wie man eine andere Firmware auf den ESP bekommt: http://www.whatimade.today/flashing-the-nodemcu-firmware-on-the-esp8266-linux-guide/ Frank
:
Bearbeitet durch User
Hänge immer noch am gleichen Problem und ich finde zum Flashen leider diverse widersprüchliche Infos im INet. :( Klar scheint zu sein, dass ich GND zu GPIO0 Pin ziehen muss (da nehme ich GND von meinem AMS1117-3.3V Modul?) Und ab und zu lese ich, CH_PD muss mit High bzw. 3,3V verbunden sein - aber nicht überall. Aber sowohl mit als auch ohne funktioniert es bei mir nicht. Evtl. stimmt etwas mit der Verkabelung doch nicht. Könnte da noch mal jemand drüber schauen? FT232RL 3.3V - ESP8266 CH_PD FT232RL TXD - ESP8266 RX FT232RL RXD - ESP8266 TX FT232RL GND - AMS1117-3.3V GNDin - AMS1117-3.3V GNDout - ESP8266 GPIO0 FT232RL 5V - AMS1117-3.3V Vin - AMS1117-3.3V Vout - ESP8266 Vcc Ich habe also nur 5 Kabel im ESP8266 stecken. Ist das so in Ordnung? Einen "Schalter zum Flashen" bedeutet ich stecke das GND Kabel vom AMS anstelle in ESP8266 GND in ESP8266 GPIO0?
:
Bearbeitet durch User
Gnd am esp muss weiterhin mit den restlichen gnd-Pins verbunden bleiben, nicht nur der gpio0.
Markus M schrieb: > Gnd am esp muss weiterhin mit den restlichen gnd-Pins verbunden bleiben, > nicht nur der gpio0. Ich fände es erschreckend wenn man jemanden darauf hinweisen müsste, der sich bereits mit einem ESP beschäftigt. Hier wird wieder mal Schritt 578 vor dem ersten gemacht.
Markus M schrieb: > Gnd am esp muss weiterhin mit den restlichen gnd-Pins verbunden bleiben, > nicht nur der gpio0. Hmm .. ich befürchte dafür fehlt mir was an Hardware. Womit splittet man GND auf? Normalerweise über diese Boards? Hatte die auch bestellt, aber die Löcher scheinen zu groß zu sein für meine Pins und Kabel. :(
Chris H. schrieb: > Hänge immer noch am gleichen Problem und ich finde zum Flashen leider > diverse widersprüchliche Infos im INet. :( > > Klar scheint zu sein, dass ich GND zu GPIO0 Pin ziehen muss (da nehme > ich GND von meinem AMS1117-3.3V Modul?) > > Und ab und zu lese ich, CH_PD muss mit High bzw. 3,3V verbunden sein - > aber nicht überall. > Aber sowohl mit als auch ohne funktioniert es bei mir nicht. alle Ports müssen mit 3,3k nach VCC 3,3V pullups gelegt werden! Dann kann man auch zum flashen den GPIO 00 nach GND ziehen! Da gibt es keine widersprüchlichen Infos, jedenfalls keine die ich gefunden hätte. http://www.xess.com/blog/esp8266-reflash/ ich habe aber RX und TX mit einem max3232 an 3,3V zu einer PC seriellen verkabelt. http://cdn.pollin.de/article/xtrabig/X810358.JPG genauer damit http://ecx.images-amazon.com/images/I/51dT%2B2KFJwL._SX425_.jpg und so die firmware von 115kBd zu 9600 Bd getauscht.
:
Bearbeitet durch User
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.