Evde Akıllı Kask Montajı

Bir kask, bir motorcu için çok büyük bir öneme sahiptir ve çoğu zaman insanların hayatını kurtardığını gördük. Bir kişi kask takarsa, kafa ve beyin yaralanmaları riski büyük ölçüde azalır. Piyasada kolayca bulunabilen sıradan kasklar alkol algılama özelliği olmaması, kaza sonrası bildirim olmaması vs. gibi sebeplerden %100 güvenliği sağlayamıyor. Bahsettiğim özellikler şurada mevcut. Akıllı Kasklar çoğunlukla Ağır bisikletçilerin giydiği ve 300-400 dolar civarında bir maliyeti. Bugün bunu göz önünde bulundurarak, alkol algılama, kaza bildirimi, GPS takip cihazı vb. özelliklere sahip, bütçeye uygun bir Akıllı Kask tasarlayacağım. Bu kask, devreler hakkında biraz bilgisi varsa ve evde herhangi bir güçlük çekmeden kolayca tasarlanabilir. /bazı yazılım tabanlı simülasyonlar yapabilir. Bu projeyi tamamlamak için aşağıda verilen prosedürü adım adım izleyin.

GSM Modülü İle Temel Elektronik Bileşenler Nasıl Birleştirilir?

Bu projeye başlamadan önce kaskın kabataslak bir defter taslağını çizmek daha iyidir çünkü bileşenlerin yerleşimini daha iyi anlamamızı sağlayacak ve devrenin montajı bizim için kolay olacaktır. Çalışmaya başlamadan önce mükemmel bir yaklaşım, zamandan tasarruf etmek ve projenin ortasında kalma şansını önlemek için tüm bileşenlerin tam bir listesini yapmaktır. Piyasada kolayca bulunabilen tüm bileşenlerin tam listesi aşağıda verilmiştir:

Adım 1: Kullanılan Bileşenler (Donanım)

Adım 2: Kullanılan Bileşenler (Yazılım)

Adım 3: Blok Şeması

Kaskın iyi çalıştığını göstermek için aşağıda gösterilen bir blok diyagram yaptım:

Adım 4: Çalışma Prensibi

Projede her çeşit Arduino kartı kullanılabiliyor ama ben Arduino Nano'yu tercih ettim çünkü ikisi kaskın içine yerleştirilecek ve daha az yer kaplıyor. Sürücünün aldığı Alkol miktarını belirlemek için MQ-3 Alkol sensörü kullandım ve bu seviye Çift Renkli LED ile gösterilir. Sürücü çok miktarda alkol almışsa LED yanar. Kırmızı ve SMS bildirimi kodda belirtilen numaraya GPS aracılığıyla gönderilir. LED dönerse Sarı alkol seviyesinin orta düzeyde olduğu anlamına gelir ve eğer dönerse Yeşil bu, sürücünün sarhoş olmadığı anlamına gelir. Bu sayede sürücünün güvenliği sağlanmakta ve kaza riski büyük oranda minimuma indirilmektedir. Ultrasonik sensör kaskın arkasına yerleştirilecek ve sürücü ile arkadaki araçlar arasındaki mesafeyi hesaplamaya devam edecektir. Bir araç sürücüye çok yüksek bir hızda yaklaşıyorsa, ultrasonik sensör, sesli uyarıyı tetiklemek için Arduino'ya bir sinyal gönderecek ve böylece sürücü kenara çekilecek ve aracın geçmesine izin verecektir. dahil ettim GPS modülü bir kaza durumunda belirli cep telefonu numarasına uyarı göndermek için. Kazayı algılamak için devreye belirli bir titreşim seviyesine ayarlanabilen titreşim sensörü dahildir ve GSM modülüne hemen yardım çağrısı olarak belirli numaralara bildirim göndermesini söyler. Bu projede iki Arduino kullanılacaktır. Biri Ultrasonik Sensöre ve Alkol Sensörüne bağlanacak ve diğeri GSM modülüne ve titreşim sensörüne bağlanacaktır. Kaskın içine yerleştirilecek iki ayrı devre olacak ve aynı aküye bağlanacaklar. Not:Titreşim sensöründe bulunan değişken kapasitör ayarlanacaktır.

Adım 5: Devrenin Proteus Üzerinde Montajı

  1. Proteus yazılımını indirip kurduktan sonra açın. tıklayarak yeni bir şematik açın. IŞİDmenüdeki simge.
  2. Yeni şema göründüğünde, üzerine tıklayın. Pyan menüdeki simge. Bu, kullanılacak tüm bileşenleri seçebileceğiniz bir kutu açacaktır.
  3. Şimdi devreyi yapmak için kullanılacak bileşenlerin adını yazın. Bileşen, sağ tarafta bir listede görünecektir.
  4. Aynı şekilde, yukarıdaki gibi, tüm bileşenleri yukarıdaki gibi arayın. içinde görünecekler Cihazlar Liste.

