Модуль SIM800L на Arduino nano
Я пытаюсь заставить модуль Arduino nano и SIM800L работать вместе. Я снабдил модуль рекомендуемым внешним напряжением 4,0 В (в документации указано 3,6 В - 4,2 В), преобразованным через LM2596. Исходный источник - 5В 3А.
Светодиод на SIM800L мигает один раз в секунду, как указано в документации, когда он находится в отключенном состоянии.
Схема выглядит следующим образом:
Antena
\_/
|
Arduino SIM800L | External 4.0V
NET ---/
VCC ----- +4.0V
D2 --------- RST
D3 --------- RX
D4 --------- TX
GND ----- GND
Я уже пробовал 3 различные библиотеки для AT-связи, а также отправку необработанных AT-команд с использованием записи в serial вручную. Я также попробовал другой модуль SIM800L, потому что думал, что модуль неисправен.
Вот дамп от последовательной связи:
[551135] ### TinyGSM Version: 0.10.9
[551139] ### TinyGSM Compiled Module: TinyGsmClientSIM800
AT
��AT
�AT
H�j���[552012] ### Unhandled: Hj
AT
AT-���[552317] ### Unhandled: AT-
AT
��AT
��AT
�Z5
[553228] ### Unhandled: Z5
AT
␚)O���[553532] ### Unhandled: ␚)O
AT
AT���[553836] ### Unhandled: AT
AT
��AT
��AT
�)OK��[554748] ### Unhandled: )OK
AT
���[555053] ### Unhandled: 5
AT
���AT
��AT
��AT
�j�H�[556266] ### Unhandled: jH
AT
CC����[556570] ### Unhandled: CC
AT
AT���[556875] ### Unhandled: AT
AT
��AT
AT
���[557787] ### Unhandled: T
AT
�H����[558091] ### Unhandled: H
AT
AT���[558395] ### Unhandled: AT
AT
��AT
��AT
AT
jRO���[559610] ### Unhandled: jRO
AT
AT���[559915] ### Unhandled: AT
AT
��AT
��AT
AT
�
OK��[561128] ### Unhandled: OK
Failed to initialize SIM800L
Как вы можете видеть, модуль пытается договориться о baudrate. По умолчанию я использую скорость 9600, как указано в документации. Когда я использую другой baudrate, модуль вообще не реагирует.
Кажется, модуль отвечает, а иногда даже правильно. Ответ на
команду AT должен быть в порядке
.
Знаете ли вы, как мне успешно согласовать скорость и установить надежную последовательную связь с модулем? Пропускаю ли я какие-либо электрические компоненты в своей цепи, такие как конденсатор или резистор? Я попытался использовать конденсатор 35V / 3300μF, но без какой-либо разницы. Я думаю, что мой источник энергии достаточно силен.
Исходный код выглядит следующим образом:
#define PIN_GSM_RST 2
#define PIN_GSM_TX 3
#define PIN_GSM_RX 4
#define GSM_BAUDRATE 9600
#define TINY_GSM_MODEM_SIM800
#define TINY_GSM_DEBUG Serial
#define TINY_GSM_USE_GPRS true
#define TINY_GSM_USE_WIFI false
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <TinyGsmClient.h>
#include <StreamDebugger.h>
SoftwareSerial serial_SIM800L(PIN_GSM_RX, PIN_GSM_TX);
StreamDebugger debugger(serial_SIM800L, Serial);
TinyGsm modem(debugger);
TinyGsmClient client(modem);
void setup() {
Serial.begin(9600);
delay(1000);
Serial.println(F("Serial initialized"));
serial_SIM800L.begin(GSM_BAUDRATE);
delay(5000);
while (!modem.init()) {
Serial.println("Failed to initialize SIM800L");
}
}
void loop() {
//
}
@, 👍1
Обсуждение1 ответ
Лучший ответ:
Спасибо @PeterPaulKiefer вот ответ.
Внешнее питание для модуля SIM800L GND pin должно быть подключено как к модулю SIM800L GND pin, так и к Arduino nano GND pin. (например, между RST и R2 pin на Arduino nano)
Для того чтобы функция вызова работала, вам также необходимо использовать конденсатор на контактах SIM800L VCC и GND. Я использовал 35В, 3300 мкФ.
Схема:
Antena
\_/
|
Arduino SIM800L | External 4.0V
NET ---/
VCC ----- +4.0V
D2 --------- RST |
D3 --------- RX === Capacitor (35V, 3300µF)
D4 --------- TX |
GND --------- GND ----- GND
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Модуль SIM808 GSM работает нормально, GPS не работает (нет сообщения о готовности GPS при включении питания)
- Подключение модема GSM напрямую к Rx и Tx
- Использование SoftwareSerial вместе с библиотекой FastLED для управления светодиодами WS2812
- Sim800 FTP Arduino
- Arduino Nano и SIM800L при питании от батареи
- GSM и GPS-модуль не работают вместе
Вы подключили GND Arduino к GND SIM800L? Я не вижу связи в схемах., @Peter Paul Kiefer
@PeterPaulKiefer Нет, я только подключил SIM800L к земле внешнего источника. Может быть, в этом и проблема?, @Richardds
Все напряжения, поступающие от arduino к SIM800L, должны иметь эталонный GND. Вам нужен общий потенциал. Если у вас их нет, Arduino не сможет взаимодействовать с модулем. GND всех модулей и внешних источников питания должен быть подключен. Только если вы используете отдельную цепь, например, за relais, GND не должен быть подключен., @Peter Paul Kiefer
Еще одна вещь. Nano - это обычно 5-вольтовая плата. Вы уверены, что контакты SIM800L устойчивы к 5 вольтам? Если вы подключите GND, они могут столкнуться с 5V. Это может убить их, если они не будут терпимы к 5V., @Peter Paul Kiefer
Максимальное рабочее напряжение SIM800L составляет 4,2 В. Если напряжение выше 4,4 В, модуль выключается. Какую схему использовать, чтобы модуль не подвергался воздействию 5 В через GND?, @Richardds
Вероятно, переключатель уровня; или если у вас есть контроллер 3,3 Вольта (Arduino Due, Micro, 3.3V Nano). Поскольку вы не знакомы с электроникой (я предполагаю), ищите проекты arduino с SIM800L в Интернете. И не доверяйте всем видео, которые говорят, что лучше использовать SIM 800L с 5V Arduinos. Вам может быть интересно следующее: https://lastminuteengineers.com/sim800l-gsm-module-arduino-tutorial/, @Peter Paul Kiefer
В конце концов я использовал LM2596 для преобразования 5V в 4V. Я уже пробовал переключать уровень резистора. Многие статьи, которые я нашел, просто не использовали внешнее питание, но падение напряжения диода, поэтому можно было использовать вывод платы 5 В, и я этого не понимал. Ваше предложение о подключении GNDS сработало. Спасибо., @Richardds
Не за что. Просто чтобы упомянуть об этом: контакты Arduino, подключенные к SIM-модулю, имеют напряжение 5 Вольт. Если ваша версия модуля имеет внутреннюю защиту для этих контактов, все в порядке. Но если контакты соединены без сдвига уровня, модуль может работать какое-то время, но есть большая вероятность, что он будет уничтожен. Твое здоровье., @Peter Paul Kiefer