SIM808 GPS / GPRS / GSM + LCD I2C

Salve a tutti,
sono un insegnate e stavo preparando degli esperimenti per il prossimo a.s.
Mesi fa ho comprato una Shield GPS SIM808 / GPRS / GSM per Arduino della DFRobot.
Uso IDE 1.8.3.
La scheda è: P/N:S2-1060C-Z1F02;SN:MP0615252419733;IMEI:865067020665850;SW:1418B01SIM808M32
Gli sketch contenuti con la propria libreria funzionano perfettamente: faccio e ricevo chiamate, trasmetto e ricevo SMS e infine anche il GPS mi dà informazioni molto accurate sempre e solo sul monitor seriale.
Volendo preparare un esperimento standalone ho tolto le righe di output sul monitor seriale e ho messo un comunissimo LCD 20x4 I2C per visualizzare solo la latitudine e la longitudine ma purtroppo non mi supera mai il metodo
if (sim808.getGPS()) { ...
Ho provato a sostituire le comunicazioni tra la Shield e Arduino da Serial. a SoftwareSerial. sui piedini TX-10 ed RX-11 senza nessun risultato.
Ho provato anche a sostituire Arduino UNO con il Mega 2560, nessun risultato.
Qualcuno può aiutarmi?
Grazie
sono un insegnate e stavo preparando degli esperimenti per il prossimo a.s.
Mesi fa ho comprato una Shield GPS SIM808 / GPRS / GSM per Arduino della DFRobot.
Uso IDE 1.8.3.
La scheda è: P/N:S2-1060C-Z1F02;SN:MP0615252419733;IMEI:865067020665850;SW:1418B01SIM808M32
Gli sketch contenuti con la propria libreria funzionano perfettamente: faccio e ricevo chiamate, trasmetto e ricevo SMS e infine anche il GPS mi dà informazioni molto accurate sempre e solo sul monitor seriale.
Volendo preparare un esperimento standalone ho tolto le righe di output sul monitor seriale e ho messo un comunissimo LCD 20x4 I2C per visualizzare solo la latitudine e la longitudine ma purtroppo non mi supera mai il metodo
if (sim808.getGPS()) { ...
Ho provato a sostituire le comunicazioni tra la Shield e Arduino da Serial. a SoftwareSerial. sui piedini TX-10 ed RX-11 senza nessun risultato.
Ho provato anche a sostituire Arduino UNO con il Mega 2560, nessun risultato.
Qualcuno può aiutarmi?
Grazie
Code: Select all
#include <DFRobot_sim808.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
DFRobot_SIM808 sim808(&Serial);
LiquidCrystal_I2C lcd(0x27, 40, 4);
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.backlight();
while(!sim808.init()) {
lcd.print(" Inizializzo Sim808");
lcd.setCursor(7, 2);
lcd.print("ERRORE");
delay(1000);
lcd.clear();
}
lcd.print(" Inizializzo Sim808");
lcd.setCursor(2, 2);
lcd.print("INIZIALIZZATA");
delay(1000);
lcd.clear();
//************* Turn on the GPS power************
lcd.print(" Apertura del GPS");
lcd.setCursor(6, 2);
if( sim808.attachGPS())
lcd.print("COMPLETO");
else
lcd.print("FALLITO");
delay(1000);
lcd.clear();
}
void loop() {
//************** Get GPS data *******************
lcd.clear();
lcd.print("Ricerca GPS in corso");
if (sim808.getGPS()) {
lcd.clear();
lcd.print("Dati GPS recuperati");
lcd.setCursor(0, 1);
lcd.print(" Latitudine: ");
lcd.print(sim808.GPSdata.lat, 6);
lcd.setCursor(0, 2);
lcd.print("Longitudine: ");
lcd.print(sim808.GPSdata.lon, 6);
lcd.setCursor(0, 3);
lcd.print("Velocita Km/h: ");
lcd.print(sim808.GPSdata.speed_kph, 2);
//************* Turn off the GPS power ************
sim808.detachGPS();
delay(1000);
}
else
delay(1000);
}
