فهرست مطالب:
- مرحله 1: الزامات
- مرحله 2: راه اندازی
- مرحله 3: راه اندازی سخت افزار
- مرحله 4: راه اندازی سیستم عامل
- مرحله 5: توسعه برنامه Ubidots
- مرحله 6: تنظیمات داشبورد
تصویری: نحوه ایجاد یک سیستم تشخیص حرکت با آردوینو: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
با استفاده از Feather HUZZAH برنامه ریزی شده با آردوینو و قدرتمند Ubidots ، یک شمارنده تولید حرکت و حضور بسازید.
حرکت فیزیکی م andثر و تشخیص حضور در خانه های هوشمند و تولید هوشمند می تواند در برنامه های کاربردی اعم از راه حل های مسن محیطی (AAL) یا سیستم شمارش تولید که از MES بزرگتر تغذیه می کند بسیار مفید باشد. سایر برنامه های کاربردی برای تشخیص حرکت و حضور عبارتند از:
- اتوماسیون در و دروازه
- سنسورهای پارک برای تعیین نقاط رایگان
- نظارت بر سطح مخزن از راه دور
- خانه ها و امکانات هوشمند برای روشنایی و امنیت
- تشخیص و شمارش واحدها در خطوط نقاله
- علامت گذاری تشخیص روی مواد چاپ شده
- تشخیص مایعات در داخل مقوا ، پلاستیک و کاغذ
- تشخیص فاصله
- مردم مقابله می کنند
در حالی که کاربردهای زیادی برای حضور و حرکت وجود دارد ، به همان اندازه سنسورهای زیادی برای جمع آوری داده ها مانند سنسورهای خازنی ، القایی ، فوتوالکتریک و اولتراسونیک وجود دارد. بسته به هزینه ها ، شرایط محیطی و الزامات دقت ، باید بهترین سخت افزار مناسب برای محیط و الزامات برنامه را انتخاب کرد.
برای این آموزش ، ما روی ساخت یک پیشخوان تولید در زمان واقعی تمرکز می کنیم. برنامه هر واحد عبور از روی یک تسمه نقاله را شمارش می کند. ما از Arduino IDE برای برنامه ریزی Feather HUZZAH ESP8266 ، سنسور اولتراسونیک و Ubidots برای توسعه برنامه و نمایش داشبورد اینترنت اشیا استفاده خواهیم کرد.
مرحله 1: الزامات
- پر HUZZAH با ESP8266MB7389-100
- سنسور اولتراسونیک
- Arduino IDE 1.8.2 یا بالاتر
- حساب Ubidots یا مجوز STEM
مرحله 2: راه اندازی
- I Hardware Setup
- II راه اندازی سیستم عامل
- سوم توسعه برنامه Ubidots (رویدادها ، متغیرها و داشبورد)
مرحله 3: راه اندازی سخت افزار
سنسور التراسونیک MB7389-100 یک گزینه کم هزینه برای برنامه های صنعتی با نیازهای وسیع و کم مصرف در شرایط آب و هوایی چالش برانگیز است که به دلیل دارا بودن رتبه IPv67 است.
برای شروع ، نمودار زیر را آینه کنید تا سنسور اولتراسونیک را به Feather HUZZAH ESP8266 وصل کنید.
توجه: قرائت سنسور می تواند به عنوان خوانش آنالوگ یا PWM در نظر گرفته شود. در زیر ما قصد داریم تنظیمات مربوط به خواندن PWM را توضیح دهیم ، برای اطلاعات بیشتر لطفاً مثالهای نشان داده شده در بالا را ببینید.
[اختیاری] میکروکنترلر و سنسورها را در داخل قاب IP67 قرار دهید تا از گرد و غبار ، آب و سایر عوامل محیطی تهدید کننده محافظت شود. قاب استاندارد شبیه به موردی است که در عکسهای بالا نشان داده شده است.
مرحله 4: راه اندازی سیستم عامل
ابتدا باید Feather Huzzah را در Arduino IDE نصب کرده و کد را کامپایل کنید. به یاد داشته باشید که این تنظیم را با انجام یک آزمایش پلک زدن ساده تأیید کنید. برای اطلاعات بیشتر در مورد اتصال دستگاه Feather خود ، این راهنمای راه اندازی سخت افزار مفید را بررسی کنید.
برای ارسال داده های حسگر به بستر توسعه Ubidots IoT ، کد زیر را در IDE Arduino کپی و جایگذاری کنید. به یاد داشته باشید که نام و رمز شبکه Wi-Fi و رمز Ubidots خود را در جایی که در کد مشخص شده است اختصاص دهید.
/****************************** کتابخانه ها شامل *************** ****************/#عبارتند از /****************************** ** ثابت ها و اشیاء **************************** //*Ubidots*/const char*SSID_NAME = "xxxxxxxx" ؛ // اینجا نام SSID خود را char 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 Educational usersint HTTPPORT = 80؛/ * Ultrasonic Sensor */const int pwPin1 = 5؛ // پین PWM که سنسور در آن وصل شده است ************************** ** ** طول بدنهarg را بدست می آورد بدنه نوع charreturn data طول متغیر*/int dataLen (متغیر char*) {uint8_t dataLen = 0؛ برای (int i = 0 ؛ i distance / 25.4* / distance float = 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 (بدن ، "{"٪ s / ":٪ s}" ، variable_label ، str_val) می سازد ؛ /* HTTP را می سازد درخواست POST */sprintf (داده ها ، "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" ، داده) ؛ sprintf (داده ، "٪ sUser-Agent:٪ s/٪ s / r / n" ، داده ، USER_AGENT ، VERSION) ؛ sprintf (data ، "٪ sX-Auth-Token:٪ s / r / n" ، داده ، TOKEN) ؛ دوی سرعت f (داده ، "٪ sConnection: close / r / n" ، داده)؛ sprintf (data، "٪ sContent-Type: application/json / r / n"، data)؛ sprintf (data، "٪ sContent-Length:٪ d / r / n / r / n"، data، dataLen (بدنه))؛ sprintf (داده ، "٪ s٪ s / r / n / r / n" ، داده ، بدنه) ؛ / * اتصال اولیه */ clientUbi.connect (HTTPSERVER ، HTTPPORT) ؛ / * اتصال مشتری را تأیید کنید */ if (clientUbi.connect (HTTPSERVER، HTTPPORT)) {Serial.println (F ("ارسال متغیرهای شما:")) ؛ Serial.println (داده) ؛ / * ارسال درخواست HTTP */ clientUbi.print (داده) ؛ } / * در حالی که سرویس گیرنده در دسترس است پاسخ سرور را بخوانید * / در حالی که (clientUbi.available ()) {char c = clientUbi.read ()؛ Serial.write (c)؛ } / * حافظه رایگان * / رایگان (داده) ؛ رایگان (بدن) ؛ / * کلاینت را متوقف کنید */ clientUbi.stop ()؛}
نکته: می توانید با باز کردن مانیتور سریال در Arduino IDE ، صحت اتصال دستگاه خود را بررسی کنید.
با مشاهده دستگاه در حساب مدیریت خود -> دستگاه ها - می توانید تأیید کنید که دستگاه در پشتیبان Ubidots شما ایجاد شده است.
با کلیک روی دستگاه خود ، متغیری به نام "فاصله" را پیدا می کنید که قرائت سنسور در آن ذخیره می شود. این نام در کدی که به تازگی در Arduino IDE چسبانده اید تعیین شده است. اگر می خواهید متغیرهای خودکار خود را تنظیم کنید ، لطفاً این کار را با ویرایش کارت دستگاه یا چشمک زدن یک کد به روز شده با نامگذاری متغیر مناسب برای برنامه خود انجام دهید.
با اتصال Feather HUZZAH ESP8266 و گزارش داده ها به Ubidots ، اکنون زمان ساخت برنامه با استفاده از Ubidots با دقت پیکربندی برنامه بدون کد است.
مرحله 5: توسعه برنامه Ubidots
پیکربندی رویداد Ubidots
قرائت فعلی که ما به Ubidots ارسال می کنیم ورودی های فاصله است. برای ترجمه این قرائت ها به خروجی دلخواه که می خواهیم - واحد های محاسبه شده - باید یک رویداد را به شرح زیر ایجاد کنیم:
- در داخل دستگاه کنونی "کنترل حرکت" یک متغیر پیش فرض جدید به نام "جعبه" ایجاد کنید که هر بار که یک واحد جدید شمارش می شود 1 دریافت می کند.
- به بخش مدیریت دستگاه -> رویدادها بروید و روی نماد آبی plus در گوشه سمت راست بالای صفحه کلیک کنید تا یک رویداد جدید اضافه کنید.
- شروع رویداد خود با "If triggers":
- یک متغیر را انتخاب کنید: "فاصله"
- مقدار: مقدار (پیش فرض)
- کمتر یا مساوی [حداکثر فاصله مورد انتظار} بین سنسور و جعبه های عبوری*برنامه ما 500 میلی متر است
- به مدت 0 دقیقه
- صرفه جویی
4. هنگامی که محرک ها به مشخصات برنامه شما پیکربندی شدند ، روی نماد نارنجی "plus" در گوشه بالا سمت راست کلیک کنید تا یک اقدام مشروط اضافه شود.
5. "Set Variable" را به عنوان عمل انتخاب کنید.
6. سپس ، متغیر پیش فرض ایجاد شده "box" و مقدار "1" را انتخاب کنید.
7. تغییرات را ذخیره کنید. اگر رویداد به درستی تنظیم شده باشد ، هر بار که فاصله بین سنسور و واحد از آستانه مشخص شده بیشتر باشد ، "1" ارسال می کند ، که نشان می دهد هیچ جسمی در این نزدیکی وجود ندارد - و باید یک واحد جدید را که به تازگی از آن عبور کرده است ، شمارش کند. به
در کارت Feather specific Device ، متوجه خواهید شد که متغیر "box" که در آن "1" ارسال می شود هر زمان که حضور واحد احساس شود.
مخصوصاً برای تسمه نقاله های صنعتی و شمارش واحدهای این نمونه اولیه می توان آن را به گونه ای سفارشی کرد که در محیط های مختلف یا سخت افزار به سادگی در برنامه نویسی یا برنامه های کاربردی شما مناسب باشد.
8. تعداد واحدهای حس شده (یا زمان هایی که یک شی تشخیص داده شد) را تجسم کنید. حال ، با استفاده از متغیر "box" ، ما قصد داریم یک متغیر پنجره نورد جدید ایجاد کنیم تا مجموع خوانش های دریافت شده از متغیر "box" را در هرزنامه تعریف شده (دقیقه ، ساعت ، روز ، هفته و غیره). برای اجرای این توسعه ، مراحل ساده زیر را دنبال کنید:
اعتبارهای زیر را به متغیر پنجره نورد جدید خود اختصاص دهید
انتخاب دستگاه: حرکت کنترل (یا نام دستگاهی که داده های خود را ارسال می کنید)
یک متغیر: جعبه ها را انتخاب کنید
محاسبه: مجموع
هر: "1" ساعت (یا طبق درخواست برنامه شما)
اکنون یک نام به متغیر جدید اختصاص دهید که تعداد جعبه ها (یا حرکات) شمارش شده در یک ساعت را نشان دهد ، درست مانند "جعبه/ساعت" یا "واحد/ساعت".
مرحله 6: تنظیمات داشبورد
در نهایت ، یک داشبورد برای نمایش تعداد واحدهای حس شده ایجاد کنید.
به مدیریت دستگاه -> داشبوردها بروید و یک ویجت جدید اضافه کنید. این ویجت تعداد جعبه های شمارش شده امروز را بر اساس ساعت نمایش می دهد.
اعتبارهای زیر را به ویجت جدید خود اختصاص دهید تا تعداد خود را تجسم کنید.
چگونه می خواهید داده های خود را ببینید؟: نمودار
یک نوع ویجت: نمودار خطی را انتخاب کنید
یک دستگاه اضافه کنید: کنترل حرکت
یک متغیر اضافه کنید: جعبه/ساعت
تمام کنید. و با این توسعه داشبورد نهایی - برنامه شما کامل شده است و اکنون یک سیستم تشخیص حرکت و حضور کارآمد و م haveثر دارید. در اینجا آخرین نگاه به نتایج ما است.
توصیه شده:
نحوه ایجاد سیستم آبیاری گیاه با استفاده از آردوینو: 7 مرحله
نحوه ایجاد سیستم آبیاری گیاه با استفاده از آردوینو: در این آموزش نحوه ساخت سیستم آبیاری گیاهان با استفاده از سنسور رطوبت ، پمپ آب و چشمک زدن LED سبز در صورت درست بودن همه چیز و نمایش OLED و Visuino را یاد می گیریم. فیلم را تماشا کنید
نحوه ایجاد زنگ در غیر لمسی ، تشخیص دمای بدن ، GY-906 ، 433 مگاهرتز با استفاده از آردوینو: 3 مرحله
نحوه ساختن زنگ درب غیر لمسی ، تشخیص دمای بدن ، GY-906 ، 433 مگاهرتز با استفاده از آردوینو: امروز ما یک زنگ درب غیر لمسی خواهیم ساخت ، دمای بدن شما را تشخیص می دهد. در شرایط کنونی ، بسیار مهم است که بدانید دمای بدن شخصی بالاتر از حد معمول است ، وقتی کسی مشغول شوک است. این پروژه در صورت تشخیص نور قرمز نشان می دهد
سیستم زنگ هشدار پیام کوتاه تشخیص حرکت DIY: 5 مرحله (همراه با تصاویر)
DIY Motion Detection SMS SMS Alarm: در این پروژه من یک سنسور حرکت PIR ارزان را با یک ماژول TC35 GSM ترکیب می کنم تا یک سیستم هشدار ایجاد کنم که برای شما & quot؛ INTRUDER ALERT & quot؛ هر زمان که کسی سعی می کند وسایل شما را بدزدد پیامک ارسال کنید. بیایید شروع کنیم
سیستم هشدار تشخیص حرکت: 11 مرحله (همراه با تصاویر)
سیستم هشدار تشخیص حرکت: توجه داشته باشید! بلوک های فعال دیگر برای بارگیری در دسترس نیست. از یک دوربین USB معمولی می توان برای تشخیص حرکت در یک اتاق استفاده کرد. در مراحل زیر به شما نشان خواهیم داد که چگونه می توانید از Reactive Blocks برای برنامه نویسی برنامه جاوا آماده ارسال پیامک استفاده کنید
نحوه ایجاد سیستم آبیاری خودکار با استفاده از آردوینو: 5 مرحله
نحوه ایجاد سیستم آبیاری خودکار با استفاده از آردوینو: در این دستورالعمل ، به شما نشان خواهم داد که چگونه یک سیستم آبیاری خودکار بسازید و پیاده سازی کنید که بتواند میزان آب موجود در خاک را حس کند و به طور خودکار باغ شما را آبیاری کند. این سیستم را می توان برای نیازهای مختلف محصول برنامه ریزی کرد و