Mündəricat:

Arduino ilə Hərəkət Algılama Sistemini Necə Yaratmaq olar: 7 addım
Arduino ilə Hərəkət Algılama Sistemini Necə Yaratmaq olar: 7 addım

Video: Arduino ilə Hərəkət Algılama Sistemini Necə Yaratmaq olar: 7 addım

Video: Arduino ilə Hərəkət Algılama Sistemini Necə Yaratmaq olar: 7 addım
Video: PCA9685 və Arduino istifadə edərək 32 Servo motorunu idarə etmək: V3 2024, Iyul
Anonim
Arduino ilə Hərəkət Algılama Sistemi necə qurulur
Arduino ilə Hərəkət Algılama Sistemi necə qurulur

Arduino ilə proqramlaşdırılmış və Ubidots tərəfindən dəstəklənən Feather HUZZAH istifadə edərək bir hərəkət və varlıq istehsal sayğacı yaradın.

Ağıllı Evlərdə və Ağıllı İstehsalda təsirli fiziki hərəkət və varlığın aşkarlanması, yaşlı Ətraf Mühit Yardımlı Yaşam (AAL) həllərindən və ya daha böyük bir MES -i qidalandıran İstehsal Sayma Sistemindən tutmuş tətbiqlərdə çox faydalı ola bilər. Motion və Presence Detection üçün digər tətbiqlər bunlarla məhdudlaşmır:

  1. Qapı və qapı avtomatlaşdırılması
  2. Sərbəst yerlər təyin etmək üçün park sensorlar
  3. Tank səviyyəsinin uzaqdan izlənməsi
  4. İşıqlandırma və təhlükəsizlik üçün ağıllı evlər və qurğular
  5. Konveyer xətlərində vahidlərin aşkarlanması və sayılması
  6. Çap olunmuş materiallarda işarələrin aşkarlanması
  7. Karton, plastik və kağız əyilmələrində maye aşkarlanması
  8. Məsafənin aşkarlanması
  9. İnsan sayğacları

Varlıq və hərəkət üçün bir çox tətbiq olsa da, kapasitiv, endüktif, fotoelektrik və ultrasəs sensorlar kimi məlumat toplamaq üçün eyni dərəcədə çox sensorlar var. Xərclərdən, ətraf mühit şəraitindən və dəqiqlik tələblərindən asılı olaraq, bir mühit və tətbiq tələbləri üçün ən uyğun qurğu seçilməlidir.

Bu dərs üçün, real vaxt istehsal sayğacının qurulmasına diqqət yetirəcəyik; tətbiq, bir konveyerdən keçən hər bir vahidi sayacaq. Tətbiqimizi inkişaf etdirmək və IoT tablosunu göstərmək üçün ultrasonik sensoru olan Feather HUZZAH ESP8266 və Ubidotları proqramlaşdırmaq üçün Arduino IDE -dən istifadə edəcəyik.

Addım 1: Tələblər

  1. ESP8266MB7389-100 ilə HUZZAH lələk
  2. Ultrasonik Sensor
  3. Arduino IDE 1.8.2 və ya daha yüksək
  4. Ubidots hesabı -və ya STEM Lisenziyası

Addım 2: Quraşdırma

  • I Avadanlıq Quraşdırması
  • II. Firmware Quraşdırması
  • III. Ubidots Tətbiq İnkişafı (hadisələr, dəyişənlər və tablosuna)

Addım 3: Hardware Setup

Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması

Ultrasonik Sensor MB7389-100, IPv67 reytinqi sayəsində çətin hava şəraitində geniş çeşidli və az enerji istehlakı tələbləri olan Sənaye tətbiqləri üçün aşağı qiymətli bir seçimdir.

Başlamaq üçün ultrasəs sensorunu Feather HUZZAH ESP8266 -a bağlamaq üçün aşağıdakı diaqramı əks etdirin.

Qeyd: Sensorun oxunması analog oxunuş və ya PWM kimi qəbul edilə bilər; aşağıda PWM oxunuşunun qurulmasını izah edəcəyik, əlavə məlumat üçün yuxarıda göstərilən nümunələrə baxın.

[İsteğe bağlı] mikro nəzarətçi və sensorları tozdan, sudan və digər təhdid edən ekoloji faktorlardan qorumaq üçün de IP67 korpusunun içərisinə yerləşdirin. Standart qutu yuxarıdakı fotoşəkillərdə göstərilənə bənzəyir.

Addım 4: Firmware Quraşdırması

Firmware Quraşdırması
Firmware Quraşdırması
Firmware Quraşdırması
Firmware Quraşdırması

Əvvəlcə Arduino IDE -də Feather Huzzah qurmalı və kodu tərtib etməlisiniz. Sadə bir yanıp sönmə testi edərək bu quruluşu yoxlamağı unutmayın. Feather cihazınızı bağlamaq haqqında daha çox məlumat üçün bu faydalı hardware quraşdırma təlimatına baxın.

Sensor məlumatlarını Ubidots IoT İnkişaf Platformasına göndərmək üçün aşağıdakı kodu kopyalayın və Arduino IDE -ə yapışdırın. Kodda göstərilən yerə Wi-Fi şəbəkə adını, şifrənizi və Ubidots hesab Tokeninizi təyin etməyi unutmayın.

/******************************** Kitabxanalar daxildir *************** **************** /#daxildir /****************************** ** Sabitlər və obyektlər ***************************** //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Buraya SSID nameconst char* SSID_PASS = "xxxxxxxx" qoyun; // Şifrənizi bura daxil edin char* TOKEN = "Assig_your_ubidots_token"; // Buraya TOKENconst char* DEVICE_LABEL = "motion-control" qoyun; // Cihazınızın etiketconst char* VARIABLE_LABEL = "məsafə"; // Dəyişən labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business istifadəçiləri // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Təhsil İstifadəçiləri HTTPPORT = 80;/ * Ultrasonik Sensor */const int pwPin1 = 5; // Sensorun qoşulduğu PWM pinWiFiClient clientUbi;/******************************* Yardımçı Funksiyalar *** **************************** // ** Bədənin uzunluğunu alır @arg dəyişən char tipli bədən @qaytar məlumatlarıLen */int dataLen dəyişəninin uzunluğu (char* dəyişən) {uint8_t dataLen = 0; for (int i = 0; i məsafə / 25.4* / float məsafəsi = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, məsafə); gecikmə (1000);} void sendToUbidots (const char* device_label, const char* dəyişən_abel), float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Göndəriləcək dəyərləri saxlamaq üçün yer * / char str_val [10]; /*---- Sensorların dəyərlərini char tipinə çevirir -----* / /*4 mininin eni, 2 dəqiqlik; float dəyəri str_val* / dtostrf üzərinə kopyalanır (sensor_value, 4, 2, str_val); /* İstəyə göndəriləcək bədən qurur* /sprintf (gövdə, "{"%s / ":%s}", dəyişən_abel, str_val); /* HTTP qurur POST */sprintf olmaq istəyi (data, "POST /api/v1.6/devices/%s", device_label); sprintf (data, "%s HTTP/1.1 / r / n", data); sprintf (data, "%sHost: things.ubidots.com / r / n", data); sprintf (data, "%sUser-Agent:%s/%s / r / n", data, USER_AGENT, VERSION); sprintf (data, " %sX-Auth-Token: %s / r / n", data, TOKEN); sprint f (data, "%sConnection: close / r / n", data); sprintf (data, "%sContent-Type: application/json / r / n", data); sprintf (data, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (data, "%s%s / r / n / r / n", data, body); / * İlk əlaqə */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Müştəri əlaqəsini yoxlayın */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Dəyişənlərinizin yerləşdirilməsi:")); Serial.println (məlumatlar); / * HTTP İstəyini göndər */ clientUbi.print (data); } / * Müştəri əlçatan olarkən serverin cavabını oxuyun * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Pulsuz yaddaş * / pulsuz (məlumat); pulsuz (bədən); / * Müştərini dayandırın */ clientUbi.stop ();}

ProTip: Arduino IDE -də serial monitoru açaraq cihazınızın düzgün bağlı olub olmadığını yoxlaya bilərsiniz.

Bir cihazın Ubidots arxa ucunuzda yaradıldığını hesabınızdakı Cihaz İdarəçiliyi -> Cihazlar bölməsində yoxlayaraq yoxlaya bilərsiniz.

Cihazınızı tıklayarak, sensorun oxunuşlarının saxlandığı "məsafə" adlı bir dəyişən tapacaqsınız. Bu ad, Arduino IDE -də yeni yapışdırdığınız kodda təyin edildi. Avtomatik dəyişənlərinizi tənzimləmək istəyirsinizsə, bunu cihaz kartını düzəltməklə və ya tətbiqiniz üçün doğru dəyişən nomenklaturası ilə yenilənmiş kodu yandırmaqla edin.

Feather HUZZAH ESP8266 bağlı və Ubidots-a məlumat verərək, Ubidots-un diqqətlə hazırlanmış kodsuz tətbiq konfiqurasiyasından istifadə edərək proqramı qurmağın vaxtı gəldi.

Addım 5: Ubidots Tətbiq İnkişafı

Ubidots Tətbiq İnkişafı
Ubidots Tətbiq İnkişafı
Ubidots Tətbiq İnkişafı
Ubidots Tətbiq İnkişafı
Ubidots Tətbiq İnkişafı
Ubidots Tətbiq İnkişafı

Ubidots Hadisə Konfiqurasiyası

Ubidotlara göndərdiyimiz cari oxunuşlar məsafə girişləridir. Bu oxunuşları istədiyimiz nəticəyə çevirmək üçün - sayılan vahidlər - bu addımları izləyən bir hadisə yaratmalıyıq:

  1. Mövcud "hərəkət-nəzarət" cihazının içərisində "qutular" adlanan yeni bir standart dəyişən yaradın və hər dəfə yeni vahid sayıldıqda 1 alacaq.
  2. Cihaz İdarəçiliyi -> Hadisələr bölməsinə gedin və yeni bir hadisə əlavə etmək üçün səhifənin sağ üst küncündəki mavi artı işarəsini vurun.
  3. Tədbirinizi "Tetiklerse" ilə başlayaraq konfiqurasiya edin:
  • Bir dəyişən seçin: "məsafə"
  • Dəyər: dəyər (standart)
  • Sensor və yanından keçən qutular arasında [maksimum gözlənilən məsafədən] az və ya bərabərdir*tətbiqimiz 500 mm tələb edir
  • 0 dəqiqə ərzində
  • Yadda saxla

4. Tetikleyiciler tətbiqinizin spesifikasiyalarına uyğun olaraq konfiqurasiya edildikdən sonra, şərti bir hərəkət əlavə etmək üçün sağ üst küncdəki narıncı "artı" işarəsini vurun.

5. Fəaliyyət olaraq "Dəyişən qoy" seçin.

6. Sonra, əvvəllər yaradılmış standart dəyişən "qutuları" seçin və "1" dəyərini seçin.

7. Dəyişiklikləri qeyd edin. Tədbir düzgün qurulsa, hər dəfə sensorla cihaz arasındakı məsafə göstərilən bir eşikdən daha uzun olduqda "1" göndərəcək və bu yaxınlıqda heç bir obyektin olmadığını göstərir - və yeni keçən bir vahidi saymalıdır..

Feather xüsusi cihaz kartında, vahidin varlığı hiss edildikdə "1" göndərildiyi dəyişən "qutuların" olduğunu görəcəksiniz.

Xüsusilə sənaye konveyer kəmərləri və bu prototipi hesablayan vahidlər üçün faydalıdır, sadəcə kodlaşdırma və ya tətbiqlərinizi inkişaf etdirmək üçün fərqli mühitə və ya qurğulara uyğunlaşdırıla bilər.

8. Hiss olunan vahidlərin sayını (və ya bir obyektin aşkarlandığı vaxtları) təsəvvür edin İndi "qutular" dəyişənindən istifadə edərək, "qutular" dəyişənindən alınan oxunuşların ümumi miqdarını cəmləmək üçün yeni bir yuvarlanan pəncərə dəyişəni yaradacağıq. müəyyən bir spam (dəqiqə, saat, gün, həftə və s.). Bu inkişafı həyata keçirmək üçün bu sadə addımları izləyin:

Aşağıdakı etimadnamələri yeni yuvarlanan pəncərə dəyişəninizə təyin edin

Bir cihaz seçin: hərəkətə nəzarət (və ya məlumatlarınızı göndərdiyiniz cihazın adı)

Dəyişən seçin: qutular

Cəmi hesablayın

Hər: "1" saat (və ya müraciətlərinizə uyğun olaraq)

İndi "qutular/saat" və ya "vahidlər/saatlar" kimi bir saatda sayılan qutuların (və ya hərəkətlərin) sayını göstərən yeni dəyişənə bir ad təyin edin.

Addım 6: Dashboard Konfiqurasiyaları

Dashboard Konfiqurasiyaları
Dashboard Konfiqurasiyaları

Nəhayət, hiss olunan hissələrin sayını göstərmək üçün bir tablosuna yaradın.

Cihaz İdarəçiliyi -> Tablosuna gedin və yeni bir widget əlavə edin. Bu widget saatlarla bölünmüş bu gün sayılan qutuların miqdarını göstərəcək.

Sayınızı görüntüləmək üçün yeni vidjetinizə aşağıdakı etimadnamələri atayın.

Verilərinizi necə görmək istərdiniz ?: Cədvəl

Bir widget növü seçin: xətt qrafiki

Bir cihaz əlavə edin: hərəkətə nəzarət

Dəyişən əlavə edin: qutular/saat

Bitirin. Və bu son idarəetmə paneli inkişafı ilə - tətbiqiniz tamamlandı və indi səmərəli və təsirli bir hərəkət və varlıq aşkarlama sisteminə sahibsiniz. İşdə nəticələrimizə son baxış.

Tövsiyə: