Мазмуну:

Arduino менен кыймылды аныктоо тутумун кантип куруу керек: 7 кадам
Arduino менен кыймылды аныктоо тутумун кантип куруу керек: 7 кадам

Video: Arduino менен кыймылды аныктоо тутумун кантип куруу керек: 7 кадам

Video: Arduino менен кыймылды аныктоо тутумун кантип куруу керек: 7 кадам
Video: Ардуино аркылуу 5V шамдын менен Control AC Лампа 2024, Июль
Anonim
Arduino менен Кыймылды аныктоо тутумун кантип куруу керек
Arduino менен Кыймылды аныктоо тутумун кантип куруу керек

Arduino менен программаланган жана Ubidots тарабынан иштелип чыккан Feather HUZZAHди колдонуп, кыймылдын жана катышуунун эсептегичтерин түзүңүз.

Акылдуу үйлөрдө жана акылдуу өндүрүштө физикалык кыймылдын жана катышуунун эффективдүүлүгү улгайган Ambient Assisted Living (AAL) чечимдеринен же чоңураак ӨКМди азыктандыруучу өндүрүштү эсептөө тутумунан тартып абдан пайдалуу болушу мүмкүн. Motion жана Presence Detection үчүн башка колдонмолор төмөнкүлөрдү камтыйт, бирок алар менен чектелбейт:

  1. Эшик жана дарбазаны автоматташтыруу
  2. Акысыз жерлерди белгилөө үчүн унаа токтоочу сенсорлор
  3. Алыстан танк деңгээлин көзөмөлдөө
  4. Жарык жана коопсуздук үчүн акылдуу үйлөр жана объекттер
  5. Конвейердик линияларда агрегаттарды табуу жана эсептөө
  6. Басылып чыккан материалдарда белгилерди аныктоо
  7. Картон, пластмасса жана кагаздын жанындагы суюктукту аныктоо
  8. Аралыкты аныктоо
  9. Эл эсептегичтер

Болушу жана кыймылы үчүн көптөгөн тиркемелер бар болсо да, сыйымдуу, индуктивдүү, фотоэлектрдик жана УЗИ сенсорлору сыяктуу маалыматтарды чогултуу үчүн бирдей көп сенсорлор бар. Чыгымдарга, экологиялык шарттарга жана тактык талаптарына жараша, айлана -чөйрөгө жана колдонмо талаптарына эң ылайыктуу жабдууларды тандоо керек.

Бул окуу куралы үчүн, биз реалдуу убакытта өндүрүш эсептегичин курууга басым жасайбыз; колдонмо конвейерде өтүп жаткан ар бир агрегатты эсептейт. Биз Arduino IDEди Feather HUZZAH ESP8266, УЗИ сенсорун жана Ubidots программасын иштеп чыгуу жана биздин IoT панелин көрсөтүү үчүн колдонобуз.

1 -кадам: талаптар

  1. Feather HUZZAH with ESP8266MB7389-100
  2. Ultrasonic Sensor
  3. Arduino IDE 1.8.2 же андан жогору
  4. Ubidots эсеби же STEM лицензиясы

2 -кадам: Орнотуу

  • I Аппараттык орнотуу
  • II. Камтылган программаны орнотуу
  • III. Ubidots Application Development (окуялар, өзгөрмөлөр жана такталар)

3 -кадам: Аппараттык орнотуу

Аппараттык орнотуу
Аппараттык орнотуу
Аппараттык орнотуу
Аппараттык орнотуу

Ultrasonic Sensor MB7389-100-IPv67 рейтингинин жардамы менен аба ырайынын татаал шарттарында кеңири диапазондогу жана аз энергия керектөө талаптары бар өнөр жай колдонмолору үчүн арзан баа.

Баштоо үчүн, төмөндөгү диаграмманы ультрадыбыштуу сенсорду Feather HUZZAH ESP8266ге тиркөө үчүн күзгүгө салыңыз.

ЭСКЕРТҮҮ: сенсор окуу аналогдук окуу же PWM катары кабыл алынышы мүмкүн; Төмөндө биз PWM окуу үчүн орнотууну түшүндүрөбүз, кошумча маалымат алуу үчүн жогоруда көрсөтүлгөн мисалдарды караңыз.

[Милдеттүү түрдө] микро контроллерди жана сенсорлорду чаңдан, суудан жана башка коркунучтуу экологиялык факторлордон коргоо үчүн de IP67 корпусунун ичине коюңуз. Стандарттык корпус жогорудагы сүрөттөрдө көрсөтүлгөнгө окшош.

4 -кадам: Программалык камсыздоону орнотуу

Камтылган программаны орнотуу
Камтылган программаны орнотуу
Камтылган программаны орнотуу
Камтылган программаны орнотуу

