ARDUINO Вопросы по Sim800L

kostyamat

★★★★★★✩
29 Окт 2019
1,097
632
@ilyad_MILL, наверное лучше поздно, чем никогда.
У синих модулей в вашем исполнении резистивные делители под ардуино уже встроенны в плату, внешние не нужны. С внешними - связи с модулем не будет.
 
  • Лойс +1
Реакции: puhloschiok

puhloschiok

✩✩✩✩✩✩✩
8 Окт 2018
22
0
Старик Похабыч, к сожалению ваш код не работал, т.к. это просто кусок кода из библиотеки memoryFree, и ардуина просто не знает про
brkval выдавая ошибку. Тем не менее, по вашей наводке я нашёл эту библиотеку, подключил и сделал вывод в монитор порта.
Показывает значение 665.
Код свой я полностью переписал. Теперь зависаний нет, но всё равно чтение СМС работает крайне нестабильно :(
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,304
1,310
Москва
Да, сейчас удивился и проверил. забыл вставить 2 строки. Прилагаю полный вариант рабочего кода
C++:
extern int __bss_end;
extern void *__brkval;

void setup() {
Serial.begin(115200);

}

void loop() {
Serial.println(memoryFree());

}

int memoryFree()
{
   int freeValue;
   if((int)__brkval == 0)
      freeValue = ((int)&freeValue) - ((int)&__bss_end);
   else
      freeValue = ((int)&freeValue) - ((int)__brkval);
   return freeValue;
}
 
  • Лойс +1
Реакции: puhloschiok

Sanek1878

✩✩✩✩✩✩✩
8 Май 2021
3
0
Подскажите кто знает как сделать что бы когда Sim800L ответила на входящий звонок по белому списку номеров и передачи DTMF сигналов с мобильного телефона в динамике Sim800L не было слышно как раз этих сигналов DTMF ? А то подаёшь команду и слышишь её , мне просто для проекта это не нужно .
 

Sanek1878

✩✩✩✩✩✩✩
8 Май 2021
3
0
Мне нужен динамик с разговорной речью , что бы говорить с телефона и передавать DTMF сигналы для управления реле . Нужна команда ( AT )для Sim800L , не могу найти да и вообще это возможно или нет я не знаю 😔
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
632
@Sanek1878, у sim800, если мне память со Стариком Похабычем не изменяет, имеет возможность установки а) громкости на все раздельно: рингтон, динамик, микрофон, вроде dtmf; b) возможность отключить эхо dtmf в динамике.
Вот команды не подскажу, с этим модемом года два уже не встречался.
А вот где поискать подскажу - https://www.google.com/url?sa=t&sou...FjAAegQIBBAC&usg=AOvVaw3Ylp8mdy26_qTxuILL55y3
 

Sanek1878

✩✩✩✩✩✩✩
8 Май 2021
3
0
Задача так и не решена , Просмотрел команды я смог найти только AT+VTD Установка/запрос длительности тональных сигналов DTMF это установка длительности сигнала DTMF с sim800l на телефон и AT+VTS Отправка тонального сигнала DTMF отправка сигнала знаков: 0-9,*,#,A,B,C,D . Это сигнал на передачу мне на телефон .Мой телефон отправляет на sim800l короткие сигналы DTMF а в динамике sim800l слышен длинный сигнал (секунда) вот его мне и надо убрать из слышимости в динамика :rolleyes: получается сама sim800l из полученного с моего телефона короткий сигнал выдает в динамик более длинный , значит как то можно это регулировать :unsure:С регулировкой громкости звонка и слышимости в динамике и уровень микрофона я тоже разобрался , спасибо за мануал (y) Вот как мне убрать DTMF я не знаю 😔
 

noindex

✩✩✩✩✩✩✩
24 Сен 2022
18
0
Всем доброго времени суток.
Приобретен такой вот модуль sim800l
Задача - передавать/получать данные с сервера по gprs.
Начитался о нюансах питания и подключения, подключил через широко известную схему с двумя резисторами на 10 кОм, питание даю 4В от лабораторного БП с общим минусом на ардуино.

Сначала залил найденный на просторах скетч с правками по APN и адресу сайта - в мониторе валилась ошибка, на сервер запросов не было.
Потом была еще пара скетчей, результат примерно одинаковый.

