Понадобилось мне слать SMS из ардуинины себе на телефон. Да так, что бы без заморочек с GSM, сим картами и оплатой. Под катом то, что из этого вышло.
Раз GSM не подходит, то слать придется через интернет. В закромах имелся сверх дешевый Wi-Fi модуль ESP8266. Про его предварительную настройку можно почитать в этой отличной статье ссылка .
Перво-наперво полез гуглить различные интернет-сервисы для отправки SMS. Сервисов оказалось много, но вот подходящего среди них не оказалось. Либо 10 SMS в день, либо хотят денег. Да и капчи ардуинине не по зубам. Но тут совершенно случайно наткнулся на на интересный сервис своего мобильного оператора (MTS BY) - всего за 1$ можно подключить услугу приема email в виде SMS ссылка . Что же, полностью бесплатно не получилось, и после оплаты я получил почтовый адрес вида [email protected] (где XX и YYYYYYY - код сети и номер). То есть все свелось к банальной отправке email из arduino.
Но не тут-то было. Оказывается в последнее время все уважающие себя почтовые сервера отказываются принимать почту по 25 порту и без шифрования. А с другими связываться не хотелось, как и привязываться к своему домашнему серверу. Нагуглил вот такой сервис ссылка . В базовом бесплатном варианте дают 6к писем в месяц, что для моего домашнего использования хватает с головой. После регистрации идем в настройки и видим адрес smtp сервера, порт, логин и сгенерированный нам пароль.
Быстро накатал скетч, отправляю email [email protected] и… Облом. Отправляю на обычную почту - приходит. Пытался так и эдак переделывать заголовок - все равно письма исчезают в безднах серверов МТС, явно попадая в котел спам фильтра.
Значит нужно «отмыть» почту. В качестве сервиса отмывки выбрал (тихо ненавидимый мною за рекламу) mail.ru. Для отмывки в настройках почты, в разделе «Фильтры и пересылка», создал новое правило:
Настройки
После создания фильтра его понадобилось активировать введя код, пришедший в виде email-SMS на телефон.
Вот и момент триумфа - отправляю email из ардуинины, и через минуту телефон раздается радостным сигналом оповещения, при этом пугая проходящего рядом кота.
Далее скучные технические подробности.
В качестве платы взял Arduino Mega 2560, так как в нем целых три дополнительных последовательных порта (хотя можно и обычный UNO, только дебажить будет сложнее).
ESP8266 подключен: GND -> GND, VCC и CH_PD -> +3.3V, RX -> TX3, TX -> RX3. Скорость ESP8266 настроена на 115200 бод.
Для общения с smtp сервером нужно закодировать свои логин и пароль в Base64.
Можно воспользоваться консолью Linux:
openssl enc -base64 <<< "[email protected]"
openssl enc -base64 <<< "password"
Или же каким-либо онлайн сервисом, например ссылка .
Ну и собственно код скетча. После включения отправляется СМС и код уходит в вечный цикл. Дополнительные библиотеки не использовал.
Код
#define SSID "wi-fi_login" // ваш SSID #define PASS "wi-fi_password" // ваш пароль Wi-Fi #define SMTPServer "s02.atomsmtp.com" //smtp сервер #define SMTPPort "2525" // smtp порт #define MailLogin "[email protected]" // логин для smtp #define MailLoginBase64 "dWd1LCBrb25lNG5vCg==" //логин для smtp в Base64 #define MailPasswordBase64 "aHJlbiB0YW0K" // пароль для smtp в Base64 #define MailRelay "[email protected]" // промежуточная почта для "отмывания" email #define PhoneNumber "375290000000" // номер телефона #define Message "Hello from Arduino!" //сообщение #define SERIAL_RX_BUFFER_SIZE 256 #define SERIAL_TX_BUFFER_SIZE 256 void setup() { delay(2000); Serial3.begin(115200); Serial3.setTimeout(5000); Serial.begin(115200); // для отладки Serial.println("Init"); Serial3.println("AT+RST"); // сброс и проверка, что модуль готов if(WaiteString("Ready", 5000)) { while(Serial3.available()) { Serial3.read();} Serial.println("WiFi - Module is ready"); }else{ Serial.println("Module dosn"t respond."); while(1); } delay(100); Serial3.println(" AT+CIPMODE=0"); WaiteString("OK"); while(Serial3.available()) { Serial3.read();} Serial3.println("AT+CIPMUX=1"); WaiteString("OK"); while(Serial3.available()) { Serial3.read();} // try to connect to wifi boolean connected = false; for(int i=0;i<5;i++) { if(connectWiFi()) { connected = true; break; } } if (!connected) { while(1); } } void loop() { String cmd = "AT+CIPSTART=0,\"TCP\",\""; cmd += String(SMTPServer); cmd += "\"," + String(SMTPPort); Serial3.println(cmd); if(WaiteString("Linked", 5000)) { while(Serial3.available()) { Serial3.read();} Serial.println("Link"); } else { Serial.println("Link fail"); while (1); } if (WaiteString("OK", 2000)) { while(Serial3.available()) { Serial3.read();} } else { while (1); } Send("HELO 1.2.3.4", true); Send("AUTH LOGIN", true); Send(MailLoginBase64, true); Send(MailPasswordBase64, true); Send("MAIL FROM:<" + String(MailLogin) + ">", true); Send("RCPT TO:<" + String(MailRelay) + ">", true); Send("DATA", true); Send("Subject:SMS", false); Send("To:\"" + String(PhoneNumber) + "\" <" + String(PhoneNumber) + "@sms.mts.by>", false); Send("From: <" + String(MailLogin) + ">", false); Send("", false); Send(Message, false); Send(".", true); Send("QUIT", true); while(1) {}; } boolean connectWiFi() { Serial3.println("AT+CWMODE=1"); while (!Serial3.available()) { delay(10);} while (Serial3.available()) {Serial3.read();} String cmd="AT+CWJAP=\""; cmd+=SSID; cmd+="\",\""; cmd+=PASS; cmd+="\""; Serial3.println(cmd); if(WaiteString("OK", 8000)){ Serial.println("Connected to WiFi."); return true; }else{ Serial.println("Can not connect to the WiFi."); return false; } } bool Send(String S, bool wait) { Serial3.print("AT+CIPSEND=0,"); Serial3.println(S.length()+2); while (!Serial3.available()) { delay(10);} if(Serial3.find(">")){ }else{ Serial3.println("AT+CIPCLOSE=0"); delay(1000); return false; } Serial3.print(S + "\r\n");//добаяляем перевод строки if (WaitString("OK", 15000)) { if (wait) { WaitString("+IPD", 15000); while(Serial3.available()) { Serial3.read();}} return true;} else { return false;} } void WaiteString(String S) { int L = S.length(); String T = String(" "); while(1) { if (Serial3.available()) { char c = Serial3.read(); T = T + String(c); if (T.length() > L) T = T.substring(1); if (S.charAt(0) == T.charAt(0)) if (S.compareTo(T) == 0) return; } else { delay(1); } } } bool WaiteString(String S, int Time) { int L = S.length(); String T = String(" "); while(Time>0) { if (Serial3.available()) { char c = Serial3.read(); T = T + String(c); if (T.length() > L) T = T.substring(1); if (S.charAt(0) == T.charAt(0)) if (S.compareTo(T) == 0) return true; } else { delay(1); Time--; } } return false; } String WaiteString(int Time) { String T = String(""); while(Time>0) { if (Serial3.available()) { char c = Serial3.read(); T = T + String(c); } else { delay(1); Time--; } } return T; }
Прежде чем разобраться в том, как работает GSM, важно понять, что такое GSM.
GSM – международный цифровой стандарт планетарного значения, название которого произошло от словосочетания «Groupe Spécial Mobile».
Этот стандарт предназначен для мобильной сотовой связи с разделением каналов. Каналы разделяются по принципу TDMA. Разработан стандарт институтом стандартизации электросвязи ещё в конце восьмидесятых годов прошлого века.
Самая первая подобная система была создана в далёком 1946 году в Соединённых Штатах Америки. Глобальное внедрение мобильной связи началось только в 1979 году.
Перед стартом GSM, в самом начале восьмидесятых годов прошлого века на европейской территории работали 24 аналоговые сети. Они не были совместимы между собой, поэтому приобрёл актуальность вопрос о создании единого стандарта. Потребность в решении этой проблемы послужила поводом создания группы GSM(Group Special Mobile). В эту группу вошли представители 24 стран Европы. Система компании Mannesmann была избрана в качестве цифрового стандарта, а внедрена эта система была в 1991 году в Германии.
Под аббревиатурой GSM сегодня скрывается уже несколько иное словосочетание - Global System for Mobile. Сам стандарт GSM или его версии успешно работают в 80 странах мира.
Для того, чтобы осуществить данный вид связи на определённой территории, применяются следующие действия:
Для реализации этого вида связи, на практике соседствующие станции настроены на различные частоты. Таких частот обычно около трёх. Используя три разные частоты, станции, расположенные в виде треугольника, перекрывали зоны обслуживания.
Есть ещё и четвёртая станция, которая может использовать одну из частот снова. Это возможно, так как она граничит с двумя зонами. Таким образом, зона действия станции будет напоминать шестиугольник, имея вид пчелиной соты.
Каждый слышал, но не все знают, что такое GSM –модуль. Между тем это очень полезное устройство, использующее принципы GSM. Если говорить конкретнее, то gsm-модуль – это устройство, помогающее производить мониторинг местонахождения вашего автомобиля. Это устройство работает в связке с сигнализацией или мобильным телефоном. Вы можете также, в случае необходимости, блокировать двигатель.
С помощью этого модуля идентифицируется абонент мобильной связи. Об этом вы узнали, когда читали о том, что такое сеть GSM.
Преимущества стандарта GSM:
Недостатки стандарта GSM:
Таким образом, пока что gsm остается развивающейся технологией, но, тем не менее, ее значение в мире невозможно переоценить. Ведь мы пользуемся ей каждый день.
Статьи и Лайфхаки
На вопрос, что такое gsm модуль в планшете , можно ответить – это глобальный цифровой стандарт, предназначенный для мобильной сотовой связи. Сегодня gsm модуль – это дополнительная функция, дающая уникальную возможность пользователям отправлять SMS (короткие буквенно-цифровые сообщения) и звонить, т.е. использовать планшет, как сотовый телефон. Ведь для многих является проблемой, например, и он вышел из строя - в этом случае планшет с GSM модулем позволит остаться на связи.
Возможности планшета, оснащенного gsm модулем
Основные характеристики планшета: мощность, автономность и портативность. Мощности планшета с gsm модулем достаточно как для работы с электронной почтой и офисными приложениями, так и для отдыха во время поездок и развлечений (просмотра видео и фотографий, а также для игр). Планшет - миниатюрный портативный компьютер, подключенный к всемирной сети, благодаря чему можно легко и просто обмениваться с друзьями и сотрудниками необходимой информацией. Он позволяет выполнять офисную работу без подключения к источнику питания, работая в gsm-сетях.
Важная особенность подобных планшетов – наличие встроенного модуля, который позволяет принимать звонки. Такое устройство (простое и безопасное в эксплуатации) обладает высокой производительностью, и все поставленные перед ним задачи выполняет быстро и четко. К достоинствам планшета можно отнести его компактные размеры и небольшой вес. Также стоит иметь представление о том, во время работы с ним. Разобрались, что такое gsm модуль в планшете и каково его предназначение. Рассмотрим этапы его появления.
История возникновения gsm модуля, встроенного в планшет
Аналоговые системы мобильной связи получили быстрое развитие в европейских странах (Скандинавии, Великобритании и Германии) в начале восьмидесятых годов. Каждое государство развивало индивидуальную систему, которая была несовместима с иными по выполняемым функциям и оборудованию. Однако подобная ситуация ограничивала сферу деятельности мобильных приборов (работала в рамках одной страны), что не позволяло расширять рынки сбыта. В Европе было принято решение о создании общей наземной системы сотовой связи. К середине 90-х годов около 200 gsm-сетей существовало в 110 государствах мира, а на сегодняшний день они функционируют практически на всех континентах.
Данное устройство предоставляет большое количество услуг, касающихся передачи информации. Благодаря gsm модулю передаваемая речь оцифровывается и в виде цифрового потока предается по gsm-сети. Пользователи этих сетей получают и передают данные пользователям традиционных телефонных сетей. Поскольку gsm является цифровой сетью, то для того, чтобы пользователь смог взаимодействовать с сетью модем не потребуется.
Одним из популярных охранных комплексов, устанавливаемых на автомобили, является GSM модуль Starline, оснащенный специальным модулем мобильной связи. С его помощью можно осуществлять связь с охранным комплексом с любого телефона, работающего в системах сотовой связи по стандарту GSM. Популярность такого решения объясняется достаточно просто: такие системы способны без помех и на большом расстоянии поддерживать двустороннюю связь между владельцем и автомобилем, чего в ряде случаев не может обеспечить стандартная сигнализация.
По своей сути эти охранные системы отличаются от своих обычных собратьев возможностью установки связи по типу обычной телефонной сотовой связи, а она сейчас обеспечивается практически везде, а значит, расстояние между автомобилем и его владельцем не имеет никакого значения. Таким образом, для установления связи там, где брелок сигнализации не работает, можно использовать обычный телефон или смартфон.
Эта возможность осуществляется при помощи специального модуля, функционально представляющего собой сотовый телефон с сильно урезанными функциями, который, однако, имеет свой собственный номер с зарегистрированной SIM-картой, которая устанавливается прямо на модуль, может принимать и отправлять звонки, уведомления и SMS, осуществлять контроль за состоянием различных систем автомобиля.
Автомобильная сигнализация с GSM-модулем, в зависимости от модели позволяет осуществлять следующие действия:
Эти функции являются базовыми и в большинстве случаев кроме них, существуют прочие сервисные возможности. Отдельные операции выполняются при помощи брелока, а некоторые специфические – только при помощи телефона. Кстати, для некоторых моделей добавляется еще и возможность управлять функциями охранной сигнализации со специальной интернет-страницы.
Добавление GSM-модуля намного повышает безопасность и стойкость к угону – ведь в этом случае отключить такую сигнализацию взломом кода и перехватом радиосигнала будет невозможно. К тому же, в современных автомобилях для обеспечения возможности контроля и управления многими функциями автомобиля охранная сигнализация настолько внедряется в бортовую электрическую сеть автомобиля и систему управления двигателем, что фактически становится ее частью.
Во многих случаях подключение проводится по штатной проводке, поэтому такие сигнализации, по сути, являются одними из самых защищенных.
Для того, чтобы понять, какими возможностями обладают охранные системы с модулем GSM, можно рассмотреть конкретные модели.
Одной из самых доступных моделей является Starline 2CAN 35. Эта модель оснащена стандартными для охранных систем функциями иммобилайзера и антиграббера для предотвращения несанкционированного доступа к автомобилю и угона его без владельца. GSM-модуль обеспечивает связь с телефоном владельца и позволяет узнать о важнейших изменениях в состоянии автомобиля при помощи подключения к CAN-шине. В охранных GSM- сигнализациях бюджетного класса сам модуль, отвечающий за сотовую связь, выполнен в виде отдельной печатной платы и зачастую не имеет своего собственного корпуса – она вставляется в уже существующий корпус основного блока.
Что же касается более дорогих моделей от компании Старлайн, то в этом сегменте можно рассмотреть модель D94 с модулями GSM и GPS. Здесь также присутствуют практически все функции, присущие современным сигнализациям с возможностью сотовой связи. Высокая сопротивляемость взлому и угону обеспечивается многофакторной системой проверки и идентификации пользователя. Индивидуальный код, меняющийся при каждой постановке на охрану, встроенный иммобилайзер и множественные блокировки обеспечивают высокую надежность данного типа сигнализаций.
Данной сигнализацией можно управлять с обычного брелока (в этом случае производитель обещает дальность действия до двух километров), при этом радиоканал неплохо защищен от помех благодаря узкополосному передатчику.
При помощи брелока возможен дистанционный запуск и остановка двигателя, а также настройка его автоматического прогрева по времени или по температуре охлаждающей жидкости. Брелок имеет своеобразную форму, благодаря чему его можно отличить от брелока, скажем, сигнализации Пантера, модель которой тоже можно узнать по его форме.
Старлайн D94 GPS оснащена специальными 3D-датчиками, реагирующими на удар и наклон, которые могут регулироваться дистанционно. Такая функция может пригодиться при эвакуации автомобиля со стоянки.
Особенностью сигнализации Starline является полная интеграция с бортовым интерфейсом 2CAN, которая значительно упрощает установку, настройку и дальнейшую эксплуатацию. При помощи связи с электронной системой управления двигателем и общей шиной охранная система получает доступ ко многим изменяемым настройкам автомобиля: управление различными электроприводами, оповещение об изменении различных параметров и возможность их оперативного изменения.
И самая главная функция данной системы
– возможность GPS-позиционирования, благодаря которой становится возможным очень точно отслеживать местоположение автомобиля прямо со своего смартфона. В принципе, более дешевые и простые системы тоже умеют это делать, но у них геолокация осуществляется по вышкам сотовой связи, а это не всегда точное определение места, кроме того, точек для привязки должно быть достаточно много (минимум три).
Одним из конкурентов этой системы является сигнализация Sky GPS-GSM с аналогичным функционалом, однако по эргономичности и удобству пользования ей далеко до продукции Старлайн. Впрочем, цена более чем привлекательная.
Установка непосредственно самого GSM-модуля достаточно проста. Основные нюансы зависят от конкретной модели сигнализации и самого автомобиля. Также есть большая разница между тем, будет ли монтироваться только сам модуль или вся охранная система в полном составе. Если в первом случае можно обойтись самостоятельной работой, то во втором разумнее будет обратиться за помощью к профессиональным установщикам.
Основной алгоритм работы по установке GSM-модуля следующий:
Вся система настраивается, номер SIM-карты регистрируется и затем системой можно пользоваться.