РЕКЛАМА НА ФОРУМХАУС @Netbyka, Пока не пробовал проверять AT-командами как вы говорили, вечером наверно попробую. попробовал просто подать питание от батареи телефона на 3,7 V вначале светодиод на SIM 800 L моргает часто ищет сеть видимо но через несколько секунд начинает мигать реже; 7 раз моргнет пауза потом опять 7 раз пауза ... дозвон на вставленную сим не проходит .
@stepviz1, ну там разное может быть: - не хватает питания - радиомодуль не включился - хватает питания - но радиомодуль выключен командой, не помню ее - радиомодуль включен - но нет сигнала сети, покрытие плохое - покрытие нормальное - но настроен запрос пина, его надо командой отдельно вводить Ну и так далее. Поэтому начинать надо с прохождения простейшей AT, что оно вообще работает, а потом проверять сигнал, режимы работы и проч. Можно пока поискать в Гугле даташит на SIM800, 900 или 300 - там будет полный список AT-команд. Они как правило стандартны по использованию, только где-то какие-то есть, а какие-то не будут работать. Модули интересные, там много всего внутри понакручено. Кстати, в качестве USB-UART подходят старые дата-кабели от кнопочных мобильников, типа Самсунга С55 - там как раз внутри преобразователь на TTL-уровни. Только надо распиновку телефонного разьема смотреть, чтобы не спалить ничего.
Попробовал сейчас подключить через ардуино уно как на фото ниже как и в прошлые разы на любые АТ команды не отвечает скетч такой #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(); } В сериал отвечает только - Goodnight moon но это я так понял от ардуино приходит
А кто Вам сказал, что это будет работать с той же скоростью, что и аппаратный сериал? https://www.arduino.cc/en/Tutorial/SoftwareSerialExample В примере 4800: / set the data rate for the SoftwareSerial port mySerial. begin (4800); Можно потом будет попробовать 7200 и 9600, быстрее я бы не стал делать.
@stepviz1, если соединить пины 2 и 3 между собой - что-то вводится-выводится? Должно быть эхо, что написали - то прочитали. И подобрать скорость пока не заработает, может действительно ему 19200 слишком быстро
Спасибо! попробовал по этому примеру на разных скоростях то же нет отклика на любые АТ команды ставлю на оборот провода RX, TX пишет - я /* Software serial multple serial test Receives from the hardware serial, sends to software serial. Receives from software serial, sends to hardware serial. The circuit: * RX is digital pin 10 (connect to TX of other device) * TX is digital pin 11 (connect to RX of other device) Note: Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). created back in the mists of time modified 25 May 2012 by Tom Igoe based on Mikal Hart's example This example code is in the public domain. */ #include <SoftwareSerial.h> SoftwareSerial mySerial (10, 11); / RX, TX void setup() { / Open serial communications and wait for port to open: Serial. begin (9600); while (!Serial) { ; / wait for serial port to connect. Needed for native USB port only } Serial. println("Goodnight moon!"); / set the data rate for the SoftwareSerial port mySerial. begin (9600); mySerial. println("Hello, world?"); } void loop() { / run over and over if (mySerial.available() { Serial. write (mySerial.read(); } if (Serial.available() { mySerial. write (Serial.read(); } }
Эхо при соединении rx-tx должно быть, оно уже ни от каких команд не зависит. Если нет - значит, что-то не так сделано в программе. RX должен быть на пине, поддерживающем прерывания, у UNO как раз 2 и 3, на них interrupts. Uno, Nano, Mini, other 328-based 2, 3 Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21 Micro, Leonardo, other 32u4-based 0, 1, 2, 3, 7 Zero all digital pins, except 4 MKR1000 Rev. 1 0, 1, 4, 5, 6, 7, 8, 9, A1, A2 Due all digital pins 101 all digital pins В переводе документации по SoftwareSerial написано про другие пины, в частности 10, 11. Кто-то где-то врет.
Вопрос: при рассмотрении одновременной работы двух сериалов - какие провода должны давать эхо? Не так надо делать. Надо добавить отладочные сообщение вот сюда: if (Serial.available() { Serial. print("Debug:Begin Serial read = "); Serial. print (Serial. read(); Serial. println(" :End Serial read"); mySerial. write (Serial. read(); } * * * * скобки посчитать, т. к. парсер сайта их удаляет * * * * И Hello_Wold совать в модуль через mySerial - совсем не обязательно...
@aostspb, ну элементарно же: - USB, он же HW Serial 0, он же пины 0-1, должен принимать символы от компьютера в скетч, и из скетча на компьютер. - SoftwareSerial, настраиваемые пины - должен принимать символы от скетча и выводить их в устройство, и наоборот, принимать из устройства и выводить в скетч. Чтобы сделать эхо - надо соединить RX-TX SoftwareSerial. Которые настроены будут. Тогда символ, принятый с компьютера, будет записан в SS, принят обратно самим SS, и возвращен в компьютер через HW. Это и есть эхо. И если так не получается - значит что-то сделано неправильно в скетче или в настройке SS. Кстати, он заявлен до 115200, как бы должен работать...
Даже интересно стало. Надо будет покопаться в коде этого SS, как он вообще обрабатывает прием-передачу.
@stepviz1, Если появились крякозябры, то, очень похоже на то, что скорость модуля настроена не правильно. Попробуй сделать цикл инициализации модуля с разной частотой, и после каждой попытке выводить скорость АТ команду. У меня на одном модуле была частота 57600, на другом 115200 Заработает АТ попробуй команды. AT+CSQ - качество сигнала AT+CBC - информация о питающем напряжении да команды набирай в одном регистре иначе не пройдут. В doc-файле подборка ссылок и полезной информации