3in1 ESP PCB

Yeni tasarladığımız 3in1 ESP PCB nin nasıl kullanılacağını ve ne gibi özellikleri barındırdığını bu sayfamızda sizlere anlatmaya çalışacağım.

Bildiğiniz üzeri artık Arduino NANO ve UNO ailesi bazı işleri yapmamız için yeterli gelmiyor. Arduino larda talep fazlalığı olduğu için ürünün dolar bazlı fiyatı her geçen gün artıyor. Yeni ve çok daha güçlü ESP32 modülleri bu noktada çok hızlı yükselen bir ürün olarak karşımıza çıkıyor. Hem yaygın kullanımı olması, hem fiyatının arduino lara göre çok çok ucuz olması ve geniş hazır kod ve kütüphanesinin olması ESP32 üzerine yeni bir PCB tasarlama konusunda bana ilham verdi.

3in1 ESP PCB lerimiz ile kolayca Lora modüllerini kullanabilecek hatta ETHERNET ve FFC çıkışları ile Güçlü bir merkez nokta server kurmanız sağlanacaktır.

3in1 ESP PCB
Dünyada en çok kullanılan 30 pin li ESP32 için PCB lerimiz tasarlanmıştır.

3in1 ESP PCB nin Özellikleri

3in1 ESP pcb miz normalde soketleri lehimli olarak gelmektedir. Siz kolayca ESP32 (30 pin) ve E22 veya E32 lora modüllerinizi takıp kablosuz haberleşmeye başlayabilirsiniz. Bu pcb nin temel görevi Lora ile kablosuz haberleşmektir. Lora ile haberleşirken üzerinde uzunca çalışıp ESP32 nin Serial1 portu üzerinden haberleşmeyi sağladım. Bu sayede sizler ESP nin sunmuş olduğu diğer 2 UART serial haberleşme pinlerini özgürce kullanabilirsiniz. Özellikle Serial 1 portunu Lora modülüne aktarmak benim çokça vaktimi aldı. Uzun süreli testler sonunda şu anda başarılı bir şekilde çalışmaktadır. Kolay olsun diye RX2 ve TX2 pinlerini kullanabilirdim ama böyle yapsaydım sizler diğer UART pinlerinden mahrum kalacaktınız. Serial2 size bıraktım buraya artık Dokunmatik ekran vs modüllerinizi rahatça takabilirsiniz.

Diğer özelliklerine gelirsek:

  • ETHERNET PORTU
  • RS232 desteği
  • Adaptör ile besleme (max 9v) ideali 5v
  • I2C için Klemens çıkışları
  • Buzzer ve Ledler
  • FFC HMI ekranlar için Soket
  • İnterrupt için 4 pinli çıkış
ESP32 nin pinlerinin PCB de kullanıldıkları yerler

3in1 ESP PCB Kullanım Videosu

3in1 ESP PCB yi USB Stick Olarak Kullanma

Lora modüllerini kullanabilmeniz için Adresleme ve kanal ayarlarının yapılması gerekmektedir. Bunu yapabilmek için hazır olarak getirttiğim USB stick ürünümüz bulunmaktadır. Ancak dolar fiyatlarındaki artış ve korkunç Gümrük vergileri yüzünden artık USB stick dışardan getirmek çok pahalıya gelmektedir. Bu sorunu çözmek adına mevcut pcb lerimiz üzerinde biraz değişiklik yaparak 3in1 adında yeni bir PCB tasarladım ardık sizlerde PCB üstünden mevcut kullandığınız ESP32 ile Lora modüllerinizin parametre ayarlarını değiştirebilirsiniz. Bunun için ekstra para harcamanıza da gerek kalmayacaktır. Yapmanız gereken şu kodu ESP32 modülünüze yüklemek. Ardından hangi modülü kullanıyorsanız ona göre gerekli kod satırını aktif edin ve indirme sayfamızda size uygun RF setting programını indirip PC üstünden Lora modülünün parametre ayarlarını değiştirebilirsiniz.

USB stick Kodu

#include <HardwareSerial.h>
#define M0 32 //3in1 PCB mizde pin 7
#define M1 33 //3in1 PCB mizde pin 6
#define RX 27 //  Lora nın 3. pini RX in ESP 32 de hangi pine bağlı olduğu
#define TX 35  // Lora nın 4. pini TX in ESP 32 de hangi pine bağlı olduğu
 
HardwareSerial fixajSerial(1);

void setup() {
  Serial.begin(9600);
  fixajSerial.begin(9600,SERIAL_8N1,TX,RX);

  Serial.print("başlıyor");

  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
 digitalWrite(M0, LOW);        // E22 Modülleri için Aktif edin
  //digitalWrite(M0, HIGH);       // E32 Modülleri için Aktif edin
  digitalWrite(M1, HIGH);
}

void loop() {
  if (Serial.available()) {
    fixajSerial.write(Serial.read());
  }

  if (fixajSerial.available()) {
    Serial.write(fixajSerial.read());
  }
}
RF setting programının arayüzü

Örnek Alıcı- Verici Uygulaması

Burada 2 noktamız olacak ilk transreceiver kısmının adresi 1 kanalı 18, ikinici transreceiver in adresi 2 kanalı yine 18. Bunu neden söylüyorum bazen arkadaşlar karıştırıyor, bir mesaj gönderirken “sendFixedMessage(0, 2, 18, &data, sizeof(Signal));” bu kısma karşı tarafın adres ve kanal bilgilerini yazmamız gerekiyor. Bu örnekte İlk transreceiver kısmına yani takılı Loranın adresi ve kanalı 1 ve 18 olan kısımdan karşı tarafa veri gönderirken kod aynen şu şekilde olmalıdır. sendFixedMessage(0, 2, 18, &data, sizeof(Signal));. bazen arkadaşlar karıştırıyor. Gönderici kısmına takılı olan loranın adresini yazıyor öyle yapmayın.

ilk Transreceiver (takılı Loranın adresi ve kanalı 1 ve 18)

#include "LoRa_E22.h"
#include <HardwareSerial.h>
#define M0 32 //3in1 PCB mizde pin 7
#define M1 33 //3in1 PCB mizde pin 6
#define RX 27 //3in1 PCB mizde pin RX
#define TX 35  //3in1 PCB mizde pin TX

HardwareSerial fixajSerial(1);                            //Serial biri seçiyoruz.
LoRa_E22 e22(TX, RX, &fixajSerial, UART_BPS_RATE_9600);

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

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

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

  char* source = "ESP32 başlat";
  strcpy(data.type, source);

  ResponseStatus rs = e22.sendFixedMessage(0, 2, 18, &data, sizeof(Signal));
  Serial.println(rs.getResponseDescription());

}

void loop() {
  while (e22.available()  > 1) {
    // Gelen mesaj okunuyor
    ResponseStructContainer rsc = e22.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Yer: ");
    Serial.println(data.type);
    rsc.close();

    char* source = "ESP32 Selam";
    strcpy(data.type, source);

    ResponseStatus rs = e22.sendFixedMessage(0, 2, 18, &data, sizeof(Signal));
    Serial.println(rs.getResponseDescription());
  }
}

ikinci transreceiver noktası (takılı Loranın adresi ve kanalı 2 ve 18)

#include "LoRa_E22.h"
#include <HardwareSerial.h>
#define M0 32 //3in1 PCB mizde pin 7
#define M1 33 //3in1 PCB mizde pin 6
#define RX 27 //3in1 PCB mizde pin RX
#define TX 35  //3in1 PCB mizde pin TX

HardwareSerial fixajSerial(1);                            //Serial biri seçiyoruz.
LoRa_E22 e22(TX, RX, &fixajSerial, UART_BPS_RATE_9600);

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

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

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

}

void loop() {
  while (e22.available()  > 1) {
    // Gelen mesaj okunuyor
    ResponseStructContainer rsc = e22.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Yer: ");
    Serial.println(data.type);
    rsc.close();

    char* source = "ESP32 Aleykum Selam Fixaj.com";
    strcpy(data.type, source);

    ResponseStatus rs = e22.sendFixedMessage(0, 1, 18, &data, sizeof(Signal));
    Serial.println(rs.getResponseDescription());
  }
}

Bu 2 kod arasında tek fark birinci nokta setup içinde mesajlaşmayı başlatıyor ve bundan sonra karşılıklı olarak 2 lora modülü selamlaşmaya başlıyorlar

Sonuç

Sonuç

Sonuç olarak 3in1 ESP PCB lerimizi kullanmak gördüğünüz üzeri çok kolay. ESP32 nin çift çekirdekli ve güçlü işlemcisini bir an evvel projelerinizde kullanmanız dileği ile hoçşa kalın.

3in1 ESP PCB

v0.1

N11 mağazamızdan uygun fiyatlı ve hızlı teslimat seçeneği ile 3in1 ESP PCB lerimizi HEMEN Satın Alın