Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
gsm-gprs_shield_tinysine_sim900 [2015/07/30 17:27]
ansealk [Код]
gsm-gprs_shield_tinysine_sim900 [2015/07/30 17:40] (текущий)
ansealk
Строка 1: Строка 1:
 +====== GSM-GPRS shield Tinysine SIM900 ======
 +===== Описание =====
 +Данный шилд предназначен для подключения arduino к GSM-сетям. Данный шилд поддерживает следующие методы работы с GSM-сетью:​
 +  * SMS
 +  * голосовые вызовы
 +  * передача данных по GPRS. 3G, а тем более 4G на этом шилде недоступен. А оно нам надо? GPRS на данный момент есть почти везде, а вот покрытие сетями 3G оставляет желать лучшего. Тем более пропкскной способности GPRS хватает для удаленного управления arduino-проектами,​ передачи фото с камер и т.д.
  
 +Плата выполнена в форм-факторе,​ позволяющем использовать ее почти со всеми известными платами arduino. Более того, если вы физически не можете подключить данную плату к arduino, как например к arduino nano, всегда остается возможность использовать подключение платы отдельными проводами.
 +
 +Плата разработана на основе GSM/GPRS чипа[[http://​simcomm2m.com/​russian/​module/​detail.aspx?​id=40|SIMCOM SIM900]] и определяется в GSM-сети как мобильный телефон.
 +
 +===== Характеритики и спецификации =====
 +
 +  * Поддерживает работу в диапазонах 850/​900/​1800/​1900 MHz;
 +  * Управление AT-командами. Стандарт:​ GSM 07.07 & 07.05. Поддерживает расширенные AT-команды от SIMCOM;
 +  * Поддержка SMS в ASCII и HEX форматах;​
 +  * Встроеная реализация стека TCP/UDP;
 +  * Разъемы для подключения динамика и микрофона 3.5мм;
 +  * Возможность посылать и принимать DTMF-сигналы;​
 +  * SIM-карта стандартного формата;​
 +  * Разъем для подключения внешней антенны;​
 +  * Транслирует с Arduino 12 GPIO, 2 PWM и ADC пина;
 +  * Низкое энергопотребление потребление в режиме ожидание - 1.5 мАч;
 +  * Диапазон рабочих температур:​ от -40°C до +85 °C.
 +
 +===== Подключение к Arduino =====
 +Устанавливаем SIM-карту в слот, подключаем плату к Arduino и подаем питание. В источниках в интернете неоднократно сказано,​ что для работы необходимо внешнее питание 9V 2A. Но у меня зарабтало без этого, с питанием от USB.
 +
 +После запуска на GSM плате будут гореть один или несколько светодиодов.
 +^LED^состояние^Описание^
 +|Красный(P)|горит|Питание подается на GSM-модуль|
 +|Красный(P)|погашен|Отсутствует питание|
 +|Зеленый(S)|горит|Питание подается на SIM900|
 +|Зеленый(S)|погашен|Отсутствует питание SIM900|
 +|Синий(N)|погашен|SIM900 не запущен|
 +|Синий(N)|64ms On/800ms Off|SIM900 не зарегистрировался в сети|
 +|Синий(N)|64ms On/3000ms Off|SIM900 зарегистрировался в сети|
 +|Синий(N)|64ms On/300ms Off|Идет передача GPRS|
 +
 +==== Arduino Uno ====
 +Самый простой вариант. Достаточно просто установить шилд на Arduino Uno.
 +
 +==== Arduino Leonardo ====
 +
 +==== Arduino Mega 2560====
 +<WRAP center round important 90%>
 +В процессе поиска библиотеки в сети и перебрав их около 10 различных версий столкнулся с проблемой - практически ни одна не хочет работать с Arduino Mega 2560 REV3 -  в процессе компиляции появлялись различные ошибки. В конце концов на гитхабе была найдена библиотека,​ хорошо работающая с данной связкой. Библиотеку можно взять на [[https://​github.com/​MarcoMartines/​GSM-GPRS-GPS-Shield|github.ru]] или с{{:​arduino_and_raspberrypi:​gsm_gprs_sim900:​gsm-gprs-gps-shield-gsmshield.zip|моего}} сайта.
 +</​WRAP>​
 +
 +  -Соединяем средние пины (RX/TX) на GSM-плате с пинами TX1(18) и RX1(19) на Arduino Mega.
 +  - Файл GSM.h. Находим 4 и 5 строки<​code cpp GSM.h>
 +#define UNO
 +//#define MEGA
 +</​code>​и меняем на<​code cpp GSM.h>
 +//#define UNO
 +#define MEGA
 +</​code>​
 +  - **Необязательно.** Файл GSM.h. Крайне рекомендую закоментировать строчку **#define DEBUG_ON** во избежание получения на экран огромного количества мусора. ​
 +  - Файл HWSerial.h. Находим 1 строку <code cpp HWSerial.h>​
 +//#define MEGA
 +</​code>​и раскомментируем ее<​code cpp HWSerial.h>​
 +#define MEGA
 +</​code>​
 +
 +
 +==== Подключение по проводам ====
 +При ​ внешнем подключении,​ например к Arduino Nano, можно можно использовать всего 5 проводов:​
 +
 +  * D0, D1 - Используется только при HW положении джамперов для Serial-подключения;​
 +  * D7, D8 - Используется только при SW положении джамперов для Serial-подключения;​
 +  * D9 - Используется для программного управления питанием;​
 +  * 5V, GND - Используется для подачи питания на шилд.
 +
 +===== Код =====
 +
 +<WRAP center round info 90%>
 +Обращу внимание,​ что примеры в указаной выше библиотеке не всегда на 100% рабочие. Описание функций и примеры их работы можно увидеть в файле **README**, поставляемом с библиотекой.
 +</​WRAP>​
 +
 +В примере ниже мы получаем SMS и отправляем его обратно на тот же номер.
 +<file cpp SMS_TEST.ino>​
 +#include "​SIM900.h"​
 +#include <​SoftwareSerial.h>​
 +#include "​sms.h"​
 +
 +SMSGSM sms;
 +
 +char position;
 +char phone_num[20]; ​   //​Строка с номером телефона
 +char sms_text[100]; ​   //​Текст сообщения
 +
 +int numdata;
 +
 +boolean started=false;​
 +char n[20];
 +
 +void setup()
 +{
 +     // Инициалируем консоль
 +     ​Serial.begin(9600);​
 +     ​Serial.println("​GSM Shield testing."​);​
 +     //​Инициализируем GSM-модуль на 2400bps
 +     if (gsm.begin(2400)) ​
 + {
 + Serial.println("​\nstatus=READY"​);​
 + started=true;​
 +     ​} ​
 + else
 + {
 +   Serial.println("​\nstatus=IDLE"​);​
 + }
 +};
 +
 +void loop()
 +{
 + //​Получаем количество SMS в очереди
 + position = sms.IsSMSPresent(SMS_UNREAD);​
 + if (position) // Если очередь не пустая
 + {
 + // читаем SMS
 + sms.GetSMS(position,​ phone_num, sms_text, 100);
 + //и выводим его в консоль
 + Serial.println("​DEBUG SMS phone number: ");
 + Serial.println(phone_num);​
 + Serial.println("​\r\nSMS text: ");
 + Serial.println(sms_text);​
 +    //И отправляем сообщение обратно.
 + if (sms.SendSMS(phone_num,​ sms_text)) Serial.println("​\nSMS sent OK");
 + }
 +};
 +</​file>​
 +
 +
 +
 +
 +
 +
 +
 +===== Ссылки =====
 +  * [[http://​www.tinyosshop.com/​index.php?​route=product/​product&​path=65_118&​product_id=464|Сайт разработчика модуля]]
 +  * [[http://​simcomm2m.com/​russian/​module/​detail.aspx?​id=40|Сайт разработчика чипа SIM900]]
 +  * {{:​arduino_and_raspberrypi:​gsm_gprs_sim900:​gsm_shield_datasheet.pdf|Даташит}}
 +  * {{:​arduino_and_raspberrypi:​gsm_gprs_sim900:​sim900_at_command_manual_v1.05.pdf|AT-команды}}
 +  * Схемы {{:​arduino_and_raspberrypi:​gsm_gprs_sim900:​gsmshield-1.pdf|1}} и {{:​arduino_and_raspberrypi:​gsm_gprs_sim900:​gsmshield-2.pdf|2}}
 +  * {{:​arduino_and_raspberrypi:​gsm_gprs_sim900:​gsm-gprs-gps-shield-gsmshield.zip|Библиотека}} для Arduino IDE
 + 
gsm-gprs_shield_tinysine_sim900.txt · Последние изменения: 2015/07/30 17:40 — ansealk
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика