Skip to content

TalhaYaman98/STM32-LORA-PCA-ABP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM32 LoRa ve Sensör Örnekleri

Bu depo, STM32CubeIDE ile oluşturulmuş ve saha telemetrisi projelerinde sık karşılaşılan çevre birimlerini gösteren dört örnek dosyayı içerir. Örnekler; Honeywell ABP basınç sensörü, PCA9555 I/O genişletici ve sabit adres modunda çalışan Ebyte LoRa modülleri gibi bileşenlerin STM32 HAL kütüphanesi üzerinden nasıl sürüleceğini adım adım gösterir. Her bir dosya bağımsız olarak kullanılabilir, ancak donanım paylaşımları sayesinde aynı projede birden fazla örneği entegre etmek de mümkündür.

-Stm32l562cet6- -PCA9535- -EBYTE E32 900T30S- -ABPDANT010BG2A3-

Depo yapısı

Dosya Açıklama
ABPsensor.c Honeywell ABP dijital basınç sensörünü I²C ile okur, ham sayımları PSI ve sıcaklık değerlerine çevirir ve sürekli ölçüm döngüsü kurar.
lora_centerDevice.c RS-485 hattından gelen çerçeveleri çözüp içeriğe göre farklı LoRa hedeflerine yönlendirir; çift UART kesmesi ve paket doğrulama mantığı içerir.
lora_receiveDevice.c LoRa modülünü sabit modda yapılandırır, gelen paketleri tamponlar ve belirli bir bayrak tetiklendiğinde aynı veriyi tekrar yollar.
pca_loraTrasnmit.c PCA9555 I/O genişleticiden dijital girişleri okur ve bu verileri LoRa üzerinden uzak cihaza iletir.

Donanım gereksinimleri

Projeler, en az bir I²C ve iki UART birimi bulunan STM32F1/F4 tabanlı bir kart (Nucleo veya özel tasarım) varsayar. Ek olarak:

  • Honeywell ABP serisi sensör I²C1 hattına bağlı olmalıdır.
  • PCA9555 veya uyumlu I/O genişletici aynı I²C hattını kullanır.
  • Ebyte E32/E22 tipi LoRa modülü UART ile haberleşir, M0/M1 pinleri GPIO ile sürülür.
  • lora_centerDevice.c senaryosu için opsiyonel RS-485 transceiver'ı USART1'e bağlanır.

Geliştirme ortamı kurulumu

  1. STMicroelectronics sitesinden STM32CubeIDE'nin güncel sürümünü indirin ve yükleyin.
  2. CubeIDE içerisinde proje oluştururken kullandığınız mikrodenetleyici veya geliştirme kartını seçin.
  3. Project Manager > Advanced Settings bölümünden "Copy only the necessary library files" seçeneğini işaretleyerek proje boyutunu minimal tutun.
  4. Depodaki .c dosyalarını Core/Src dizinine kopyalayın ve ilgili başlık dosyalarını projeye ekleyin.
  5. Project > Build Project komutuyla projeyi derleyerek ortamın doğru yapılandığını doğrulayın.

Örneklerin öne çıkan noktaları

ABPsensor.c

  • Sensörü sol kaydırılmış 0x28 adresi ile okur, dört baytlık çerçeveleri çözer.【F:ABPsensor.c†L48-L66】
  • Ham sayımları veri sayfasındaki formüllerle PSI ve °C değerlerine dönüştürür.【F:ABPsensor.c†L67-L87】
  • Ana döngüde kullanılabilecek read_sensor yardımcı fonksiyonunu sağlar.【F:ABPsensor.c†L59-L130】

lora_centerDevice.c

  • USART1'i RS-485, USART2'yi LoRa için kesme tabanlı olarak yapılandırır.【F:lora_centerDevice.c†L36-L150】
  • Gelen paketleri doğrular, hedef adreslere göre yeniden paketleyip LoRa'ya gönderir.【F:lora_centerDevice.c†L152-L221】

lora_receiveDevice.c

  • LoRa modülünü sabit adres modunda başlatır ve 10 baytlık verileri kesme ile alır.【F:lora_receiveDevice.c†L34-L102】
  • Tam çerçeve alındığında hedef adres byte'larını ekleyip tekrar yayınlar.【F:lora_receiveDevice.c†L102-L144】

pca_loraTrasnmit.c

  • PCA9555 için yapılandırma ve okuma yardımcıları sunar.【F:pca_loraTrasnmit.c†L38-L96】
  • Genişleticiden okunan verileri LoRa hedef adresiyle birleştirip iletir.【F:pca_loraTrasnmit.c†L98-L143】

Başlangıç adımları

  1. STM32CubeIDE'de hedef kartınız için CubeMX ile temel bir proje oluşturun ve bu .c dosyalarını projeye dahil edin.
  2. main.h içinde kullanılan tüm HAL tanımlarının ve pin makrolarının mevcut olduğundan emin olun.
  3. Donanımı, dosyalardaki MX_I2C1_Init, MX_USARTx_UART_Init ve GPIO konfigürasyonlarıyla uyumlu olacak şekilde bağlayın.
  4. Projeyi derleyip karta yükleyin; gerekli örneklerde UART çıktısını seri terminal üzerinden gözlemleyin.

İpucu: CubeIDE proje ayarlarındaki Optimization seviyesini varsayılan -Og değerinde bırakmak, hata ayıklama oturumlarında değişkenleri takip etmeyi kolaylaştırır.

Özelleştirme önerileri

  • LoRa hedef dizilerini (lora_target, lora_target2) ağ topolojinize göre güncelleyin.【F:lora_centerDevice.c†L62-L93】
  • Çevrim sürelerini ve tampon boyutlarını saha koşullarınıza göre düzenleyin.
  • lora_send, pca_read_register gibi yardımcı fonksiyonları uygulama mantığınız veya RTOS görevlerinizle entegre edin.

About

Bu proje, saha telemetrisi projelerinde sık karşılaşılan çevre birimlerini gösteren dört örnek dosyayı içerir. Örnekler; Honeywell ABP basınç sensörü, PCA9535 I/O genişletici ve sabit adres modunda çalışan Ebyte LoRa modülleri gibi bileşenlerin STM32 HAL kütüphanesi üzerinden nasıl sürüleceğini adım adım gösterir.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages