lora güvenlik sistemi

Emre Konca ile GSM ve Lora Projesi

Emre Konca ile GSM ve Lora Projesi

Emre hocamız kendi ürettiği GSM shieldler ile bizim Lora modüllerini bu projede bir araya getirerek muhteşem bir proje gerçekleştirdi. Emre Konca ile GSM ve Lora Projesi ile ilgili yazımızın detayları birazdan.

Emre Hocanın detaylı videosu:

1 Gerekli Malzemeler

2 Kodlar

GSM Shield

#include "LoRa_E22.h"
LoRa_E22 E22(&Serial1, 2, 7, 6);

#define M0 7
#define M1 6

struct Signal {
  char type[15];
  int role;
} data;

#include <KapadokyaGSM.h>
KapadokyaGSM Kapadokya;
String smsMetni, smsNumarasi;
#define gonderilecekTelNumarasi  "+905551112233" // Numarayı değiştirmeyi unutmayın :) 


void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);

  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);

  Serial.begin(9600);
  E22.begin();
  delay(500);

  Kapadokya.basla();
  delay(4000);
  Kapadokya.tumSmsSil();
  delay(4000);
  Serial.println("Sistem Basladi");
  Kapadokya.smsGonder(gonderilecekTelNumarasi, "Sistem acildi.");
}



void loop() {
  while (E22.available()  > 1) {

    // Gelen mesaj okunuyor
    ResponseStructContainer rsc = E22.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Gelen Messaj: ");
    Serial.println(data.type);

    if (strcmp(data.type, "Fixaj.com") == 0) {
      Serial.println("şifre doğru");
      if (data.role == 11) {
        Serial.println("gaz kacagi basladi");
        Kapadokya.smsGonder(gonderilecekTelNumarasi, "gaz kacagi basladi");
        delay(1000);

      } else if (data.role == 10) {
        Serial.println("gaz kacagi durdu");
        Kapadokya.smsGonder(gonderilecekTelNumarasi, "gaz kacagi durdu");
        delay(1000);
      }
      else if (data.role == 21) {
        Serial.println("hareket algilandi");
        Kapadokya.smsGonder(gonderilecekTelNumarasi, "hareket algilandi");
        delay(1000);
      }
      else if (data.role == 20) {
        Serial.println("hareket durdu");
        Kapadokya.smsGonder(gonderilecekTelNumarasi, "hareket durdu");
        delay(1000);
      }
      else  {
        Serial.println("diger");
        delay(1000);
      }
    }

    rsc.close();
  }
}

GAZ

#include "LoRa_E22.h"
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);
LoRa_E22 E22(&mySerial);

struct Signal {
  char type[15] = "Fixaj.com";
  int sensor;
} data;

#define M0 7
#define M1 6

volatile bool roleDurumu = false;
volatile bool butonDurumu = false;

bool gaz, eGazDrm;

void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);

  Serial.begin(9600);
  E22.begin();
  delay(500);
}

void loop() {
  // Serial.println(analogRead(A0));
  if (analogRead(A0) > 80) {
    gaz = true;
  }
  else {
    gaz = false;
  }

  if (eGazDrm != gaz) {
    if (gaz) {
      eGazDrm = gaz;
      data.sensor = 11;
      ResponseStatus rs = E22.sendFixedMessage(0, 1, 18, &data, sizeof(Signal));
      Serial.println(rs.getResponseDescription());
    } else {
      eGazDrm = gaz;
      data.sensor = 10;
      ResponseStatus rs = E22.sendFixedMessage(0, 1, 18, &data, sizeof(Signal));
      Serial.println(rs.getResponseDescription());
    }

    Serial.print("data.sensor: ");
    Serial.println(data.sensor);
  }
}

HAREKET SENSORU

#include "LoRa_E22.h"
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);
LoRa_E22 E22(&mySerial);

struct Signal {
  char type[15] = "Fixaj.com";
  int sensor;
} data;

#define M0 7
#define M1 6

volatile bool roleDurumu = false;
volatile bool butonDurumu = false;

bool hrkt, eHrktDrm;

void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);

  Serial.begin(9600);
  E22.begin();
  delay(500);
}

void loop() {
  // Serial.println(analogRead(A0));
  if (digitalRead(A0)) {
    hrkt = true;
  }
  else {
    hrkt = false;
  }

  if (eHrktDrm != hrkt) {
    if (hrkt) {
      eHrktDrm = hrkt;
      data.sensor = 21;
      ResponseStatus rs = E22.sendFixedMessage(0, 1, 18, &data, sizeof(Signal));
      Serial.println(rs.getResponseDescription());
    } else {
      eHrktDrm = hrkt;
      data.sensor = 20;
      ResponseStatus rs = E22.sendFixedMessage(0, 1, 18, &data, sizeof(Signal));
      Serial.println(rs.getResponseDescription());
    }

    Serial.print("data.sensor: ");
    Serial.println(data.sensor);
  }
}

Uygulama Videosu