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.
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
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
[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.
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
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:
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?)
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
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?
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.