• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь NODE MCU V3 + SIM800L через UART

Сергей_Ф

Moderator
Команда форума
Ответ просто ОК или ERROR в терминал.
какой терминал? Вы хотите UART использовать и для команд модулю и для терминала? Одновременно?
Вас же уже предупредили

На nodemcu Есть встроенный адаптер USB-UART он тоже подключен туда же может создавать коллизии.
Желательно отпаять TX пин CH и поставить туда тумблер
 
Последнее редактирование:

Vypra

Member
Стоп, чтоб послать команду модулю, нужно ее напечатать в терминал (или руками, или програмно). И ответ от модуля туда же прилетит. Или я не так понимаю?
Ну на крайняк ответ от модуля мне нужен будет потом, я смогу вывести через RemoteXY себе на смарт. Есть такая задумка после настройки соединения с СИМ800 в будущем развить код.
 

Сергей_Ф

Moderator
Команда форума
чтоб послать команду модулю, нужно
послать команду модулю. Терминал тут при чём? Терминал - это просто интерфейс связи компьютера с человеком. И ему тоже можно что-то посылать (для отображения) и принимать (для ввода с клавиатуры). Для этого на борту может стоять чип адаптер USB-UART. А может не стоять.
Если нужен терминал - то подключайте модуль на другие пины, делайте softserial и шлите туда команды и оттуда же принимайте ответ, потом его выводите в терминал на аппаратный UART.
 

Vypra

Member
послать команду модулю. Терминал тут при чём? Терминал - это просто интерфейс связи компьютера с человеком. И ему тоже можно что-то посылать (для отображения) и принимать (для ввода с клавиатуры). Для этого на борту может стоять чип адаптер USB-UART. А может не стоять.
Я всегда думал, что терминал и UART отображают одно и то же. Если не ошибаюсь, на Ардуино так.
Хорошо, SerialPrintln ("AT"); отображается в терминале, а через ТX уходит на модуль?
 

Сергей_Ф

Moderator
Команда форума
всегда думал, что терминал и UART отображают одно и то же.
терминал отображает то что выведено в UART, если терминал подключен к нему. Так же терминал отображает ввод с клавиатуры, но прочитать этот ввод должна программа.
SerialPrintln ("AT"); отображается в терминале, а через ТX уходит на модуль?
вряд-ли.
 

Сергей_Ф

Moderator
Команда форума
Терминал мне не нужен. Тогда как послать команду на ТХ?
Вам уже отвечали
На nodemcu Есть встроенный адаптер USB-UART он тоже подключен туда же может создавать коллизии.
Желательно отпаять TX пин CH и поставить туда тумблер
шлёте вы правильно, только уберите всё то что вы шлёте для человека. Ну и учтите, что ответа вы так не увидите, только результат, если он будет.
 

Vypra

Member
Если нужен терминал - то подключайте модуль на другие пины, делайте softserial и шлите туда команды и оттуда же принимайте ответ, потом его выводите в терминал на аппаратный UART.
У меня еще свободные остаются GPIO 15 и GPIO 13, потому что датчик температуры завелся только на GPIO 13 и то с боем. Я их и оставил в покое.

Можно ли с GPIO 15 и GPIO 13 сделать GPIO для softserial, а GPIO 1, GPIO 3 останутся для UART?
 
Последнее редактирование:

Vypra

Member
Модули живые. И это радует.
Я запустил SoftSerial через GPIO 12, GPIO 14 - все работает.
А вот назначить GPIO 15, GPIO 13 простыми GPIO через pinMode(PIN, FUNCTION_3); и потом запустить через них SoftSerial никак не получилось. Пробовал pinMode на 15,13 пинах INPUT/OUTPUT прописывать - не завелось.
Получается, что если запускать SoftSerial через GPIO 12, GPIO 14 - у меня не хватает пинов под датчики.
Остается как и раньше вариант только задействовать GPIO 1, 3, 15, 13 под SIM800.
 

Vypra

Member
И вот это случилось. ))))
Заработала только эта комбинация на GPIO 15, 13:
Код:
void setup() {
  Serial.begin(9600);
  pinMode(15, OUTPUT);
  Serial.swap();
  
   Serial.println ("AT+CFUN=1,1");
}
void loop()
{}
Команда уходит, потому что диод мигает часто когда SIM800 перезагружается. Подключение кстати как на Ардуино - зеркальное.
Без pinMode(15, OUTPUT); не работает.
Только мне кажется это странным? Serial.swap(); должен был Serial перебросить на GPIO 15, 13 и все. Но нет, нужно 15 GPIO объявить OUTPUT.
 
Сверху Снизу