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
LoRa Uzman Seti (E22-900T22D)
Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.
Ürün Sayfasına GitLoRa Başlangıç Seti (SX1278 E32-433T20D)
LoRa teknolojisi ile tanışmak isteyenler için 433 MHz bandında çalışan, SX1278 çipli modül ve anten içeren bir başlangıç setidir.
Ürün Sayfasına Git2 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);
}
}