Биринчиден, Arduino IDEге Feather Huzzah орнотуп, кодду түзүшүңүз керек. Бул орнотууну текшерүү үчүн жөнөкөй ирмөө тестин унутпаңыз. Feather түзмөгүңүздү туташтыруу жөнүндө көбүрөөк маалымат алуу үчүн бул пайдалуу жабдыктарды орнотуу боюнча нускаманы караңыз.

Сенсордук маалыматтарды Ubidots IoT Development Platformго жөнөтүү үчүн, төмөнкү кодду Arduino IDEге көчүрүп чаптаңыз. Коддо көрсөтүлгөн жерге Wi-Fi тармагынын атын, сырсөзүн жана Ubidots аккаунтуңузду берүүнү унутпаңыз.

/******************************** Китепканалар камтылган *************** **************** /#камтыйт /****************************** ** Туруктуулар жана объекттер ***************************** //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Бул жакка SSID nameconst char* SSID_PASS = "xxxxxxxx" коюңуз; // Бул жерге сырсөзүңүздү коюңуз char* TOKEN = "Assig_your_ubidots_token"; // Бул жерге TOKENconst char* DEVICE_LABEL = "motion-control" коюңуз; // Сиздин түзмөктүн labelconst char* VARIABLE_LABEL = "расстояние"; // Сиздин өзгөрмө labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business колдонуучулары // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots билим берүү колдонуучулары HTTPPORT = 80;/ * Ultrasonic Sensor */const int pwPin1 = 5; // Сенсор туташкан PWM пиниWiFiClient clientUbi; **************************** // ** Дененин узундугун алат @arg өзгөрмөсү char типтеги @Return dataLen өзгөрмөнүн узундугу*/int dataLen (char* өзгөрмөлүү) {uint8_t dataLen = 0; үчүн (int i = 0; i расстояние / 25.4* / калкып жүрүүчү аралык = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, аралык); кечиктирүү (1000);} void sendToUbidots (const char* device_label, const char* variable_label, float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Жөнөтүлө турган баалуулуктарды сактоо мейкиндиги * / char str_val [10]; /*---- Сенсорлордун маанилерин char түрүнө которот -----* / /*4-мининин туурасы, 2-тактык; калкыма мааниси str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Сурамга жөнөтүлө турган денени курат* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* HTTP курат POST болууну сурануу */sprintf (маалыматтар, "POST /api/v1.6/devices/%s", device_label); sprintf (маалыматтар, "%s HTTP/1.1 / r / n", маалыматтар); sprintf (берилиштер), "%sHost: things.ubidots.com / r / n", маалыматтар); sprintf (маалыматтар, "%sUser-Agent:%s/%s / r / n", маалыматтар, USER_AGENT, VERSION); sprintf (маалыматтар, " %sX-Auth-Token: %s / r / n", маалыматтар, TOKEN); спринт f (берилиштер, "%sConnection: close / r / n", data); sprintf (маалыматтар, "%sContent-Type: application/json / r / n", маалыматтар); sprintf (маалыматтар, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (маалыматтар, "%s%s / r / n / r / n", маалыматтар, дене); / * Алгачкы байланыш */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Кардардын байланышын текшерүү */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Өзгөрмөлөрүңүздү жайгаштыруу:")); Serial.println (маалыматтар); / * HTTP сурамын жөнөтүү */ clientUbi.print (маалыматтар); } / * Кардар жеткиликтүү болгондо, сервердин жообун окуңуз * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Бош эс * / бош (маалыматтар); бекер (дене); / * Кардарды токтотуу */ clientUbi.stop ();}

ProTip: сиз Arduino IDEдеги сериялык мониторду ачуу менен түзмөгүңүздүн туура туташканын текшере аласыз.

Түзмөктү Ubidots арткы бетиңизде түзүлгөндүгүн текшере аласыз, аны аккаунтуңуздан көрүп Аспаптарды башкаруу -> Түзмөктөр.

Түзмөгүңүздү чыкылдатуу менен сенсордун көрсөткүчтөрү сакталган "аралык" деп аталган өзгөрмөнү таба аласыз. Бул ат Arduino IDEге жаңы эле чапталган кодго коюлган. Эгерде сиз автоматтык өзгөрмөлөрүңүздү тууралоону кааласаңыз, анда аны түзмөктүн картасын түзөтүү же колдонмоңуз үчүн туура өзгөрмөлүү номенклатурасы бар жаңыртылган кодду жаркыроо аркылуу жасаңыз.

Feather HUZZAH ESP8266 Ubidotsко туташкан жана отчеттук маалыматтар менен, Ubidots кылдат иштелип чыккан кодсуз колдонмонун конфигурациясын колдонуу менен тиркемени курууга убакыт келди.

5 -кадам: Ubidots тиркемесин иштеп чыгуу

Ubidots Колдонмо иштеп чыгуу
Ubidots Колдонмо иштеп чыгуу
Ubidots Колдонмо иштеп чыгуу
Ubidots Колдонмо иштеп чыгуу
Ubidots Колдонмо иштеп чыгуу
Ubidots Колдонмо иштеп чыгуу

Ubidots окуя конфигурациясы

Биз Убидотко жөнөтүп жаткан учурдагы көрсөткүчтөр - бул аралыктан киргизүү. Бул көрсөткүчтөрдү биз каалаган керектүү чыгарууга которуу үчүн - эсептелген бирдиктер - бул кадамдарды аткарган окуяны түзүүбүз керек:

  1. Учурдагы "кыймылды көзөмөлдөө" түзмөгүнүн ичинде "кутулар" деп аталган жаңы демейки өзгөрмөнү түзүңүз, ал жаңы бирдик эсептелген сайын 1 алат.
  2. Түзмөктү башкаруу -> Окуяларга барыңыз жана жаңы окуя кошуу үчүн беттин жогорку оң бурчундагы көк плюс сөлөкөтүн чыкылдатыңыз.
  3. Окуяңызды "Эгерде триггерлер" менен баштаңыз:
  • Өзгөрмөнү тандаңыз: "аралык"
  • Мааниси: мааниси (демейки)
  • Сенсор менен*өтүп жаткан кутучалардын ортосундагы [максималдуу күтүлгөн аралыктан] азыраак же барабар биздин колдонмо 500ммди талап кылат
  • 0 мүнөткө
  • Сактоо

4. Триггерлер колдонмоңуздун өзгөчөлүктөрүнө ылайыкташтырылган соң, шарттуу аракетти кошуу үчүн жогорку оң бурчтагы кызгылт сары "плюс" белгисин басыңыз.

5. Аракет катары "Variable коюу" тандаңыз.

6. Андан кийин, мурда түзүлгөн демейки "кутучаларды" жана "1" маанисин тандаңыз.

7. Өзгөртүүлөрдү сактоо. Эгерде иш -чара туура орнотулган болсо, анда ал сенсор менен агрегаттын ортосундагы аралык көрсөтүлгөн чектен узагыраак болгондо "1" жөнөтөт, бул жакын жерде эч кандай объект жок экенин көрсөтүп турат - жана жаңы эле өтүп кеткен бирдикти эсептеши керек.

Feather конкреттүү түзмөк картасында, бирдиктин катышуусу сезилгенде, "1" жөнөтүлүүчү өзгөрмө "кутулар" экенин таба аласыз.

Өзгөчө бул прототипти эсептөө үчүн өндүрүштүк конвейердик ленталар жана бирдиктер ар кандай чөйрөлөргө же жабдууларга ылайыкташтырылып, жөн гана коддоого же тиркемелерди иштеп чыгууга ыңгайлаштырылышы мүмкүн.

8. Сезилген бирдиктердин санын элестетип көрүңүз (же объект аныкталган учурлар) Эми, "ящиктер" өзгөрмөсүн колдонуп, биз "ящиктерден" алынган өзгөрүүлөрдүн жалпы суммасын чогултуу үчүн жаңы жылма терезе өзгөрмөсүн түзөбүз. аныкталган спам (мүнөт, саат, күн, жума ж. б.). Бул өнүгүүнү ишке ашыруу үчүн, бул жөнөкөй кадамдарды:

Төмөнкү грамоталарды жаңы жылдыруучу терезе өзгөрмөсүнө дайындаңыз

Түзмөктү тандаңыз: кыймылды көзөмөлдөө (же маалыматыңызды жөнөтүп жаткан түзмөктүн аты)

Өзгөрмөнү тандаңыз: кутулар

Сумманы эсептөө: сумма

Ар бир: "1" саат (же сиздин өтүнмөлөрүңүз боюнча)

Эми жаңы кутучаларга бир саатта эсептелген кутучалардын (же кыймылдардын) санын көрсөтүүчү ат коюңуз, "кутулар/саат" же "бирдиктер/сааттар" сыяктуу.

6 -кадам: Куралдар тактасынын конфигурациялары

Куралдар тактасынын конфигурациялары
Куралдар тактасынын конфигурациялары

Акырында, сезилген бирдиктердин санын көрсөтүү үчүн тактаны түзүңүз.

Түзмөктү башкаруу -> Куралдар тактасына өтүп, жаңы виджет кошуңуз. Бул виджет саатка бөлүнгөн эсептелген кутучалардын санын көрсөтөт.

Санаңызды элестетүү үчүн жаңы виджетке төмөнкү грамоталарды тапшырыңыз.

Маалыматыңызды кантип көргүңүз келет ?: Диаграмма

Виджеттин түрүн тандаңыз: сызыктуу диаграмма

Түзмөктү кошуу: кыймылды көзөмөлдөө

Өзгөрмөнү кошуу: кутулар/саат

Бүтүрүү. Жана бул акыркы тактаны иштеп чыгуу менен - сиз өтүнмөңүз толук жана сизде эффективдүү жана эффективдүү кыймыл жана катышууну аныктоо тутуму бар. Бул жерде биздин жыйынтыктарыбыздын акыркы көрүнүшү.

Сунушталууда: