Wpis z mikrobloga

Jak przesyłać między ESP i Arduino dane za pomocą komunikacji szeregowej?
Na ESP ustawiłem wysyłanie cyferek (chciałbym stringi, ale cyferki prostsze) o tak:

Na ESP zwykły serial:

void setup()
{
Serial.begin(115200);
...
}
...
Serial.print(3);
...

I to działa, bo podpięte bezpośrednio do komputera wypluwa cyferki na port szeregowy.

Na Arduino zrobiłem SoftwareSerial:

#include
SoftwareSerial ESPSerial(2, 3);

void setup()
{
Serial.begin(9600);
ESPSerial.begin(115200);
}

void loop()
{
int ESPMassage;
if (ESPSerial.available())
{
ESPMassage = ESPSerial.read();
Serial.println(ESPMassage);
}
}

I to już nie działa. Nic się nie dzieje. Jeżeli usunę ifa z available to wywala -1, znaczy że nie ma danych do odebrania.

Nie działa także kiedy podepnę do normalnych portów szeregowych w Arduino i zmienię kod na taki:
int ESPMassage;
if (Serial.available())
{
ESPMassage = Serial.read();
}
if (ESPMassage == 3) zrób coś;

Co robię źle?

#majsterkowanie #elektronika #esp8266 #arduino #programowanie #pytanie

  • 13
@Gumaa: To że zasilanie ma z 5V nie znaczy, że piny przyjmują 5V.

if (ESPMassage == 3) zrób coś; Tu powinno być if (ESPMassage == "3") zrób coś;
Z seriala przychodzi string nawet jak wysyłasz cyfrę.
@radekrad: pisałem, że próbowałem też zrobić to przepiąć na normalny serial i też nie działało :c

@houk: nawet jeśli nie przyjmują (ale jestem niemal przekonany że przyjmują, bo programuje ESP normalnie przez Arduino jako konwerter bez żadnych mostków) to na razie mam problem z wysyłaniem a nie odbieraniem.

@mattcabb: @houk:
Stronka Arduino twierdzi, że zwraca inta. To samo mówi środowisko w którym piszę. I nie w tym jest
Gumaa - @radekrad: pisałem, że próbowałem też zrobić to przepiąć na normalny serial i...

źródło: comment_ZcYAux8B4L0EO3o7Ay96gA7ukxobdQIY.jpg

Pobierz
@pawelek69: @mattcabb:
A więc tak. Udało mi się połączyć z pomocą kodu @pawelek69 i po ponownym podłączeniu wszystkiego. Prawdopodobnie w swoim geniuszu nie ogarnąłem faktu, że trzeba na SoftwareSerial podłączyć Tx->Rx i odwrotnie. Bo na zwykłym serialu podpina się Rx->Rx tam gdzie jest napisane na płytce (co nie zmienia faktu, że komunikacja po zwykłym serialu a nie software działać nie chciała).

Obecnie w serial monitor dostaje stringi które wysyłam z