İçindekiler:

Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c: 7 Adım
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c: 7 Adım

Video: Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c: 7 Adım

Video: Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c: 7 Adım
Video: Yepyeni Ford Puma | Acil Durum Manevra Destek Sistemi | Ford TR 2024, Kasım
Anonim
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c
Acil Durumları Tespit Etme - Qualcomm Dragonboard 410c

Acil durumları izlemek için çalışan güvenlik sistemleri ararken, kaydedilen tüm bilgileri işlemenin çok zor olduğunu fark etmek mümkündür. Bunu düşünerek, ses/görüntü işleme, sensörler ve aktüatörler konusundaki bilgimizi, insanların hayatlarının tehlikede olduğu durumları tahmin etmeyi mümkün kılan eksiksiz bir sistem oluşturmak için kullanmaya karar verdik.

Bu proje, veri toplamak ve alınan verilerden önemli bilgileri çıkarabilen işleme gücüne sahip dragonboard'a göndermek için yerel sensör ve uzak cihazlara sahiptir.

Uzak cihaz, tüm bilgileri aktarmayı mümkün kılan HC-06 modülüne ve büyük miktarda veriyi işleyebilen düşük maliyetli geniş bir ağa sahip bir Arduino kartıdır.

Adım 1: Gerekli Bileşenler

Öncelikle hangi sensör ve aktüatörleri kullanacağınıza karar vermeli ve mimari krokisini yapmalısınız.

Bizim durumumuzda, aşağıda listelenen ARDUINO Pro Mini'ye bağlı bu sensörleri kullanıyoruz:

  • PIR (Pasif Kızılötesi -- Varlık sensörü)
  • DHT 11 (Nem ve sıcaklık sensörü)
  • CO Sensörü (Karbon Monoksit Sensörü)
  • Gürültü sensörü

Aktüatörler:

  • motor servo
  • buzzer

İletişim:

Bluetooth Modülü HC-06

Dragonboard 410c'ye tüm veri girişlerini işlemek için bazı sensörler ve yazılımlarımız olacak:

Sensörler:

  • DHT 11
  • Güneş Işığı Sensörü

Aktüatörler:

  • Röle
  • Led durumu
  • Zil

2. Adım: Uzak Aygıt Oluşturma

Uzak Cihaz Yapma
Uzak Cihaz Yapma

Şimdi sıra, aşağıdaki tüm bileşenleri Arduino Board'a bağlayarak, ortamdan (gürültü, nem, sıcaklık vb.) verileri alacak ve HC-06 bluetooth modülü ile Dragonboard'a gönderecek bir cihaz oluşturma zamanı.

Bağlantılara dikkat etmek gerekir, çünkü tüm sensörlerin bağlanacak belirli yerleri vardır.

Sistemde veri toplamak için birden fazla cihaz olması mümkündür. Ortama ne kadar çok cihaz kurarsanız, veri işleme ile oluşturulan teşhisler o kadar doğru olur. Yararlı olabilecek daha geniş bir bilgi yelpazesi çıkarmak mümkün olacağından.

Daha uyumlu sensörlere sahip olduğu için bir arduino kartı kullanmaya karar verdik ve bu uzak cihazları farklı yerlere kurarak daha fazla bilgi toplamak mümkün.

Yerel cihaz, güçlü SnapDragon 410 işlemcinizle ses, video, dijital ve analog bilgileri işleyen DragonBoard 410c'dir.

Bileşenlerin yerleştirilmesi (Uzaktan Aygıt)

Hangi tek parça arduino pro mini kart üzerinde doğru pinlere bağlanması gereken pinlere sahiptir.

Bluetooth modülü HC-06'nın 4 pimi vardır:

  • TX (İletici) -> RX Arduino'nun pinine bağlı
  • RX (Alıcı) -> TX Arduino'nun pinine bağlı
  • VCC -> 5v'ye bağlı
  • GND

DHT 11 Sensörün 4 pimi vardır (ancak yalnızca 3 tanesi kullanımdadır):

  • Sinyal -> dijital bir pime bağlı
  • VCC -> 5v'ye bağlı
  • GND

PIR Sensörün 3 pini vardır:

  • Sinyal -> dijital bir pime bağlı
  • VCC -> 5v'ye bağlı
  • GND

Gaz sensörü (MQ) 4 pime sahiptir:

  • Digital OUT -> bir dijital pin üzerine bağlanır (dijital bir bilgi istiyorsanız)
  • Analog OUT -> bizim durumumuzda, bunu bir analog pin üzerinde bağlı olarak kullanıyoruz
  • VCC -> 5v'ye bağlı
  • GND

Gürültü sensörü (KY-038) 3 pime sahiptir:

  • Sinyal -> bir analog pime bağlı
  • VCC -> 5v'ye bağlı
  • GND

Arduino uzak Cihazı için kod:

/* * Arduino, Blutooth üzerinden veri gönderir * * Sensörlerin değeri okunur, * String üzerinde birleştirilir ve seri port üzerinden gönderilir. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht(DHTPIN, DHTTYPE); yüzer nem, sıcaklık; boole pir = 0; int ortak, mikrofon; String msg = ""; karakter adı[40]; geçersiz kurulum() { Serial.begin(9600); dht.begin(); } boşluk döngüsü() { nem = dht.readHumidity(); sıcaklık = dht.readTemperature(); pir = digitalRead(PIRPIN); co = analogRead(COPIN); mikrofon = analogRead(A0); msj = "#;" +String(nem) + ";" + Dize(sıcaklık) +";"+ Dize(mikrofon) +";"+ Dize(pir)+ ";" + String(co) + ";#" +"\n"; Seri.baskı(mesaj); gecikme(2000); }

Kod açıklaması:

Arduino'da kullanılan tüm pinler kodun başında alıntılanır ve sensörlerin çalışması için gerekli olan ilgili kütüphaneler başlatılır. Tüm veriler, her bir sensörden 2000 milisaniyede bir okunan değerleri alacak olan ilgili değişkenlere iletilecektir, daha sonra hepsi bir Dize'de Birleştirilecek, ardından Seri olarak yazılacaktır. Oradan DragonBoard'da bulunan pyton kodunun bu tür verileri yakalaması çok kolaydır.

3. Adım: Yazılımlar ve Kitaplıklar

Alınan tüm verileri işlemek ve güvenlik sistemini kontrol etmek için Qualcomm DragonBoard 410c'deki bazı yazılımları ve kütüphaneleri kullanmak gerekir.

Bu özel projede kullanıyoruz:

Yazılımlar:

  • piton
  • Arduino

Platformlar:

  • Amazon AWS -> çevrimiçi sunucu
  • Phant -> Ana veri hizmeti

Kütüphaneler:

  • OpenCV - Video İşleme (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - Ses İşleme (https://people.csail.mit.edu/hubert/pyaudio/)
  • Dalga (https://www.physicet.org/physictools/wave-installation.shtm)
  • AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
  • Numpy (https://www.numpy.org)
  • SciKit1 - Makine öğrenimini eğitin ve tahmin edin (https://scikit-learn.org/stable/install.html)
  • cPickle - Makine öğrenimi parametrelerini kaydedin (https://pymotw.com/2/pickle/)
  • MRAA - GPIO'ları kullanın (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM - GPIO'ları kullanın(https://github.com/intel-iot-devkit/upm)
  • PySerial - Bluetooth cihazıyla seri iletişim için kullanın (https://pythonhosted.org/pyserial/)

Adım 4: SSH'yi Kullanma ve Lib'leri Yükleme

Öncelikle Dragonboard'dan IP adresini almanız gerekiyor, bunun için fare, klavye ve HDMI monitör ile bağlı DragonBoard'u açmanız gerekiyor. Kart açıldığında, bir ağa bağlanmanız gerekir, ardından terminale gidin ve şu komutu çalıştırın:

sudo ifconfig

bundan sonra IP adresini alabilirsiniz.

IP adresi ile Dragonboard'a SHH üzerinden erişebilirsiniz, bunun için board ile aynı ağa bağlı bir bilgisayarda bir terminal açmanız gerekir. Terminalde şu komutu çalıştırabilirsiniz:

ssh linaro@{IP}

({IP}'yi Dragonboard'da aldığınız IP adresiyle değiştirmelisiniz).

Yüklemeniz gereken ilk lib, mraa lib'dir. Bunu yapmak için terminalde aşağıdaki komutu çalıştırmanız gerekir:

sudo eklenti-apt-deposu ppa:mraa/mraa && sudo apt-ge;t güncelleme && sudo apt-get kurulumu libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

Python için opencv'yi kurmak için sadece şu komutu çalıştırmanız gerekir:

sudo apt-get install python-opencv

PyAudio'yu kurmak için şu komutu çalıştırmanız gerekir:

sudo apt-get kurulum python-pyaudio python3-pyaudio

WAVE ve AudioOp kitaplıkları zaten panoya kuruludur. Numpy'yi yüklemek için şu komutu çalıştırmanız gerekir:

sudo apt-get kurulum python-numpy python-scipy

Kurmanız gereken son lib scikit'tir, kurmak için pip'in kurulu olması gerekir. Yalnızca şu komutu çalıştırmanız gerekir:

pip kurulum scikit-lear

Adım 5: Bluetooth Protokolü

Bluetooth Protokolü
Bluetooth Protokolü
Bluetooth Protokolü
Bluetooth Protokolü
Bluetooth Protokolü
Bluetooth Protokolü

Bluetooth aracılığıyla Arduino ile DragonBoard Bağlantısı

Bluetooth modülü (HC-06) başlangıçta aşağıdaki örneğe göre Arduino Nano'ya bağlandı:

Linaro (DragonBoard'daki mevcut projede kullanılan İşletim Sistemi) grafik arayüzünü kullanarak, alt çubuğun sağ tarafında Bluetooth sembolüne tıklayın ve ardından "Yeni Cihaz Kur" üzerine tıklayın ve Bluetooth modülünüzü eşleştirerek yapılandırın. Bluetooth sembolüne tekrar tıklayarak modülünüzün gerçekten bağlı olduğunu doğrulayın, "Cihazlar…" üzerine tıklayın ve cihazınızın adının listelenip bağlı olup olmadığına bakın. Şimdi "Bluetooth Devices" ekranında cihazınızı seçin ve üzerine sağ tıklayın ve Bluetooth modülünüzün bağlı olduğu portu not edin (ör.: "rfcomm0"). Not: Veri alışverişini etkinleştirmek için bir sonraki adım için cihazınızın bağlı olduğu bağlantı noktası adı önemli olacaktır.

DragonBoard Veri Değişimi ve Bluetooth'un Kurulması

Temel olarak https://www.uugear.com/portfolio/bluetooth-communi… linkini adım adım takip ediyoruz ancak eşleştirme kısmını sadece python kodlarının ve Arduino'nun yürütülmesini gerçekleştirmedik. Python'da bluetooth'a bağlı portta başlatılan seri kitaplık kullanıldı, bu nedenle python kodu, bluetooth modülü aracılığıyla arduino'ya bağlanan sensörlerin verilerini okudu.

Adım 6: DragonBoard 410c'de Mezzanine'i Kullanma

DragonBoard 410c'de Mezzanine'i Kullanma
DragonBoard 410c'de Mezzanine'i Kullanma

Dragonboard ve bileşenler arasındaki bağlantıları yapmak için 96boards tarafından geliştirilen Mezannine adlı bir tür kalkan kullanıyoruz.

Bu kalkanı kullanarak çevre birimlerini bağlamak çok daha kolay hale gelir.

Konnektörlerin kullanımı korunun geliştirme kitindendir, bu yüzden sadece her iki yolu birbirine bağlayan özel bir kablo kullanıyor, Tüm parçalar bu web sitesinde kolayca bulunabilir:

Aşağıdaki kitleri kullanıyoruz:

  • Koru Rölesi
  • Grove Güneş ışığı sensörü
  • Grove led soket
  • Grove sıcaklık ve humi sensörü
  • koru zili

7. Adım: DragonBoard 410c Yazılımı

Programın DragonBoard içindeki kısmı Python ile kodlanmış ve Arduino üzerinde kullanılan program C++ ile geliştirilmiştir. Her 2 dakikada bir Arduino, kendisine bağlı tüm sensörü okur. Arduino daha sonra okumayı Bluetooth ile DragonBoard'a gönderir. DragonBoard, Arduino'dan gelen okuma ile Mezzanine kalkanı tarafından yaptığı okuma ile ses ve video örneklerinden gelen özellikleri birleştirir.

Kurul, bu verilerle acil bir durumun oluşup oluşmadığını tahmin etmeye çalışır. Kurul, Phant'ı kullanarak ham verileri ve yaptığı tahminleri Amazon Web Hizmetine gönderir. Eğer pano garip bir durum olduğunu tahmin ederse, Ara Katta led ve buzzer yanıp sönerek kullanıcıyı uyarmaya çalışır ve web uygulamasında gösterir. Web uygulamasında bu alanda neler olduğunu anlamak için ham verileri görmek de mümkündür.

Önerilen: