• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Serial гадит в эфир. Есть решение?

Доброго дня. Бьюсь пол дня, ESP-01 ведет себя не прилично, в сериал отправляет вместо led On и Led Off всякую фигню нечитаемую (или длинную полосу ?????????, или бессмысленные символы и цифры.)
Что сделано:
Попробовал разную скорость: и 115200 и 9600.
Использовал несколько разных адаптеров. И свой (для -01) и ноду.

В остальном вроде работает. Шьется, к WIFI подключается, лампочкой мигает. Только вот дебагить его не выходит ну никак, ибо не понятно, что там происходит.
 

CodeNameHawk

Moderator
Команда форума
Есть, напишете программу, которая будет посылать то, что вам надо.
Но в принципе может быть проблема с питанием или программа перегружается.
Гляньте на скорости 74800.
 
Последнее редактирование:
Доброго дня.
Питается от DC-DC преобразователя ровно в 3.3 вольта.
На скорости 74800 нечем читать, не ардуинного монитора порта не качал, а ардуинный работает на 74880 - проверил, результат тот же.
 
Скетч:
Код:
const int ledPin =  LED_BUILTIN;// the number of the LED pin

int ledState = LOW;             // ledState used to set the LED

unsigned long previousMillis = 0;        // will store last time LED was updated

const long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  Serial.begin(74880);
  delay(100);
  Serial.println();
  pinMode(ledPin, OUTPUT);
}

void loop() {
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {

    previousMillis = currentMillis;

    if (ledState == LOW) {
      ledState = HIGH;
      Serial.println('Led on');
    } else {
      ledState = LOW;
      Serial.println('Led off');
    }
    digitalWrite(ledPin, ledState);
  }
}
 

Вложения

CodeNameHawk

Moderator
Команда форума
При старте должна быть читаемая информация, ее у вас не видно.
Покажите фото платы с переходником.
 

EvgeniyS

Member
Serial.println('Led on');
Serial.println('Led off');
Поставьте вместо одинарных кавычек двойные и будет вам счастье (у меня заработало). Я бы сделал примерно такой код:
C++:
const uint8_t ledPin =  LED_BUILTIN;// the number of the LED pin
uint32_t timeout = 0;        // timeout to change state
const uint32_t interval = 1000;           // interval at which to blink (milliseconds)
const char* states[] = {"low","high"};
void setup() {
  Serial.begin(115200);
  Serial.println();
  pinMode(ledPin, OUTPUT);
}

void loop() {
  static bool ledState = LOW;
  if (millis() >= timeout) {
    timeout = millis()+interval;
    ledState = !ledState;
    digitalWrite(ledPin, ledState);
    Serial.printf("led %s\n",states[ledState]);
  }
}
 
При старте должна быть читаемая информация, ее у вас не видно.
Покажите фото платы с переходником.
Доброго дня.
Прошу прощения, выходные были. А всё на работе осталось.
Показываю фото с переходником
screenshot.png
Пробовал так же перемычками в "штатный" адаптер, но результат такой же или хуже - вообще никакого результата.
 
Штатным адаптером называю USB адаптер для ESP-01. Лежит рядом на фото, с припаянной перемычкой(проводом). Без перемычки не шьётся, а маленькой удобной кнопки я пока не нашёл припаять.
Перемычками называю провода для breadboard.
Пробовал ESP-01 запитать отдельно от адаптера, и перемычками подключить его к TX-RX. Лучше тоже не стало.
 

CodeNameHawk

Moderator
Команда форума
Вы питание с nodemcu есп модуля берете?
А вы только rx tx подключаете, а корпус кто будет подключать?
 
Вы питание с nodemcu есп модуля берете?
А вы только rx tx подключаете, а корпус кто будет подключать?
Нет, питание отдельно.
Землю я да... провтыкал. Подключил и получил интересный :

11:45:52.604 ->
11:45:52.604 -> ets Jan 8 2013,rst cause:2, boot mode:(3,6)
11:45:52.650 ->
11:45:52.650 -> load 0x4010f000, len 3460, room 16
11:45:52.650 -> tail 4
11:45:52.650 -> chksum 0xcc
11:45:52.650 -> load 0x3fff20b8, len 40, room 4
11:45:52.650 -> tail 4
11:45:52.650 -> chksum 0xc9
11:45:52.650 -> csum 0xc9
11:45:52.650 -> v00041f40
11:45:52.650 -> ~ld
11:45:52.838 ->
11:45:53.675 -> 1679847278
11:45:54.651 -> 544171622
11:45:55.675 -> 1679847278
11:45:56.653 -> 544171622
11:45:57.633 -> 1679847278
11:45:58.652 -> 544171622
11:45:59.673 -> 1679847278
11:46:00.652 -> 544171622
11:46:01.675 -> 1679847278
11:46:02.651 -> 544171622
11:46:03.674 -> 1679847278
11:46:04.651 -> 544171622
До этого я даже на NodeMCU не видел стартовой информации. А потом я таки исправил ' на " и всё появилось.

спасибо большое за помощь! Теперь всё работает.
 

CodeNameHawk

Moderator
Команда форума
До этого я даже на NodeMCU не видел стартовой информации. А потом я таки исправил ' на " и всё появилось.
Эти символы никак не влияют на вывод стартовой информации.
Установите скорость 74800 и нажмите кнопку ресет на nodemcu.
 
Сверху Снизу