İçindekiler:

Bağlantılı Yön Bileziği: 6 Adım
Bağlantılı Yön Bileziği: 6 Adım

Video: Bağlantılı Yön Bileziği: 6 Adım

Video: Bağlantılı Yön Bileziği: 6 Adım
Video: Ucuz Akıllı Bileklik ve Saatler Telefon İle Nasıl Eşleştirilir - Bağlantı Sorunları 2024, Kasım
Anonim
Bağlantılı Yön Bilezik
Bağlantılı Yön Bilezik

Bağlantılı oryantasyon bileziği olan bu akademik proje, Polytech Paris-UPMC mühendislik okulundan dört öğrenci tarafından gerçekleştirildi: Sébastien Potet, Pauline Pham, Kevin Antunes ve Boris Bras.

Projemiz nedir?

Bir dönem boyunca, bir koşucu tarafından kullanılacak bağlantılı bir bilezik oluşturmamız gerekti. Yarış rotası, işaretleyeceği birkaç nokta tarafından yönlendirilecek ve bu, rotasını kaydetmesine izin verecektir. Bu veriler gerçek zamanlı olarak bir bulutta depolanacak.

Bu ürün sıcaklık, nem ve yön verebilir. Ayrıca, koşucunun bir sorunu olması durumunda GPS konumu gönderen biri dahil olmak üzere üç düğmemiz var (SOS düğmesi), bu yüzden gerçek zamanlı olarak ihtiyacımız var. İkincisi etiketlemeye izin verir ve sonuncusu düşük güçlü bir ürün istediğimiz için bileziği kapatmaya izin verir.

120€'luk bir bütçemiz vardı. Bağlı bir oryantasyon bileziğini gerçekleştirmek için öğreticimizi takip edin!

Adım 1: Gerekli Malzeme

Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme
Gerekli Malzeme

Bileşenlerin listesi:

- STM32L432KC-Nucleo Ultra Düşük Güç

- SigFox modülü TD1208

- RFID okuyucu 125 kHz

- Sıcaklık/nem sensörü HTU21D

- İvmeölçer modülü 3 eksenli ADXL345

- Pusula modülü 3 eksenli HMC5883L

- Ekran OLED ADA938

- GPS modülü Grove 31275

- Pil 1,5 V LR6

- Tansiyon regülatörü Pololu 3.3V U1V11F3

- Bazı kontrol düğmeleri

Adım 2: Programlama Bölümü

Programlama Bölümü
Programlama Bölümü

Öncelikle mbed geliştirici sitesi ile her bir bileşeni programladık. Bunun için düşük tüketimli bir mikrodenetleyici STM32L476RG-Nucleo kullandık.

I²C iletişiminde ekran, sıcaklık/nem sensörü ve pusula çalışır. Seri iletişimde RFID okuyucu ve ivmeölçer çalışır. Her bileşen için kendi kitaplığını eklemeniz gerekiyordu.

Sıcaklık/nem sensörü, pusula ve ivmeölçer için, verileri almak için kitaplıklarında tanımlı bir işlevi çağırmanız gerekir.

RFID okuyucu seri iletişimde çalışır, etiket char cinsinden veri döndürdüğü için "getc()" işlevini kullanmanız gerekir.

OLED ekran kodu hariç tüm kodlar dosya olarak mevcuttur.

Adım 3: Elektronik Montaj

Elektronik Montaj
Elektronik Montaj

Her bileşeni programladıktan sonra bir labdec plakası aldık ve bunları STM32L432KC-Nucleo'ya bağladık. Tüm bileşenleri monte etmek için ekteki kablo şemasını izleyin veya her PIN kod tertibatında ayrıntılı olarak açıklanmıştır.

Üç adet 10 Kilo ohm dirençli üç düğme ekledik: biri tehlike durumunda GPS konumunu gönderir, biri açma/kapama için ve sonuncusu koşucunun noktayı etiketlemesine izin verir. SOS düğmesine bastığınızda sesli uyarı ekledik.

Ekteki "braceletOrientation" dosyası Fritzing ile ilgili projemizdir. Bu, bileşenlerimizin ve PCB'nin yanı sıra labdec üzerindeki kablolamamızın bir özet dosyasıdır. Ayrıca tüm bileşenlerin montaj kodunu ekledik.

4. Adım: Veri Toplama

Veri toplama
Veri toplama
Veri toplama
Veri toplama
Veri toplama
Veri toplama

Aktoboard

Actoboard, gösterge tablosu tabanlı bir araçtır. Sigfox Modülü tarafından gönderilen tüm verileri görüntüler. Daha sonra veritabanına eklenmek için bu verileri URL aracılığıyla nodered'e gönderir.

Verileri gönderin:

Verileri kodunuz üzerinden göndermek için öncelikle Sigfox modülünün PIN'ini (Tx, Rx) bildirmeniz gerekir (kodumuzda görebilirsiniz). Daha sonra bu komut sayesinde: "sigfox.printf("AT$SF=%02X%02X%02X%02X%02X%02X \r\n", lat_deg, long_deg, lat_10s, long_10s, lat_100s, long_100s);", bu örnek GPS verilerini Actoboard'a gönderir.

Verileri alın:

Veri kaynaklarınızı Sigfox modülünüzle ilgili olarak ayarladıktan sonra, kodunuzdan veri almak için Veri biçiminizi ayarlamanız gerekir. Öncekiyle aynı örnek için (GPS) veri biçimini şu şekilde ayarlamanız gerekir: "lat_deg::uint:8 long_deg::uint:8 lat_10s::uint:8 long_10s::uint:8 lat_100s::uint:8 long_100s::uint:8".

Bitlerin türüne ve sayısına dikkat edin, tam olarak aynı uzunluğa sahip olmanız gerekir. Bu yüzden, verilerinizi şu şekilde kodunuzda yayınlamanızı tavsiye ederim: "lat_deg = (int8_t)lat_deg;".

Rakam sayısına da dikkat edin, bu örnekte sadece maksimum 2 haneli veri iletiyoruz. Ancak "%04X" gibi daha büyük bir veriyi aktarmak istiyorsanız, Actoboard'un rakamı ters çevireceğini biliyor olabilirsiniz. Örneğin 0x3040 iletirseniz, Actoboard 0x4030'u anlayacaktır. Bu nedenle, 2 rakamı aşan bir veri formatı göndermeden önce rakamı tersine çevirmelisiniz.

Kontrol Panelini Düzenle:

Actoboard'daki bir Gösterge Tablosunda verilerinizi düzenlemek için bir widget eklemeniz yeterlidir. Bir widget listesi var, sisteminize en uygun olanı seçmelisiniz. Ve sonra hangi verinin hangi widget'ı dolduracağını seçmeniz gerekiyor.

Noded'a ilet:

Actoboard'da aldığınız tüm verileri URL üzerinden nodered'e aktarmak için, ayarlarınızdaki "forwarding url" kutusunu düğümlü proje URL'niz ile doldurmanız yeterlidir. Örneğin kutucuğu "https://noderedprojet.mybluemix.net/projet" ile doldurduk.

Adım 5: Veri Tabanı

Veri tabanı
Veri tabanı
Veri tabanı
Veri tabanı
Veri tabanı
Veri tabanı
Veri tabanı
Veri tabanı

Bluemix

  • düğümlü:
  • Actoboard veri formunu alın

Actoboard veri formunu almak için, yöntemi "POST" ile ayarlamanız ve URL'nizi belirtmeniz gereken bir "websocket" girişi eklemeniz gerekir (fotoğraftaki örnek).

Veri formatlama

Veritabanınıza (bulut) eklemek istediğiniz verileri çıkarmanız ve biçimlendirmeniz gerekir. bunun için bir "işlev" bloğu eklemelisiniz. Bunu nasıl yapacağınızı anlamak için ekteki fotoğrafa bakın.

Bir haritaya geometrik şeyler ekleyebilirsiniz, örneğin, bir harita üzerinde GPS koordinatıyla bir nokta ekleyen ve bunları birbirine bağlayan bir fonksiyonumuz var. Yarışı oluşturmak için bu fonksiyonu kullanıyoruz ve ardından bir RFID TAG'ı kontrol ederseniz, noktanın etrafında çokgen oluşturacak olan başka bir fonksiyona geçiyoruz.

cloudant'a gönder

Verilerinizi biçimlendirdikten sonra bunları cloudant DataBase'inize göndermeniz gerekir. Bunun için bir "cloudant" depolama bloğu eklemeniz ve Veritabanınızın adı, "insert" işlemi gibi ayarları belirtmeniz gerekir, ekteki örneğimize bakın.

Sisteminizin çalışması için düğümünüzü "Dağıtmayı" unutmayın.

Bulutlu:

Bulutlu Veritabanınızda, artık sigfox ve biçimlendirme ile gönderdiğiniz tüm verileri düğüm kırmızısında görebilirsiniz. "Tarih, cihaz, TAG RFID, GPS" gibi hangi bilgileri görmek istediğinizi seçebilirsiniz.

Ve oluşturduğunuz geometrik şeyleri "gps Geospatial Indexes" menüsündeki nodlu işlevde görselleştirebilirsiniz.

Adım 6: Gösteri

Özetlemek gerekirse, dört butonla kontrol edilen dört İnsan-Makine Arayüzümüz vardı.

Temel arayüz, sıcaklığı, nemi, etiket numarasını, bir kronometreyi ve manyetik yönü gösterir.

Basmalı düğme hareketlerinden birinde gerçek bir arayüz pusulası bulacaksınız. Yön iyi konumlandırılmış olarak ekranda bir daire çizilecektir.

Başka bir basma düğmesi eyleminde, konumunuzu veri tabanına göndereceği bir SOS mesajı göndereceksiniz. Ayrıca mors kodunda bir SOS mesajı duyacaksınız.

Ek olarak, son basma düğmesi eyleminde RFID etiketini uyandıracaksınız. Bundan sonra, geçiş noktanızı etiketlemek için beş saniyeniz var. Sonra bir bip sesi duyacaksınız. Bu eylem, ekrandaki bir sayacı artırır ve veri tabanımıza zamanla etiketi gönderir. Son olarak, tüm etiketler yolculuğu bir harita üzerinde çizecektir.

Saatimizin otonomu yaklaşık 4h30 (yaklaşık 660mA/h) civarındadır. Kontrol edilen etiket numarasına bağlıdır.

Yarıştan sonra, tüm koşu hareketlerini bluemix veri tabanımızda bulacaksınız.

Önerilen: