Ik heb verschillende ESP8266 modules, indien ik er een aansluit op mijn MEGA 2560 Serial 1, of 2 of 3, en probeer te communiceren dan krijg ik niet de output die ik zou mogen verwachten, dit is identiek bij alle 3 de ESP8266 modules die ik heb:
Ik stuur: Serial3.begin(); Serial3.println("AT+RST"); delay(100);
*Serial3.println("AT") *
de blauwe LED licht op bij elke communicatie en baud rate
lezen gaat als volgt: while (Serial3.available()) {
int inByte = Serial3.read();*
Serial.print(char(inByte) );*
Serial.print(" DEC: ");*
Serial.print(inByte, DEC);*
Serial.print(" HEX: ");*
Serial.print(inByte, HEX);*
Serial.print(" BIN :");*
Serial.print(inByte, BIN);*
Serial.println();*
}*
er is een respons vanaf baudrate 57600, niets bij lagere snelheden:
Baud rate Serial 1: 57600 ÿ DEC: 255 HEX: FF BIN :11111111 ÿ DEC: 255 HEX: FF BIN :11111111 Baud rate Serial 1: 62500 ÿ DEC: 255 HEX: FF BIN :11111111 ÿ DEC: 255 HEX: FF BIN :11111111 Baud rate Serial 1: 76800 ÿ DEC: 255 HEX: FF BIN :11111111 ÿ DEC: 255 HEX: FF BIN :11111111 Baud rate Serial 1: 115200 ÿ DEC: 255 HEX: FF BIN :11111111 ÿ DEC: 255 HEX: FF BIN :11111111 Baud rate Serial 1: 125000 ÿ DEC: 255 HEX: FF BIN :11111111 ÿ DEC: 255 HEX: FF BIN :11111111 Baud rate Serial 1: 153600 ÿ DEC: 255 HEX: FF BIN :11111111 ÿ DEC: 255 HEX: FF BIN :11111111 Baud rate Serial 1: 230400 ù DEC: 249 HEX: F9 BIN :11111001 ù DEC: 249 HEX: F9 BIN :11111001 Baud rate Serial 1: 250000 ñ DEC: 241 HEX: F1 BIN :11110001 ñ DEC: 241 HEX: F1 BIN :11110001 Baud rate Serial 1: 307200 ñ DEC: 241 HEX: F1 BIN :11110001 ñ DEC: 241 HEX: F1 BIN :11110001 Baud rate Serial 1: 500000 Á DEC: 193 HEX: C1 BIN :11000001 Á DEC: 193 HEX: C1 BIN :11000001
Echter geen van deze is "leesbaar", ik zou minstens "OK" verwachten bij een van de baud settings.
Kan dit een MEGA board probleem zijn?
Moet ik "iets" veranderen aan de MEGA firmware?
Het antwoord "De mijne heeft een baudrate van 115200" is niet een antwoord op mijn vraag.
En het engelse forum was enkel een uitbreiding van het aantal personen dat mogelijk een zelfde probleem heeft/had en een oplossing heeft/kan gebruiken.
Ik heb een nieuw Mega 2560 gekocht, maar het probleem is nog steeds niet opgelost.
Ik krijg nog steeds "nonsense" antwoorden terug van de ESP8266 en dat op alle Baud rates.
Als ik data schrijf naar de ESP8266 gaat de blauwe led even oplichten, hij ontvangt dus de data, en er is data beschikbaar want
" while (Serial1.available()){}"
geeft mij het resultaat zoals getoond in het begin van mijn vraagstelling, en dat voor verschillende baud rates.
Tja en hebben ze ook nog ergens documentatie gegeven? Of heb je nu de miskoop van de maand.
Daarnaast zou ik toch eens de RX en TX kruisen zoals normaal bij datacommunicatie. Ledje of geen ledje.
Ik mis de CH_PD pin. die moet op een normale ESP naar de 3.3V
Om je wat op weg te helpen:
Dit is de ESP8266-201 module. Hier heb je een link van iemand die er mee bezig is geweest. Daar staat ook hoe je moet communiceren met dat ding. Tip:
Heel gauw stoppen met dit ding. Is het niet waard. Je blijft klooien met 'flashen' terwijl je voor dezelfde prijs een nodeMCU koopt met 4Mb flash geheugen die je gewoon via een micro-USB kabeltje aan de PC hangt en gewoon kan programmeren met de laatste versie van de Arduino IDE. Dan heb je de arduino ook niet meer nodig tenzij je nog meer IO's nodig hebt. Maar daar zijn ook betere alternatieven voor.
Dit bordje was niet voor niets zo laag geprijst. De Wemos-D1 of de nodeMCU hebben dit bordje allang de markt uit geprijst. En dat geldt ook een beetje voor de ESP-01 modules etc. Die hebben alleen nog zin als je een enorm ruimte probleem hebt.
Inmiddels een beetje achterhaalde techniek.
En hou er rekening mee dat de ESP32 op komst is. Die zit nu in de beta test fase.
Die heeft 2 cores. Een voor de WiFi en een voor je eigen programma.
nicoverduin:
Daarnaast zou ik toch eens de RX en TX kruisen zoals normaal bij datacommunicatie.
Ik kan de OP helaas niet helpen want bij mij loopt de communicatie tussen de ESP8266 en de Mega perfect, maar ik weet wel dat RX en TX niet gekruist moeten zijn of beter gezegd: de markeringen op een van de boards zijn blijkbaar al gekruist -- dus RX moet op RX worden aangesloten en idem TX op TX.