Мазмуну:
- 1 -кадам: талаптар
- 2 -кадам: Орнотуу
- 3 -кадам: Аппараттык орнотуу
- 4 -кадам: Программалык камсыздоону орнотуу
- 5 -кадам: Ubidots тиркемесин иштеп чыгуу
- 6 -кадам: Куралдар тактасынын конфигурациялары
Video: Arduino менен кыймылды аныктоо тутумун кантип куруу керек: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Arduino менен программаланган жана Ubidots тарабынан иштелип чыккан Feather HUZZAHди колдонуп, кыймылдын жана катышуунун эсептегичтерин түзүңүз.
Акылдуу үйлөрдө жана акылдуу өндүрүштө физикалык кыймылдын жана катышуунун эффективдүүлүгү улгайган Ambient Assisted Living (AAL) чечимдеринен же чоңураак ӨКМди азыктандыруучу өндүрүштү эсептөө тутумунан тартып абдан пайдалуу болушу мүмкүн. Motion жана Presence Detection үчүн башка колдонмолор төмөнкүлөрдү камтыйт, бирок алар менен чектелбейт:
- Эшик жана дарбазаны автоматташтыруу
- Акысыз жерлерди белгилөө үчүн унаа токтоочу сенсорлор
- Алыстан танк деңгээлин көзөмөлдөө
- Жарык жана коопсуздук үчүн акылдуу үйлөр жана объекттер
- Конвейердик линияларда агрегаттарды табуу жана эсептөө
- Басылып чыккан материалдарда белгилерди аныктоо
- Картон, пластмасса жана кагаздын жанындагы суюктукту аныктоо
- Аралыкты аныктоо
- Эл эсептегичтер
Болушу жана кыймылы үчүн көптөгөн тиркемелер бар болсо да, сыйымдуу, индуктивдүү, фотоэлектрдик жана УЗИ сенсорлору сыяктуу маалыматтарды чогултуу үчүн бирдей көп сенсорлор бар. Чыгымдарга, экологиялык шарттарга жана тактык талаптарына жараша, айлана -чөйрөгө жана колдонмо талаптарына эң ылайыктуу жабдууларды тандоо керек.
Бул окуу куралы үчүн, биз реалдуу убакытта өндүрүш эсептегичин курууга басым жасайбыз; колдонмо конвейерде өтүп жаткан ар бир агрегатты эсептейт. Биз Arduino IDEди Feather HUZZAH ESP8266, УЗИ сенсорун жана Ubidots программасын иштеп чыгуу жана биздин IoT панелин көрсөтүү үчүн колдонобуз.
1 -кадам: талаптар
- Feather HUZZAH with ESP8266MB7389-100
- Ultrasonic Sensor
- Arduino IDE 1.8.2 же андан жогору
- 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 окуя конфигурациясы
Биз Убидотко жөнөтүп жаткан учурдагы көрсөткүчтөр - бул аралыктан киргизүү. Бул көрсөткүчтөрдү биз каалаган керектүү чыгарууга которуу үчүн - эсептелген бирдиктер - бул кадамдарды аткарган окуяны түзүүбүз керек:
- Учурдагы "кыймылды көзөмөлдөө" түзмөгүнүн ичинде "кутулар" деп аталган жаңы демейки өзгөрмөнү түзүңүз, ал жаңы бирдик эсептелген сайын 1 алат.
- Түзмөктү башкаруу -> Окуяларга барыңыз жана жаңы окуя кошуу үчүн беттин жогорку оң бурчундагы көк плюс сөлөкөтүн чыкылдатыңыз.
- Окуяңызды "Эгерде триггерлер" менен баштаңыз:
- Өзгөрмөнү тандаңыз: "аралык"
- Мааниси: мааниси (демейки)
- Сенсор менен*өтүп жаткан кутучалардын ортосундагы [максималдуу күтүлгөн аралыктан] азыраак же барабар биздин колдонмо 500ммди талап кылат
- 0 мүнөткө
- Сактоо
4. Триггерлер колдонмоңуздун өзгөчөлүктөрүнө ылайыкташтырылган соң, шарттуу аракетти кошуу үчүн жогорку оң бурчтагы кызгылт сары "плюс" белгисин басыңыз.
5. Аракет катары "Variable коюу" тандаңыз.
6. Андан кийин, мурда түзүлгөн демейки "кутучаларды" жана "1" маанисин тандаңыз.
7. Өзгөртүүлөрдү сактоо. Эгерде иш -чара туура орнотулган болсо, анда ал сенсор менен агрегаттын ортосундагы аралык көрсөтүлгөн чектен узагыраак болгондо "1" жөнөтөт, бул жакын жерде эч кандай объект жок экенин көрсөтүп турат - жана жаңы эле өтүп кеткен бирдикти эсептеши керек.
Feather конкреттүү түзмөк картасында, бирдиктин катышуусу сезилгенде, "1" жөнөтүлүүчү өзгөрмө "кутулар" экенин таба аласыз.
Өзгөчө бул прототипти эсептөө үчүн өндүрүштүк конвейердик ленталар жана бирдиктер ар кандай чөйрөлөргө же жабдууларга ылайыкташтырылып, жөн гана коддоого же тиркемелерди иштеп чыгууга ыңгайлаштырылышы мүмкүн.
8. Сезилген бирдиктердин санын элестетип көрүңүз (же объект аныкталган учурлар) Эми, "ящиктер" өзгөрмөсүн колдонуп, биз "ящиктерден" алынган өзгөрүүлөрдүн жалпы суммасын чогултуу үчүн жаңы жылма терезе өзгөрмөсүн түзөбүз. аныкталган спам (мүнөт, саат, күн, жума ж. б.). Бул өнүгүүнү ишке ашыруу үчүн, бул жөнөкөй кадамдарды:
Төмөнкү грамоталарды жаңы жылдыруучу терезе өзгөрмөсүнө дайындаңыз
Түзмөктү тандаңыз: кыймылды көзөмөлдөө (же маалыматыңызды жөнөтүп жаткан түзмөктүн аты)
Өзгөрмөнү тандаңыз: кутулар
Сумманы эсептөө: сумма
Ар бир: "1" саат (же сиздин өтүнмөлөрүңүз боюнча)
Эми жаңы кутучаларга бир саатта эсептелген кутучалардын (же кыймылдардын) санын көрсөтүүчү ат коюңуз, "кутулар/саат" же "бирдиктер/сааттар" сыяктуу.
6 -кадам: Куралдар тактасынын конфигурациялары
Акырында, сезилген бирдиктердин санын көрсөтүү үчүн тактаны түзүңүз.
Түзмөктү башкаруу -> Куралдар тактасына өтүп, жаңы виджет кошуңуз. Бул виджет саатка бөлүнгөн эсептелген кутучалардын санын көрсөтөт.
Санаңызды элестетүү үчүн жаңы виджетке төмөнкү грамоталарды тапшырыңыз.
Маалыматыңызды кантип көргүңүз келет ?: Диаграмма
Виджеттин түрүн тандаңыз: сызыктуу диаграмма
Түзмөктү кошуу: кыймылды көзөмөлдөө
Өзгөрмөнү кошуу: кутулар/саат
Бүтүрүү. Жана бул акыркы тактаны иштеп чыгуу менен - сиз өтүнмөңүз толук жана сизде эффективдүү жана эффективдүү кыймыл жана катышууну аныктоо тутуму бар. Бул жерде биздин жыйынтыктарыбыздын акыркы көрүнүшү.
Сунушталууда:
WiFi эскертүүлөрү менен DIY автоматтык өсүмдүктөрдү сугаруу тутумун кантип куруу керек: 15 кадам
WiFi эскертүүлөрү менен DIY автоматтык өсүмдүктөрдү сугаруу тутумун кантип куруу керек: Бул даяр долбоор, DIY автоматтык өсүмдүктөрдү сугаруу системасы #WiFi аркылуу көзөмөлдөнөт. Бул долбоор үчүн биз Adosiaдан чыккан өзүн -өзү сугаруучу автоматтык бакча системасынын жыйнагын колдондук. Бул орнотууда электромагниттик суу клапандары жана аналогдуу топурак mois колдонулат
Кыймылды аныктоо сигнализация системасы: 11 кадам (Сүрөттөр менен)
Кыймылды аныктоо сигнализация системасы: Эскертүү! Реактивдүү блокторду мындан ары жүктөп алууга болбойт. Негизги USB камера бөлмөдө кыймылды аныктоо үчүн колдонулушу мүмкүн. Кийинки кадамдарда биз сизге SMS жөнөтүүчү Java тиркемесин иштетүү үчүн реактивдүү блокторду кантип колдонсоңуз болорун көрсөтөбүз
Guardian V1.0 --- Door Peephole камерасын Arduino менен жаңыртуу (Кыймылды аныктоо жазуусу жана Электр Шокунун Өзгөчөлүктөрү): 5 кадам
Guardian V1.0 ||| Door Peephole камерасын Arduino менен жаңыртуу (Motion Detection Recording & Electric Shock Features): Мен көзөнөк камерасына буйрук бергем, бирок мен аны колдонгондо автоматтык түрдө жазуу функциясы жок экенин түшүндүм (кыймыл аныктоо менен иштетилген). Анан мен анын кантип иштээрин изилдей баштадым.Видеону жаздыруу үчүн, 1- кубат баскычын дээрлик 2 секунда кармап туруу керек
Гитаранын спикери кутучасын кантип куруу керек же стерео үчүн экөөнү кантип куруу керек: 17 кадам (сүрөттөр менен)
Гитаранын спикери кутучасын кантип куруу керек же стерео үчүн экөөнү кантип куруу керек?: Мен куруп жаткан түтүк амп менен жаңы гитаралык спикердин барышын кааладым. Баяндамачы менин дүкөнүмдө калат, андыктан өзгөчө бир нерсенин кереги жок. Толекс жабуусу өтө оңой эле бузулуп калышы мүмкүн, ошондуктан мен кумдун артынан сыртын кара чачтым
Кыймылды көзөмөлдөгөн розетка - Кыймылды сезүүчү жарыктан: 6 кадам
Кыймылды көзөмөлдөгөн розетка - Кыймылды сезүүчү жарыктан: Элестетип көрүңүз, сиз блоктун эң коркунучтуу үйүнө баруучу алдамчы же алдамчы адамсыз. Бардык арбактарды, арбактарды жана көрүстөндөрдү басып өткөндөн кийин, сиз акыры акыркы жолго түшөсүз. Сиз момпосуйду алдыңыздагы табакта көрө аласыз! Бирок, күтүлбөгөн жерден го