Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
Een tijdje geleden kwam ik de mooie ESP8266 (ESP-01) module tegen, die ik nu probeer te laten communiceren met een Arduino. Dit heb ik allereerst geprobeerd door een lege sketch te laden op de Arduino en de ESP8266 rechtstreeks aan de 0-RX en 1-TX pinnen van een Mega2560 te hangen. Uiteraard zit hier dan nog wel wat level shifting tussen e.d. Op deze manier kan ik prima communiceren tussen mijn PC en de ESP8266. Bijvoorbeeld:
code:
1
2
3
4
5
6
AT
OK

AT+CWMODE?
+CWMODE:3
OK


Uiteraard is het alleen niet mijn bedoeling om te communiceren tussen de ESP8266 en mijn PC maar tussen de ESP8266 en de Arduino. Dus, ik heb hiervoor de arduino aan een hardware serial van de Mega gehangen en een programma ingeladen die commando's tussen mijn PC en de ESP8266 forward via de Arduino (dit programma: https://www.arduino.cc/en/Tutorial/MultiSerialMega). En dan krijg ik opeens wat rare output. Een voorbeeldje:
code:
1
2
3
4
5
6
7
8
9
10
üüüüüüü€€€€€€€€øüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüAT


OK
üüüüüüüüüüüüüüüüü€üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü€üüüAT+CWMODE?

+CWMODE:3

OK
üüüüüüüüüü


Ik kan hier alleen geen goede processing op doen vanwege alle rare karakters die ik binnenkrijg. Ik snap alleen niet wat het verschil is tussen methode 1 en 2 en waardoor er met methode 2 opeens extra output wordt gegeven door de Mega... Ik weet ook niet zo goed of ik dit nu moet zoeken in de elektronica, de instellingen van de seriele poort of de ESP8266 module.

Iemand die mij verder kan helpen?

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 20:45

Onbekend

...

De data zelf komt correct aan, tussen de random data door.
Het lijkt erop dat de communicatie zelf wordt gestoord en wat wordt geïnjecteerd. Controleer eens de kabel tussen de ESP en de Arduino. Gebruik je een getwiste kabel?

[ Voor 6% gewijzigd door Onbekend op 08-10-2016 15:42 ]

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 21:49
probeer het eens als string te versturen met serial.println
dus
if(serial0.available()>0){
string data;
data=serial.readStringUntil('\n');
Serial.println(data);
}

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
Onbekend schreef op zaterdag 08 oktober 2016 @ 15:42:
De data zelf komt correct aan, tussen de random data door.
Het lijkt erop dat de communicatie zelf wordt gestoord en wat wordt geïnjecteerd. Controleer eens de kabel tussen de ESP en de Arduino. Gebruik je een getwiste kabel?
Wat alleen zo gek is is dat het wel werkt als het rechtstreeks naar de PC gaat. Ik hang overigens de 3.3V Tx van de ESP8266 wel direct aan de Arduino Rx pin, maar dat zou in principe nog steeds moeten worden geregistreerd als hoog.

De kabels tussen de ESP en de arduino zijn gewoon breadboard kabeltjes, in beide situaties.
itcouldbeanyone schreef op zaterdag 08 oktober 2016 @ 15:43:
probeer het eens als string te versturen met serial.println
dus
if(serial0.available()>0){
string data;
data=serial.readStringUntil('\n');
Serial.println(data);
}
Veranderd weinig helaas:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ü
ü
AT

OK
üüü
ü
üüü
AT+CWMODE?
+CWMODE:3


OK
üü

Acties:
  • 0 Henk 'm!

  • Thogamer
  • Registratie: Juni 2011
  • Laatst online: 23-07 19:45
Staat de baud rate van je esp op 9600? Als dat niet het geval is geeft die soms vreemde tekens aangezien de arduino met 9600 werkt.

Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Misschien interferentie of zwevende lijnen. Pullups/pulldowns?

Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
Thogamer schreef op zaterdag 08 oktober 2016 @ 16:43:
Staat de baud rate van je esp op 9600? Als dat niet het geval is geeft die soms vreemde tekens aangezien de arduino met 9600 werkt.
Ja, is ingesteld op 9600 baud en kan er prima mee communiceren op die setting via de PC.
johnkeates schreef op zaterdag 08 oktober 2016 @ 16:47:
Misschien interferentie of zwevende lijnen. Pullups/pulldowns?
Zou kunnen dat ik die ergens heb... Heb onderstaand schema gebaseerd op voorbeelden op internet. Zie jij hier fouten in? Heb er zelf helaas maar beperkt verstand van..
EPS8266 met Arduino Mega 2560

Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Lijkt er niet op te zitten, zie alleen een buffer, een 3v3 reg en wat lijkt op een esp header?

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 20:45

Onbekend

...

Kan je eens een paar extra 100nF condensators bij de chips over de voedingsspanning zetten? Op de afbeelding zie ik ze helemaal niet zitten.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
johnkeates schreef op zaterdag 08 oktober 2016 @ 17:36:
Lijkt er niet op te zitten, zie alleen een buffer, een 3v3 reg en wat lijkt op een esp header?
Waar zou jij dan een pullup/pulldown weerstand verwachten?
Onbekend schreef op zaterdag 08 oktober 2016 @ 17:49:
Kan je eens een paar extra 100nF condensators bij de chips over de voedingsspanning zetten? Op de afbeelding zie ik ze helemaal niet zitten.
Waar zouden deze condensators moeten komen dan precies? Ben hier niet echt in thuis helaas.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 20:45

