Arduino Polska Forum
Problem przy komunikowaniu Arduino z NodeMCU - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Problem przy komunikowaniu Arduino z NodeMCU (/watek-problem-przy-komunikowaniu-arduino-z-nodemcu)



Problem przy komunikowaniu Arduino z NodeMCU - krzyswys3@gmail.com - 04-03-2020

Witam, mógłby mi ktoś pomóc i podpowiedzieć dla czego zamiast liczb które wychodzą z NodeMCU i Blynk'a(zeRGBa), w Arduino otrzymuję nie mające związku liczby? Korzystam z serial comunication między Arduino i NodeMCU. Przy sprawdzeniu monitora portu na Node wszytko idzie ładnie, natomiast monitor portu przy Arduino pokazuje zupełnie inne wyniki. Dodam że wszytko ładnie chodzi przy przyciskach/suwakach w Blynk'u, jedynie ten problem pojawia się przy korzystaniu z zeRBGy. Szukałem w Google ale nie znalazłem odpowiedzi która by zadziała. Reasumując z Blynka wysyłane są 3 wartości np: 600, 750, 1010, NodeMCU ładnie je odbiera i wyświetla natomiast arduino zwraca np: 38, 157, 230. 
KOD Z NODEMCU:
Kod:
#define BLYNK_PRINT Serial
#include<SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

SoftwareSerial s(3,1);

char auth[] = "wHpLrm_YSfZsDSNzXY3RaWJC-ii0TvLI";
char ssid[] = "TP-LINK_10AC";
char pass[] = "10456217";

void setup()
{
   Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}
BLYNK_CONNECTED()
{
  Blynk.syncVirtual(V4);//ledy
  Blynk.syncVirtual(V6);//czerwone led
}
BLYNK_WRITE(V4)
{
  int buttonState=param.asInt();
    if (buttonState == 1)
{
     Serial.write(9);
}
  else if (buttonState == 0)
  {
     Serial.write(10);
  }
}
BLYNK_WRITE(V6)
{ int buttonState=param.asInt();
Serial.write(buttonState);
}
void loop() { 
    Blynk.run();
}


KOD Z UNO:
Kod:
int data;
#include<SoftwareSerial.h>
void setup()
{
Serial.begin(9600);
}
void loop()
{
data = Serial.read();
delay(1000);
Serial.println("data:");Serial.println(data);
}



RE: Problem przy komunikowaniu Arduino z NodeMCU - kaczakat - 05-03-2020

Mieszasz write i print.


RE: Problem przy komunikowaniu Arduino z NodeMCU - krzyswys3@gmail.com - 12-03-2020

(05-03-2020, 05:57)kaczakat napisał(a): Mieszasz write i print.
Zmieniłem to jednak dalej nie działa, co mogłoby oprócz tego powodować taki problem?


RE: Problem przy komunikowaniu Arduino z NodeMCU - kaczakat - 12-03-2020

Z print jest łatwiej, używasz wysyłania linii napisów i funkcji najlepiej z przykładu serialEvent albo chociaż Serial.readStringUngil() do odczytania całej linii. Poza tym nie wstawia się delay, bo do odebrania danych trzeba być gotowym zawsze. Jak używasz write to jest to komunikacja bardziej skomplikowana, bo sam musisz decydować co takiego odebrałeś, ile tego masz odebrać, ułożyć sobie ramkę danych, podejrzewam że niby wysyłasz pojedyncze bajty, a wartości masz >255, więc łączy ci kilka. Jak to jest byte to użyj Serial.readByte(), jak coś innego to lepiej zacznij od uzupełnienia wiedzy o komunikacji szeregowej, bo o tym u znajomego widziałem taką książkę z 8cm grubą. Można też użyć struktury i odczytywać cały zestaw danych.
Do tego jak to sobie tu poukładałeś, pokaż końcowy kod. Czy Ty używasz tego samego serial do odbierania danych z ESP i potem nim drukujesz na komputer?