SIM800L v2.0 - с какими библиотеками дружит? Не могу запустить на Меге.
- Войдите на сайт для отправки комментариев
Коллеги, приобрел сей модуль.
Пару раз даже удалось отправить с него СМС, но без использования библиотеки SIM900 (хотя где-то здесь читал, что они одинаковые для SIM800 и SIM900.
Пытаюсь однако подружить с библиотекой SIM900, ниже скетч.
В файле GSM.cpp установлены пины 0 и 1. На них же подключен и сам модуль.
#include <SIM900.h> #include <sms.h> #include <SoftwareSerial.h> //If not used, is better to exclude the HTTP library, //for RAM saving. //If your sketch reboots itself proprably you have finished, //your memory available. //#include "inetGSM.h" //If you want to use the Arduino functions to manage SMS, uncomment the lines below. #include "sms.h" SMSGSM sms; //To change pins for Software Serial, use the two lines in GSM.cpp. //GSM Shield for Arduino //www.open-electronics.org //this code is based on the example of Arduino Labs. //Simple sketch to send and receive SMS. int numdata; boolean started=false; char smsbuffer[160]; char n[20]; void setup() { //Serial connection. Serial.begin(19200); Serial.println("GSM Shield testing."); //Start configuration of shield with baudrate. //For http uses is raccomanded to use 4800 or slower. if (gsm.begin(19200)){ Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){ //Enable this two lines if you want to send an SMS. if (sms.SendSMS("+7910*******", "Arduino SMS")) Serial.println("\nSMS sent OK"); } }; void loop() { if(started){ //Read if there are messages on SIM card and print them. if(gsm.readSMS(smsbuffer, 160, n, 20)) { Serial.println(n); Serial.println(smsbuffer); } delay(1000); } };
В результате только такие сообщения:
GSM Shield testing.
DB:NO RESP
DB:NO RESP
DB:NO RESP
ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp
status=IDLE
Светодиод при подключении питания один горит постоянно, второй поначалу мигает часто, затем начинает мигать редко, прерывисто. При звонке на симку звонок проходит (т.е. симка в сети зарегистрировалась и доступна). Игрался с разными пинами (RX/TX), со скоростью порта. Один раз даже получилось, и модуль определился. Но тот скетч как назло не сохранился, я уже третий день бьюсь, ника не получается, хотя по памяти вроде все так.
Какие есть мысли?
Сам модуль:
точно такая же беда, (мега и сим800), переходите комне в тему http://arduino.ru/forum/apparatnye-voprosy/sim800-ne-otvechaet-na-komandy#comment-171698 будем вмести решать :)
В файле GSM.cpp установлены пины 0 и 1. На них же подключен и сам модуль.900
Так у Вас получается эти же пины и на компьютер идут по USB и в GSM модуль?
Я пробовал на разные пины. На 14 и 15 аналогичная ситуация.
Так, по ходу я его победил!!! :)
Прописал в GSM.cpp пины 10 и 11, установил обен на 19200 бод и yes, it is! Модуль определился и отправил мне смс, а потом принял ответ и вывел его в терминал.
Теперь пытаюсь подружить его с основным скетчем на предмет отправки / получения СМС.
УРА ! Получилось и отправлять и получать СМС с МЕГИ.
Использую библиотеку SIM900. Есть еще много непоняток, но в общем и в целом результат достигнут. Код, который приведен выше, как раз это позволяет сделать.
Пока только не разобрался, можно ли как-то вместо прямого текста подсунуть переменную, содержащую нужный текст?
То бишь вместо "Arduino SMS" подсунуть строковую переменную или массив. Пока не получается..
char message[]="Hello world";
библиотеку где скачали? , я пытался найти для сим 800 но не могу скачать ))
смотрел настройки и библиотеку взял здесь: http://www.bohgelectronics.net/gsm-and-arduino.html
Там слева от видео ссылка на библиотеку.
После распаковки в файле GSM.cpp необходимо указать пины, на которые подключен модуль.
У меня вот так. Пробовал на 0 и 1, пробовал на 15 и 16 - не работало. На 10 и 11 заработало. И затем запускаете из примеров библиотеки SMS, подставляете свой номер и пробуете.
Еще момент, у меня модуль уходил в перезагрузку при получении смс. МЕГА питалась от USB, а в аннотации к модулю указано напряжение 5 в и ток не ниже 1А. Быля просадка, подключил блок питания на 0,5А, сейчас просадки почти нет, но все равно периодичеки при получении сигнала модуль перезагружается. Так что к питанию тоже надо быть внимательным.
спасибо попробую сейчас, посмотю , я в принципи через обычный сериал отправляю сообщения , вот с приемом еще не разобрался . но это мелочи а меня больше интересует выход в интеренет через модуль, закидывать все буду через php cкрипт в базу данных, ну смс тоже будет учавствовать в качестве управления ардуинкой.
так вот в интеренет пока не могу выйти, ставил теле2 сикарту но она почему то не подходит(возможно что она 3G а модуль поддерживает 2G) , вставил мегафон заработал модуль. но рабочего примера не могу найти работы GPRS с мегафоном.
работа GPRS с симкартой теле2 http://2150692.ru/faq/62-gprs-svyaz-cherez-sim800l-i-arduino пробовал заменить настройки подключения но не помогло
А вначале еще AT+SAPBR=3,1,"CONTYPE","GPRS"
Деньги на счете есть, интернет с телефона работает с этой симкой?
ДА на мобилке проверял, и Ваша строчка тоже есть
Лучше с компьютера пробовать, также через монитор порта вводить команды, вдруг задержки не хватает и т.п.
Кстати, вполне вероятно, там модуль сеть то может не успеть найти, не то что GPRS, так что вначале попробуйте заменить delay(3000); на delay(15000);
Я с интернетом пока не заморачивался, мне бы с СМС до конца разобраться.
Пока очередной затык: не могу понять, как удалить все СМС с сим карты. Посредстовм сериала и ат-команд в принципе понятно, а вот как при помощи библиотеки, не пойму.
Вроде нашел функцию sms.DeleteSMS, но что-то сдается мне, она работает не корректно.
Спасибо, а как складывать несколько строк в одну переменную?
Т.е. мне теперь к этой строке char message[]="Hello world"; добавить еще строку "I'm back"?
отправляю все команды через монитор порта, вот както вроди ответы получаю положительные а на сайт ничего не приходит, посмотрите кто понимает может какую команду забыл
я скачал посмотрел немного библиотеку, ну как сказать, как мой друг (библиотеки это зло). это все можно написать и без громоздкой библиотеки которая состоит из кучи других, вот вам пример рабочей отправки,
в верху по подключению разберетесь думаю
и очистить смс можно АТ командами
когда забработает интеренет допишу и получение смс
получилось :)))))
вот АТ команды может каму понадобятся для работы с интернетом
тепер осталось дописать все в тестовый скетч
оо какаято строка между 9 и 10 строчкой лишняя (удалить)
я скачал посмотрел немного библиотеку, ну как сказать, как мой друг (библиотеки это зло). это все можно написать и без громоздкой библиотеки которая состоит из кучи других, вот вам пример рабочей отправки,
+1. Вот мой код работы с gsm шилдом.
Неужто с библиотекой SIM900 никто не работает?
я скачал посмотрел немного библиотеку, ну как сказать, как мой друг (библиотеки это зло). это все можно написать и без громоздкой библиотеки которая состоит из кучи других, вот вам пример рабочей отправки,
#include <AltSoftSerial.h>
Однако какая то библиотека подключена..
У меня эта AltSoftSerial.h не идет. На последовательном потру у меня висит TFT дисплей, соответсвенно 46 и 48 пины заняты. Указал 10 и 11, как на SIM900, где все работает - тишина.
Все так буду дальше компать SIM900. Как удалять смс-ки из буфера уже научился. Теперь осталось пропихнуть в смс строковую переменную вместо текста, и вопрос закрыт.
так и не знаю почему но у меня так и не работает библиотека SoftwareSerial, если же она у вас работает то можно написать так
http://arduino.ru/forum/obshchii/sim800l-mini?page=1#comment-164010 пост #59
и использовать только одну библиотеку а не 8 (так как косяки наверняка в каждой свои, а в 8 библиотеках их в 8 раз больше), а вообще каждый сам кузнец своему счастью....
и да если у Вас получится не забудьте выложить рабочий скетч для тех кто после нас будет заниматься этой проблемой, может пригодится каму.
Baks, спасибо за инфу, я все таки попытаюсь добить библиотеку SIM900. Должен же быть какой-то вариант отправки массива разных строк. Когда добью, тогда выложу конечно скетч.
Спасибо, а как складывать несколько строк в одну переменную?
Т.е. мне теперь к этой строке char message[]="Hello world"; добавить еще строку "I'm back"?
Гуглите функцию strcat (strcat(message, "I'm back"), как я понял, по-хорошему там размер массива надо определенный делать заранее, а не [] пустой, хотя работает, но наверное занимает лишнего памяти, лучше определить, возможно есть и другие варианты, например сначала сделать какую надо строку, а потом преобразовать в массив char.
Jatixo, спасибо.
Получается, ардуино работает со всеми операторами C++, а не только с теми, которые указаны в разделе "Программирование Ардуино"? А то я смотрю, уж больно куцый набор функций.
Конечно, можно и на чистом c++ писать или на чистом assembler =)
получилось :)))))
вот АТ команды может каму понадобятся для работы с интернетом
тепер осталось дописать все в тестовый скетч
оо какаято строка между 9 и 10 строчкой лишняя (удалить)
А что будет на сайте? Я так понимаю, что-то типа панели управления? Или только индикаторы?
Ну чистый ассемблер я уже позабыл, давно с ним работал, году так в 92-м.
А вот то, что набор функций и операторов не полный, для меня облегчение. Зайти на arduino.cc и посмотреть там ума, конечно, не хватило :)
на сайте пока не решил , для начала будет просто индикация , с мнемо схемой и графиком, а по поводу управления както я отношусь не очень хорошо к управлению из сети, если что и буду делать с управлением так это прогу для ведроида с кучей проверок и шифрованием. а пока можно и смс поуправлять.
рабочий код с приемом / отправкой СМС посредством библиотеки SIM900 и выводом данных на TFT дисплей.
поздравляю с успешным выполнением домашнего задания :)
у меня тут такой вопрос возник на sim800 есть контакт reset так как с ним работать? в частности программно , что куда подключать и какое напряжение на него надо подать, и как ручной перезапуск сделать с помощью установки кнопочки.
Baks, спасибо. Совместными усилиями все получилось, слава Богу!
Касательно reset, я так понял, что его нужно соединить с пином reset на ардуино, и при перезагрузке ардуино модуль тоже перезагружается.
По отдельной кнопке перезагрузки нужно даташит смотреть, так не подскажу.
Есть ли кто, кто знает как к этому модулю подключить микрофон и динамик? Или это не предусмотрено конструкцией?
предуусмотрено , только как не знаю вот попробуй посмотри тут может что найдеш интересно, там в низу и схемки есть как распаяли модуль https://www.adafruit.com/products/1946
мне тоже нужно будет , пока не до этого :)
У меня другой шилд, см. пост #1, там ног изначально под аудио нет. Хотя сама микросхема SIM800 вроде как предполагает наличие аудио.
Вечер добрый. Проблемка с SIM800L v2/0 - Установил библиотеку 900h. Запускаю пример для работы с СМС. Смотрю данные в Serial port - всё ОК.
когда ж научитесь то а. в сериал ставить только то что надо а именно 9600 скорость
Ставил и 9600 и 19200 - в сериал всё шлёт.
Вроде победил)... Такое ощущение что была переполнена память СИМ... СМС пошли после удаления принятых ранее через АТ команду.
вопрос ко всем, кто разобрался )
все библиотеки, которые я смотрел (на 800, 900) требуют software.serial.
А это обязательно вообще? У меня мега с 3 железными портами, зачем мне использовать какую-то софтовую эмуляцию, которая как минимум потребляет ресурсы, как максимум - источник глюков?
Спасибо!
Библиотека обязательна. А по каким портам будет общаться gsm модуль - решать тебе. На меге, что интересно, у меня заработал только на 10-11 пинах. На хардовых не пошел.
Хотите сказать, что через
работать не будет?
Тут утверждают обратное.http://lazysmart.ru/avtomatika-v-by-tu/monitoring-temperatury-cherez-internet-s-pomoshh-yu-gsm-modulya-sim900-urok-3/
Ко мне скоро приедет SIM900, буду проверять )
пока веду поиски библиотеки, работающей железно.
вот здесь вроде упоминается "железная", но у меня либа не встала.
да не нужна библиотека. Удобнее управлять Ат командами. Подключение хоть к софт, хоть к хард сериал порту нужно для sim800l делать так. Тогда будет все работать.
MaksVV
Пробовал.... не пошло:
Пробовал два варианта - сразу отправка СМС, и ручной ввод АТ команд.
PS:
SIM800 у меня 2-й версии, якобы - 5-вольтовый. Поэтому подключал напрямую и питание, и TX-RX.
Подключал к 3-му порту.
Скорости пробовал и 9600 и 19200
монопенисуально - вообще никакой реакции...
MaksVV
Пробовал.... не пошло:
Пробовал два варианта - сразу отправка СМС, и ручной ввод АТ команд.
PS:
SIM800 у меня 2-й версии, якобы - 5-вольтовый. Поэтому подключал напрямую и питание, и TX-RX.
Подключал к 3-му порту.
Скорости пробовал и 9600 и 19200
монопенисуально - вообще никакой реакции...
А Вы пробывали подключить ваш SIM800 через UART-TTL(или арудуину), подать отдельное питание на sim800, rx и tx соединить с UART-TTL, объединить земли модуля и UART-TTL и прогнать АТ команды в терминальной программе?
C какой-то из библиотек (которая с software serial - наверное, Aspen) у меня все работало.
(проверял не все задача была - "принять" посылку, убедившись что девайс живой).
Правда, реакция была странная - например, не пошел набор номера (no carrier), не смог вбить код завершения ввода СМС в терминале (но программно СМС отправилась).
(даже время из сети МТС считала).
Так что я склонен считать, что хардварно прямое подключение функционирует.
Ребятки, вы про какую библиотеку то вообще?
Я имел ввиду, что нужна библиотека типа SoftSerial есди работать с софтовым портом. Для хардового не нужна вообще никакая, если пользовать AT команды.