• Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу