İçindekiler:

Arduino İle Hareket Algılama Sistemi Nasıl Kurulur: 7 Adım
Arduino İle Hareket Algılama Sistemi Nasıl Kurulur: 7 Adım

Video: Arduino İle Hareket Algılama Sistemi Nasıl Kurulur: 7 Adım

Video: Arduino İle Hareket Algılama Sistemi Nasıl Kurulur: 7 Adım
Video: Arduino Hareket Sensörü Kullanımı (PIR Sensörü) 2024, Eylül
Anonim
Arduino ile Hareket Algılama Sistemi Nasıl Kurulur
Arduino ile Hareket Algılama Sistemi Nasıl Kurulur

Arduino ile programlanmış ve Ubidots tarafından desteklenen bir Feather HUZZAH kullanarak bir hareket ve varlık üretim sayacı oluşturun.

Akıllı Evlerde ve Akıllı Üretimde etkin fiziksel hareket ve varlık algılama, yaşlı Ortam Destekli Yaşam (AAL) çözümlerinden veya daha büyük bir MES'yi besleyen bir Üretim Sayma Sistemine kadar çeşitli uygulamalarda çok yararlı olabilir. Hareket ve Varlık Algılama için diğer uygulamalar bunlarla sınırlı olmamak üzere şunları içerir:

  1. Kapı ve kapı otomasyonu
  2. Boş alanları belirlemek için park sensörleri
  3. Uzaktan tank seviyesi izleme
  4. Aydınlatma ve güvenlik için akıllı evler ve tesisler
  5. Konveyör hatlarında birim tespiti ve sayımı
  6. Basılı materyallerde işaret algılama
  7. Karton, plastik ve kağıt eğimlerinde sıvı algılama
  8. Mesafe algılama
  9. Kişi sayaçları

Varlık ve hareket için pek çok uygulama olsa da, kapasitif, endüktif, fotoelektrik ve ultrasonik sensörler gibi veri toplamak için eşit sayıda sensör vardır. Maliyetlere, çevresel koşullara ve doğruluk gereksinimlerine bağlı olarak, bir ortam ve uygulama gereksinimleri için en uygun donanım seçilmelidir.

Bu eğitim için gerçek zamanlı bir üretim sayacı oluşturmaya odaklanacağız; uygulama, bir konveyör bant üzerinden geçen her birimi sayacaktır. Arduino IDE'yi bir Feather HUZZAH ESP8266, bir ultrasonik sensör ve Ubidot'ları programlamak için uygulamamızı geliştirmek ve IoT panomuzu görüntülemek için kullanacağız.

Adım 1: Gereksinimler

  1. ESP8266MB7389-100 ile Tüy HUZZAH
  2. Ultrasonik sensör
  3. Arduino IDE 1.8.2 veya üstü
  4. Ubidots hesabı -veya-STEM Lisansı

2. Adım: Kurulum

  • Donanım Kurulumu
  • II. Bellenim Kurulumu
  • III. Ubidots Uygulama Geliştirme (olaylar, değişkenler ve gösterge tabloları)

Adım 3: Donanım Kurulumu

Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu

Ultrasonik Sensör MB7389-100, IPv67 derecesi sayesinde zorlu hava koşullarında geniş aralık ve düşük güç tüketimi gereksinimleri olan Endüstriyel uygulamalar için düşük maliyetli bir seçenektir.

Başlamak için, ultrasonik sensörü Feather HUZZAH ESP8266'ya takmak için aşağıdaki şemayı yansıtın.

NOT: Sensör okuması, analog okumalar veya PWM olarak alınabilir; Aşağıda PWM okumasının kurulumunu açıklayacağız, ek bilgi için lütfen yukarıda gösterilen örneklere bakın.

[İsteğe bağlı olarak] mikro denetleyiciyi ve sensörleri toz, su ve diğer tehdit edici çevresel faktörlerden korumak için de IP67 kasasının içine yerleştirin. Standart kasa, yukarıdaki fotoğraflarda gösterilene benzer.

Adım 4: Bellenim Kurulumu

Bellenim Kurulumu
Bellenim Kurulumu
Bellenim Kurulumu
Bellenim Kurulumu

Öncelikle Arduino IDE'ye Feather Huzzah'ı kurmalı ve kodu derlemelisiniz. Basit bir yanıp sönme testi yaparak bu kurulumu doğrulamayı unutmayın. Feather cihazınızı bağlama hakkında daha fazla bilgi için bu yardımcı donanım kurulum kılavuzuna bakın.

Ubidots IoT Geliştirme Platformuna sensör verilerini göndermek için aşağıdaki kodu kopyalayıp Arduino IDE'ye yapıştırın. Kodda belirtilen yere Wi-Fi ağ adını, şifresini ve Ubidots hesap Simgenizi atamayı unutmayın.

/******************************** Kitaplıklar dahil *************** ****************/#Dahil etmek /****************************** ** Sabitler ve nesneler *******************************//* Ubidots */const char* SSID_NAME = "xxxxxxxx"; // Buraya SSID adconst karakterinizi koyun* SSID_PASS = "xxxxxxxx"; // Buraya passwordconst char* TOKEN = "Assig_your_ubidots_token"; // TOKENconst karakterinizi buraya koyun* DEVICE_LABEL = "hareket kontrolü"; // Cihazınız labelconst char* VARIABLE_LABEL = "mesafe"; // değişkeniniz labelconst char* USER_AGENT = "ESP8266";const char* VERSION = "1.0";const char* HTTPSERVER = "industrial.api.ubidots.com";// Ubidots Business kullanıcıları//const char* HTTPSERVER = " şeyler.ubidots.com"; // Ubidots Educational usersint HTTPPORT = 80;/* Ultrasonik Sensör */const int pwPin1 = 5; // Sensörün bağlı olduğu PWM piniWiFiClient clientUbi;/******************************** Yardımcı Fonksiyonlar *** ******************************//** char @return dataLen türündeki gövde @arg değişkeninin gövdesinin uzunluğunu alır değişkenin uzunluğu*/int dataLen(char* değişkeni) { uint8_t dataLen = 0; for (int i = 0; i mesafe / 25.4 */ kayan mesafe = pulseIn(pwPin1, YÜKSEK); sendToUbidots(DEVICE_LABEL, VARIABLE_LABEL, mesafe); delay(1000);}void sendToUbidots(const char* device_label, const char* değişken_etiket), float sensor_value) { char* body = (char *) malloc(sizeof(char) * 150); char* data = (char *) malloc(sizeof(char) * 300); /* Gönderilecek değerleri saklamak için boşluk * / char str_val[10]; /*---- Sensörlerin değerlerini char tipine dönüştürür -----*/ /* 4 minimum genişlik, 2 hassaslıktır; float değeri str_val*/ dtostrf(üzerine kopyalanır sensor_value, 4, 2, str_val); /* İsteğe gönderilecek gövdeyi oluşturur*/ sprintf(body, "{"%s\":%s}", değişken_etiket, str_val); /* HTTP'yi oluşturur POST olma isteği */ sprintf(data, "POST /api/v1.6/devices/%s", device_label); sprintf(data, "%s HTTP/1.1\r\n", data); sprintf(data, "%sHost:thing.ubidots.com\r\n", veri); sprintf(data, "%sUser-Agent: %s/%s\r\n", data, USER_AGENT, VERSION); sprintf(veri, "%sX-Auth-Token: %s\r\n", data, TOKEN); sprint f(veri, "%sBağlantı: kapat\r\n", veri); sprintf(data, "%sContent-Type: application/json\r\n", veri); sprintf(veri, "%sİçerik Uzunluğu: %d\r\n\r\n", veri, dataLen(gövde)); sprintf(veri, "%s%s\r\n\r\n", veri, gövde); /* İlk bağlantı */ clientUbi.connect(HTTPSERVER, HTTPPORT); /* İstemci bağlantısını doğrulayın */ if (clientUbi.connect(HTTPSERVER, HTTPPORT)) { Serial.println(F("Değişkenlerinizi gönderme: ")); Seri.println(veri); /* HTTP İsteğini Gönder */ clientUbi.print(data); } /* İstemci kullanılabilir durumdayken sunucunun yanıtını okuyun */ while (clientUbi.available()) { char c = clientUbi.read(); Seri.write(c); } /* Boş hafıza */ boş(veri); serbest gövde); /* İstemciyi durdur */ clientUbi.stop();}

ProTip: Arduino IDE'deki seri monitörü açarak cihazınızın doğru şekilde bağlanıp bağlanmadığını kontrol edebilirsiniz.

Ubidots arka uçunuzda bir cihazın oluşturulduğunu, hesabınızı Cihaz Yönetimi -> Cihazlar bölümünde görüntüleyerek doğrulayabilirsiniz.

Cihazınızı tıkladığınızda, sensörün okumalarının saklandığı "mesafe" adlı bir değişken bulacaksınız. Bu ad, Arduino IDE'ye az önce yapıştırdığınız kodda atanmıştır. Otomatik değişkenlerinizi ayarlamak istiyorsanız, lütfen bunu Cihaz kartını düzenleyerek veya uygulamanız için doğru değişken terminolojisine sahip güncellenmiş bir kodu yanıp sönerek yapın.

Feather HUZZAH ESP8266 bağlı ve verileri Ubidots'a rapor ederken, şimdi Ubidots'un özenle tasarlanmış kodsuz uygulama yapılandırmasını kullanarak uygulamayı oluşturma zamanı.

Adım 5: Ubidots Uygulama Geliştirme

Ubidots Uygulama Geliştirme
Ubidots Uygulama Geliştirme
Ubidots Uygulama Geliştirme
Ubidots Uygulama Geliştirme
Ubidots Uygulama Geliştirme
Ubidots Uygulama Geliştirme

Ubidots Olay Yapılandırması

Ubidots'a gönderdiğimiz mevcut okumalar mesafe girdileridir. Bu okumaları istediğimiz çıktıya çevirmek için - sayılan birimler - aşağıdaki adımları izleyerek bir olay oluşturmalıyız:

  1. Mevcut "hareket kontrolü" cihazının içinde, "kutular" adı verilen ve her yeni birim sayıldığında 1 alacak olan yeni bir varsayılan değişken oluşturun.
  2. Cihaz Yönetimi -> Etkinlikler'e gidin ve yeni bir etkinlik eklemek için sayfanın sağ üst köşesindeki mavi artı simgesine tıklayın.
  3. "Eğer tetiklerse" ile başlayan etkinliğinizi yapılandırın:
  • Bir değişken seçin: "mesafe"
  • Değer: değer (varsayılan)
  • Sensör ve yanından geçen kutular arasındaki [beklenen maksimum mesafeye} eşit veya bundan daha az mı* uygulamamız 500 mm gerektirir
  • 0 dakika
  • Kaydetmek

4. Tetikleyiciler uygulamanızın özelliklerine göre yapılandırıldıktan sonra, koşullu bir eylem eklemek için sağ üst köşedeki turuncu "artı" simgesine tıklayın.

5. Eylem olarak “Değişkeni Ayarla”yı seçin.

6. Ardından, önceden oluşturulmuş varsayılan değişken "kutuları" ve "1" değerini seçin.

7. Değişiklikleri kaydedin. Olay düzgün bir şekilde ayarlanmışsa, sensör ile ünite arasındaki mesafe belirtilen bir eşikten daha uzun olduğunda her defasında bir "1" gönderir, bu da yakınlarda hiçbir nesne olmadığını gösterir - ve az önce geçen yeni bir birimi saymalıdır..

Feather'a özel Cihaz kartında, bir birimin varlığı her algılandığında bir "1"in gönderildiği "kutular" değişkenini bulacaksınız.

Özellikle endüstriyel konveyör bantları ve ünite sayımı için kullanışlı olan bu prototip, farklı ortamlara veya donanımlara uyacak şekilde yalnızca kodlamanızda veya uygulama geliştirmenizde özelleştirilebilir.

8. Algılanan birim sayısını (veya bir nesnenin kaç kez algılandığını) görselleştirin Şimdi, "kutular" değişkenini kullanarak, "kutular" değişkeninden alınan toplam okuma miktarını toplamak için yeni bir yuvarlanan pencere değişkeni oluşturacağız. tanımlı bir spam (dakikalar, saatler, günler, haftalar vb.). Bu geliştirmeyi yürütmek için şu basit adımları izleyin:

Yeni yuvarlanan pencere değişkeninize aşağıdaki kimlik bilgilerini atayın

Bir cihaz seçin: hareket kontrolü (veya verilerinizi gönderdiğiniz cihazın adı)

Bir değişken seçin: kutular

Şunu hesaplayın: toplamı

Her: "1" saat (veya başvuru isteklerinize göre)

Şimdi yeni değişkene, tıpkı "kutu/saat" veya "birim/saat" gibi bir saatte sayılan kutuların (veya hareketlerin) sayısını gösteren bir ad atayın.

Adım 6: Pano Yapılandırmaları

Pano Yapılandırmaları
Pano Yapılandırmaları

Son olarak, algılanan birimlerin sayısını görüntülemek için bir gösterge panosu oluşturun.

Cihaz Yönetimi -> Panolar'a gidin ve yeni bir widget ekleyin. Bu widget, bugün sayılan kutuların miktarını saate göre görüntüleyecektir.

Sayınızı görselleştirmek için yeni pencere aracınıza aşağıdaki kimlik bilgilerini atayın.

Verilerinizi nasıl görmek istersiniz?: Grafik

Bir widget türü seçin: çizgi grafiği

Bir cihaz ekleyin: hareket kontrolü

Değişken ekle: kutu/saat

Bitiş. Ve bu son gösterge panosu geliştirmesiyle - başvurunuz tamamlandı ve artık verimli ve etkili bir hareket ve varlık algılama sistemine sahipsiniz. İşte sonuçlarımıza son bir bakış.

Önerilen: