Mundarija:

Arduino yordamida harakatni aniqlash tizimini qanday qurish mumkin: 7 qadam
Arduino yordamida harakatni aniqlash tizimini qanday qurish mumkin: 7 qadam

Video: Arduino yordamida harakatni aniqlash tizimini qanday qurish mumkin: 7 qadam

Video: Arduino yordamida harakatni aniqlash tizimini qanday qurish mumkin: 7 qadam
Video: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, Iyul
Anonim
Arduino yordamida harakatni aniqlash tizimini qanday qurish mumkin
Arduino yordamida harakatni aniqlash tizimini qanday qurish mumkin

Arduino bilan dasturlashtirilgan va Ubidots tomonidan boshqariladigan Feat HUZZAH yordamida harakat va mavjudlik hisoblagichini yarating.

Aqlli uylar va aqlli ishlab chiqarishda jismoniy harakat va mavjudlikni samarali aniqlash, keksa Ambient Assisted Living (AAL) echimlari yoki katta MESni ta'minlaydigan ishlab chiqarishni hisoblash tizimidan tortib, juda foydali bo'lishi mumkin. Harakat va mavjudlikni aniqlash uchun boshqa ilovalar quyidagilarni o'z ichiga oladi, lekin ular bilan cheklanmaydi.

  1. Eshik va eshiklarni avtomatlashtirish
  2. Avtoturargoh sensori bo'sh joylarni belgilaydi
  3. Tank sathining masofaviy monitoringi
  4. Yorug'lik va xavfsizlik uchun aqlli uylar va inshootlar
  5. Konveyer liniyalarida birliklarni aniqlash va hisoblash
  6. Bosilgan materiallarda markirovkani aniqlash
  7. Suyuqlikni aniqlash karton, plastmassa va qog'oz burmalarida
  8. Masofani aniqlash
  9. Odamlar hisoblagichlari

Borish va harakatlanish uchun ko'plab ilovalar mavjud bo'lsa -da, ma'lumotlarni yig'ish uchun sig'imli, induktiv, fotoelektrik va ultrasonik datchiklar kabi bir xil sensorlar mavjud. Xarajatlar, atrof -muhit sharoitlari va aniqlik talablariga qarab, atrof -muhit va dastur talablariga eng mos keladigan uskunani tanlash kerak.

Ushbu qo'llanma uchun biz real vaqtda ishlab chiqarish hisoblagichini qurishga e'tibor qaratamiz; ilova konveyerdan o'tayotgan har bir birlikni hisoblab chiqadi. Biz Arduino IDE -dan Feather HUZZAH ESP8266, ultratovush sensori va Ubidot -ni dasturimizni ishlab chiqish va IoT boshqaruv panelini ko'rsatish uchun ishlatamiz.

1 -qadam: talablar

  1. HUZZAH tuklar ESP8266MB7389-100 bilan
  2. Ultrasonik sensor
  3. Arduino IDE 1.8.2 yoki undan yuqori
  4. Ubidots hisobi yoki STEM litsenziyasi