Залил аскетичный вариант тупо для тестирования комманд.
C++:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9);
void setup() {
  Serial.begin(9600);  //Скорость порта для связи Arduino с компьютером
  Serial.println("system test");
  mySerial.begin(115200);  //Скорость порта для связи Arduino с GSM модулем
  mySerial.println("AT");  // если связь с модулем есть то пишется АТ-ОК
  delay(1000);
  mySerial.println("AT+IPR=19200");
  delay(1000);
  mySerial.begin(19200);

  mySerial.println("AT");  // если связь с модулем есть то пишется АТ-ОК
  delay(1000);
}
void loop() {
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

Монитор настроен на 9600
При включении пишет разное
Читал что кракозябры следствие некорректной скорости в мониторе, но на скоростях отличных от 9600 выводится вообще полный трэш.

Симка MTS Московский регион, пин отключен, на телефоне проверена интернет и все дела есть.

Нашел список команд для модуля, пробовал выполнять разные, часть ответов на которые явно говорят о проблемах, но как их решать не могу понять...
Привожу список команд и ответов на них:

AT+COPS?
+COPS: 0
OK


AT+COPS=?
Call Ready
SMS Ready
+COPS: (1,"MTS","MTS","25001"),(1,"MegaFon","MegaFon","25002"),(1,"Bee Line GSM","BeeLine","25099"),,(0-4),(0-2)


AT+CPAS
+CPAS: 2
OK
+CPIN: READY
Call Ready
SMS Ready

AT+CREG?
+CREG: 0,2
OK

AT+CSQ
+CSQ: 0,0
OK

AT+CBC
+CBC: 0,55,3846
OK
Что я делаю не так?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,304
1,310
Москва
1) Встроенная антенна-свинячий хвостик так себе. Лучше подключить внешнюю, так надежнее.
2) Как мигает светодиод состояния ?
3) Что говорит обычный телефон, если с него позвонить на симку ?

Если приходят читабельные команды в ответ на АТ, то скорость обмена нормальная.
 
  • Лойс +1
Реакции: noindex

noindex

✩✩✩✩✩✩✩
24 Сен 2022
18
0
1) Встроенная антенна-свинячий хвостик так себе. Лучше подключить внешнюю, так надежнее.
Думал об этом, но у мня дома все операторы на ура ловят, 7й этаж, центр города.
Может проблема совсем не в этом, только зря антенну куплю...

2) Как мигает светодиод состояния ?
По началу 10 раз каждую секунду с перерывом в 3-4 секунды, потом по разу с перерывом в 3-4 секунды.
В какой-то момент опять начинает переходить на серию из 10 миганий.

3) Что говорит обычный телефон, если с него позвонить на симку ?
Абонент временно недоступен.

Если приходят читабельные команды в ответ на АТ, то скорость обмена нормальная.
Они относительно читабельные, мусор просачивается.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,304
1,310
Москва
Частое мигание серией- поиск сети. Редкое - нормальная работа. Если они чередуются, то сеть теряется, и скорее всего нормальная антенна понадобиться. За городом, где на одном модуле у меня все нормально работало на другом сеть периодически терялась. С антенной все работает уже 2-ой год наверное.
При нормальной связи с вышкой естественно должен проходить сигнал. в мониторе порта при этом будет отображаться информация о звонке.

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

Вот тут годная информация о модуле: https://codius.ru/articles/GSM_модуль_SIM800L_часть_1

А антенна не такая уж дорогая, стоит купить.
 
  • Лойс +1
Реакции: noindex

noindex

✩✩✩✩✩✩✩
24 Сен 2022
18
0
Если просачивается мусор, то вполне может быть плохое качество соединения.
Соединения sim800l с arduino по rx/tx?

Был там, схему соединения кажется там и подсмотрел.
Только ответов на вопрос почему не работает там не нашлось.

А антенна не такая уж дорогая, стоит купить.
Заказал, через 2-3 дня приедет. буду пробовать.
Просто опасаюсь что проблема не в антенне.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,304
1,310
Москва
Соединения sim800l с arduino по rx/tx?
Да, причем соединение у меня идет аппаратное, т.к. код разросся и нудна была память, поэтому соединил с мегой.
Аппаратная скорость на 57600, при софтсериал 9600 работает очень стабильно. Пробовал и 19200, выше уже плохо
 

pingemall

✩✩✩✩✩✩✩
22 Мар 2020
25
0
Родина
www.mj2cnc.kh.ua
Из личного:
- питаю sim и меги от 4 вольт, esp8266 и sim от 3,6 вольт, чтобы не пилить преобразователи уровней. Проверено и работает не 1 год уже.
- если соединения на макетке и китайские провода (не медные) - глючит, проверял специально с нескольким кол-м модулей. Лучше припаивать, проблему как рукой снимает.
- иногда попадались sim глюкавые, тогда подтягивал tx/rx к + 10к. Помогало.
И общение лучше вот так:
C++:
if (Serial.available() > 0) {    // чтение SIM
    String inputStr = "";
    int rtmp = 0;
     while (Serial.available()) rtmp = Serial.read(), inputStr += char(rtmp), delay(1);
    mySerial.println(inputStr);
    inputStr = "";
    }
    
if (mySerial.available() > 0) {        Чтение UART
     Serial.write(mySerial.read());
    }
 

spaceengineer56

✩✩✩✩✩✩✩
22 Янв 2024
4
0
Здравствуйте форумчане!
Проблема следующая: имеется модуль SIM 800L. Подключаю его к Ардуино и пытаюсь отправить СМС, но смс не отправляется. В ходе анализа выяснилось, что когда СИМ-карта присутствует в модуле, тогда отсутствует сигнал (+CSQ=0,0), но стоит мне вынуть СИМ-карту, и выдать команду CSQ, как тут же появляется сигнал (+CSQ=0,16). В интернете пишу, что подобная проблема решалась. Один чел написал, что нашел решение, оно зависело от потребляемой мощности. когда модуль пытается подключиться к сети, он потребляет много энергии, поэтому он уменьшил сопротивление. Но он не написал, как это сделал. Я боюсь сжечь модуль (а он итак второй), поэтому пишу сюда с просьбой помочь решить данный вопрос.

P.S. Не знаю имеет ли это отношение к вопросу, но все же:
Когда я выдаю команду AT+COPS=?, то результат мне возвращается не полностью, то есть пишется следующее:
+COPS: (1,"MegaFon","MegaFon","25002"),(2,"Bee Line GSM","Bee
Как мне кажется, там должно быть чот-от еще, строка должна иметь окончание. в чем может быть проблема и может ли это быть связано с тем, что модуль не работает при подключении СИМ?
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,304
1,310
Москва
У меня при работе с подобным модулем бывали такие проблемы, но т.к. питание было достаточно, а проблема была плавающая, т.е. вот сейчас она есть, а через месяц тот же модуль с той же картой работает. У меня сложилось такое впечатление , что это из за слабого сигнала от оператора. Я приобрел несколько внешних антенн для тестов вот отсюда , они совсем недорогие: https://compacttool.ru/besprovodnye/antenny/ и подключение антенны подтвердило мою гипотезу, с внешней антенной все стало работать куда лучше, чем со штатной фитюлькой. А вот такая антенна не помогла: https://compacttool.ru/wifi-antenna-24-ggts-3db
 
  • Лойс +1
Реакции: spaceengineer56

spaceengineer56

✩✩✩✩✩✩✩
22 Янв 2024
4
0
@Старик Похабыч, У меня сим-карта оператора "Мегафон", и у меня при COPS первым вылазит именно он. Так же у меня имеется сим-карта "Билайн", с которой тот же результат. Почему тогда он вообще у меня видит базовые станции и уровень сигнала с этими базовыми станциями 31 (то есть оч. хороший)?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,304
1,310
Москва
Возможно проблема комплексная, и еще что то влияет. У меня за последние пару лет сильно ухудшилась сотовая связь в квартире, и я начал именно с улучшения качества приема сигнала
 

poty

★★★★★★✩
19 Фев 2020
3,447
982
@spaceengineer56, а не может ли это быть связано с ограниченным размером буфера на порту приёма?
 

spaceengineer56

✩✩✩✩✩✩✩
22 Янв 2024
4
0
@poty,не могу знать, так как в этой теме я новичок. Как мне узнать/выставить размер буфера?
 

poty

★★★★★★✩
19 Фев 2020
3,447
982
@spaceengineer56, не знаю, ищите в описании применённых библиотек, я не обладаю даром чтения мыслей. Попробуйте команды, которые меньше по длине ответа.