Onbekend

...

Je moet aansluiten waar de voedingsspanningen de chips in gaan. Bij elke chip 1 en zo dicht mogelijk bij de pootjes.

Op de afbeelding zie ik trouwens dat de linker chip geen contact heeft met de GND. Je hebt beide GND's toch wel met elkaar verbonden hoop ik?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
Onbekend schreef op zaterdag 08 oktober 2016 @ 18:08:
Je moet aansluiten waar de voedingsspanningen de chips in gaan. Bij elke chip 1 en zo dicht mogelijk bij de pootjes.

Op de afbeelding zie ik trouwens dat de linker chip geen contact heeft met de GND. Je hebt beide GND's toch wel met elkaar verbonden hoop ik?
Heb dit inmiddels geprobeerd, maar dit lost het helaas niet op. Heb uiteraard wel beide GND's verbonden, maar ben nog niet zo handig met het tekenen van deze schema's, en heb dat over het hoofd gezien.

Ben inmiddels erachter dat het probleem wordt veroorzaakt door de CD4050. Als ik het level shiften van TX(Arduino) naar RX(ESP) dmv 2 weerstanden doe werkt het prima. Enige nadeel is dat dit op hoge baudrates niet meer goed schijnt te werken. Enig idee waarom de CD4050 hier niet goed voor werkt? Heb de keuze voor de 4050 o.a. hierop gebaseerd, waar het wel schijnt te werken: http://codeandlife.com/2012/04/06/level-shifting-101/

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 20:45

Onbekend

...

darkmdmn schreef op zaterdag 08 oktober 2016 @ 22:09:
[...]
Als ik het level shiften van TX(Arduino) naar RX(ESP) dmv 2 weerstanden doe werkt het prima. Enige nadeel is dat dit op hoge baudrates niet meer goed schijnt te werken.
Dat is raar. Met alleen weerstanden heb je geen vertraging in het signaal, en alleen stoorsignalen kunnen dan nog een oorzaak zijn. Als het hiermee niet werkt, gaat het met een chip het zeer waarschijnlijk ook niet werken.
Enig idee waarom de CD4050 hier niet goed voor werkt? Heb de keuze voor de 4050 o.a. hierop gebaseerd, waar het wel schijnt te werken: http://codeandlife.com/2012/04/06/level-shifting-101/
Probeer eens alle ongebruikte ingangen van deze chip aan de GND te leggen. Nu zweven ze en dat kan stoorsignalen veroorzaken.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 12-09 15:58
Onbekend schreef op zondag 09 oktober 2016 @ 10:06:
[...]

Dat is raar. Met alleen weerstanden heb je geen vertraging in het signaal, en alleen stoorsignalen kunnen dan nog een oorzaak zijn. Als het hiermee niet werkt, gaat het met een chip het zeer waarschijnlijk ook niet werken.
Da's niet helemaal waar. Alles heeft toch stiekem een beetje capacitantie, en die weerstanden beperken wel degelijk de frequentie waarmee je de "condensator" die zo'n pin eigenlijk is kan opladen. Level shifters bestaan niet voor niks.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 20:45

Onbekend

...

Daar heb je inderdaad gelijk in.
Maar als er geen data wordt verzonden, blijft die pin op het zelfde niveau en zou je geen tekenreeksen verwachten zoals die in de startpost zijn vermeldt.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
Onbekend schreef op zondag 09 oktober 2016 @ 10:06:
[...]

Probeer eens alle ongebruikte ingangen van deze chip aan de GND te leggen. Nu zweven ze en dat kan stoorsignalen veroorzaken.
Net even geprobeerd, maar dat veranderd niks. Heb ook een andere CD4050 geprobeerd, maar die geeft hetzelfde probleem... Lijkt erop alsof de chip niet geschikt is oid. Maar ik vind wel diverse mensen die het gebruiken voor 5v->3.3v level shifting, ook icm een ESP8266.

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 01:11

Damic

Tijd voor Jasmijn thee

Is het niet zo dat de rest van de inputs van de 4050 aan gnd moet hangen.

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • darkmdmn
  • Registratie: Maart 2010
  • Laatst online: 12-09 13:59
Damic schreef op maandag 10 oktober 2016 @ 18:23:
Is het niet zo dat de rest van de inputs van de 4050 aan gnd moet hangen.
Heb ik al geprobeerd na de suggestie van "Onbekend", maar dit lost niks op...

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 01:11

Damic

Tijd voor Jasmijn thee

Ow overgelezen :$

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • Valen_76
  • Registratie: Oktober 2009
  • Laatst online: 19-04 19:28
Misschien is dit een teken dat de ESP8266 in een reset terecht komt.

Als de ESP8266 uit reset komt stuurt deze eerst een reeks bootloader tekst uit op de TX pin met een vreemde baudrate (ergens tussen de 70-80k baud als ik me niet vergis. De precieze baudrate is vast ergens op het internet te vinden. Wellicht kun je dat afluisteren met een andere Arduino hardware poort ingesteld daarop. Of met een USB-naar TTL serieel adapter direct naar je pc om latency in de arduino te voorkomen.
Pagina: 1