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.

#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

sketch_aug07a:11: error: 'long' invalid for 'parameter'
sketch_aug07a:7: error: 'softwareSerial' does not name a type
sketch_aug07a.ino: In function 'void loop()':
sketch_aug07a:52: error: 'serialgps' was not declared in this scope
sketch_aug07a:67: error: 'failed' was not declared in this scope
sketch_aug07a:67: error: 'checksum' was not declared in this scope
sketch_aug07a:71: error: a function-definition is not allowed here before '{' token
sketch_aug07a:84: error: expected `}' at end of input
sketch_aug07a:84: error: expected `}' at end of input

Espero una mano.. Saludos

Hola,
Muchos error unos puden ser devidos a los otros, si indexaras bien el código verias que te sobran muchas{}

sketch_aug07a:11: error: 'long' invalid for 'parameter'

Este es debido a que en void enviar(float lat, float long) intentas mandar un float y long eso no puede ser o float o long y nombre del parametro.

sketch_aug07a:52: error: 'serialgps' was not declared in this scope
sketch_aug07a:67: error: 'failed' was not declared in this scope
sketch_aug07a:67: error: 'checksum' was not declared in this scope

No tienes declaradas la variables en ningun sitio.

sketch_aug07a:71: error: a function-definition is not allowed here before '{' token
sketch_aug07a:84: error: expected }' at end of input sketch_aug07a:84: error: expected }' at end of input

{
  if (ang_x < 50.0) //si inclinacion supera 50°
  delay(30000);     //espera 30 segundos
  serialgps.begin(9600); //inicia sensor gps
  {

Abres dos llaves, no se para que sirven

void enviar(float lat, float long){
    delay(500);
    Serialmodule.println("AT+CMGF=1");
    Serialmodule.write(byte(34));
    serialmodule.print("0985827445");
    serialmodule.write(byte(34));
    serialmodule.println();
    delay(500);
    serialmodule.print("lat/Long");
    serialmodule.print(Lat,5);
    serialmodule.print(" ");
    serialmodule.write(byte(26));
    delay(5000);
}

}

Te sobra la última }