Temp Sensor mit WiFi bauen

OP #4320528
Lesenswert?

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.
#4320610
Lesenswert?

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
OP #4320820
Lesenswert?

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?
Angehängte Dateien:
#4320852
Lesenswert?

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.
OP #4320887
Lesenswert?

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?
#4320894
Lesenswert?

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.
#4322042
Lesenswert?

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.
Gast #4322519
Lesenswert?

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
OP #4322945
Lesenswert?

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.
Angehängte Dateien:
#4323111
Lesenswert?

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.
OP #4323224
Lesenswert?

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?
Angehängte Dateien:
#4323304
Lesenswert?

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
OP #4323321
Lesenswert?

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 ;)
OP #4323855
Lesenswert?

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. Ä.?
#4323943
Lesenswert?

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
OP #4328097
Lesenswert?

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?)
#4329444
Lesenswert?

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
OP #4332594
Lesenswert?

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?
#4332806
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren