Ciao a tutti ho un problema che non riesco a risolvere con la shield sim900 v2 prodotta da seeedstudio.
Il mio problema a e che non riesco a fargli mandare gli SMS, nemmeno con gli esempi che sono nella libreria, ma le chiamate le fa.
Ho seguito diverse guide ma nulla.
la sto usando con arduino mega impostata su softserial.
Ho provato a connettermi con putty per verificare la connessione ma mi da sempre un errore di velocità della porta, ma le ho provate già tutte.
tezuya:
la sto usando con arduino mega impostata su softserial.
Quali pin stai usando per la SoftwareSerial ?
E perché usare la SoftwareSerial su una scheda che ha ben 4 seriali vere ? ? ? :o
Guglielmo
Ciao i Pin che uso sono 7 8 ho modificato anche la libreria per tali Pin.
Uso la softwareSerial perché avevo il medesimo errore con l'altra con quella hardware.
Quando usavo la porta hardware o ponticello i Pin 6 e 7 con il 2 e 3 (se non sbaglio) come dice nel sito di seeedstudio.
Ma dopo 3 settimane di svariate prove non ne sono venuto a capo.
Premesso che con la seriale hardware DEVE funzionare (... metti il link alla libreria che stai usando e vediamo), comunque la SoftwareSerial, sui pin che hai usato della Mega, NON funzionerà MAI !!!
Leggeteli i reference prima di usare una libreria ... specialmente le limitazioni d'uso !!!
Guglielmo
P.S: Usa il pin 10 per RX e 11 per il TX ... così sarai compatibile con tutte le board.
gpb01:
Premesso che con la seriale hardware DEVE funzionare (... metti il link alla libreria che stai usando e vediamo), comunque la SoftwareSerial, sui pin che hai usato della Mega, NON funzionerà MAI !!!Leggeteli i reference prima di usare una libreria ... specialmente le limitazioni d'uso !!!
Guglielmo
P.S: Usa il pin 10 per RX e 11 per il TX ... così sarai compatibile con tutte le board.
L'inesperienza..... Grazie, questa sera proverò come dici tu usando 10 e 11 ma con la seriale hardware.
Le librerie le ho prese qui GPRS Shield V2.0 | Seeed Studio Wiki
Ne sono 2 e sinceramente le differenze non le so
tezuya:
L'inesperienza..... Grazie, questa sera proverò come dici tu usando 10 e 11 ma con la seriale hardware.
No, frena, quelli sono i pin funzionanti con la SoftwareSerial sulla Mega, le seriali HW invece usano, come riportato nel reference, i seguenti pin:
Serial1: 18 TX e 19 RX
Serial2: 16 TX e 17 RX
Serial3: 14 TX e 15 RX
tezuya:
Le librerie le ho prese qui GPRS Shield V2.0 | Seeed Studio Wiki
Ok ... purtroppo, contrariamente ad altre, non prevedono già di base l'uso delle vere seriali sulla MEGA ... ti conviene allora, per evitare di dover mettere le mani ovunque nel codice della libreria, di cambiare semplicemente i pin della SoftwareSerial dichiarando, come ti ho detto, il pin 10 come RX e il pin 11 come TX.
Guglielmo
gpb01:
No, frena, quelli sono i pin funzionanti con la SoftwareSerial sulla Mega, le seriali HW invece usano, come riportato nel reference, i seguenti pin:Serial1: 18 TX e 19 RX
Serial2: 16 TX e 17 RX
Serial3: 14 TX e 15 RX
Ok ... purtroppo, contrariamente ad altre, non prevedono già di base l'uso delle vere seriali sulla MEGA ... ti conviene allora, per evitare di dover mettere le mani ovunque nel codice della libreria, di cambiare semplicemente i pin della SoftwareSerial dichiarando, come ti ho detto, il pin 10 come RX e il pin 11 come TX.Guglielmo
ciao ho provato a cambiare queste righe come hai detto tu (SoftwareSerial.cpp):
#define _DEBUG 0
#define _DEBUG_PIN1 11
#define _DEBUG_PIN2 13
ma non funziona ugualemte nemmeno seguendo questa guida che usa un'altra libreria.
http://www.carminenoviello.com/it/2013/11/03/usare-la-gsmgprs-shield-di-seed-studio/
Ormai ne sto uscendo matto e capisco che modificare la libreria non e molto facile.
Ma NON devi modificare assolutamente la SoftwareSerial ... :o :o :o
... devi modificare l'istanza all'interno della libreria o, dove previsto, passare i pin giusti!!!
Ad esempio, usando QUESTA, quando istanzi GPRS scrivi:
GPRS gprsTest(PIN_TX,PIN_RX,BAUDRATE);
... e, come vedi, gli passi quale è il pin per RX, quale quello per TX e a che velocità deve andare.
DEVI studiarti gli esempi allegati alle librerie e vedere come fanno !!!
Guglielmo
gpb01:
Ma NON devi modificare assolutamente la SoftwareSerial ... :o :o :o
... devi modificare l'istanza all'interno della libreria o, dove previsto, passare i pin giusti!!!Ad esempio, usando QUESTA, quando istanzi GPRS scrivi:
GPRS gprsTest(PIN_TX,PIN_RX,BAUDRATE);
... e, come vedi, gli passi quale è il pin per RX, quale quello per TX e a che velocità deve andare.
DEVI studiarti gli esempi allegati alle librerie e vedere come fanno !!!
Guglielmo
Ok avevo modificato bene inizialmente ma vedendo che non funzionava pensavo che dovevo modificare il softwareserial.
questo e l'esempio che e nella libreria modificato.
#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#define PIN_TX 11
#define PIN_RX 10
#define BAUDRATE 9600
#define PHONE_NUMBER "328xxxx"
#define MESSAGE "hello,world"
GPRS gprsTest(PIN_TX,PIN_RX,BAUDRATE);//RX,TX,BaudRate
void setup() {
Serial.begin(9600);
while(!gprsTest.init()) {
delay(1000);
Serial.print("init error\r\n");
}
Serial.println("gprs init success");
Serial.println("start to send message ...");
gprsTest.sendSMS(PHONE_NUMBER,MESSAGE); //define phone number and text
}
void loop() {
//nothing to do
}
Aprendo il monitor seriale ho questo errore: init error
ho collegato la scheda su Arduino uno con le porte 7 e 8 e funziona tutto.
Quindi o non e compatibile con la mega oppure sbaglio qualcosa.
Mi viene un dubbio ...
... ma tu questa scheda, alla Mega COME la colleghi ? Puoi fare una foto ed allegarla ?
Guglielmo
La collego sopra e una shield quindi non faccio altro.
Ma ho visto nei vari siti che qualcuno ha tolto i ponticelli dove si setta la seriale, e da li sono partiti con 2 fili verso i Pin della mega.
La foto Potrei farla ma considera che non si vedrebbe nulla apparte la mega e la gsm sopra.
Sempre se non sto sbagliando.
Allora,
prima di tutto mi confermi che stiamo parlando di QUESTA scheda (perché mi pare che sino ad ora non hai messo un link al prodotto) ?
Poi, se è quella, NON vedo come tu faccia a selezionare con i ponticelli il pin 10 come RX ed il pin 11 come TX, dato che le uniche DUE configurazioni che vedo sono 0, 1 oppure 7, 8 ... :o
... non è che basta metterli nella istanza della chiamata eh ... se l'hardware NON è configurato per usarli ... NON può ovviamente usarli e, se non usi il 10 e 11, sulla MEGA la SoftwareSerial NON funziona !
Quindi, TOGLI i ponticelli e, partendo dai centrali del jumper di selezione dei pin della seriale:
colleghi TU con due cavetti il pin marcato TX of SIM900 al pin 10 della MEGA che abbiamo definito come RX, ed il pin marcato RX of SIM900 al pin 11 della MEGA che abbiamo definito come TX.
TX SIM900 ---> RX MEGA (10)
RX SIM900 <--- TX MEGA (11)
A questo punto istanzi la chiamata come avevamo detto usando come RX il 10 e come TX il 11 e vedrai che funziona.
Guglielmo
gpb01:
Allora,
prima di tutto mi confermi che stiamo parlando di QUESTA scheda (perché mi pare che sino ad ora non hai messo un link al prodotto) ?Poi, se è quella, NON vedo come tu faccia a selezionare con i ponticelli il pin 10 come RX ed il pin 11 come TX, dato che le uniche DUE configurazioni che vedo sono 0, 1 oppure 7, 8 ... :o
... non è che basta metterli nella istanza della chiamata eh ... se l'hardware NON è configurato per usarli ... NON può ovviamente usarli e, se non usi il 10 e 11, sulla MEGA la SoftwareSerial NON funziona !Quindi, TOGLI i ponticelli e, partendo dai centrali del jumper di selezione dei pin della seriale:
colleghi TU con due cavetti il pin marcato TX of SIM900 al pin 10 della MEGA che abbiamo definito come RX, ed il pin marcato RX of SIM900 al pin 11 della MEGA che abbiamo definito come TX.
TX SIM900 ---> RX MEGA (10)
RX SIM900 <--- TX MEGA (11)A questo punto istanzi la chiamata come avevamo detto usando come RX il 10 e come TX il 11 e vedrai che funziona.
Guglielmo
Male Male che errore che ho fatto!!!
Ora funziona con la libreria cosi configurata e con questi collegamenti.
Inizialmente avevo collegato cosi il gsm ma sbagliando a modificare la libreria e quindi non funzionava...Da ingenuo pensavo che i collegamenti non occorrevano farli quindi ho eliminato questa idea....
Ti ringrazio Guglielmo.
PS conosci una guida su come usare i comandi AT?