Начиная подозревать антену. Должна ли быть связь между центральной жилой и оплеткой? Прибор показывает, что она есть.
Всем привет! Столкнулся с такой же проблемой - пришел из Китая подобный модуль. Пытаюсь заставить его работать - пока без толку((( Уже перепаял контакты - диодик тупил. По поводу антенны - не думаю, что оплетка должна контактировать с жилой, т.к. жила - это волновод, а оплетка - экран. По крайней мере у меня антенка аккуратненько сделана.
Модуль вышел на связь с ардуинкой, но пока нет сигнала. Подключил так же, как описано в статье: http://2150692.ru/component/content...ka-sms-cherez-arduino-i-gsm-modul-neoway-m590 Моргает с периодичностью раз в секунду диод led 2 (который рядом с симкой). Проблема может быть из-за оператора связи (из-за рабочей частоты, т.к. M590 работает только на 900 и 1800 МГц) или симки. Или как всегда - плохой контакт)
То же самое. Связь с ардуиной есть, с сетью нет, пробовал двух разных операторов. Вот что вычитал: Все сотовые операторы (МТС, Билайн, Мегафон) вещают на частотах 900МГц и 1800МГц. В зависимости от местности они могут вещать: - на 900МГц - на 1800МГц - на 900МГц и 1800МГц одновременно Как правило, частота сети выглядит так: - МТС, Билайн в городе - 900МГц - Мегафон в городе - 1800МГц - МТС, Билайн, Мегафон в области - 900МГц Вот хороший скетч, позволяет вводить команды с терминала, очень удобно: Код (Text): #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX void setup() { Serial.begin(19200); //Скорость порта для связи Arduino с компьютером Serial.println("Goodnight moon!"); mySerial.begin(19200); //Скорость порта для связи Arduino с GSM модулем mySerial.println("AT"); } void loop() { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); }
Начало передавать мне СМСки. Не знаю само заработало или от моих пинков. Для начала сделал: at+cscs="GSM" потому что стояло не пойми что, потом проверил: at+xbandsel? убедился что работают обе частоты. Странно что не работает описанная в мануале команда at+cops, она вроде бы полезна. И наконец проверил сигнал при помощи: at+csq Но почему то осталось ощущение, что прием сильно хрупкий, буквально сдвинешь на полметра модем и уже не ловит. При установке важно убедиться, что место рыбное. В общем, смс с него на мой телефон при помощи кода указанного ниже я получил. Принять пока не получилось, продолжаю эксперименты. Код (Text): void sms(String text, String phone) //процедура отправки СМС { Serial.println("SMS send started"); mySerial.println("AT+CMGS=\"" + phone + "\""); delay(500); mySerial.print(text); delay(500); mySerial.print((char)26); delay(500); Serial.println("SMS send complete"); delay(2000); }
Опять перестал находить сеть. Бьюсь вторые сутки, не могу найти причину и зависимость. То работает, то нет. На том же самом месте, с той же симмкой, с тем же скетчем ардуино, и никакой связи с реальностью. Похоже, в данном случае этот тот самый "китай" который ассоциируется с плохим качеством. И вообще, почему на плате 50% пустого места? Кто печатную плат рисовал, китайские школьники? Ррррррр!
Убив очередную ночь почти добился успеха вникнув в тонкости команд этого модема. Смски уходят на телефон и принимаются с него. Определяется номер написавшего или позвонившего, что уже дает некоторые возможности. Начал было описывать проблему с неполным получением строки смс, но пока писал проблему решил. Вскоре, если не возникнет новых проблем, подготовлю отчет с примерами.
Да, обязательно распишу, может быть сегодня вечером. Теперь можно за относительно недорого отправлять смски от Ардуины, а так же управлять ей дистанционными командами, в том числе звонками (бесплатно).
Итак, краткие итоги исследования и освоения бюджетного SMS модуля на базе Neoway M590. Задачи перед модулем ставились такие: 1. Уметь отправлять СМС на заданный номер по какому либо событию. 2. Уметь принимать СМС и опознавать от кого оно (свой-чужой). 3. Уметь выполнять действия на основе текстовых команд присланных в СМС. Все это модуль успешно умеет делать, плюс определять факт входящего звонка, к чему тоже можно привязать любое действие. В коде достаточно подробно расписаны команды инициализации и работы модуля, трудностей приспособить его под свои задачи возникнуть не должно. Код (Text): #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX int ch = 0; String val = ""; #define MASTER "+7XXXXXXXXXX" //укажите телефон хозяина void setup() { Serial.begin(9600); //подключаем порт компьютера Serial.println("GSM Neoway M590 example"); mySerial.begin(19200); //подключаем порт модема (при других скоростях не отвечает) mySerial.println("ATI"); //вывести в терминал иноформацию о модеме delay(100); mySerial.println("AT+CSQ"); //вывести в терминал уровень сигнала (если 99, то связи нет) delay(100); mySerial.println("AT+CLIP=1"); //включаем АОН delay(100); mySerial.println("AT+CMGF=1"); //режим кодировки СМС - обычный (для англ.) delay(100); mySerial.println("AT+CSCS=\"GSM\""); //режим кодировки текста delay(100); mySerial.println("AT+CNMI=2,2"); //отображение смс в терминале сразу после приема (без этого сообщения молча падают в память) } void loop() { if (mySerial.available()) { //есть данные от GSM модуля delay(200); //выждем, чтобы строка успела попасть в порт целиком раньше чем будет считана while (mySerial.available()) { //сохраняем входную строку в переменную val ch = mySerial.read(); val += char(ch); delay(10); } Serial.println(val); // дублируем сообщение в терминал //----------------------- определение факта приема СМС и сравнение номера(ов) с заданным(и) if (val.indexOf("+CMT") > -1) { //если обнаружен СМС (для определения звонка вместо "+CMT" вписать "RING", трубку он не берет, но реагировать на факт звонка можно) if (val.indexOf(MASTER) > -1) { //если СМС от хозяина Serial.println("--- MASTER SMS DETECTED ---"); } else { Serial.println("NO MASTER SMS"); } //----------------------- поиск кодового слова в СМС (вообще эту часть надо поместить внутрь предыдущей, но если использовать кодовое слово не совпадающее с сообщениями модема, то не обязательно) if (val.indexOf("sendme") > -1) { // если обнаружено кодовое слово Serial.println("send you ok"); // сообщаем об этом в терминал (если нужно) sms("yes sir!", MASTER); // отвечаем смской } else { // если другое слово или вообще пустое сообщение Serial.println("no send you"); sms("no sir!", MASTER); } val = ""; } } } void sms(String text, String phone) //процедура отправки СМС { Serial.println("SMS send started"); mySerial.println("AT+CMGS=\"" + phone + "\""); delay(500); mySerial.print(text); delay(500); mySerial.print((char)26); delay(500); Serial.println("SMS send complete"); delay(2000); } Немного о подключении. Несмотря на то, что в даташите рекомендовано напряжение 3,3В на RXD, в реальности же он вполне стабильно работает на стандартных 5В, что подтверждают другие владельцы девайса. Поэтому можно подключать не мудря схемами: +5В питание, земля, RXD, TXD. В меру сил отвечу на вопросы.
Несмотря на то, судя по отзывам, что никому это не интересно, я выкладываю видео с демонстрацией работы:
Не успел придумать толковый отзыв, поэтому одна благодарность и один вопрос. Во-первых, хотел сказать спасибо, что разобрались, теперь понятно, что это можно закупать. Что весьма забавно, на AliExpress модули M590 отдельно стоят дороже, чем весь этот конструктор в комплекте. Ну а вопрос такой: не хотите ли вы под этот модуль сделать компактную плату или интегрировать его сразу в ардуину?
Кстати, думал об этом, потому как данную плату рисовали китайские школьницы ночью после уборки риса. Более того, в недрах интернета находил фотографии модуля на базе М590 размером чуть больше чем он сам. Значит это не только реально, но и существует в природе. Однако в продаже найти не удалось, поэтому желание сделать компактную модель осталось. В качестве варианта можно подумать об ардуино-шилде. Но вообще, как мне кажется компактный модуль интереснее, т.к. он меньше размером и более универсален, не всегда же приходится делать устройство на базе Уно или Меги, особенно если речь идет о компактном автономном изделии, для которого смс- модуль и нужен.
вот компактный модуль: http://ru.aliexpress.com/item/GPRS-...sm-module-SIM-module-TCP-UDP/32301453508.html
[QUOTE="DrProg,[/QUOTE] Спасибо большущее разжованность, отлично все расписано .Внесу свои 5 коп, никак не хотел работать ни на каких скоростях порта, на команды не отвечал хотя в порт корокозяблы писал , пробовал менять скорость безполезно . Подключил через преобразователь uart -usb и на скорости 115200 только через putty начал откликатся. В итоге заработал нормально только переключением скорости на 9600 в том же putty командой AT+IPR=9600.
Тоже хочу поблагодарить за проведённую работу и подробный отчёт. Приобрёл и себе такой-же девайс. Благодаря данному топику запустил без проблем, как от ардуинки так и от ПК. Планирую выписать ещё один и приспособить для удалённого управления и контроля с помощью СМС. Мучает один вопрос. В телефоне, при переполнении памяти, СМС перестают приниматься. А как организовано тут? Судя по отчётам СМС тоже сохраняются. Не остановится-ли модуль при заполнении памяти?