Adım 6: Devre Şemaları

Donanım devrenizi aşağıda gösterilen devre şemalarına göre monte edin:

  1. Devre Şeması # 1:
  2. Devre Şeması # 2:

Adım 7: Arduino'ya Başlarken

Daha önce Arduino IDE'ye aşina değilseniz endişelenmeyin çünkü aşağıda Arduino IDE kullanarak mikrodenetleyici kartına kod yazmanın net adımlarını görebilirsiniz. Arduino IDE'nin en son sürümünü buradan indirebilir ve aşağıdaki adımları takip edebilirsiniz:

  1. Arduino Nano kartınızı dizüstü bilgisayarınıza bağlayın ve kontrol panelini açın. kontrol panelinde tıklayınDonanım ve ses. Şimdi tıklayınCihazlar ve yazıcılar.Burada mikrodenetleyici kartınızın bağlı olduğu portu bulun. benim durumumda öyle COM14ama farklı bilgisayarlarda farklıdır.
  2. GSM Modülünü kullanmak için bir kütüphane eklememiz gerekecek. git Çizim > Kitaplığı Dahil Et > .ZIP Kitaplığı Ekle'yi seçin.
  3. Araç menüsüne tıklayın ve tahtayı Arduino Nano.
  4. Aynı Araç menüsünde, İşlemciyi ATmega328P (Eski Önyükleyici).
  5. Aynı Araç menüsünde, bağlantı noktasını daha önce görüntülemede gözlemlediğiniz bağlantı noktası numarasına ayarlayın. Cihazlar ve yazıcılar.
  6. Aşağıda ekli kodu indirin ve Arduino IDE'nize yapıştırın. Tıkla yükle mikrodenetleyici panonuzdaki kodu yazmak için düğmeye basın.

Adım 8: Projenin Kodu

Kod biraz uzun ama gerçekten basit. Parçalarından bazıları aşağıda açıklanmıştır:

1. Başlangıçta, özel çevresel cihazlarla kolayca iletişim kurabilmemiz için kütüphaneler dahil edilmiştir.

#include "Adafruit_FONA.h" #include  SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX); SoftwareSerial *fonaSerial = &fonaSS; Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

2. Ardından Arduino nano üzerinde harici sensörleri mikrodenetleyiciye bağlamak için kullanılacak pinler tanımlanır. Bu pinler, mikrodenetleyicideki verilerin Giriş ve Çıkışından sorumlu olacaktır.

#define FONA_RX 2 #define FONA_TX 3 #define FONA_RST 4 // titreşim sensörü #define VS 10 #define R 2 #define Y 4 #define MQ3 A0 # buzzerı tanımla 9. #define triggerPin 7 // pin 7'de tetikleme #define echoPin 8 // pin 8'de yankı

3. Ardından, kodun çalışma süresi boyunca daha sonra hesaplama işlemlerinde kullanılacak olan farklı değişkenler başlatılır. GSM modülü ile birlikte kullanılacak bir tampon da yapılır.

int gaz seviyesi; // bu, yanıtlar için büyük bir arabellektir char answerbuffer[255]; uint8_t readline(char *buff, uint8_t maxbuff, uint16_t zaman aşımı = 0); uint8_t türü; int vs=10; int shockVal = YÜKSEK;

4. geçersiz kurulum()mikrodenetleyiciye enerji verildiğinde veya etkinleştirme düğmesine basıldığında yalnızca bir kez yürütülen bir işlevdir. baud hızı, temel olarak mikrodenetleyicinin harici sensörlerle iletişim kurduğu saniyedeki bit cinsinden hız olan bu fonksiyonda ayarlanır. Arduino'nun tüm pinleri, sensörden girdi almak veya başka bir cihaza çıktı göndermek için kullanılacakları burada başlatılır. GSM modülü de bu fonksiyonda başlatılır.

