WemosD1mini, получить-отправить данные Serial

NaPlucke
Offline
Зарегистрирован: 05.02.2017

Всем доброго здоровья! WemosD1mini шлёт (нефига не шлёт) через радиоудленитель данные на Мегу. Не могу победить D1mini. У неё можно переключать Serial на ноги D7, D8. Serial.swap(); Не дотумкал  как это работает. Активировал с помощью SoftwareSerial.
Подключил на них GPS датчик. Работает - плата данные читает в Serial выводит.
Отключил GPS, подключил на те же ноги удлинитель ACP220. Отправляю чепуху. Получаю на Меге. Работает.
Собираю вместе. Опять подключаю GPS через SoftwareSerial (GPIO13,15), а на Serial подпаиваю удлинитель ACP220 (уже после загрузки программы, конечно).
Мега должна принимать данные. Хоть какие-то. Нет. Ничего нет.

Подскажите, пожалуйста, где ошибка. Что не так?
 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

NaPlucke пишет:

Что не так?

Как всегда, зелёный провод не туда припаял и в в 33 строке скетча лажу написал :(

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

С 2017 года не знаешь как тему оформлять?

NaPlucke
Offline
Зарегистрирован: 05.02.2017

передатчик

#include <TinyGPS++.h>

char myStrLat[20];
char myStrLng[20];

boolean flag = false;

TinyGPSPlus tinyGps;

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

void loop() {
  if (flag == false) {
    Serial.swap(); // переключение на 13,15
    flag = true;
  }

  while (Serial.available() > 0) {
    tinyGps.encode(Serial.read());
    if (tinyGps.location.isUpdated()) {
      double myLat = tinyGps.location.lat();
      double myLng = tinyGps.location.lng();

      Serial.flush();
      delay(10);
      Serial.swap();  // переключение на 0,1
      flag = false;

      //      Serial.print("Latitude = ");
      //      Serial.println(myLat, 6);
      //      Serial.print("Longitude = ");
      //      Serial.println(myLng, 6);
      //      Serial.println("");

      for (int i = 0; i < 20; i++) {
        myStrLat[i] = ' ';
      }
      myStrLat[18] = '\r';
      myStrLat[19] = '\n';

      dtostrf(myLat, 3, 7, myStrLat);

      for (int i = 0; i < 20; i++) {
        myStrLng[i] = ' ';
      }
      myStrLng[18] = '\r';
      myStrLng[19] = '\n';

      dtostrf(myLng, 3, 7, myStrLng);

      String str2senden = "";
      str2senden += myStrLat;
      str2senden += myStrLng;

      Serial.write(0xAA);
      Serial.write(str2senden.c_str());
    }
  }
  delay(50);
}

приемник


void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
  if (Serial1.available()) {
    Serial.println(Serial1.read());
  }
}

 

NaPlucke
Offline
Зарегистрирован: 05.02.2017

всем спасибо, решено

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

За всегда - пожалуйста!