Помогите GSM Shield SIM900
- Войдите на сайт для отправки комментариев
Ср, 29/11/2017 - 11:20
Добрый день!
Стоит задача. Нужно записать полученные данные с сайта на micro sd на флешку. Скетч взял с примера. На серал монитор выводит информацию. Но конда ставлю код записи на флешку. Программа просто ломается. (Извените если что неправильно написал, новичок ))). ) Вот сам код:
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "inetGSM.h"
#include <SPI.h>
#include <SD.h>
//To change pins for Software Serial, use the two lines in GSM.cpp.
//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.
//Simple sketch to start a connection as client.
InetGSM inet;
//CallGSM call;
//SMSGSM sms;
const uint8_t PIN_CS = 10;
File myFile;
char msg[50];
int numdata;
char inSerial[50];
int i=0;
boolean started=false;
void setup()
{
//Serial connection.
myFile = SD.open("data.log", FILE_WRITE);
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(2400)){
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");
if(started){
//GPRS attach, put in order APN, username and password.
//If no needed auth let them blank.
if (inet.attachGPRS("internet.beeline.uz", "", ""))
Serial.println("status=ATTACHED");
else Serial.println("status=ERROR");
delay(1000);
//Read IP address.
gsm.SimpleWriteln("AT+CIFSR");
delay(5000);
//Read until serial buffer is empty.
gsm.WhileSimpleRead();
//TCP Client GET, send a GET request to the server and
//save the reply.
numdata=inet.httpGET("ya.ru", 80, "/", msg, 50);
//Print the results.
Serial.println("\nNumber of data received:");
Serial.println(numdata);
Serial.println("\nData received:");
myFile.println(msg);
Serial.println(msg);
}
myFile.close();
};
void loop()
{
//Read for new byte on serial hardware,
//and write them on NewSoftSerial.
serialhwread();
//Read for new byte on NewSoftSerial.
serialswread();
};
void serialhwread(){
i=0;
if (Serial.available() > 0){
while (Serial.available() > 0) {
inSerial[i]=(Serial.read());
delay(10);
i++;
}
inSerial[i]='\0';
if(!strcmp(inSerial,"/END")){
Serial.println("_");
inSerial[0]=0x1a;
inSerial[1]='\0';
gsm.SimpleWriteln(inSerial);
}
//Send a saved AT command using serial port.
if(!strcmp(inSerial,"TEST")){
Serial.println("SIGNAL QUALITY");
gsm.SimpleWriteln("AT+CSQ");
}
//Read last message saved.
if(!strcmp(inSerial,"MSG")){
Serial.println(msg);
}
else{
Serial.println(inSerial);
gsm.SimpleWriteln(inSerial);
}
inSerial[0]='\0';
}
}
void serialswread(){
gsm.SimpleRead();
}
1. Нормально вставьте код
2. Не вижу как минимум SD.begin
Дальше смотреть не стал из-за криво вставленного кода
что не так? - код когда правильно вставите?
Вот тут почитай и вставь, может помогут http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
#include "SIM900.h" #include <SoftwareSerial.h> #include "inetGSM.h" #include <SPI.h> #include <SD.h> //To change pins for Software Serial, use the two lines in GSM.cpp. //GSM Shield for Arduino //www.open-electronics.org //this code is based on the example of Arduino Labs. //Simple sketch to start a connection as client. InetGSM inet; //CallGSM call; //SMSGSM sms; const uint8_t PIN_CS = 10; File myFile; char msg[50]; int numdata; char inSerial[50]; int i=0; boolean started=false; void setup() { //Serial connection. SD.begin(PIN_CS); Serial.begin(9600); Serial.println("GSM Shield testing."); //Start configuration of shield with baudrate. //For http uses is raccomanded to use 4800 or slower. if (gsm.begin(2400)){ Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){ //GPRS attach, put in order APN, username and password. //If no needed auth let them blank. if (inet.attachGPRS("internet.wind", "", "")) Serial.println("status=ATTACHED"); else Serial.println("status=ERROR"); delay(1000); //Read IP address. gsm.SimpleWriteln("AT+CIFSR"); delay(5000); //Read until serial buffer is empty. gsm.WhileSimpleRead(); //TCP Client GET, send a GET request to the server and //save the reply. numdata=inet.httpGET("ya.ru", 80, "/", msg, 50); //Print the results. Serial.println("\nNumber of data received:"); Serial.println(numdata); Serial.println("\nData received:"); Serial.println(msg); } }; void loop() { //Read for new byte on serial hardware, //and write them on NewSoftSerial. serialhwread(); //Read for new byte on NewSoftSerial. serialswread(); }; void serialhwread(){ i=0; if (Serial.available() > 0){ while (Serial.available() > 0) { inSerial[i]=(Serial.read()); delay(10); i++; } inSerial[i]='\0'; if(!strcmp(inSerial,"/END")){ Serial.println("_"); inSerial[0]=0x1a; inSerial[1]='\0'; gsm.SimpleWriteln(inSerial); } //Send a saved AT command using serial port. if(!strcmp(inSerial,"TEST")){ Serial.println("SIGNAL QUALITY"); gsm.SimpleWriteln("AT+CSQ"); } //Read last message saved. if(!strcmp(inSerial,"MSG")){ Serial.println(msg); myFile = SD.open("fuellog.log", FILE_WRITE); myFile.println(msg); myFile.close(); } else{ Serial.println(inSerial); gsm.SimpleWriteln(inSerial); } inSerial[0]='\0'; } } void serialswread(){ gsm.SimpleRead(); }Извините я тут новичок. Не судите строго за косячки )))
Извините я тут новичок. Не судите строго за косячки )))
Для того чобы вам помогли необходимо опубликовать
1 скетч
2 схему соединений
3 текст ошибок, ну или с чем программа у вас вывааливается?
4 если используются библиотеки не из поставки то ссылки на них, а то библиотеки то разные, какието работают какието нет.
А наугад помогать, перебирать библотеки, собирать схему, тут скорее всего никто не возьмется.
ketch_nov29a.ino:1:20: fatal error: SIM900.h: No such file or directory #include "SIM900.h" ^ compilation terminated. exit status 1Здесь можно прикреплять файлы?
Извините я тут новичок. Не судите строго за косячки )))
Клапы вроде не видать поблизости, кто запретил новичку почитать прикрепленные темы? Признавайтесь.
Файлы прикрепить нельзя, только картинки или ссылки.