Mündəricat:
- Addım 1: Tələblər
- Addım 2: Quraşdırma
- Addım 3: Hardware Setup
- Addım 4: Firmware Quraşdırması
- Addım 5: Ubidots Tətbiq İnkişafı
- Addım 6: Dashboard Konfiqurasiyaları
Video: Arduino ilə Hərəkət Algılama Sistemini Necə Yaratmaq olar: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
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:
- Qapı və qapı avtomatlaşdırılması
- Sərbəst yerlər təyin etmək üçün park sensorlar
- Tank səviyyəsinin uzaqdan izlənməsi
- İşıqlandırma və təhlükəsizlik üçün ağıllı evlər və qurğular
- Konveyer xətlərində vahidlərin aşkarlanması və sayılması
- Çap olunmuş materiallarda işarələrin aşkarlanması
- Karton, plastik və kağız əyilmələrində maye aşkarlanması
- Məsafənin aşkarlanması
- İ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
- ESP8266MB7389-100 ilə HUZZAH lələk
- Ultrasonik Sensor
- Arduino IDE 1.8.2 və ya daha yüksək
- 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
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ı
Ə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 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:
- 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.
- 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.
- 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ı
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ə:
İcazəsiz Simsiz Giriş Nöqtələrinə Nəzarət Sistemini Necə Yaratmaq olar: 34 Addım
İcazəsiz Simsiz Giriş Nöqtələri üçün Nəzarət Sistemini Necə Yaratmaq olar: Saludos lektorları. Təlimatlar təqdim edildikdə, Raspberry PI sistemində heç bir məlumat yoxdur, çünki bu sistemdə heç bir məlumat yoxdur
Linux Boot Sürücüsünü Necə Yaratmaq olar (və Necə İstifadə Edilir): 10 Addım
Linux Boot Sürücüsünü Necə Yaratmaq olar (və Necə İstifadə Edilir): Bu Linux, xüsusən də Ubuntu ilə necə başlayacağınıza dair sadə bir girişdir
Arduino ilə tonları necə yaratmaq olar: 3 addım
Arduino ilə Tonları Necə Yaratmaq olar: Bu təlimatda Arduino ilə ton yaradan bir dövrə düzəltdim. Sadə və sürətli layihələr qurmağı çox sevirəm. Budur, bu cür sadə bir layihə.Bu, tam olaraq Arduino veb saytının sənədlərindən istifadə edərək hazırladığım bir şou və proyektdir
Arduino Security 3G/GPRS E -poçt Kamerası ilə Hərəkət Algılama: 4 Addım
Arduino Security 3G/GPRS E -poçt Kamerası ilə Hərəkət Algılama: Bu təlimatda, hərəkət detektoru olan bir təhlükəsizlik nəzarət sistemi qurmağın və 3G/GPRS qalxanı vasitəsilə poçt qutusuna fotoşəkillər göndərməyin bir versiyasından bəhs etmək istəyirəm. digər təlimatlar: təlimat 1 və təlimat
Guardian V1.0 --- Arduino ilə Qapı Delikli Kamerasını Təkmilləşdirmək (Hərəkət Algılama Qeydləri və Elektrik Şoku Xüsusiyyətləri): 5 Addım
Guardian V1.0 ||| Arduino ilə Qapı Delikli Kamerasını Təkmilləşdirmək (Hərəkət Algılama Qeydləri və Elektrik Şoku Xüsusiyyətləri): Bir göz qapağı kamerası sifariş verdim, amma istifadə edərkən heç bir avtomatik qeyd etmə funksiyasının olmadığını (hərəkətin aşkarlanması ilə aktivləşdirildiyini) anladım. Sonra bunun necə işlədiyini araşdırmağa başladım. Video çəkmək üçün 1- güc düyməsini 2 saniyəyə yaxın saxlamalısınız