Teknofest 20′ – Roket ana bilgisayarı (Bmp280(Basınç sensörü) – gy neo6mv2(Gps sensörü) – Xbee pro(Veri alış-veriş sensörü) ) kodları

Haziran 29, 2020 0 Yazar: alikperislam

include

include

include

include “i2c.h”

include “i2c_BMP280.h”

BMP280 bmp280;

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);
SoftwareSerial xbee(0, 1);
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
xbee.begin(9600);
xbee.println(“ÇALIŞTI”);
Serial.println(F(“”));
Serial.println(F(” Roket Ana Bilgisayar Acildi”));
Serial.println(F(“———————————————————————–“));
Serial.println(F(” GPS Kontrol Ediliyor”));
Serial.println(F(” GPS Sensoru Aktif”));
Serial.println(F(“———————————————————————–“)); // Seri haberleşme Kodları

xbee.println(F(“”));
xbee.println(F(” Roket Ana Bilgisayar Acildi”));
xbee.println(F(“———————————————————————–“));
xbee.println(F(” GPS Kontrol Ediliyor”));
xbee.println(F(” GPS Sensoru Aktif”));
xbee.println(F(“———————————————————————–“)); // XBEE haberleşme Kodları

  Serial.print("  BMP280 Konrol Ediliyor: ");
if (bmp280.initialize()) Serial.println("  BMP280 aktif");
else
{
    Serial.println("  Sensor Bulunamadi");
      Serial.println(F("-----------------------------------------------------------------------"));

} // Seri haberleşme Kodları

   xbee.print("  BMP280 Konrol Ediliyor: ");
if (bmp280.initialize()) xbee.println("  BMP280 aktif");
else
{
    xbee.println("  Sensor Bulunamadi");
      xbee.println(F("-----------------------------------------------------------------------"));

} // XBEE haberleşme Kodları

// onetime-measure:
bmp280.setEnabled(0);
bmp280.triggerMeasurement();

}

void loop()
{

bmp280.awaitMeasurement();

float temperature;
bmp280.getTemperature(temperature);

float pascal;
bmp280.getPressure(pascal);

static float meters, metersold;
bmp280.getAltitude(meters);
metersold = (metersold * 10 + meters)/11;

bmp280.triggerMeasurement();


Serial.print("  ||  Yükseklik PT1 : ");
Serial.print(metersold);
Serial.print("  ||  Yükseklik 2 : ");
Serial.print(meters);
Serial.print("*");
delay(150); // Seri haberleşme Kodları


xbee.print("  ||  Yükseklik PT1 : ");
xbee.print(metersold);
xbee.print("  ||  Yükseklik 2 : ");
xbee.print(meters);

delay(150);// XBEE haberleşme Kodları


if(metersold>meters){
  if(metersold-meters>=0.5){
    // metersold meter'ı geçtiği an inişe geçmeye başlamış demektir.

  Serial.print("  ||  Roket İnişe Geçti...");

  Serial.print("*");
  Serial.println();
  digitalWrite(8,HIGH); // roleyi çalıştır ve drug paraşütü aktif et.

    Serial.println("  ||  Drug paraşütü aktif edildi...");



  if(meters>999 && meters<1001){ // inişe geçtiği sırada irtifa verisi 500 ve 600 metre arasında iken.
    digitalWrite(10,HIGH); // ana paraşütü aç ve aktif et.
    digitalWrite(9,LOW);

    Serial.print("  ||  ");
    Serial.print(meters);
     Serial.println("  metrede iken ana paraşüt aktif edildi...");




  }
  }  }
else{Serial.println("  ||  Roket Yükselişte...");
Serial.print("*");
  }  // seri haberlesme Kodları

if(metersold>meters){
xbee.println(” || Roket İnişe Geçti…”);
xbee.println();
}
else{xbee.println(” || Roket Yükselişte…”);
} // XBEE haberleşme Kodları

while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();

// seri haberlesme Kodları

while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();

// XBEE haberleşme Kodları
}

void displayInfo()
{
Serial.print(” || “);
if (gps.location.isValid())
{
Serial.print(gps.location.lat(), 6);
Serial.print(F(“,”));
Serial.print(gps.location.lng(), 6);
}
else
{
Serial.print(F(” Sinyal Bekleniyor”));
} // seri haberleşme Kodları

xbee.print(” || “);
xbee.print(F(” Konum: “));
if (gps.location.isValid())
{
xbee.print(gps.location.lat(), 6);
xbee.print(F(“,”));
xbee.print(gps.location.lng(), 6);
}
else
{
xbee.print(F(” Sinyal Bekleniyor”));
}

// XBEE haberleşme Kodları
}