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-
| 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. |
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.csenaryosu için opsiyonel RS-485 transceiver'ı USART1'e bağlanır.
- STMicroelectronics sitesinden STM32CubeIDE'nin güncel sürümünü indirin ve yükleyin.
- CubeIDE içerisinde proje oluştururken kullandığınız mikrodenetleyici veya geliştirme kartını seçin.
Project Manager > Advanced Settingsbölümünden "Copy only the necessary library files" seçeneğini işaretleyerek proje boyutunu minimal tutun.- Depodaki
.cdosyalarınıCore/Srcdizinine kopyalayın ve ilgili başlık dosyalarını projeye ekleyin. Project > Build Projectkomutuyla projeyi derleyerek ortamın doğru yapılandığını doğrulayın.
- Sensörü sol kaydırılmış
0x28adresi 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_sensoryardımcı fonksiyonunu sağlar.【F:ABPsensor.c†L59-L130】
- 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 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】
- 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】
- STM32CubeIDE'de hedef kartınız için CubeMX ile temel bir proje oluşturun ve bu
.cdosyalarını projeye dahil edin. main.hiçinde kullanılan tüm HAL tanımlarının ve pin makrolarının mevcut olduğundan emin olun.- Donanımı, dosyalardaki
MX_I2C1_Init,MX_USARTx_UART_Initve GPIO konfigürasyonlarıyla uyumlu olacak şekilde bağlayın. - Projeyi derleyip karta yükleyin; gerekli örneklerde UART çıktısını seri terminal üzerinden gözlemleyin.
İpucu: CubeIDE proje ayarlarındaki
Optimizationseviyesini varsayılan-Ogdeğerinde bırakmak, hata ayıklama oturumlarında değişkenleri takip etmeyi kolaylaştırır.
- 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_registergibi yardımcı fonksiyonları uygulama mantığınız veya RTOS görevlerinizle entegre edin.