İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Beton, metal, ahşap yapıları bükülmeler ve açılar için analiz edin ve orijinal konumundan sapmışlarsa uyarılar.
Adım 1: Giriş
İnşaat mühendisliği alanının gelişmesiyle birlikte her yerde birçok yapı tespit edebiliyoruz. Metal yapılar, Beton kirişler, Çok platformlu binalar bunlardan bazılarıdır. Ayrıca, çoğumuz günün çoğu saatinde bir binada veya evde kalmaya alışkınız. Ancak binanın kalacak kadar güvenli olduğundan nasıl emin olabiliriz? Binanızda küçük bir çatlak veya aşırı eğimli kiriş varsa ne olur? Yüzlerce hayatı riske atabilir.
Depremler, Toprak sertliği, Tornadolar ve daha pek çok şey, iç çatlaklar ve yapıların veya kirişlerin nötr konumdan sapması için faktörler olabilir. Çoğu zaman çevredeki yapıların durumundan haberimiz olmuyor. Belki her gün girdiğimiz yerde beton kirişler çatlamıştır ve her an çökebilir. Ama bilmeden serbestçe içeri giriyoruz. Buna çözüm olarak, ulaşamadığımız yapıların beton, ahşap, metal kirişlerini izlemek için iyi bir yönteme ihtiyacımız var.
2. Adım: Çözüm
“Structure Analyzer” beton kiriş, metal yapı, döşeme vb. üzerine monte edilebilen portatif bir cihazdır. Bu cihaz monte edildiği yerde açıyı ölçer ve virajları analiz eder ve Bluetooth üzerinden mobil uygulamaya veri gönderir. Bu cihaz, x, y, z düzlemlerinde açıyı ölçmek için bir ivmeölçer/Jiroskop ve virajları izlemek için esnek sensör kullanır. Tüm ham veriler işlenir ve bilgiler mobil uygulamaya gönderilir.
Adım 3: Devre
Aşağıdaki bileşenleri toplayın.
- Arduino 101 Kurulu
- 2 X Esnek sensör
- 2 X 10k Dirençler
Bileşen sayısını azaltmak için burada bir ivmeölçer ve bir BLE modülü içerdiğinden Arduino 101 kartı kullanılmıştır. Esnek sensörler, bükülme sırasında direncini değiştirdiği için bükülme miktarını ölçmek için kullanılır. Devre çok küçüktür, çünkü yalnızca 2 direnç ve 2 esnek sensörün bağlanması gerekir. Aşağıdaki şema, bir esnek sensörün Arduino kartına nasıl bağlanacağını gösterir.
Direncin bir pini Arduino kartının A0 pinine bağlanır. İkinci esnek sensörü bağlamak için aynı prosedürü izleyin. Direnci bağlamak için A1 pinini kullanın.
Zil sesini doğrudan D3 pinine ve Gnd pinine bağlayın.
Adım 4: Cihazı Bitirmek
Devre yapıldıktan sonra bir muhafaza içine sabitlenmelidir. Yukarıdaki 3D modele göre, muhafazanın karşı tarafına 2 esnek sensör yerleştirilmelidir. Kartı programlamak ve güç sağlamak için USB bağlantı noktası için yer açın. Bu cihazın uzun süre kullanılması gerektiğinden, güç sağlamak için en iyi yöntem sabit bir güç paketi kullanmaktır.
Adım 5: Mobil Uygulama
Blynk'i Android Play Store'dan indirin ve yükleyin. Arduino 101 için yeni bir proje başlatın. İletişim yöntemini BLE olarak seçin. Arayüze 1 terminal, 2 düğme ve BLE ekleyin. Aşağıdaki resimler arayüzü nasıl yapacağınızı gösterir.
Adım 6: Blynk Kod Dosyaları
Blynk'te arayüzü yaptıktan sonra bir yetkilendirme kodu alacaksınız. Bu kodu aşağıdaki yere girin.
#include #include char auth = "**************"; //Blynk Yetkilendirme Kodu
WidgetTerminal terminali(V2);
BLEÇevre birimi bleÇevre birimi;
Kalibrasyon işleminde, mevcut sensör okumaları EEPROM'a kaydedilir.
değerler(); EEPROM.write(0, flx1);
EEPROM.write(1, flx2);
EEPROM.write(2, x);
EEPROM.write(3, y);
EEPROM.write(4, z);
terminal.print("Kalibrasyon Başarılı");
Kalibrasyondan sonra cihaz, sapmayı eşik değerlerle karşılaştırır ve değeri aşmaları durumunda sesli uyarı verir.
değerler(); if(abs(flex1-m_flx1)>10 veya abs(flex2-m_flx2)>10){
terminal.println("Over Bend");
ton(sesli uyarı, 1000);
}
if(abs(x-m_x)>15 veya abs(y-m_y)>15 veya abs(z-m_z)>15){
terminal.println("Aşırı Eğimli");
ton(sesli uyarı, 1000);
}
7. Adım: İşlevsellik
Cihazı, izlenmesi gereken yapıya yapıştırın. 2 esnek sensörü de yapıştırın. USB kablosunu kullanarak karta güç sağlayın.
Blynk arayüzünü açın. Bluetooth simgesine dokunarak cihaza bağlanın. Kalibrasyon düğmesine basın. Kalibre ettikten sonra terminal "Başarıyla Kalibre Edildi" şeklinde bir mesaj gösterecektir. Cihazı sıfırlayın. Artık yapıyı izleyecek ve deforme olursa sizi buzzer aracılığıyla bilgilendirecektir. Durum düğmesine basarak istediğiniz zaman açı ve büküm değerlerini kontrol edebilirsiniz. Bu küçük bir cihaz gibi görünebilir. Ama kullanımları paha biçilemez. Bazen yoğun programlarımız arasında evimizin, ofisimizin vb. durumunu kontrol etmeyi unutuyoruz. Ama ufak bir sorun olursa yukarıdaki şekildeki gibi bitebilir.
Ancak bu cihaz ile inşaatlardaki küçük ama tehlikeli problemler bildirilerek yüzlerce hayat kurtarılabilir.
Adım 8: Arduino101 Kod Dosyası
#define BLYNK_PRINT Seri
#define flex1 A0
#define flex2 A1 //Flex sensör ve buzzer pinlerini tanımlayın
#define buzzer 3
#include "CurieIMU.h"#include "BlynkSimpleCurieBLE.h"
#include "CurieBLE.h"
#include "Wire.h"
#include "EEPROM.h"
#include "SPI.h"
char auth = "******************"; //Blynk Yetkilendirme Kodu WidgetTerminal terminali(V2);
BLEÇevre birimi bleÇevre birimi;
int m_flx1, m_flx2, m_x, m_y, m_z; // hafızaya kaydedilen değerler
int flx1, flx2, x, y, z; //Mevcut okumalar
geçersiz değerler(){ for(int i=0;i<100;i++){
flx1 = analogRead(flex1); // Sensörlerden ham okumalar alın
flx2 = analogRead(flex2);
x = CurieIMU.readAccelerometer(X_AXIS)/100;
y = CurieIMU.readAccelerometer(Y_AXIS)/100;
z = CurieIMU.readAccelerometer(Z_AXIS)/100;
gecikme(2);
}
flx1=flx1/100; flx2=flx2/100;
x = x/100; //Okumaların ortalama değerlerini alın
y = y/100;
z = z/100;
}
void setup(){ //pinMode(3, OUTPUT);
pinMode(flex1, INPUT);
pinMode(flex2, INPUT); // Sensör pin modlarının ayarlanması
Seri.başla(9600);
blePeripheral.setLocalName("Arduino101Blynk"); blePeripheral.setDeviceName("Arduino101Blynk");
blePeripheral.setAppearance(384);
Blynk.begin(auth, blePeripheral);
blePeripheral.begin();
m_flx1 = EEPROM.read(0); m_flx2 = EEPROM.read(1);
m_x = EEPROM.read(2); // EEPROM'dan önceden kaydedilmiş sensör değerlerini oku
m_y = EEPROM.read(3);
m_z = EEPROM.read(4);
}
boşluk döngüsü(){ Blynk.run();
blePeripheral.poll();
değerler();
if(abs(flex1-m_flx1)>10 veya abs(flex2-m_flx2)>10){ terminal.println("Over Bend");
ton(sesli uyarı, 1000);
}
if(abs(x-m_x)>15 veya abs(y-m_y)>15 veya abs(z-m_z)>15){ terminal.println("Aşırı Eğimli");
ton(sesli uyarı, 1000);
}
ton(buzzer, 0);
}
/*VO, kalibrasyon modunu gösterir. Bu modda sensörlerin * değerleri EEPROM'a kaydedilir.
*/
BLYNK_WRITE(V0){ int pinValue = param.asInt();
if (pinValue == 1){
değerler();
EEPROM.write(0, flx1); EEPROM.write(1, flx2);
EEPROM.write(2, x);
EEPROM.write(3, y);
EEPROM.write(4, z);
terminal.print("Kalibrasyon Başarılı");
}
}
/*V1 butonuna basarak mevcut sapma değerlerini * talep edebiliriz
*/
BLYNK_WRITE(V1){
int pinValue = param.asInt();
if (pinValue == 1){
değerler(); terminal.print("X açısı sapması-");
terminal.print(abs(x-m_x));
terminal.println();
terminal.print("Y açısı sapması-");
terminal.print(abs(y-m_y));
terminal.println();
terminal.print("Z açısı sapması-");
terminal.print(abs(z-m_z));
terminal.println();
terminal.print("Esnek 1 sapma-");
terminal.print(abs(flx1-m_flx1));
terminal.println();
terminal.print("Esnek 2 sapma-");
terminal.print(abs(flx2-m_flx2));
terminal.println();
}
}
BLYNK_WRITE(V2){
}