та да.... я похожие части кода далаю, но не всегда рабочие.
подозреваю, я "склеиваю" разные типы переменных. и в этом пробема. Но и впроде в примерах у себя пробовал одинаковые типы. и всеравно - перед отправкой смс делаю Serial.println(sms_txt); delay(100); и там пусто... соответсвенно и такая смс потом приходит.
может скорость не того? 9600. от gsm модуляэто никак не зависит раз sms_txt по факту или пустой. ии содержит последнюю строку или ее часть.
А МОЖЕТ В ЭТОМ ПРОБЛЕМА? :
"Глобальные переменные используют 1 433 байт (69%) динамической памяти, оставляя 615 байт для локальных переменных. Максимум: 2 048 байт."
еще я указал .. - #include <String.h> теперь уже сам не знаю а зачем??
====================
пришел к выводу, что таки не хватает памяти. порезал названия датчиков, уменьшил рзмер смс. и даже мой код начал работать во всех отправляемых смс. каким то боком памяти мало, пора учится оптимизировать проблему с самого начала написания вновь нового кода.
еще я указал .. - #include <String.h> теперь уже сам не знаю а зачем??
====================
пришел к выводу, что таки не хватает памяти. порезал названия датчиков, уменьшил рзмер смс. и даже мой код начал работать во всех отправляемых смс. каким то боком памяти мало, пора учится оптимизировать проблему с самого начала написания вновь нового кода.
Выкладывайте полный скетч - могу попробовать помочь с оптимизацией.
при случае - да, выложу, а этот стыдно показывать :))
Да не надо стесняться, у самого такого добра выше крыши, а показывать всё равно приходится. Все мы учимся постоянно ;) Я к тому, что может быть - сразу смогу указать на тонкие места, чтобы на будущее имели в виду.
Магия. У меня модуль отправляет смски более 160символов. Более того. Они даже доходят в целости и сохранности о0
Вот сейчас тестовый текст отправлял 123456789?123456789??123456789???123456789????123456789:123456789::123456789:::123456789::::123456789?:123456789:?123456789:?:123456789?:?123456789:?:?12345678*123456
Не думал я что получится сходу принять 160 символов ... да еще и отправить более 160. С неовеем я о таком мечтал)
мде, тоже сейчас были трудности. на скорую руку попробовал всякое... вопщем вроде бы получилось
вот формирование смс (слабонервным не и страдающим эпилепсией не смотреть(приводить в божеский вид пока нет времени, завтра займусь)) цикл for(int i = 0; i <= numPins -1; i++) два раза чтоб проверить на максимальную длину. тест прошел успешно, пришло 164 символа. т.е. смска сама разбилась на 2 и на телефоне склеилась обратно.
все закоментированные строки естественно можно вырезать. я не стал т.к. побоялся случайно чтото нудное удалить, замотался сегодня...
а можно потом комментарии по строкам добавить? чем больше - тем лучше.
интересно подробно разобраться. а без комментариев- сложновато.
по voidsmssend - там понятно конечно все.
закомментированные строчки не читайте даже. Лучше сразу удалите. Запутаетесь, там куски неотредактированого кода. Ну и там проверка на длину строки смски для разбивки на много смсок слишком длинных. Но она теперь не нужна.
Честно говоря не совсем понял почему заработало... Доработал скетч по двум позициям. Номер у меня был раньше с "+". Убрал плюс перед номером(хотя и с ним отправлялось, но короткие сообщения). И функцию смссенд доработал. Была абсолютно обычная из ветки про неовей...
Блин что за чертовщина. то я в один вечер во всю эксперементирую с пересылками сообщений(с и на модуль) и всё нормально, а буквально на следующий модуль вообще не регится в сети. на команды из void setup()
Все контакты перепроверил, симка уголком наружу(пробовал две симки, правда обе МТС), деньги на счету есть, пинкода нет, антену прицепил длинную(на проводке как с неовеем в комплекте идет) + родная пружинка припаяна, питание через DC-DC, скетч тот же.
мозг кипит. что за хрень? модуль мигает светиком 7раз-пауза-9раз-пауза-7раз-пауза-9раз итд...
ктонибудь киньте настройки модема void setup() с которыми у вас всё работает........
Короче, пришло мне сиё чудо китайской инженерной мысли, SIM800L Mini. И я, грешным делом, подумал - вот оно, счастье! Думал, что с Neoway у меня были проблемы по питанию, а тут - не будет, достаточно только DC-DC настроить, и всё будет в шоколаде.
Ага, щаззз! Даёшь 3,7В - UNDER VOLTAGE, даёшь 4В - OVER VOLTAGE, на 3,8В - постоянные перезагрузы. В общем, модуль КРАЙНЕ требователен к питанию, Neoway по сравнению с ним - душка, а не модуль.
Буду продолжать эксперименты, но уже завтра. Пока поставил электролит и керамику по входам, завтра придётся разориться и купить этому прожоре отдельный БП ампера на три (хотя и питал я его отдельно, от компьютерного БП, к слову) - чтобы уж точно этой радости угодить.
Стартует, по сравнению с Neoway - писец как долго, такое ощущение, что он пешком до ближайшей вышки прогуливается, а обратно - уже ползком шкандыбает.
В общем, нет щастья, оба хороши - и Neoway, и SIM800L Mini. Без грамотной обвязки - полуфабрикаты, не более того. Причём если с Neoway я сразу как-то просто начал играться, то тут - швах. Кстати заметить, на плате Neoway стоит электролит, поэтому, видимо, постабильней работает в условиях просадок по питанию. Для SIM800L Mini - имхо надо делать обвязку на макетке, иначе - секас обеспечен.
И вот нахер мне этот головняк? Захотелось, мля, в прошивку добавить поддержку SIM800 ещё, не сидится спокойно, блин.
потому что он будет стабилизировать с 5в до 4.6в и ниже без проблем
а вашим dc-dc надо различие входного от выходного напряжения от 1.5в и более чтобы он начал стабилизоровать :)
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
а вы нагрузку 1А дайте и померяйте
в качестве нагрузки я использую автомобильную лампочку на 12в 21вт :)
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
а вы нагрузку 1А дайте и померяйте
в качестве нагрузки я использую автомобильную лампочку на 12в 21вт :)
Тоже вариант, надо на досуге будет поиздеваться над ним.
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
а вы нагрузку 1А дайте и померяйте
в качестве нагрузки я использую автомобильную лампочку на 12в 21вт :)
а как им регулировать? Нужна какая то обвязка ещё?
без электролита на контактах сим800 - включать даже не стОит. Я много всяких сим800 пользую, все нормально. Но конечно если так ск включаю - то ругается на напряжение, только там пороги больше чем вы писали выше.
из этого вывод: ваш дс-дс - хреновый или нет электролита.
Ага, щаззз! Даёшь 3,7В - UNDER VOLTAGE, даёшь 4В - OVER VOLTAGE, на 3,8В - постоянные перезагрузы. В общем, модуль КРАЙНЕ требователен к питанию, Neoway по сравнению с ним - душка, а не модуль.
без электролита на контактах сим800 - включать даже не стОит. Я много всяких сим800 пользую, все нормально. Но конечно если так ск включаю - то ругается на напряжение, только там пороги больше чем вы писали выше.
из этого вывод: ваш дс-дс - хреновый или нет электролита.
сейчас запитал от 9в 2а через дц-дц, смски принимает и отправляет... но на прием только 13 символов. а в прошлый раз 160 и больше принимал. и питание от ЮСБ ноута было :/
конденсатор такой же как и на неовей паять? куда лучше паять? парраллельно керамике или на vcc и gnd?
в чем может быть проблема? может нужно какойнибудь входной буфер увеличить или что то еще?
находите файл SoftwareSerial.h, в строке #define _SS_MAX_RX_BUFF 64 // RX buffer size увеличиваете буфер до 256 если вам надо 160 символов
немного помогло, сообщения более длинные стали приходить... но не 160 символов. но для управления устройством полученого результата достаточно.
и естественно "Недостаточно памяти, программа может работать нестабильно." :)
чем можно объяснить что изначально я принимал длинющие сообщения без каких либо плясок?
пс: а можно для общения с компом назначить SoftwareSerial, а для модуля hardwareSerial? пришла мысля что после отладки можно будет вообще отказаться от SoftwareSerial и увеличить свободное место....
пришел модуль sim800L mini, красный такой. Подключил через dc-dc выставив 4,0 В. Просадки во время работы нет. Модуль включается, но не находит сеть. (Серии из частых вспышек светодиода). Сим карта рабочая МТС. Пин код отключен. Антенну пробовал и штатную пружинку и подключал выносную. Модуль на АТ команды отвечает. Почитал здесь про АТ команды http://alex-exe.ru/radio/wireless/gsm-sim900-at-command/
Вот что отвечает на список доступных сетей:
AT+COPS=?
OK
+COPS: (1,"MTS","MTS","25001"),(3,"MegaFon","MegaFon","25002"),(3,"Bee Line GSM","BeeLine","25099"),(3,"25035","25035","25035"),,(0-4),(0-2)
На тип регистрации сети отвечает:
AT+CREG?
OK
+CREG: 0,2
что вроде как соостветствует что нет кода регистрации сети и идет поиск сети
На информацию об операторе естествеенно отвечает нулём
AT+COPS?
+COPS: 0
Уровень сигнала вот что показывает
AT+CSQ
+CSQ: 0,0
не знаю что это значит, вот что по ссылке написано
0 -115 дБл и меньше
1 -112 дБл
2-30 -110..-54 дБл
31 -52 дБл и сильнее
99 – нет сигнала.
Что можно ещё попробовать, ведь в списке доступных сетей он видит мтс, но почему то к ней не подключается?
что то я с модулем на разных языках разговариваю....
скорости перебрал начиная с 4800 кончая 250000
скетч пробую такой
01
#include <SoftwareSerial.h>
02
03
SoftwareSerial mySerial(2, 3);
// RX, TX
04
05
void
setup
() {
06
07
Serial
.begin(19200);
//Скорость порта для связи Arduino с компьютером
08
Serial
.println(
"Welcome"
);
// Вывести в апаратный порт "Arduino START OK"
09
Serial
.println(
"Start 800L"
);
10
mySerial.begin(19200);
//Скорость порта для связи Arduino с GSM модулем
11
mySerial.println(
"ATZ"
);
// АТ команда модему "ATZ" (програмный сброс)
12
//mySerial.println("AT");
13
14
delay(20000);
// give time to log on to network!!!!
15
16
mySerial.println(
"AT+CMGDA=\"DEL ALL\""
);
// АТ команда модему , удалить все сообщения с sim карты
17
delay(500);
// Пауза 0,5 секунды
18
mySerial.println(
"AT+CMGF=1\r"
);
// устанавливаем текстовый режим SMS (1 - включить, 0 - отключить)
19
delay(100);
20
mySerial.println(
"AT+CSCS=\"GSM\""
);
// selece TE character set - GMS 7-bit default alfabet
21
delay(100);
22
mySerial.println(
"AT+IFC=1,1"
);
//настройка SIM900 Serial bufer --- Контроль передачи данных, при "0", оключен обеими
23
delay(100);
24
mySerial.print(
"AT+CNMI=1,2,2,1,0"
);
25
//mySerial.println("AT+CNMI=1,2,0,0,0"); // Включить перехват SMS, перед этой командой должно быть "AT+CMGF=0" - Переход в PDU mode
26
delay(100);
27
Serial
.println(
"Ready..."
);
28
29
// smsa(String("System ready"),String("+7912XXXXXXX"));
30
// mySerial.println("AT+CUSD=1,\"#100#\""); // запрос баланса
31
32
Serial
.println(
"OK"
);
33
34
}
35
36
void
loop
() {
37
if
(mySerial.available())
38
Serial
.println(mySerial.read());
39
if
(
Serial
.available())
40
{
41
Serial
.println(
Serial
.read());
42
mySerial.print(
Serial
.read());
43
}
44
}
в монитор прилетает
001
Welcome
002
Start 800L
003
Ready...
004
OK
005
65
006
84
007
90
008
13
009
13
010
10
011
79
012
75
013
13
014
10
015
0
016
0
017
65
018
84
019
43
020
67
021
77
022
71
023
68
024
65
025
61
026
34
027
68
028
69
029
76
030
32
031
65
032
76
033
76
034
34
035
13
036
13
037
10
038
69
039
82
040
82
041
79
042
82
043
13
044
10
045
65
046
84
047
43
048
67
049
77
050
71
051
70
052
61
053
49
054
13
055
13
056
13
057
10
058
79
059
75
060
13
061
10
062
65
063
84
064
43
065
67
066
83
067
67
068
13
069
10
070
67
071
97
072
108
073
108
074
32
075
82
076
101
077
97
078
100
079
121
080
13
081
10
082
13
083
10
084
83
085
77
086
83
087
32
088
82
089
101
090
97
091
100
092
121
093
13
094
10
095
0
096
0
097
0
098
0
099
0
100
0
101
0
102
0
103
0
104
0
105
0
106
0
107
0
на команду "AT" в монитор прилетает
1
97
2
116
В строке 38 вместо println делайте write
В строке 38 вместо println делайте write
врот мне ноги, до println было write и не работало... поменял на println начали прилетать цифры.
вернул write, начали приходить адекватные ответы. надо искать плохой контакт видимо.
01
Welcome
02
Start 800L
03
Ready...
04
OK
05
ATZ
06
07
OK
08
09
Call Ready
10
11
SMS Ready
Спасибо!
пробелы могут приходить например когда модуль вык... короче - ищите проблемы в подключении рх тх как минимум.
сам модуль гсм хотя бы просыпается, светодиод у него мигает?
1
sms_txt = sms_txt +
"Rele-1: "
+ String(EEPROM.read(2)) +
"\r\n"
; delay(10);
2
sms_txt = sms_txt +
"Rele-2: "
+ String(EEPROM.read(2)) +
"\r\n"
; delay(10);
3
sms_txt = sms_txt +
"Rele-3: "
+ String(EEPROM.read(3)) +
"\r\n"
; delay(10);
4
5
6
sendsms(
"+381234567890"
,sms_txt);
// отправка смс на номер
7
<span style=
"line-height:1.5em;font-family:Verdana, Geneva, Arial, sans-serif;font-size:12px;"
></span>
подскажите как еще можно сформировать строчку(собрать из нескольких) для отправки в смс?
вариант:
gsm.print("Rele-1: ");
gsm.print(String(EEPROM.read(2)))
gsm.print("\r\n")
не подходит.
Вы так весь код моей сигнализации выведаете, вот мой смс конструктор
01
void
getstatus(uint8_t sendsms_sw) {
02
String sms =
""
;
03
const
String str[] PROGMEM = {
"SMS Interval"
,
"Status:"
,
"Alarm"
,
"Kick"
,
"ON"
,
"OFF"
,
"Power:"
,
"Temp:"
,
"password:"
,
"Telephone:"
,
"Sense"
,
"GPS"
,
"RC"
,
" "
,
"="
,
"C"
,
"%"
};
04
switch
(sendsms_sw) {
05
case
0:
06
sms = str[1] + str[13] + str[2] + str[13] + str[4] + str[13] + str[3] + str[13] + str[4] + str[13] + str[7] + tmp + str[15] + str[13] + str[6] + batx + str[16];
07
sendmessage(number1, sms);
08
break
;
09
case
1:
10
sms = str[1] + str[13] + str[2] + str[13] + str[4] + str[13] + str[3] + str[13] + str[5] + str[13] + str[7] + tmp + str[15] + str[13] + str[6] + batx + str[16];
11
sendmessage(number1, sms);
12
break
;
13
case
2:
14
sms = str[1] + str[13] + str[2] + str[13] + str[5] + str[13] + str[7] + tmp + str[15] + str[13] + str[6] + batx + str[16];
15
sendmessage(number1, sms);
16
break
;
17
case
3:
18
sms = str[2] + str[13] + str[3];
19
sendmessage(number1, sms);
20
//sendmessage(number2, sms);
21
break
;
22
case
4:
23
sms = str[2] + str[13] + str[11] + str[13] + flatx + str[13] + flonx + str[13] + sat;
24
sendmessage(number1, sms);
25
//sendmessage(number2, sms);
26
break
;
27
// и так далее
28
default
:
29
sms =
""
;
30
}
31
}
даа.. увас видно сразу что есть и опыт и свои наработки.
уже думаю - может мне ваш код целиком приобрести?:) по сходной цене?
я всеравно до фига времени потрачу на свое.
так дело не пойдет, если сами не будете прикладывать усилий, вы не чему не научитесь
та да.... я похожие части кода далаю, но не всегда рабочие.
подозреваю, я "склеиваю" разные типы переменных. и в этом пробема. Но и впроде в примерах у себя пробовал одинаковые типы. и всеравно - перед отправкой смс делаю Serial.println(sms_txt); delay(100); и там пусто... соответсвенно и такая смс потом приходит.
может скорость не того? 9600. от gsm модуляэто никак не зависит раз sms_txt по факту или пустой. ии содержит последнюю строку или ее часть.
А МОЖЕТ В ЭТОМ ПРОБЛЕМА? :
"Глобальные переменные используют 1 433 байт (69%) динамической памяти, оставляя 615 байт для локальных переменных. Максимум: 2 048 байт."
А МОЖЕТ В ЭТОМ ПРОБЛЕМА? :
"Глобальные переменные используют 1 433 байт (69%) динамической памяти, оставляя 615 байт для локальных переменных. Максимум: 2 048 байт."
я ваш код незнаю, но скорее всего мало памяти
еще я указал .. - #include <String.h> теперь уже сам не знаю а зачем??
====================
пришел к выводу, что таки не хватает памяти. порезал названия датчиков, уменьшил рзмер смс. и даже мой код начал работать во всех отправляемых смс. каким то боком памяти мало, пора учится оптимизировать проблему с самого начала написания вновь нового кода.
еще я указал .. - #include <String.h> теперь уже сам не знаю а зачем??
====================
пришел к выводу, что таки не хватает памяти. порезал названия датчиков, уменьшил рзмер смс. и даже мой код начал работать во всех отправляемых смс. каким то боком памяти мало, пора учится оптимизировать проблему с самого начала написания вновь нового кода.
Выкладывайте полный скетч - могу попробовать помочь с оптимизацией.
при случае - да, выложу, а этот стыдно показывать :))
пока разобрался с куском, буду чиать увные книжки, нужно постоянно учится.
при случае - да, выложу, а этот стыдно показывать :))
Да не надо стесняться, у самого такого добра выше крыши, а показывать всё равно приходится. Все мы учимся постоянно ;) Я к тому, что может быть - сразу смогу указать на тонкие места, чтобы на будущее имели в виду.
Магия. У меня модуль отправляет смски более 160символов. Более того. Они даже доходят в целости и сохранности о0
Вот сейчас тестовый текст отправлял 123456789?123456789??123456789???123456789????123456789:123456789::123456789:::123456789::::123456789?:123456789:?123456789:?:123456789?:?123456789:?:?12345678*123456
Не думал я что получится сходу принять 160 символов ... да еще и отправить более 160. С неовеем я о таком мечтал)
у меня тоже если так написать как выше мой пример - 100знаков и более - без проблем.
но вы склеить попробуйте в программе из кусков, и тогда уже без проблем корее всего не обойдется. гсм модуль там не при чем.
мде, тоже сейчас были трудности. на скорую руку попробовал всякое... вопщем вроде бы получилось
вот формирование смс (слабонервным не и страдающим эпилепсией не смотреть(приводить в божеский вид пока нет времени, завтра займусь)) цикл for(int i = 0; i <= numPins -1; i++) два раза чтоб проверить на максимальную длину. тест прошел успешно, пришло 164 символа. т.е. смска сама разбилась на 2 и на телефоне склеилась обратно.
все закоментированные строки естественно можно вырезать. я не стал т.к. побоялся случайно чтото нудное удалить, замотался сегодня...
01
void
FullStatus() {
02
sms =
""
;
03
for
(
int
i = 0; i <= numPins -1; i++) {
04
val3 =
"R"
;
05
val3 += (i+1);
06
// switch (relayMode[i]) {
07
// case 1:{
08
val3 +=
" manual "
;
09
// if ((sms.length() + val3.length()) <= 80)
10
{sms += val3; val3=
""
; }
11
// if ((sms.length() + val3.length()) > 80) { Serial.println(sms); smssend("79" + master); sms = ""; sms += val3; val3=""; }
12
if
(PinStatus[i]==ON) {val3 +=
"ON"
; val3 +=
'\n'
;}
13
else
{val3 +=
"OFF"
; val3 +=
'\n'
;}
14
// if ((sms.length() + val3.length()) <= 80)
15
{sms += val3; val3=
""
; }
16
// if ((sms.length() + val3.length()) > 80) { Serial.println(sms); smssend("79" + master); sms = ""; sms += val3; val3=""; }
17
// }
18
// break;
19
}*/
20
}
21
for
(
int
i = 0; i <= numPins -1; i++) {
22
val3 =
"R"
;
23
val3 += (i+1);
24
// switch (relayMode[i]) {
25
// case 1:{
26
val3 +=
" manual "
;
27
// if ((sms.length() + val3.length()) <= 80)
28
{sms += val3; val3=
""
; }
29
// if ((sms.length() + val3.length()) > 80) { Serial.println(sms); smssend("79" + master); sms = ""; sms += val3; val3=""; }
30
if
(PinStatus[i]==ON) {val3 +=
"ON"
; val3 +=
'\n'
;}
31
else
{val3 +=
"OFF"
; val3 +=
'\n'
;}
32
// if ((sms.length() + val3.length()) <= 80)
33
{sms += val3; val3=
""
; }
34
// if ((sms.length() + val3.length()) > 80) { Serial.println(sms); smssend("79" + master); sms = ""; sms += val3; val3=""; }
35
// }
36
// break;
37
}*/
38
}
39
Serial
.println(sms);
40
41
smssend(
"79161112233"
);
42
sms =
""
;
43
}
функция отправки смс
01
void
smssend(String phone) {
//процедура отправки СМС
02
Serial
.println(
"SMS send started"
);
03
gsm.println(
"AT+CMGS=\""
+ phone +
"\""
);
04
delay(500);
05
gsm.print(sms);
06
delay(500);
07
gsm.print((
char
)26);
08
delay(5000);
09
Serial
.println(
"SMS send complete"
);
10
}
а можно потом комментарии по строкам добавить? чем больше - тем лучше.
интересно подробно разобраться. а без комментариев- сложновато.
по
void
smssend - там понятно конечно все.
а можно потом комментарии по строкам добавить? чем больше - тем лучше.
интересно подробно разобраться. а без комментариев- сложновато.
по
void
smssend - там понятно конечно все.
закомментированные строчки не читайте даже. Лучше сразу удалите. Запутаетесь, там куски неотредактированого кода. Ну и там проверка на длину строки смски для разбивки на много смсок слишком длинных. Но она теперь не нужна.
Честно говоря не совсем понял почему заработало... Доработал скетч по двум позициям. Номер у меня был раньше с "+". Убрал плюс перед номером(хотя и с ним отправлялось, но короткие сообщения). И функцию смссенд доработал. Была абсолютно обычная из ветки про неовей...
Блин что за чертовщина. то я в один вечер во всю эксперементирую с пересылками сообщений(с и на модуль) и всё нормально, а буквально на следующий модуль вообще не регится в сети. на команды из void setup()
Все контакты перепроверил, симка уголком наружу(пробовал две симки, правда обе МТС), деньги на счету есть, пинкода нет, антену прицепил длинную(на проводке как с неовеем в комплекте идет) + родная пружинка припаяна, питание через DC-DC, скетч тот же.
мозг кипит. что за хрень? модуль мигает светиком 7раз-пауза-9раз-пауза-7раз-пауза-9раз итд...
ктонибудь киньте настройки модема void setup() с которыми у вас всё работает........
что значит + пружина припаяна? это уже шаманство..
дайте нормальное питание.
Ну питание одно и то же... Дома буду - конденсатор напаяю...
Пружина - антена спиралькой обычная была в комплекте к модулю.
но не понимаю почему один вечер работало отлично, на след день уже нет....
вы то как, разобрались с склейкой кусков смс?
Короче, пришло мне сиё чудо китайской инженерной мысли, SIM800L Mini. И я, грешным делом, подумал - вот оно, счастье! Думал, что с Neoway у меня были проблемы по питанию, а тут - не будет, достаточно только DC-DC настроить, и всё будет в шоколаде.
Ага, щаззз! Даёшь 3,7В - UNDER VOLTAGE, даёшь 4В - OVER VOLTAGE, на 3,8В - постоянные перезагрузы. В общем, модуль КРАЙНЕ требователен к питанию, Neoway по сравнению с ним - душка, а не модуль.
Буду продолжать эксперименты, но уже завтра. Пока поставил электролит и керамику по входам, завтра придётся разориться и купить этому прожоре отдельный БП ампера на три (хотя и питал я его отдельно, от компьютерного БП, к слову) - чтобы уж точно этой радости угодить.
Стартует, по сравнению с Neoway - писец как долго, такое ощущение, что он пешком до ближайшей вышки прогуливается, а обратно - уже ползком шкандыбает.
В общем, нет щастья, оба хороши - и Neoway, и SIM800L Mini. Без грамотной обвязки - полуфабрикаты, не более того. Причём если с Neoway я сразу как-то просто начал играться, то тут - швах. Кстати заметить, на плате Neoway стоит электролит, поэтому, видимо, постабильней работает в условиях просадок по питанию. Для SIM800L Mini - имхо надо делать обвязку на макетке, иначе - секас обеспечен.
И вот нахер мне этот головняк? Захотелось, мля, в прошивку добавить поддержку SIM800 ещё, не сидится спокойно, блин.
закажите это и не мучайтесь, такие стоят на gprs shield с sim900
http://ru.aliexpress.com/item/5pcs-bag-SMD-TO-263-5-MIC29302WU-PMIC-Voltage-Regulators-Linear/32261068202.html
потеря всего 350мв
"Low-dropout voltage -350mV at Full Load"
А какая разница? У меня сейчас и так dc-dc на 3а...
потому что он будет стабилизировать с 5в до 4.6в и ниже без проблем
а вашим dc-dc надо различие входного от выходного напряжения от 1.5в и более чтобы он начал стабилизоровать :)
потому что он будет стабилизировать с 5в до 4.6в и ниже без проблем
а вашим dc-dc надо различие входного от выходного напряжения от 1.5в и более чтобы он начал стабилизоровать :)
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
А какая разница? У меня сейчас и так dc-dc на 3а...
вот хреновый наверное дс-дс... электролиты ставились? соединения от бп к модулю только паять!! и только толстыми проводами делать!
это важно. важны все подобные мелочи.
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
а вы нагрузку 1А дайте и померяйте
в качестве нагрузки я использую автомобильную лампочку на 12в 21вт :)
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
а вы нагрузку 1А дайте и померяйте
в качестве нагрузки я использую автомобильную лампочку на 12в 21вт :)
Тоже вариант, надо на досуге будет поиздеваться над ним.
Т.е. мультиметр врёт? Когда я кручу подстроечник при входном 5В и вижу, что на выходе меняются циферки - 4,5В, 4,2В - это всё неправда и мне показалось? Ок, понял.
а вы нагрузку 1А дайте и померяйте
в качестве нагрузки я использую автомобильную лампочку на 12в 21вт :)
без электролита на контактах сим800 - включать даже не стОит. Я много всяких сим800 пользую, все нормально. Но конечно если так ск включаю - то ругается на напряжение, только там пороги больше чем вы писали выше.
из этого вывод: ваш дс-дс - хреновый или нет электролита.
Ага, щаззз! Даёшь 3,7В - UNDER VOLTAGE, даёшь 4В - OVER VOLTAGE, на 3,8В - постоянные перезагрузы. В общем, модуль КРАЙНЕ требователен к питанию, Neoway по сравнению с ним - душка, а не модуль.
У меня данный модуль работает месяца 3 в режиме 24/7 - SMS + GRPS. Стабильно работатет от 4В пониженные с 12В, от адаптера питания 12В 2А - http://ru.aliexpress.com/item/Free-Shipping-New-US-UK-EU-AU-Plug-AC-100-...
без электролита на контактах сим800 - включать даже не стОит. Я много всяких сим800 пользую, все нормально. Но конечно если так ск включаю - то ругается на напряжение, только там пороги больше чем вы писали выше.
из этого вывод: ваш дс-дс - хреновый или нет электролита.
конденсатор такой же как и на неовей паять? куда лучше паять? парраллельно керамике или на vcc и gnd?
кондер поближе к выводам питания сим ставится или на выход бп где 4в.
смс - причина вряд ли в питании.
кондер поближе к выводам питания сим ставится или на выход бп где 4в.
смс - причина вряд ли в питании.
скетч тот же... Может память сим как то почистить? В телефоны вставляю - не могу понять как в современных устройствах сим почистить :/
питание от зарядки моб тел - я бы не делал. что там на выходе и как прыгает?
еще раз - нужно заведомо качественное питание а не что под рукой валяется.
питание от зарядки моб тел - я бы не делал. что там на выходе и как прыгает?
еще раз - нужно заведомо качественное питание а не что под рукой валяется.
ну сейчас то питание от бп 9в 2а от дорогущего немецкого оборудования)
может надо както какой-то буфер увеличить?
и у меня в ответ на команду делит Олл приходит эррор
питание от зарядки моб тел - я бы не делал. что там на выходе и как прыгает?
еще раз - нужно заведомо качественное питание а не что под рукой валяется.
ну сейчас то питание от бп 9в 2а от дорогущего немецкого оборудования)
может надо както какой-то буфер увеличить?
и у меня в ответ на команду делит Олл приходит эррор
нверная команда, и симкарта должна стоять.
так, теперь всё вроде бы идеально. электролит, питание от 9В 2А через дц дц(4в на выходе).
Скетч тот же, на котором я и принимал длинющие(более 160символов) сообщения.
с симки удалил всё. в ответ пришло "ок"
1
AT+CMGDA=
"DEL ALL"
2
OK
в чем может быть проблема? может нужно какойнибудь входной буфер увеличить или что то еще?
в чем может быть проблема? может нужно какойнибудь входной буфер увеличить или что то еще?
находите файл SoftwareSerial.h, в строке #define _SS_MAX_RX_BUFF 64 // RX buffer size увеличиваете буфер до 256 если вам надо 160 символов
вопрос:
я иногда вставляю такое: String(EEPROM.read(2)) мне просто вычитать состояние 0 или 1 и не более. оно прекрасно справляется.
и вот потребовалось считать значение если 0 то писать 1 и наоборот. можно конечно через if, но
а можно инвертировать так: String(!EEPROM.read(2)) или так !String(EEPROM.read(2)) ??
и то и другое компилируется.
а что мешает проверить
так Serial.print(String(!EEPROM.read(2)));
или так Serial.print(!String(EEPROM.read(2)));
проверил, корректно работает String(!EEPROM.read(2))
в чем может быть проблема? может нужно какойнибудь входной буфер увеличить или что то еще?
находите файл SoftwareSerial.h, в строке #define _SS_MAX_RX_BUFF 64 // RX buffer size увеличиваете буфер до 256 если вам надо 160 символов
немного помогло, сообщения более длинные стали приходить... но не 160 символов. но для управления устройством полученого результата достаточно.
и естественно "Недостаточно памяти, программа может работать нестабильно." :)
чем можно объяснить что изначально я принимал длинющие сообщения без каких либо плясок?
пс: а можно для общения с компом назначить SoftwareSerial, а для модуля hardwareSerial? пришла мысля что после отладки можно будет вообще отказаться от SoftwareSerial и увеличить свободное место....
пришел модуль sim800L mini, красный такой. Подключил через dc-dc выставив 4,0 В. Просадки во время работы нет. Модуль включается, но не находит сеть. (Серии из частых вспышек светодиода). Сим карта рабочая МТС. Пин код отключен. Антенну пробовал и штатную пружинку и подключал выносную. Модуль на АТ команды отвечает. Почитал здесь про АТ команды http://alex-exe.ru/radio/wireless/gsm-sim900-at-command/
Вот что отвечает на список доступных сетей:
AT+COPS=?
OK
+COPS: (1,"MTS","MTS","25001"),(3,"MegaFon","MegaFon","25002"),(3,"Bee Line GSM","BeeLine","25099"),(3,"25035","25035","25035"),,(0-4),(0-2)
На тип регистрации сети отвечает:
AT+CREG?
OK
+CREG: 0,2
что вроде как соостветствует что нет кода регистрации сети и идет поиск сети
1 -112 дБл
2-30 -110..-54 дБл
31 -52 дБл и сильнее
99 – нет сигнала.
Пока не дал 2А, тоже не регился
вставьте правильно симкарту, и бп должен быть как требуется.
Симку вставил как нарисовано, скосом наружу слота. Дс преобразователь на 2А. такой http://ru.aliexpress.com/item/DC-DC-Boost-Module-2A-Booster-Voltage-2-24V-input-UP-to-5-9-12-28V/32638144492.html?spm=2114.13010608.0.136.Oi9O63
Питался дс-дс от 12в 500 мА. Попробую позже от кипьютерного бп, отпишусь.