2 -qadam: sozlash

  • I Uskunani sozlash
  • II. Dasturiy ta'minotni sozlash
  • III. Ubidots ilovalarini ishlab chiqish (hodisalar, o'zgaruvchilar va boshqaruv paneli)

3 -qadam: Uskuna sozlamalari

Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash

Ultrasonik sensor MB7389-100-IPv67 reytingi tufayli qiyin ob-havo sharoitida keng diapazonli va kam quvvat iste'moli bo'lgan sanoat dasturlari uchun arzon variant.

Boshlash uchun ultratovush sensorini Feather HUZZAH ESP8266 ga ulash uchun quyidagi diagrammani aks ettiring.

QAYD: Sensor o'qilishi analog o'qish yoki PWM sifatida qabul qilinishi mumkin; quyida biz PWM o'qishni sozlashni tushuntirmoqchimiz, qo'shimcha ma'lumot uchun yuqorida ko'rsatilgan misollarni ko'ring.

[Ixtiyoriy ravishda] mikro-kontroller va datchiklarni chang, suv va boshqa tahdidli ekologik omillardan himoya qilish uchun de IP67 korpusining ichiga joylashtiring. Standart quti yuqoridagi fotosuratlarda ko'rsatilganiga o'xshaydi.

4 -qadam: dasturiy ta'minotni sozlash

Dasturiy ta'minotni sozlash
Dasturiy ta'minotni sozlash
Dasturiy ta'minotni sozlash
Dasturiy ta'minotni sozlash

Birinchidan, siz Arduino IDE -ga Feather Huzzah -ni o'rnatishingiz va kodni kompilyatsiya qilishingiz kerak. Oddiy miltillovchi test yordamida ushbu sozlamani tekshirishni unutmang. Feather qurilmangizni ulash haqida qo'shimcha ma'lumot olish uchun ushbu yordamchi uskunani sozlash bo'yicha qo'llanmani ko'rib chiqing.

Sensor ma'lumotlarini Ubidots IoT ishlab chiqish platformasiga yuborish uchun quyidagi kodni Arduino IDE -ga nusxa ko'chiring va joylashtiring. Kodda ko'rsatilgan Wi-Fi tarmog'ining nomi, parolini va Ubidots hisob qaydnomangizni belgilashni unutmang.

/******************************** Kutubxonalar kiritilgan *************** **************** /#o'z ichiga oladi /****************************** ** Konstantalar va ob'ektlar ***************************** //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Bu yerga SSID nomenklatorini qo'ying* SSID_PASS = "xxxxxxxx"; // Parolni bu erga qo'ying char* TOKEN = "Assig_your_ubidots_token"; // Bu erga TOKENconst char* DEVICE_LABEL = "harakatni boshqarish" ni qo'ying; // Sizning qurilmangiz yorlig'i charcon* VARIABLE_LABEL = "masofa"; // Sizning o'zgaruvchan labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business foydalanuvchilari // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots ta'lim foydalanuvchilari HTTPPORT = 80;/ * Ultrasonik sensor */const int pwPin1 = 5; // Sensor ulangan PWM -pinWiFiClient clientUbi; **************************** // ** @arg o'zgaruvchisi tanasining uzunligini oladi char @return dataLen o'zgaruvchining uzunligi*/int dataLen (char* o'zgaruvchi) {uint8_t dataLen = 0; for (int i = 0; i masofa / 25.4* / suzuvchi masofa = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, masofa); kechikish (1000);} void sendToUbidots (const char* device_label, const char* o'zgaruvchi_label), float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Yuborish uchun qiymatlarni saqlash uchun bo'sh joy * / char str_val [10]; /*---- Sensorlarning qiymatlarini char turiga o'zgartiradi -----* / /*4-mininum kengligi, 2-aniqlik; float qiymati str_val* / dtostrf (sensor_value, 4, 2, str_val); /* so'rovga yuboriladigan tanani quradi* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* HTTP tuzadi POST */sprintf bo'lishni so'rash (ma'lumotlar, "POST /api/v1.6/devices/%s", device_label); sprintf (ma'lumotlar, "%s HTTP/1.1 / r / n", ma'lumotlar); sprintf (ma'lumotlar, "%sHost: things.ubidots.com / r / n", ma'lumotlar); sprintf (ma'lumotlar, "%sUser-Agent:%s/%s / r / n", ma'lumotlar, USER_AGENT, VERSION); sprintf (ma'lumotlar, " %sX-Auth-Token: %s / r / n", ma'lumotlar, TOKEN); sprint f (ma'lumotlar, "%sConnection: / r / n yopish", ma'lumotlar); sprintf (ma'lumotlar, "%sContent-Type: application/json / r / n", ma'lumotlar); sprintf (ma'lumotlar, " %sContent-Length: %d / r / n / r / n", ma'lumotlar, dataLen (tana)); sprintf (ma'lumotlar, "%s%s / r / n / r / n", ma'lumotlar, tanasi); / * Dastlabki ulanish */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Mijoz ulanishini tasdiqlang */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("O'zgaruvchilaringizni joylashtirish:")); Serial.println (ma'lumotlar); / * HTTP so'rovini yuborish */ clientUbi.print (ma'lumotlar); } / * Mijoz mavjud bo'lganda server javobini o'qing * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Bo'sh xotira * / bo'sh (ma'lumotlar); bepul (tana); / * Mijozni to'xtatish */ clientUbi.stop ();}

ProTip: Arduino IDE -da ketma -ket monitorni ochish orqali qurilmangiz to'g'ri ulanganligini tekshirishingiz mumkin.

Qurilmani Ubidots orqa panelda yaratilganligini uning hisob qaydnomasida ko'rish orqali tekshirishingiz mumkin Qurilmalarni boshqarish -> Qurilmalar.

Qurilmani bosish orqali siz sensorning o'qishlari saqlanadigan "masofa" deb nomlangan o'zgaruvchini topasiz. Bu nom Arduino IDE -da siz kiritgan kodda berilgan. Agar siz avtomatik o'zgaruvchilarni sozlashni xohlasangiz, iltimos, Qurilma kartasini tahrir qiling yoki ilovangiz uchun to'g'ri o'zgaruvchi nomenklaturasi bilan yangilangan kodni o'chiring.

Feather HUZZAH ESP8266 ulanishi va Ubidots-ga ma'lumot berish bilan, endi Ubidots-ning puxta ishlab chiqilgan kodsiz dastur konfiguratsiyasi yordamida dastur yaratish vaqti keldi.

5 -qadam: Ubidots ilovasini ishlab chiqish

Ubidots ilovasini ishlab chiqish
Ubidots ilovasini ishlab chiqish
Ubidots ilovasini ishlab chiqish
Ubidots ilovasini ishlab chiqish
Ubidots ilovasini ishlab chiqish
Ubidots ilovasini ishlab chiqish

Ubidots tadbir konfiguratsiyasi

Ubidotlarga yuborayotgan joriy o'qishlar masofaviy kirishlardir. Ushbu o'qishni biz xohlagan natijaga aylantirish uchun - hisoblangan birliklar - biz quyidagi bosqichlarni bajarib voqea yaratishimiz kerak:

  1. "Harakatni boshqarish" joriy qurilmasi ichida "qutilar" deb nomlangan yangi standart o'zgaruvchini yarating, u har safar yangi birlik hisoblanganida 1 oladi.
  2. Qurilmalarni boshqarish -> Voqealar bo'limiga o'ting va yangi voqea qo'shish uchun sahifaning o'ng yuqori burchagidagi ko'k ortiqcha belgisini bosing.
  3. Tadbirni "Agar tetiklansa" bilan boshlang:
  • O'zgaruvchini tanlang: "masofa"
  • Qiymat: qiymat (standart)
  • Sensor va*o'tayotgan qutilar orasidagi masofa [kutilgan maksimal masofadan] kamroq yoki unga teng, bizning ilovamiz 500 mm
  • 0 daqiqa davomida
  • Saqlash

4. Triggerlar ilovangiz spetsifikatsiyalariga moslashtirilgandan so'ng, shartli amal qo'shish uchun yuqori o'ng burchakdagi to'q sariq rangli "ortiqcha" belgisini bosing.

5. Amal sifatida "O'zgaruvchini o'rnatish" -ni tanlang.

6. Keyin, avval yaratilgan standart "qutilar" o'zgaruvchisini va "1" qiymatini tanlang.

7. O'zgarishlarni saqlang. Agar voqea to'g'ri sozlangan bo'lsa, u har safar sensor bilan birlik orasidagi masofa ko'rsatilgan chegaradan uzunroq bo'lganda "1" ni yuboradi, bu esa yaqin atrofda hech qanday ob'ekt yo'qligini ko'rsatadi va yaqinda o'tgan yangi birlikni hisoblashi kerak..

Feather Device kartasida siz birlik mavjudligini sezganingizda "1" yuboriladigan o'zgaruvchi "qutilar" ni topasiz.

Ayniqsa, sanoat konveyer bantlari uchun foydali bo'lgan va bu prototipni sanab o'tadigan birliklar faqat sizning kodlash yoki ilovalaringizni ishlab chiqarishda har xil muhit yoki uskunalarga moslashtirilishi mumkin.

8. Hisoblangan birliklar sonini tasavvur qiling (yoki ob'ekt aniqlangan vaqt) Endi "qutilar" o'zgaruvchisidan foydalanib, biz "qutilar" o'zgaruvchisidan olingan o'qishlar umumiy miqdorini yig'ish uchun yangi oynali o'zgaruvchini yaratmoqchimiz. belgilangan spam (daqiqa, soat, kun, hafta va boshqalar). Rivojlanishni amalga oshirish uchun quyidagi oddiy qadamlarni bajaring:

Quyidagi hisob ma'lumotlarini yangi oynali o'zgaruvchiga tayinlang

Qurilmani tanlang: harakatni boshqarish (yoki ma'lumotlaringizni yuborayotgan qurilmaning nomi)

O'zgaruvchini tanlang: qutilar

Summani hisoblang

Har: "1" soat (yoki sizning talablaringiz bo'yicha)

Endi "qutilar/soat" yoki "birliklar/soat" kabi bir soat ichida hisoblangan qutilar (yoki harakatlar) sonini ko'rsatadigan yangi o'zgaruvchiga nom bering.

6 -qadam: boshqaruv paneli konfiguratsiyasi

Boshqaruv paneli konfiguratsiyasi
Boshqaruv paneli konfiguratsiyasi

Nihoyat, sezilgan birliklar sonini ko'rsatish uchun asboblar panelini yarating.

Qurilmalarni boshqarish -> Boshqarish paneliga o'ting va yangi vidjet qo'shing. Bu vidjetda bugun sanab o'tilgan qutilar soni soat bo'yicha bo'linadi.

Hisobingizni vizualizatsiya qilish uchun yangi vidjetga quyidagi hisob ma'lumotlarini bering.

Ma'lumotlaringizni qanday ko'rishni xohlaysiz ?: Grafik

Vidjet turini tanlang: chiziqli jadval

Qurilmani qo'shing: harakatni boshqarish

O'zgaruvchini qo'shing: qutilar/soat

Tugatish. Va asboblar panelining yakuniy ishlab chiqilishi bilan - sizning arizangiz tugallandi va sizda harakat va mavjudlikni aniqlashning samarali va samarali tizimi mavjud. Mana bizning natijalarimizning yakuniy ko'rinishi.

Tavsiya: