3in1 PCB ile E32 Lora Kullanımı

3in1 PCB NANO ile E32 Lora Modülü Kullanımı

Bu yazımızda yeni başlayan arkadaşlarda sıkca gelen 3in1 PCB yi nasıl kullanırız, haberleştiremiyoruz soruları için hazır kodları ekledim.

Bildiğiniz üzeri 3in1 PCB ler USB Stick gibi kullanılıp lora modüllerine parametre ayarları verebildiği için ve Uzman arkadaşlarında uyku modu ve diğer modlerı kullanmak istemesinden ötürü M0 ve M1 pinleri direk GND ye bağlamadım PCB üstünde. M0 ve M1 pinlerini 3in1 PCB NANO üstünde 6 ve 7 nolu pinlere bağladım. Siz normal haberleştirme yaparken bu pinleri LOW moda yani GND ye çekmeniz gerekmektedir.

Bebek Odası Uygulaması Kodlarının 3in1 PCB nano ya uyarlanmış hali.

Merkeze takılacak Loranın PArametre Ayarları

MERKEZ NOKTA KODLARI

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

SoftwareSerial mySerial(3, 4); //PCB versiyon 4.3 den sonra bu şekilde olmalı

/*
   Pinler     Arduino Nano    Lora E32 433T20d
                  11                3
                  10                4
*/

LoRa_E32 e32ttl(&mySerial);
#define M0 7
#define M1 6

struct Signal {
  char type[15] = "Fixaj.com";
  byte temp[4];
} data;


void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
  Serial.begin(9600);
  e32ttl.begin();
  delay(500);
}

void loop() {

  ResponseStatus rs = e32ttl.sendFixedMessage(0, 44, 23, &data, sizeof(Signal));
  Serial.println(rs.getResponseDescription());

  delay(2000);

  while (e32ttl.available()  > 1) {
    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Yer: ");
    Serial.println(data.type);
    Serial.print("Ortam Sıcaklığı: ");
    Serial.println(*(float*)(data.temp));
    rsc.close();
  }
}
Sensor noktasına takılacak loranın parametre ayarları

SENSOR NOKTASININ KODLARI

#include "LoRa_E32.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); //PCB versiyon 4.3 den sonra bu şekilde olmalı
LoRa_E32 e32ttl(&mySerial);

#define M0 7
#define M1 6

struct Signal {
  char type[15];
  byte temp[4];
} data;

void setup() {
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
  Serial.begin(9600);
  e32ttl.begin();
  delay(500);
}

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

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

    //Gönderilecek paket veri hazırlanıyor
    struct Signal  {
      char type[15] = "Bebek Odası";
      byte temp[4];
    } data2;

    *(float*)(data2.temp) = 19.2;


    ResponseStatus rs = e32ttl.sendFixedMessage(0, 63, 23, &data2, sizeof(Signal));
    Serial.println(rs.getResponseDescription());

  }

}