Acelerometetro + gsm+gps


buenas, estoy trabajando en un proyecto en el cual. necesito tener leer un estado alto en un boton y una inclicacion mas de 50°. en ese caso se deberá enviar un mensaje de texto con las coordenadas en que se encuentra el dispositivo.
hasta ahora este es mi codigo.

code: [select]
#include <softwareserial.h>                          //incluimos softwareserial
#include <tinygps.h>                                 //incluimos tinygps
#include "i2cdev.h"                         
#include "mpu6050.h"
#include "wire.h"

softwareserial serial(4,3), serialsms(tx,rx);
const int buttonpin = 5;     //variables
int buttonstate = 0;

mpu6050 sensor;              // declaro el objeto mpu6050
int ax, ay, az;
int gx, gy, gz;
long tiempo_prev;
float dt;
float ang_x, ang_y;
float ang_x_prev, ang_y_prev;

tinygps gps;                                         // declaro el objeto gps
int year;
byte month, day, hour, minute, second, hundredths;
unsigned long chars;
unsigned short sentences, failed_checksum;           //declaro la variables para la obtención de datos

void setup()
{
  pinmode(buttonpin, input);  //boton como entrada
  wire.begin();              //iniciando i2c 
  sensor.initialize();  //iniciando el sensor acelerometro
 
}
void loop() {
  buttonstate = digitalread(buttonpin);
if (buttonstate == high)
sensor.getacceleration(&ax, &ay, &az); // leer las aceleraciones y velocidades angulares
  sensor.getrotation(&gx, &gy, &gz);
 
  dt = (millis()-tiempo_prev)/1000.0;
  tiempo_prev=millis();
 
  float accel_ang_x=atan(ay/sqrt(pow(ax,2) + pow(az,2)))*(180.0/3.14);  //calcular los ángulos con acelerometro
  float accel_ang_y=atan(-ax/sqrt(pow(ay,2) + pow(az,2)))*(180.0/3.14);
   
  ang_x = 0.98*(ang_x_prev+(gx/131)*dt) + 0.02*accel_ang_x;  //calcular angulo de rotación con giroscopio y filtro complemento
  ang_y = 0.98*(ang_y_prev+(gy/131)*dt) + 0.02*accel_ang_y;
 
  ang_x_prev=ang_x;
  ang_y_prev=ang_y;
{
  if (ang_x < 50.0) //si inclinacion supera 50°
  delay(30000);     //espera 30 segundos
  serialgps.begin(9600); //inicia sensor gps
  {
  while(serialgps.available()) //chequea si modulo esta habilitado
{

  int c=serial.read();    //lee modulo gps
  if(gps.encode(c))        //decodifica
    {
    float latitude, longitude;
    gps.f_get_position(&latitude, &longitude);
    serial.print("lat/long:  ");
    serial.print(latitude,5);
    serial.print(" , ");
    serial.println(longitude,5);
    enviar(latitude,longitude);
    gps.stats(&chars, &sentences,&failed-checksum);
    }
  }
}
void enviar(float lat, float long){
    delay(500);
    serialmodule.println("at+cmgf=1");
    serialmodule.write(byte(34));
    serialmodule.print("00000000");
    serialmodule.write(byte(34));
    serialmodule.println();
    delay(500);
    serialmodule.print("lat/long");
    serialmodule.print(lat,5);
    serialmodule.print(" ");
    serialmodule.write(byte(26));
    delay(5000);
}

}

estos son los errores que se me presentan
code: [select]
sketch_aug07a:11: error: 'long' invalid 'parameter'
sketch_aug07a:7: error: 'softwareserial' not name type
sketch_aug07a.ino: in function 'void loop()':
sketch_aug07a:52: error: 'serialgps' not declared in scope
sketch_aug07a:67: error: 'failed' not declared in scope
sketch_aug07a:67: error: 'checksum' not declared in scope
sketch_aug07a:71: error: function-definition not allowed here before '{' token
sketch_aug07a:84: error: expected `}' @ end of input
sketch_aug07a:84: error: expected `}' @ end of input


espero una mano.. saludos


Arduino Forum > International > Español (Moderators: surbyte, Hector_A) > Acelerometetro + gsm+gps


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts