1) То что шилд не хочет стабильно работать с библиотекой амперки, как я понял все уже смирились.. При условии подключенного дополнительного питания 12в 1а, и попытках загрузить классический скетч из документации: Код (Javascript): var sim = require('@amperka/Sim900r').connect(); sim.powerOn(); sim.smsSend("+79160001122", "hello", function(error){ console.log(error); }); Модуль то пишет ошибку cmd error, то disconnect, то снова коннектится и отправляет смс, а потом отправляет много пустых смс. В общем не работает. Это будет правильная характеристика его поведения. Далее я нашел подобную тему и сообщение модератора форума от 2016 года: Теперь вопросы: Код (Javascript): var sim = require('@amperka/Sim900r').connect({powerPin : P9}); Первый вопрос, почему powerPin : P9? В документации http://wiki.amperka.ru/js:gprs-shield powerPin это P2. Это связано с старой версией шилда? Второй вопрос код приведенный из библиотеки espruino: Код (Javascript): Serial3.setup(9600,{ rx: P0, tx : P1 }); Почему rx: P0, tx : P1 если на плате наоборот rx: P1, tx : P0, это видно и на изображении. В документации противоречия самим себе.В самом начале: Далее в тексте TX уже 1 пин а не 0, вобщем что пишем не проверяем.. на изображении видно что RX=1 и TX=0 так же как и на само плате, но если в скетче указать как это изображено на плате - ничего не работает! вот пример: Если я в скетче библиотеки espruino указываю rx: P1, tx : P0 так изображено на плате и в документации: Код (Javascript): Serial3.setup(9600,{ rx: P1, tx : P0 }); вылазит ошибка Код (Javascript): >ERROR: Pin B10 is not capable of USART3 RX Suitable pins are: B11 C11 Если же я ставлю вопреки тому что пишут в документации и вопреки тому что написано на само плате rx: P0, tx : P1: Код (Javascript): Serial3.setup(9600,{ rx: P0, tx : P1 }); Ошибок не возникает все работает. Следущее: Код (Javascript): var gprs =require('SIM900').connect(Serial3,P9,function(err){ Откуда этот powerЗin (P9)? Ставлю P2 как в документации вылетает disconnect Меняю на P9 никаких проблем. Если указать powerPin9 и rx(P0) tx(P1) что противоречит документации и маркировкам на плате - библиотека от espruino отправляет смс нормально. При подключении библиотеки gprs отрабатываю все методы( gprs.getVersion и др) НО при попытке присоедениться к интернету методом gprs.connect долго думает потом уходит в disconnect Код (Javascript): var gprs =require('SIM900').connect(Serial3, P9 ,function(err){ if (err) throw err; gprs.init(function(){ console.log("Initialised!GPRS"); gprs.connect('internet', 'gdata', 'gdata', function(err) { if (err) throw err; console.log('internet', err); gprs.debug(); http.get("http://www.pur3.co.uk/hello.txt", function(res) { console.log("Response: ",res); res.on('data', function(d) { console.log("--->"+d); }); }); }); gprs.getVersion(function(err, version){ if (err) throw err; console.log(version); }); }); }); В чем можеь быть проблема с disconnect ? Нашел примечание в документации библиотеки gprs от espruino Хорошо, если этот disconnect связан с бп почему тогда не подходить бп заявленный в документации к шилду от амперки 12в 1а. Почему разняться данные пинов в документации и на самой плате и в библиотеках... Может быть именно поээтому не работают библиотеки от амперки и модуль в целом? Что скажете, что посоветуете?
Про Rx и Тх Rx - приемник, Тх - передатчик. Где что обозначают на платах не всегда ясно. Когда нужно соединить 2 устройства, то нужно соединить передатчик одного с приёмником другого и аналогично 2-ю линию. И тут появляется путаница. Что подписывают на плате? Rx/Tx самого устройства или подключение другого устройства, соответственно, при настройке нужно указать какие пины - самого устройства или подключаемого? Самым простым ответом на вопрос будет являться чтение дашиков с установкой определения где приемники и передатчики у используемых устройств и документации библиотеки - где какие пины указываются. С JS не работал, поэтому больше не подскажу.
Ну я понял, но получается мне нужно сидеть и делать работу за разработчиков этого шилда.. Просто какой тогда смысл покупать этот шилд за 3000р если он корректно не работает, по крайней мере с iskra js, я мог купить шилд с алиэкспесс, за другие деньги и с таким же успехом работать через библиотеки espruino, брал специально шилд амперки тк русская библиотека, нормальное описание, да и в целом железки амперки всегда работали без особых проблем.. Но по факту ничего не работает.
А это читали? вот. Почитал я про сериал и powerPin - мне кажется, что вы придираетесь. Да, первый опыт, незнакомые термины - понимаю. Но если хотите агрессивно нападать, то приводите еще схемы, а не словесное описание, а то информации не хватает.
Мне просто хочется уже разобраться в причине проблем работы этого модуля ,или библиотеки. Но судя по тому что и библиотека espruino работает глично видимо дело не только в библиотеках. Схемы я не приведу я не настолько в этом разбираюсь. У меня задача была приобрести ШИЛД(это удобное модульное решение под ключ) Настроить его по документации и работать. В чем основные вопросы. Это в пинах rx и tx почему при настройке даже стандартного Serial3 он их не принимает? Куда мне смотреть когда я делаю настройку порта? на плату ? в документацию? на плате rx соединен джампером с портом p1 tx с P0 указываю их при настройке: Код (Javascript): Serial3.setup(115200, { rx: P1, tx : P0 }); вылазит ошибка: Код (Javascript): >ERROR: Pin B10 is not capable of USART3 RX Suitable pins are: B11 C11 Что тогда писать туда, куда смотреть? Пока это наверно основной вопрос.. С пином питания P9 более менее понятно, это наверно был пин питания в старой ревизии шилда. Так же остается открытым вопрос по питанию, у меня подключен 12в 1а, модуль вылетает в disconnect
на все и сразу. Еще раз, у вас есть пины rx и tx на шилде, у вас есть пины rx и tx на программируемой плате (я не знаю какая у вас). Вам нужно соединить передатчик одной с приемником другого и запрограммировать их пины rx и tx на ардуинке их как serial. При этом в функции пины нужно указать строго как они реализованы в микросхеме. Я вам ссылку уже кинул. А фразу я не понимаю. На какой плате? Зачем вы их накрест перемкнули, если речь про гпрс-шилд?
у меня iskra js и GPRS Shild v3. шилд я одеваю прямо на искру, единственное что я делаю это меняю джампер питания на искре на vin-vin3 чтобы подключить сторонний бп 12в 1а. На gprs шилде по умолчанию стоят 4 джампера(tx:0,rx:1,pk:2,st:3) которые соеденяют управляющие пины с пинами платы.Их можно увидеть на фото: Если у контроллера эти пины заняты чем-то другим как я понял можно снять джампер и перекинут перемычками на любой другой пин, вот пример. На моей плате iskra js как я понимаю ничего перекидывать ненужно:
Спасибо, за конкретику. На искре rx (приемник) висит на нулевом пине (на картинке подписано). На gprs, при наличи джампера, на 0-м пине tx (передатчик). Когда вы одеваете gprs на искру вы соединяете нулевые пины (приемник с передатчиком) Далее, в программе вы должны сказать искре, чтобы она работала с нулевым пином как с приемником, т.е. Rx (как подписано на плате искры). Как Tx этот пин работать не умеет. Аналогичные рассуждения с пином 1. Проблема в том, что программирование микроконтроллеров должно учитывать схемотехнику. МК состоит из функциональных блоков, которые можно подключать к пинам. У каждого пина есть свой, строго ограниченный, набор блоков. У разных пинов этот набор может отличаться. В используемом МК на искре есть блок, который можно использовать как UART. Приемник (rx) этого блока выведен на 0-й пин, а передатчик (tx) на 1-й.
У них в примерах есть "умная" розетка. Там используется БП 5В=1А, хотя в описании шилда говорят о 2А с от 7 до 12 В. Тут я ничего не подскажу, могу посоветовать подобрать более мощный БП. Да и powerPin тоже что-то странное. Если перемычка на Р2, то с Р2 и должно работать. Модулей таких нет, боюсь не помогу. Можно попробовать позвонить в саму амперку или написать письмо по обратной связи. Помогают.
Спасибо за развернутый ответ с tx и rx, вопрос тогда к разработчикам шилда зачем устроили путаницу с пинами rx и tx, ведь и на обычной ардуино rx тоже висит на 0 пине. Документация для шилда для неопытных людей создает сильную путаницу. С powerPin 2 вроде разобрался все более менее нормально.. С блоком питания - надо пробовать 2-3 амперные 7-12в Заявленный к ШИЛДУ по ссылке в документации 12в-1а не подходит. Пробовал подключать 5в (2а) через vin3-v5 тоже не подходит. При подключении gprs уходит в disconnect и перезагрузку.
Ну почему же путаница? На платах указывается что находится у целевого мк на этом пине. У искры приемник, у шилда передатчик. При соединении приемник соединяется с передатчиком. Другими словами у ардуины (искра, нео, уно...) всегда будет rx на 0, а у шилдов всегда tx на 0. Это нужно для того, чтобы при соединении пины всегда совпадали. То есть это не путаница, а честно сообщают где-что, но при этом, т.к. шилд сверху, то видно только его обозначение, а оно инвертировано относительно ардуины, что не удобно... Поэтому стараются писать со всех сторон. Мне кажется, стоит им позвонить/написать если не получится с более мощным бп.
Путаницы никакой нет.Джамперы подключают шилд либо к аппаратному Serial либо к програмному.И китайские также устроены.Везде в примерах програмные а я использую аппаратный.
С Амперковским GPRS Shied-ом проблем нет. С Амперковкой Мегой он с декабря отлично работает. С JS не пробовал.
Так а там все по даташиту, Есть особенности подключения питания (сначала внешнее, потом USB, через активный USB хаб) а так все стандартно.
Более мощное питание(7в 3а, 7в-5а,12в-2а,12в-3а) не подошло.. Методом тыка в мастеркой амперки, пробовали другую искру и другой шилд, эффект один и тот же, пробовал другие пк, все тоже самое - выполнение скетча и дисконнект. Соответственно если загрузить прошивку то уходит в циклическое выполнение скетча и дисконнект. Однажды по какой-то неведомой причине он начал рабоать и стабильно работал минут 15, отправлял смс, отправлял http запросы, и принимал ответы, показал ip. Но при очередном запросе начал снова уходить в disconnect. Потом начал ковырять библиотеки, и ат команды и пришел к выводу что проблема происходит на уровне настройки сериал порта. Я удалил весь код кроме: Код (Javascript): Serial3.setup(9600, { rx: P0, tx : P1 }); console.log('setup port!'); При выполнении такого простого скетча, он отрабатывает в консоле "setup port!" и уходит в disconnect. Я снимаю шилд с платы, запускаю тот же скетч: Код (Javascript): Serial3.setup(9600, { rx: P0, tx : P1 }); console.log('setup port!'); отрабатывает "setup port!" и никаких проблем с disconnect не возникает, одеваю шилд, запускаю и снова отрабатывает "setup port!" и уходит в disconnect. Может есть какие идеи?
Так же пробовал подключение через активный usb хаб как писали выше, переустановку драйвера stm32, переброс пинов. Пробовал другой компьютер, правда тоже на win10, другую искру js и другой gprs шилд v3. На windows 10 на разных компьютерах разные искры и шилды ведут себя одинаково - Disconnect через 5 скунд после настройки serial3.
Код (Javascript): Serial3.setup(9600, { rx: P0, tx : P1 }); console.log("Connecting to SIM900 module"); var gprs = require('SIM900').connect(Serial3, P2, function(err) { if (err) throw err; gprs.connect('internet', '', '', function(err) { if (err) throw err; gprs.getIP(function(err, ip) { if (err) throw err; console.log('IP:' + ip); require("http").get("http://www.pur3.co.uk/hello.txt", function(res) { console.log("Response: ",res); res.on('data', function(d) { console.log("--->"+d); }); }); }); }); }); Идея в том что через 4 секунды после Serial3.setup().. С подключенным gprs шилдом v3. происходит disconnect espruino web ide. (OS Win10) Библиотеки из репозитория edpruino