sim900 работает ли?
- Войдите на сайт для отправки комментариев
Втр, 30/10/2018 - 10:29
Получил шилд sim900. Подключаю к Мини Про. Питание от отдельного БП.
код стандартный.
#include <SoftwareSerial.h> SoftwareSerial mySerial(7, 8); void setup() { Serial.begin(9600); mySerial.begin(9600); Serial.println("arduino start 1"); } void loop() { if (Serial.available()) mySerial.write(Serial.read()); if(mySerial.available()) Serial.write(mySerial.read()); }
При вводе любой АТ команды шилд ее же и выводит в окно монитора. Зеркально. Подключение проверил. Если поменять местами пины 7 и 8 то не реагирует.
Есть у меня еще маленький шилд на sim800. Подключаю его - реакция на команды нормальная.
Может кто подскажет где косяк?
Получил шилд sim900. Подключаю к Мини Про. Питание от отдельного БП.
код стандартный.
При вводе любой АТ команды шилд ее же и выводит в окно монитора. Зеркально. Подключение проверил. Если поменять местами пины 7 и 8 то не реагирует.
Есть у меня еще маленький шилд на sim800. Подключаю его - реакция на команды нормальная.
Может кто подскажет где косяк?
Зеркально - это как? Вы ввели "AT", вам пришёл ответ "TA"?
Если вы имели в виду, что модуль присылает вам обратно то, что вы послали ему, то... Отключите эхо: "ATE0".
Ну не так зеркально. Я ввожу АТ - мне приходит ответ АТ. И так любую команду.
Ввел "АТЕ0" - пришел ответ "АТЕ0" !
Подключил шилд напрямую к СОМ порту компа. Через путти на скорости только 9600 шилд реагирует на команды нормально.
Мне кажется, что имеет место быть некорректная библиотека SoftwareSerial. Подскажите где скачать заведомо рабочую библиотеку.
Ну не так зеркально. Я ввожу АТ - мне приходит ответ АТ. И так любую команду.
Ввел "АТЕ0" - пришел ответ "АТЕ0" !
Так и должно быть. А вот после того, как придёт "OK" эхо должно пропасть.
> Подключил шилд напрямую к СОМ порту компа. Через путти на скорости только
> 9600 шилд реагирует на команды нормально.
>
> Мне кажется, что имеет место быть некорректная библиотека SoftwareSerial.
> Подскажите где скачать заведомо рабочую библиотеку.
Хм... всё думаю-гадаю, а для чего такие сложности с вклиниванием? Почему не сразу напрямую подключаетесь? Догадываюсь, что это только кусочек кода, и вы что-то отлаживаете, но всё же?
На даче у меня собран "умный дом". На меге2560 и сим800. Кое какие моменты работы с гпрс шилдом нужно отладить. Для этого на работе хочу собрать стэнд на мини про и сим 900 (лучше бы конечно мега2560, но она задерживается с прибытием из китая). Вот и мучаюсь ..
Может пригодится. Написал тут монитор последовательного соединения между двумя устройствами. Работает только на устройствах, где есть хотя бы два аппаратных UART (Mega2560 или Leonardo, например). Выводит данные на Serial.
Сам сейчас занимаюсь отладкой SIM5360E, c SIM800L намучался уже, не везёт мне с ними как-то...
Вот в том то и дело, что на аппаратных UARTах проблем нет. А я пытаюсь подключиться через программный UART.
После долгих тыканий получается что-то непонятное. При подключении шилда СИМ900 без ардуины, напрямую к порту шилд адекватно работает только на той скорости, которая проставлена в свойствах порта в диспетчере устройств.
А вот при подключении через ардуину все как то странно. Раньше было как я писал выше - тупо эхо, которое никакой командой не отключается. А теперь в скетче я прописываю 9600 а мониторе порта мне приходится прописать 115200, чтобы что-то увидеть (не квадратики). "arduino start 1" вижу а вот на команды никакой реакции нет.
С каждым разом все интереснее и интереснее. В инете везде написано как подключить шилд к ардуино уно. Как кто подключал к минику я нигде не нашел. Может в этом случае есть какой-то подводный камень?
Может пригодится. Написал тут монитор последовательного соединения между двумя устройствами. Работает только на устройствах, где есть хотя бы два аппаратных UART (Mega2560 или Leonardo, например). Выводит данные на Serial.
Сам сейчас занимаюсь отладкой SIM5360E, c SIM800L намучался уже, не везёт мне с ними как-то...
на меге 2560 и так все работает. Никакая SoftwareSerial библиотека не нужна.
Вот в том то и дело, что на аппаратных UARTах проблем нет. А я пытаюсь подключиться через программный UART.
После долгих тыканий получается что-то непонятное. При подключении шилда СИМ900 без ардуины, напрямую к порту шилд адекватно работает только на той скорости, которая проставлена в свойствах порта в диспетчере устройств.
А вот при подключении через ардуину все как то странно. Раньше было как я писал выше - тупо эхо, которое никакой командой не отключается. А теперь в скетче я прописываю 9600 а мониторе порта мне приходится прописать 115200, чтобы что-то увидеть (не квадратики). "arduino start 1" вижу а вот на команды никакой реакции нет.
С каждым разом все интереснее и интереснее. В инете везде написано как подключить шилд к ардуино уно. Как кто подключал к минику я нигде не нашел. Может в этом случае есть какой-то подводный камень?
А с программными UART кругом проблемы. Я, когда писал это, пытался прикрутить ещё и AltSoftSerial. чтобы можно было и на Uno/Nano запускать. Но - не взлетело, получил кракозябры. Дело в том, что когда срабатывает прерывание для, например, SoftwareSerial, запрещаются прерывания для AltSoftSerial. В итоге получаем нехилую вероятность пропустить пришедшие данные. Потому и надо выставлять Скорости разные :(
Общий смысл: программые UART там, где в прерываниях не делается больше никакая время- или ресурсоёмкая работа. Иначе - не успеваем принимать.
Может пригодится. Написал тут монитор последовательного соединения между двумя устройствами. Работает только на устройствах, где есть хотя бы два аппаратных UART (Mega2560 или Leonardo, например). Выводит данные на Serial.
Сам сейчас занимаюсь отладкой SIM5360E, c SIM800L намучался уже, не везёт мне с ними как-то...
на меге 2560 и так все работает. Никакая SoftwareSerial библиотека не нужна.
Ну так для Меги оно и не задействуется: условная компиляция. Это писалось с оглядкой на универсальность.
Общий смысл: программые UART там, где в прерываниях не делается больше никакая время- или ресурсоёмкая работа. Иначе - не успеваем принимать.
В моем коде пока кроме перекидывания из одного сериала в другой ничего нет. Вот и не пойму почему не работает. По всему инету ведь написано - берешь Уно и СИМ900 три проводка, отдельное питание и все пашет с библиотекой СофтвареСериал.
А вообще закажу ка я Мегу2560.
Общий смысл: программые UART там, где в прерываниях не делается больше никакая время- или ресурсоёмкая работа. Иначе - не успеваем принимать.
В моем коде пока кроме перекидывания из одного сериала в другой ничего нет. Вот и не пойму почему не работает. По всему инету ведь написано - берешь Уно и СИМ900 три проводка, отдельное питание и все пашет с библиотекой СофтвареСериал.
А вообще закажу ка я Мегу2560.
Попробуйте всё-таки набросать схему, которая у вас не работает. Пока я понял, что вы между sim900 и Arduino воткнули для отладки другую Arduino. Вот только как это помогает отладить - непонятно.
Если же приведённый вами скетч - только выжимка из реальной программы, тогда нужно разбираться, какие там ещё библиотеки, кроме SoftwareSerial и как они используют прерывания? И сюрпризы при этом могут быть всякие.