geçersiz kurulum() { Serial.begin(9600); //seri iletişimi başlatacağız, böylece seri monitörde mesafeyi görebiliriz Serial.println("Tech Ponder's UltraSonic Sensör Eğitimi"); pinMode(triggerPin, OUTPUT); //pinleri tanımlama pinMode(echoPin, INPUT); pinMode(buzzer, OUTPUT); digitalWrite(buzzer,DÜŞÜK); pinMode(MQ3,GİRİŞ); pinMode(R,ÇIKIŞ); pinMode(Y,ÇIKIŞ); pinMode(vs, INPUT); while (!Seri); // Serial.println(F("FONA temel testi")); // Serial.println (F ("Başlatılıyor .... (3 saniye sürebilir)")); fonaSerial->başla(4800); if (! fona.begin (* fonaSerial)) {// Serial.println (F ("FONA bulunamadı")); while (1); } tür = fona.type(); // Serial.println(F("FONA tamamdır")); // Serial.print(F("Bulunan")); switch (tür) { case FONA800L: // Serial.println(F("FONA 800L")); kırmak; case FONA800H: // Serial.println(F("FONA 800H")); kırmak; case FONA808_V1: // Serial.println(F("FONA 808 (v1)")); kırmak; case FONA808_V2: // Serial.println (F ("FONA 808 (v2)")); kırmak; case FONA3G_A: // Serial.println(F("FONA 3G (Amerikan)")); kırmak; case FONA3G_E: // Serial.println(F("FONA 3G (Avrupa)")); kırmak; varsayılan: // Serial.println(F("???")); kırmak; } // Modül IMEI numarasını yazdırın. karakter imei[15] = {0}; // IMEI için 16 karakterlik bir arabellek KULLANMALIDIR! uint8_t imeiLen = fona.getIMEI(imei); if (imeiLen > 0) { // Serial.print("Modül IMEI: "); Seri.println(imei); } }

5. boşluk döngüsü()mikrodenetleyici açıkken bir döngüde tekrar tekrar çalışan bir fonksiyondur. Bir ultrasonik sensör için, belirli bir değerden daha az bir mesafeyi ölçerse, bir aracın yaklaştığını sürücüye bildirmek için kullanılacak sesli uyarıcıya bir sinyal göndereceği bir kod yazılır. Gaz sensörü de buraya entegre edilmiştir. Sürücünün yoğun, kısmen veya daha az sarhoş olup olmadığını anlamak için üç LED kullanılır. Yeşil LED yanıyorsa, binici gitmeye hazır demektir. Bu fonksiyonun sonunda, adında başka bir fonksiyon çağrılır. titreşimEğlence().

boşluk döngüsü () {int süre, mesafe; //Süre ve mesafe ekleme digitalWrite(triggerPin, HIGH); //dalgayı tetikleme(bir LED'in yanıp sönmesi gibi) gecikme(10); digitalWrite(triggerPin, LOW); süre = pulseIn (echoPin, HIGH); //dalga mesafesini dinlemek ve beklemek için özel bir fonksiyon = (süre/2) / 29.1; //sayıyı cm'ye çevirme(inç istiyorsanız, 29.1'i uygun bir sayı gecikmesi ile değiştirmelisiniz(1000); Serial.print(mesafe); //sayıları yazdırma Serial.print("cm"); / /ve Serial.println(" "); //sadece yeni bir satıra yazdırın if (mesafe < 35) { digitalWrite(buzzer,HIGH); Serial.println("Buzzer On"); } digitalWrite(buzzer,LOW ); gaslevel = (analogRead (MQ3)); gaslevel = map (gaslevel, 0,1023,0,255); if (gaslevel> 100 && gaslevel <= 300) {// gaslevel is 100'den büyük ve 300'den az digitalWrite (R ,LOW);//KIRMIZI led kapalı _delay_ms(500);//delay digitalWrite(Y,HIGH);//YELLOW led açık _delay_ms(500); } else if(gaz seviyesi > 300 && gaz seviyesi <= 600){ //gaz seviyesi 300'den büyük ve 600'den az digitalWrite(Y,LOW);//SARI led kapalı _delay_ms(500); digitalWrite(R,HIGH);//KIRMIZI led yanıyor } başka { digitalWrite(R,LOW) ); // kırmızı led kapalı digitalWrite (Y, LOW); // SARI led kapalı} Serial.println (gaslevel); // değerleri seri monitörde yazdır _delay_ms (100); viberationFun ();}

6. viberationEğlenceli ()bisikletin başka bir nesneyle çarpışıp çarpışmadığını algılayan bir işlevdir. Herhangi bir çarpışma tespit ederse, kodda belirtilen numaralara mesaj gönderecektir. Bu sayede kaza haberi bir başkasına ulaşacak ve biniciyi kurtarmak için gerekli adımları atacaktır.

void viberationFun(){ shockVal = digitalRead (vs); int t = 0; char sendto[11]="NUMARASINIZ"; char sendto1[11]="SAYISINIZ 2"; char mesajı[27]="Kaza algılandı"; eğer (shockVal == HIGH || shockVal == 1) {if (t == 0) {Serial.println (shockVal); if (!fona.sendSMS(gönderilen, mesaj) && !fona.sendSMS(gönderilen1, mesaj)) { Serial.println(F("Başarısız")); } else { Serial.println(F("Gönderildi!")); t=1; } gecikme(1000); if(!fona.sendSMS(sendto1, mesaj)) { Serial.println(F("Başarısız")); } else { Serial.println(F("Gönderildi!")); t=1; } } }başka{ t=0; } }

Adım 9: Donanımın Montajı

Şimdi projemizin ana bağlantılarını ve tüm devresini bildiğimize göre devam edelim ve projemizin donanımını yapmaya başlayalım. Devrenin kompakt olması ve bileşenlerin birbirine yakın yerleştirilmesi gerektiği unutulmamalıdır. Veroboard devre tahtasına kıyasla daha iyi bir seçenektir çünkü devre tahtasında bağlantılar gevşer ve kısa devre meydana gelebilir ve devre tahtası Veroboard'a kıyasla daha fazla ağırlığa sahiptir. Veroboard'a yerleştirilen devre, kaskın içine kolayca takılabilmesi için çok küçük olacaktır.

  1. Bir Veroboard alın ve bakır kaplamalı tarafını bir kazıyıcı kağıtla ovalayın.
  2. Şimdi bileşenleri dikkatlice yerleştirin ve devrenin boyutu çok büyük olmayacak şekilde kapatın.
  3. Bağlantıları lehim havyası kullanarak dikkatlice yapın. Bağlantılar yapılırken herhangi bir hata yapılırsa, bağlantıyı sökmeye ve bağlantıyı tekrar düzgün bir şekilde lehimlemeye çalışın, ancak sonunda bağlantı sıkı olmalıdır.
  4. Tüm bağlantılar yapıldıktan sonra bir süreklilik testi yapın. Elektronikte süreklilik testi, akımın istenen yolda akıp akmadığını (kesinlikle bir toplam devre olup olmadığını) kontrol etmek için bir elektrik devresinin kontrolüdür. Bir süreklilik testi, seçilen yol üzerinde küçük bir voltaj (bir LED veya kargaşa yaratan parça, örneğin bir piezoelektrik hoparlör ile düzene sokulmuş) ayarlanarak gerçekleştirilir.
  5. Süreklilik testi geçerse devrenin istenildiği gibi yeterince yapılmış olduğu anlamına gelir. Artık test edilmeye hazırdır.
  6. Pili devreye bağlayın.

Arkadan gelen araçları algılamak için kaskın arkasına monte edilecek Ultrasonik sensör dışında devrenin geri kalanı kaskın içine yerleştirilecektir. Bu projede Lipo pil kullanılmıştır çünkü çok hafif bir pildir ve sürücü uzun bir yolculuğa çıksa bile daha iyi zamanlama verebilir. Lipo pili kaskın içinde ayarlayın çünkü yağmur gibi sert hava koşulları devrenin arızalanmasına neden olabilir.

Adım 10: Test Etme

Şimdi donanım monte edildi ve kod da mikrodenetleyiciye yüklendi, son adıma geçelim ve devreyi test edelim. Motosikletin üzerine otur ve dön AÇIK Devreyi etkinleştirmek için basmalı düğme anahtarı. Sokağınızda sürmeye başlayın ve birinden arabada arkadan yüksek hızda size yaklaşmasını isteyin. Buzzer'ın çalmaya başlayacağını ve ardından yüksek hızda fren uygulayarak büyük titreşimin oluşabileceğini gözlemleyeceksiniz. Titreşim oluşur oluşmaz, kodda belirttiğiniz cep telefonu numarasına bir uyarı bildirimi gönderilecektir.

Öneriler

Bu çok ilginç bir proje, bazı temel elektronik bileşenlerin yardımıyla daha fazla dahil edilebilecek birkaç seçenek var. Bunlardan bazıları aşağıda gösterilmiştir:

  1. Raspberry Pi'yi aşağıdakilerle birlikte kullanabilirsiniz: Pi kamera modülü ve kaskın aynasındaki izdüşümünü görebileceğiniz şekilde konumunu ayarlayın. Bu şekilde, yolun arka görüntüsünü elde edebilecek ve sollama vb. durumlarda çok yardımcı olacaktır.
  2. Röle modülü motosikletin kontağına bağlanabilir ve kontağı çevirecek şekilde ayarlanabilir. AÇIKsadece binici kaskı taktığında.
  3. Kaskın üstüne ve arkasına küçük güneş panelleri de takılabilir, böylece pil ihtiyacı azalır ve kaskın içindeki devrelerin ağırlığı daha da azaltılabilir.
Facebook Twitter Google Plus Pinterest