توسعه دستگاه های IOT در Arduino با استفاده از خدمات MyDevices Cayenne. BLYNK: کنترل آسان Raspberry و Arduino خدمات ابر برای کنترل Arduino

جلسات - پاک کردن در صفوف Blinkers!
امروز، ما مدیریت ESP8266 را در 5 دقیقه از گوشی هوشمند خود (iOS یا Android) با استفاده از سرویس ابری جدید Blink پیکربندی خواهیم کرد. ویدئو و جزئیات زیر برش.


برنامه BLYNK را بر روی گوشی هوشمند نصب کنید

ثبت نام در ضمیمه و ایجاد یک پروژه جدید.

به عنوان مثال، نام پروژه را وارد کنید ESP8266. در زمینه مدل سخت افزار انتخاب کنید ESP8266. (امیدوارم که لیست قابل توجهی از تجهیزات پشتیبانی شده را متوجه شوید) به طور خودکار تولید می شود نشانه اتهام ارسال به صندوق پستی خود را.

پس از فشار دادن دکمه ايجاد كردن. شما یک فیلد خالی برای طراحی UI از پانل کنترل ESP8266 خود خواهید داشت.

بر روی PLUS در بالا سمت راست کلیک کنید - نوار ابزار ظاهر خواهد شد جعبه ویجت برای اضافه کردن ویدجت به کنترل پنل خود را. شایان ذکر است که لیست ویدجت ها همچنان دوباره پر شده است.

برای نمونه، نوع ویجت را انتخاب کنید دکمه. - این ویجت بلافاصله به پنل شما اضافه می شود. آن را با یک لمس ویرایش کنید. نام را نمی توان پر کرد، فقط درست است که شما می توانید رنگ نشانگر را در فیلد انتخاب کنید پین خروجی درست را انتخاب کنید دیجیتال، و هر پین آزاد را ترک کرد GPIO. زیر نوع دکمه را تغییر دهید تعویض.

بعد، کتابخانه BLYNK را در Arduino IDE تنظیم کنید. این به دستورالعمل های رسمی کمک خواهد کرد. شما همچنین می توانید کتابخانه را ببرید آخرین نسخه راست از مخزن و تنظیم دستی. بعد، یک مثال را انتخاب کنید ESP8266_STandalone و تجویز در آن نشانه اتهامکه ما از طریق ایمیل دریافت کردیم SSID و رمز عبور شما شبکه فای. طرح را در ESP8266 کامل کنید و پور کنید.

چیز فوق العاده - ESP8266. پردازنده بسیار قدرتمند، حافظه زیادی، کنترل کننده فای ساخته شده است. البته، البته، حتی بهتر، بلکه گران تر است. اما اکنون در مورد آنها نیست. دقیق تر، دقیقا در مورد آنها نیست. در ESP بسیار آسان است برای ساخت تقریبا هر اتوماسیون خانگی، و با کنترل از راه دور و کنترل از یک گوشی هوشمند یا کامپیوتر. یک مثال از این دستگاه در این سایت است. یک مشکل - برای کار با چنین دستگاهی نه تنها از شبکه خانگی، و از هر نقطه در این سیاره (که در آن دسترسی به اینترنت وجود دارد، البته)، یک سرور خاص مورد نیاز است - یک واسطه ای که پیام ها را از دستگاه دریافت می کند و آنها را به شما انتقال می دهد، و بالعکس. البته، گزینه ها و ارتباط مستقیم وجود دارد، اما من آنها را به خاطر پیچیدگی پیاده سازی یا هزینه بالا در نظر نمی گیرم.

لیست داده شده در این مقاله ادعای کامل و حتی بیشتر از منحصر به فرد نیست، من فقط سعی کردم تجزیه و تحلیل و ساخت امکانات برخی از خدمات رایگان. اول از همه، برای خودتان، اما اگر برای هر کس دیگری مفید باشد - از سلامت استفاده کنید. هنگامی که من به دنبال یک سرور عمومی MQTT برای خودم بودم، بسیاری از منابع اینترنتی را تصدیق کردم. من به دنبال اول از همه در esp8266.ru بودم، اما افسوس، نیمی از خدمات یا هیچ کارگر وجود ندارد و یا دیگر برای یک پارامتر دیگر مناسب نیست. همه چیزهایی که در اینجا نوشته شده است، اول از همه تجربه شخصی من است، تجربه شما با این خدمات می تواند کاملا متفاوت باشد. اگر شما هر گونه خدمات دیگر را می دانید - در نظرات یا پست الکترونیکی بنویسید (ایمیل و سایر مخاطبین در گوشه بالا سمت راست کلاه های سایت قرار دارند)، و من سعی خواهم کرد که یک لیست را چک کنم و اضافه کنم.

کارگزاران MQTT

پروتکل MQTT شاید اولین چیزی است که شما در موتورهای جستجو خریداری می کنید زمانی که به دنبال راه هستید کنترل از راه دور انواع "قطعات هوشمند". من نمی توانم تصحیح کنم که این ساده ترین پروتکل است (من فقط چیزی برای مقایسه با چیزی ندارم، من به نوعی بلافاصله به او متوقف شدم)، اما من شخصا او هیچ مشکلی را مطرح نکردم. مثالها - خیلی زیاد کتابخانه های آماده برای آردوینو IDE نیز تنها نیستند، زیرا آنها می گویند "طعم را انتخاب کنید". برنامه های موبایل به اندازه کافی برای انتخاب هر دو برای گوشی های هوشمند، و برای یک پنل کنترل ساخته شده از قرص باستانی کافی است. بنابراین این احتمالا محبوب ترین گزینه برای پیاده سازی کنترل از راه دور است. سرورهای ابر نیز بسیار زیاد هستند، آنها کارگزاران MQTT نامیده می شوند. من اصل عملیات پروتکل و سرورها را در نظر نمی گیرم، این اطلاعات به اندازه کافی در سایت های دیگر کافی است.

cloudmqtt.com

من از این سرویس شروع کردم. فقط به این دلیل که تقریبا تمام نمونه هایی از کار با پروتکل MQTT بر اساس آن است. سرویس بسیار راحت و ساده است، همه چیز بصری است. در سال 2018، خدمات به صورت رایگان مجاز بود طرح تعرفه اتصال به 10 دستگاه که کاملا راضی بود. با این حال، تا پایان سال 2018، صاحبان خدمات سیاست های خود را تجدید نظر کردند و برنامه های تعرفه ای "Cat Cat" رایگان در حال حاضر تنها 5 اتصالات در دسترس هستند. برای من شخصا، این بسیار کوچک است. من می توانم به طور همزمان سه دستگاه "کنترل" را متصل کنم - دو گوشی هوشمند و یک تبلت، و تنها دو اتصال برای خود ESP باقی می ماند. و من در حال حاضر بسیاری از اتومبیل های مختلف اتوماتیک، و هنوز هم برنامه ریزی شده است. البته، شما می توانید چندین نمونه از کارگزاران را در داخل یک قرار دهید حساباگر چه آنها اخیرا محدودیت ها را معرفی کرده اند. اما در این مورد، سه دستگاه کنترل هنوز هم "ایمیل" سه اتصال برای هر نمونه، و SOORY چنین اقتصاد - و دشمن نمی خواهد. ارزان ترین طرح شارژ پرداخت شده "Humble Hedgehog" در زمان نوشتن 5 دلار در هر ماه ایستاده است. نه، من یک دوزیستان بسیار معروف هستم تا چنین پولی را پرداخت کنم هر ماه. بله، و امکانات بسیار هوشمند نیستند - 25 اتصالات. بنابراین، من مجبور شدم گزینه های دیگر را جستجو کنم.

طرفداران: راحت و آسان

معاینه: فقط 5 اتصال در یک برنامه تعرفه رایگان

flespi.io.

برای مدت زمان طولانی من از کارگزار mqtt.flespi.io استفاده کردم. او من را به این واقعیت جذب کرد که در زمانی که من شروع به کار با او کردم، او به اندازه 100 اتصال رقابتی به طور همزمان و مقادیر زیادی از پیام های منتقل شده و ذخیره شده پذیرفته شد. جذاب! با این حال، سرویس به عنوان CloudMQTT مناسب نیست. پانل کنترل بسیار راحت نیست (اگر چه بهبود یافته است)، تنظیم حقوق دسترسی در نگاه اول، مجوز و دستگاه ها و گوشی های هوشمند با یک دوره محدود روشن نیست. هیچ توابع برخی از توابع وجود ندارد، یا من نحوه استفاده را پیدا نکردم. به عنوان مثال، نحوه حذف پیام های ذخیره شده (حفظ شده) از پایه - من هرگز یافت نشد. به شدت صحبت می کند، این نه تنها یک کارگزار MQTT است، بنابراین شاید من فقط تمام توانایی های آن را درک نکردم. گاهی اوقات گوشی های مختلف اطلاعات را در برخی از موضوعات پاک می کند. چند بار به دلیل اشتباهات در سیستم عامل و درخواست دائمی دستگاه به سرور، سرویس به طور کامل حساب را برای چند ساعت مسدود کرده است. اما این همه می تواند برای چنین فرصت هایی ببخشد. اما افسوس، و در اینجا تمایل به کسب درآمد بالا - از سال 2019، محدودیت 10 اتصالات در تعرفه رایگان معرفی شد. هیچ چیز در این مورد قابل تحسین وجود ندارد، اما من آماده نیستم که چنین پولی را برای سرگرمی و حتی برای خدمات نسبتا مشکوک بپردازم. به طور کلی، ما به دنبال یکسان هستیم، اما با دکمه های مروارید ...

طرفداران: قبل از آن تا 100 اتصال بود

معاینه: این راحت نیست، در راه اندازی دسترسی پیدا می شود، حفظ شده از پانل حذف نمی شود

کارگزار عمومی HIVEMQ.

بدون هیچ گونه محدودیتی رایگان کارگزاری عمومی رایگان. حداقل صفحه اصلی کارگزار در مورد آنها نوشته نشده است. اما بزرگ "اما" وجود دارد - این کارگزار هیچ مجوز ندارد، یعنی نه. یعنی، همه فرستاده شده بین دستگاه و شما یک پیام می توانید هر کسی را بخوانید. این یک فاجعه بزرگ نخواهد بود اگر تنها شاخصی از درجه حرارت و رطوبت باشد، آنها مخفی نیستند. اما هنگامی که آن را به مدیریت راه دور "خانه هوشمند" می آید، چنین کارگزار در اصل مناسب نیست. پس از همه، من نمی خواهم کسی را قادر به فعال کردن هر دستگاه در خانه، و یا غیر فعال کردن زنگ، به عنوان مثال.

طرفداران

معاینه

Eclipse MQTT.

یکی دیگر از کارگزار عمومی بدون مجوز. همانطور که در سایت نوشته شده است، این کارگزار در درجه اول برای آزمایش طراحی شده است و در نظر گرفته نشده است تا اطلاعات محرمانه را ذخیره و انتقال دهد. برای اتصال به سرور، شما باید از پارامترهای زیر استفاده کنید: سرور iot.eclipse.org، Port 1883؛ برای TLS v1.2، v1.1 یا v1.0 - پورت 8883. اتصال و Websockets در دسترس هستند. به طور کلی، همانند HIVEMQ، تنها در پروژکتور جانبی ...

طرفداران: رایگان، بدون محدودیت اتصال

معاینه: مناسب برای آزمایشات و ایستگاه های آب و هوایی بدون کنترل از راه دور

mosquitto.org.

و یکی دیگر از کارگزار عمومی بدون مجوز. شما نمیتوانید تکرار کنید، همانند HIVEMQ و Eclipse MQTT. توجه داشته باشید که تمام این سرورها رمزگذاری TLS را پشتیبانی می کنند به این معنا نیستند که داده های شما محافظت می شود. کانال انتقال بین دستگاه و سرور محافظت می شود، اما داده های خود در دسترس هستند.

طرفداران: رایگان، بدون محدودیت اتصال

معاینه: مناسب برای آزمایشات و ایستگاه های آب و هوایی بدون کنترل از راه دور

ابر IBM (BLUEMIX)

این یک کارگزار MQTT نیست، این یک پلت فرم کل پلت فرم "اینترنت از چیزها" است. اما در ترکیب آن یک کارگزار MQTT وجود دارد. در برنامه تعرفه رایگان "Lite" مجاز به 500 دستگاه ثبت شده و 200 مگابایت اطلاعات در هر متریک است. این کاملا زیبا نه تنها برای خانه، بلکه همچنین برای دستگاه های تجاری است. اما، همانطور که همیشه، بدون "اما" نیست. اول، این پلت فرم بسیار دشوار است. یک اسناد وجود دارد، اما بسیار زیاد است. نه - خیلی زیاد! من یک ساعت دیگر صرف نکردم - کمتر درک نحوه پیکربندی اتصال. ثانیا، پلت فرم به شما اجازه می دهد تا موضوعاتی را به شدت در یک فرمت خاص منتشر کنید: "IOT-2 / EVT / Event_ID / FMT / Format_String". به طور مشابه، با دستورات: "IOT-2 / CMD / Command_ID / FMT / Format_String". و همه - هیچ آزادی - این، تنها شماره پیام و پیام خود را. اما فرمت های پیام های منتقل شده در حال حاضر بیشتر هستند - "JSON"، "XML"، "TXT" و "CSV". شاید کسی چنین رویکردی بسیار درست و راحت باشد، اما او مرا جذب نکرد. بله، و برای همه نیت ها دشوار است - فرصت ها، ظاهرا، بسیار، اما با این همه باید قادر به اولین بار.

طرفداران: محدودیت های بسیار زیادی در ارتباطات

معاینه: بسیار پیچیده برای مبتدیان، محدودیت در موضوعات

mqtt.dioty.co.

این یک کارگزار کاملا رایگان است. تا زمان. زیر در صفحه تنظیمات اتصال نوشته شده است: "این کارگزار MQTT در حال حاضر در بتا کار می کند. در این مرحله از آزمایش بتا، ما هزینه را شارژ نخواهیم کرد اگر بیش از حد در 50000 پیام در هر ماه تجاوز کنید. با این حال، ما حق را به طور موقت به حساب خود را تعلیق می کنیم در صورتی که شما بر سایر کاربران تاثیر می گذارید. در این مورد، ما همیشه با ایمیل شما تماس خواهیم گرفت تا سعی کنیم نیازهای خاص خود را درک کنیم و چگونه می توانیم آنها را برآورده کنیم. " 50،000 پست در هر ماه حدود 70 پیام در ساعت است، که خیلی زیاد نیست اگر شما در نظر داشته باشید که یک دستگاه می تواند برای یک جلسه داده از سنسورها تا 50 پیام منتشر کند. بروکر پشتیبانی از مجوز و اتصال TLS را پشتیبانی می کند. ثبت نام به حساب Google گره خورده است. یک محدودیت کوچک وجود دارد - تمام موضوعات شما باید با آدرس شروع شود پست الکترونیکبه عنوان مثال، همانطور که در سرویس ثبت نام کرده اید، "/ [ایمیل محافظت شده]/ ... / ... / ... " اما این مشکل تنها در هنگام راه اندازی مشتریان MQTT در یک گوشی هوشمند (به دست آوردن متن بیشتر)، بیشتر یا کمتر قابل توجه است و همیشه اینطور نیست. به نظر من این سرویس کاملا مورد توجه قرار گرفته است. من او را چک نکردم، من فقط ثبت نام کردم.

طرفداران: کاملا رایگان

معاینه: پیشوند خاص برای موضوعات مورد نیاز است، محدودیت حدود 70 پیام در ساعت است

Solace.Cloud (Pubsub +)

این یک کارگزار MQTT به عنوان کل پلت فرم IOT نیست. در یک برنامه تعرفه رایگان، تا 50 اتصال به 1 گیگابایت انتقال داده ها در هر ماه، تا 4 گیگابایت ذخیره شده داده های ذخیره شده (پیام های مجتمع شده). بد نیست. اما حتی نسخه رایگان بسیاری از تنظیمات - سخت است که "با دامنه" بدانید. به همین دلیل است که در یک زمان از آنها لذت بردم. شاید زمان برود، من مقابله خواهم کرد و پیکربندی خواهم کرد.

طرفداران: تا 50 اتصال

معاینه: در تسلط بسیار پیچیده شده است

myqtthub.com

ظاهرا کارگزار استونیایی. در برنامه تعرفه رایگان اجازه می دهد تا: تا 100 کاربر، اما تا 50 اتصال؛ داده های ذخیره شده 10 مگابایت؛ حداکثر 50 اشتراک برای اتصال، حداکثر 250 اشتراک (و نه روشن، اشتراک "صفحه اصلی / #" یک اشتراک یا تعداد زیادی؟)؛ 300 پیام در هر دقیقه، اما نه بیش از 800 در ساعت و نه بیش از 10،000 در روز. اگر از انتشارات منظم (هر پنج دقیقه) ادامه دهید، بیش از 34 پیام در یک زمان به دست می آید. هنوز محدودیت وجود دارد - بیشتر شبیه به صفحه اصلی خدمات است. محدودیت ها، با این حال، کاملا واقعی نگاه می کنند استفاده از خانه. سعی نکنید ...

طرفداران: تا 50 اتصال

معاینه: محدودیت ها بر تعداد پیام ها

mqtt.by.

آسان برای استفاده از کارگزار بلاروس آسان است. هیچ چیز در مورد محدودیت وجود ندارد. پشتیبانی از مجوز، اما ممکن است برخی از موضوعات را با عمومی، یعنی، برای باز کردن همه کاربران دیگر از سرویس. اما پشتیبانی از اتصال امن (TLS) وجود ندارد، می تواند برای برخی از برنامه های کاربردی حیاتی باشد. هر موضوع منتشر شده باید با پیشوند "/ user / user_name" شروع شود، که تا حدودی تنظیمات مشتریان MQTT موبایل را پیچیده می کند، اما به طور قابل توجهی نیست. از مزایا - در سرور موضوعات عمومی با تاریخ و زمان وجود دارد، که بسیار مناسب برای کنترل پنل بر اساس یک قرص، که کار 24 ساعته در روز است - در همان زمان و ساعت هنوز هم تنها (صد دوازده 🙂) به طور کلی، کاملا کارگزار عادی، فقط برای کار پایدار است.

طرفداران: بدون هیچ محدودیتی، موضوعات عمومی وجود دارد، شما می توانید موضوعات خود را منتشر کنید

معاینه: رمزگذاری اتصال SSL / TLS

mqtt.4api.ru.

کارگزار آزاد روسیه - "ما دسترسی به سرور رایگان MQTT برای همه را ارائه می دهیم." مجوز و ثبت نام در خدمت از طریق شبکه های اجتماعی. ظاهرا ظاهر شد، نه چندان دور. اگر چه سایت خود دارای گواهینامه SSL است، پارامترهای داده فقط برای "بدون SSL" مشخص می شوند، ظاهرا اتصالات SSL برای دستگاه ها در دسترس نیست. هنوز در صفحه اتصال به شرح زیر نوشته شده است: "ما توصیه نمی کنیم استفاده کنید این سرور برای پروژه های حیاتی. " پانل کنترل دارای قابلیت بسیار اندک است، بنابراین شما باید از شخص ثالث استفاده کنید

طرفداران: بدون هیچ محدودیتی

معاینه: رمزنگاری اتصال SSL / TLS، کنترل پنل ضعیف کنترل نشده است

سایر خدمات

یک MQTT تغذیه نخواهد شد. MQTT ساده و راحت است، اما اجازه می دهد تا شما را به مشاهده اطلاعات "اینجا و در حال حاضر"، بدون تاریخ تغییرات در زمان. برای مشاهده نمودارها، خدمات دیگری وجود دارد، برای ایجاد کار با آن نیز دشوار نیست. برخی از آنها زیر هستند.

همه چیز

همه چیز در دسترس است خدمات رایگان برای پروژه های کوچک غیر تجاری (<3 миллиона сообщений в год или ~ 8 200 сообщений в день). Сервис позволяет накапливать получаемые данные в своих хранилищах, после чего их можно удобно просматривать в виде графиков. В том числе и на сторонних сайтах, .

از ویژگی های خدمات - آن را یکپارچگی با Matlab Analytics، اما چقدر من سعی نکردم پیکربندی اسکریپت های MATLAB، بنابراین من بیرون نرفتم. خوب، نه خیلی زیاد و می خواستم در یک حساب کاربری رایگان، سرویس به شما امکان می دهد تا چهار کانال ایجاد کنید، هر یک از کانال ها را می توان تا 8 فیلد با داده های مختلف ذخیره کرد. حتی در حساب رایگان، محدودیت دیگری وجود دارد - غیرممکن است که داده ها را اغلب بیش از یک بار در هر 15 ثانیه منتشر کنیم (آن را یک مکث از 20 ثانیه توصیه می شود)، مانند "حفاظت" از بیش از حد 8 200 پیام در روز است. در اصل، تمام ناشران من به راحتی به این حد مناسب می رسند، من کافی است. من از سرویس برای مدت زمان طولانی استفاده می کنم، این کاملا راحت و ساده است، اگر MATLAB را شمارش نکنید. چندین برنامه وجود دارد - مشتریان برای آندروید، اما خیلی کمتر از MQTT.

طرفداران: استفاده ساده در ESP، وب سایت مناسب

معاینه: بسیاری از محدودیت ها در حساب رایگان

open -Monitoring.Online

این سرویس مشابه ThoresPeak است - شما همچنین می توانید داده ها را به آن ارسال کنید و سپس به صورت جداول، نمودار ها و هیستوگرام ها مرور کنید. رابط کاربری ساده تر از ThoresPeak است، اما همچنین سفارشی کردن آن بسیار ساده تر است.

در ابتدا، این سرویس ایجاد شد، همانطور که من آن را درک کردم، برای نظارت بر پارامترهای نیروگاه های خورشیدی شخصی، اما این نیز مناسب برای اهداف دیگر است. این سرویس برای همه و بدون محدودیت قابل توجه در حال حاضر در دسترس است. تنها محدودیت هایی که من درک کرده ام این است که یک گروه از ارزش ها را به سرور برای یک کنترلر ارسال کنید، آن را نمی توان بیش از یک بار در دقیقه. اما بر تعداد مقادیر برای هر کنترلر و تعداد کنترل کننده های محدود کننده، به نظر می رسد هیچ. ارسال داده ها به سرور توسط یک درخواست دریافت ساده انجام می شود، پیاده سازی در Arduinoide بیش از یک ساعت طول کشید. بر خلاف ThatesPeak، داده های ذخیره شده را می توان بر روی یک نمودار (با پوشش) مشاهده کرد، و همچنین سفارشی کردن برخی از داشبورد برای خروجی آخرین مقادیر. شما همچنین می توانید مقادیر ذخیره شده را به صورت یک جدول ساده مشاهده کنید.

طرفداران: استفاده ساده در ESP، رابط کاربری راحت، تقریبا هیچ محدودیتی وجود ندارد

معاینه: امکان برداشت گرافیک در سایت های شخص ثالث (بر خلاف ThatesPeak) وجود ندارد، یا هنوز مشخص نشده است که چگونه این کار را انجام دهم

بابوت

در صفحه اصلی این سرویس، زیر نوشته شده است: "اتصال همه چیز و همه چیز در زمان واقعی با استفاده از یک API غنی که از استراحت، WebSockets و MQTT پشتیبانی می کند." شخصا، من هنوز از این سرویس استفاده نکرده ام. قضاوت بر اساس آنچه من از توضیحات درک کردم، این یک ترکیب وحشی از MQTT Broker و ThoresPeak.com است. در حالت آزاد، تعداد کانال ها و منابع محدود نیست، اما تعداد پیام ها محدود است: 0.05 میلیون در روز | 1.5 میلیون در هر ماه. برای پیام های ذخیره شده، محدودیت ها حتی کمتر هستند: 5000 در روز | 150،000 در هر ماه. علاوه بر این، پیام ها فقط برای حداکثر سه ماه ذخیره می شوند، پس از آن حذف می شوند. به عبارت دیگر، آب و هوا برای تمام سال شما نگاه نمی کنید. درباره مشتری تلفن همراه من برای گوشی های هوشمند هنوز به من اطلاع نداده است. ثبت نام شده سعی خواهم کرد نتیجه گیری برای انجام این کار خیلی زود است.

blynk.

خدمات فعالانه تبلیغاتی برای کنترل از راه دور "دستگاه های هوشمند". من حتی می توانم به شدت بگویم - همه انجمن ها نوشتن، جایی که ما نیاز داریم و جایی که لازم نیست. به طور کلی، شخصا نگاه می کنم، این پلت فرم برای دوستداران نیست، بلکه برای کسب و کار است. در "حالت آزاد" منابع بسیار کمی داده می شود، به جز به یاد داشته باشید LED یا به نوبه خود یک رله. به طور کلی، من یک بار سعی کردم - و پرتاب، بلافاصله منابع و به پایان رسید. بیش از حد حریص

طرفداران: پیدا نشد

معاینه: Garegi، مشتری تلفن همراه تنها یک

در حالی که این همه است. اگر شما می دانید راه های دیگر برای مدیریت ESP از راه دور (مورد نیاز با "تلفن همراه") - لطفا به من ایمیل بزنید. اجازه دهید ما بحث و احتمالا یک مقاله را اضافه کنیم.

اتصال از طریق سرور Cloud RemotExy به شما اجازه می دهد تا دستگاه را از هر نقطه از جهان که اینترنت وجود دارد را کنترل کنید.

ماژول ESP8266 به عنوان یک مشتری پیکربندی خواهد شد تا به نقطه دسترسی WiFi متصل شود. نقطه دسترسی باید به اینترنت دسترسی داشته باشد. کتابخانه RemotExy دستگاه را در یک سرور ابر ثبت نام می کند.

برنامه تلفن همراه به سرور Cloud متصل می شود و به طور مستقیم به دستگاه وصل نمی شود. بنابراین، دستگاه از هر نقطه از اینترنت در دسترس خواهد بود.

توجه داشته باشید:که در این لحظه اتصال از طریق یک سرور ابر یک گام تست می کند. این وقفه ممکن است در سرور باشد.

مرحله 1. ایجاد یک پروژه رابط گرافیکی

مرحله 5. تنظیم ESP8266

ماژول ESP8266 باید پیکربندی شود. شاید ماژول شما قبلا تنظیمات پیش فرض لازم را داشته باشد، اما بهتر است آن را بررسی کنید.

آنچه شما باید بررسی کنید:

  • ماژول دارای یک سیستم عامل با پشتیبانی از دستورات نسخه پایین تر از v0.40؛
  • ماژول برای سرعت 115200 پیکربندی شده است.

مرحله 6. اتصال ESP8266 به Arduino Uno

با توجه به طرح زیر، ESP8266 را به Arduino Uno وصل کنید. لطفا توجه داشته باشید که مخاطبین RX-TX توسط Crosshair متصل می شوند.

از آنجا که سطوح سیگنال های ماژول ESP8266 3.3V و در Arduino هستند، آنها 5V هستند، لازم است از یک تقسیم ولتاژ مقاومتی برای تبدیل سطح سیگنال استفاده کنید.


مرحله 7. طرح را در Arduino بارگذاری کنید.

طرح در Arduino به طور معمول بارگذاری شده است. با این حال، با توجه به این واقعیت که ماژول ESP8266 به مخاطبین 0 و 1 متصل است، برنامه نویسی غیرممکن می شود. کامپایلر یک خطا را نشان می دهد.

قبل از برنامه نویسی، سیم ها را به ESP8266 متصل کنید از مخاطبین 0 و 1. برنامه نویسی. سپس مخاطبین را به محل برگردانید. روی دکمه بازنشانی Arduino کلیک کنید.

توجه داشته باشید:اولین نشانه این است که برنامه نویسی با موفقیت انجام شده است، این سوسو زدن به رهبری آبی در ماژول ESP8266 بلافاصله پس از بازنشانی است. سوسو زدن چراغ آبی به معنای تبادل اطلاعات بین Arduino و ESP8266 است. در این 8، Arduino پیکربندی شده است برای پیکربندی ESP8266 برای اتصال به نقطه دسترسی. پس از مدتی، LED دوباره چشمک می زند، که به معنی تلاش برای ثبت نام در سرور Cloud RemotExy است.

مرحله 8. از برنامه تلفن همراه خود ارتباط برقرار کنید.

بررسی قدرت ESP8266.

همچنین ممکن است که ESP8266 شما قدرت منبع تغذیه را نداشته باشد. برخی از هیئت مدیره Arduino دارای تثبیت کننده ولتاژ ضعیف 3.3 ولت هستند که قادر به صدور 200-300 MA در حالت های پیک نیست. در این مورد، در مانیتور سریال، شما نیز یک شکست از دنباله فرمان را مشاهده خواهید کرد.

وادیم Kolesnik، Tiraspol

هیجان انگیز، ساده و سریع توسعه دستگاه های کامل اینترنت در Arduino با استفاده از سرویس ابری

عمومی

myDevices در زمینه توسعه نرم افزار و برنامه های کاربردی در اینترنت چیزها (IOT) مشغول به کار است و تقسیم AvanQuest است. MyDevices Cayenne - اولین برنامه کشیدن و رها کردن و خدمات ابر برای پروژه های توسعه ساده IOT در Raspberry Pi.

پورتال Radiotozman اخیرا منتشر شده است که در آن من سعی کردم مزایای اصلی و قابلیت های سیستم را در هنگام کار بر روی کامپیوتر تک هیئت مدیره Raspberry PI (RPI) نشان دهم. اما پروژه کاین به طور مداوم در حال توسعه است، توسعه دهندگان، بر اساس خواسته های کاربران، به تدریج اضافه کردن ویژگی های جدید، از بین بردن کاستی ها و خطاها.

توسعه دستگاه های IOT در Arduino و Raspberry Pi هنگام کار با Cayenne اساسا متفاوت است. با توجه به PI Raspberry، پلت فرم Cayenne می تواند یک محیط توسعه بصری در نظر گرفته شود: ما از لحاظ جسمی لوازم جانبی مختلف را به هیئت مدیره PI Raspberry متصل می کنیم و سپس تنها در محیط آنلاین Cayenne (تنظیم ویدجت ها، پردازش داده ها، الگوریتم های اتوماسیون نوشتن) کار می کنیم.

با توجه به Arduino، داشبورد Cayenne تنها مجموعه ای از ویدجت ها و کنترل هایی است که داده ها را از سنسورها تجسم می کنند و داده های کاربر را برای کنترل کنترل یا سایر دستگاه های اجرایی انتقال می دهند. به طور مستقیم با سنسورها، دستگاه های اجرایی، لوازم جانبی اضافی (به عنوان مثال، صفحه نمایش، صفحه کلید دوم)، پردازش شرایط اتوماسیون به میکروکنترلر اختصاص داده شده است. به عبارت دیگر، همه چیز به توسعه استاندارد دستگاه در Arduino می رسد؛ کاربر خود را کد برنامه را می نویسد، اما با ادغام در پروژه توابع انعطاف پذیر IOT Cayenne. در این نظر، به نظر من، به نظر من، مزیت اصلی Cayenne این است: شما می توانید هر سنسورها و محرک ها را به سیستم وصل کنید، بدون محدود کردن لیست لوازم جانبی پشتیبانی شده.

رابط کاربر و آماده سازی کار

همانطور که برای رابط کاربر از سیستم، تنظیمات آن، روش های کنترل و ویدجت در داشبورد، این همه سیستم مشابهی در Raspberry Pi باقی می ماند، البته، به استثنای عناصر منحصر به فرد منحصر به فرد ذاتی در دومی (به عنوان مثال، a دسکتاپ از راه دور، وضعیت حافظه، بارگیری پردازنده). بنابراین، برای درک اصول کار با سیستم، توصیه می کنم با مقالات آشنا شوید. تمام اطلاعات موجود در مقاله مربوط به هر دو رابط وب سیستم و رابط برنامه تلفن همراه است. همچنین در مقاله فهرستی از حاشیه های پشتیبانی شده را نشان می دهد.

برای توسعه دستگاه های IoT یا برنامه های کاربردی، ما نیاز داریم:

  • حساب کاربری خود را در سرویس Cayenne (شما می توانید از موجود استفاده کنید)؛
  • یک محیط توسعه یکپارچه Arduino IDE را نصب کنید؛
  • یک کتابخانه از توابع Cayenne را در Arduino IDE اضافه کنید؛
  • پیکربندی Arduino IDE: هزینه را انتخاب کنید و پورت COM که آن را متصل می کند؛
  • اتصال به Arduino Ethernet Shield یا Wi-Fi Shield Board (یا از هیئت مدیره Arduino با یک رابط شبکه یکپارچه استفاده کنید).

من فکر می کنم فرآیند نصب محیط توسعه IDE Arduino IDE، و همچنین انتخاب هزینه ها و پورت ها در توضیحات لازم نیست، و ما به اصلی اصلی می رویم.

کتابخانه کاین برای Arduino به سادگی و به سرعت با استفاده از مدیر کتابخانه نصب شده است (شکل 2).

پس از نصب کتابخانه، ما قادر خواهیم بود از آن در برنامه های خود استفاده کنیم، و یک پوشه جدید با نام Cayenne در بخش نمونه های طرح ظاهر می شود. به نظر من، این مثال ها به شما اجازه نمی دهد که به طور کامل درک کنید که چگونه با سیستم کار کنید، اما، با این وجود، آنها باید مورد بررسی قرار گیرند، و همچنین، اجازه دهید به شما یادآوری کنیم که بخش بزرگی از مستندات در سیستم کاین وجود دارد. در مورد کلی، این کتابخانه مجموعه ای از طرح هایی است که به شما این امکان را می دهد که اتصال و تبادل اطلاعات بین سنسورها / محرک ها و خدمات ابر را ساده کنید.

با انجام عملیات آماده سازی، پیکربندی محیط توسعه و اتصال هیئت مدیره Ethernet Shield Shield، شما می توانید شروع به توسعه دستگاه IOT کنید.

Arduino به یک کامپیوتر USB متصل شده است، در Ethernet Shield، کابل شبکه محلی را وصل کنید. در مرورگر اینترنت، ما به حساب Cayenne وارد می شویم و یک دستگاه جدید را در کنترل پنل - Arduino اضافه می کنیم. بعد، نوع هیئت مدیره، روش اتصال به اینترنت را انتخاب کنید (کاملا گزینه های زیادی)، توجه به کلید مجوز منحصر به فرد برای دستگاه ما و منتظر هیئت مدیره Arduino به Cayenne (شکل 3).

برای هر دستگاه جدید، یک کلید منحصر به فرد جدید تولید می شود، در آینده می توان آن را در تنظیمات دستگاه یافت می شود (هزینه ها).

هنگامی که یک راه برای اتصال به شبکه را انتخاب می کنید، یک پنجره با کد منبع برنامه میکروکنترلر ظاهر خواهد شد. این حداقل مورد نیاز برای اتصال دستگاه به سرویس ابری است. لطفا توجه داشته باشید که متن برنامه قبلا کلید مجوز خود را مشخص کرده و کتابخانه مربوط به روش انتخابی اتصال به شبکه را متصل کرده است (شکل 4). کپی این کد در Arduino IDE، کامپایل و بارگیری در هزینه. اگر همه چیز به درستی پیکربندی شده بود، یک دستگاه فعال جدید و داشبورد در کنترل پنل Cayenne ظاهر می شود، جایی که اکنون می توانید ویدجت ها و کنترل ها را اضافه کنید. علاوه بر این، در حال حاضر در این مرحله، شما می توانید از راه دور پورت های Arduino دیجیتال و آنالوگ موجود را کنترل کنید، بدون نوشتن یک خط از کد - در داشبورد، یک ویجت را اضافه کنید، نوع پورت (دیجیتال)، نام آن را در هیئت مدیره مشخص کنید ذخیره ویجت در حال حاضر، با کلیک بر روی دکمه در مرورگر، وضعیت منطقی پورت را تغییر دهید. همچنین، به سادگی با اضافه کردن ویدجت های مناسب، شما می توانید خروجی های PWM را مدیریت کنید، داده های RAW را از ورودی های آنالوگ Arduino دریافت کنید، وضعیت ورودی های دیجیتال را کنترل کنید.

توسعه یک دستگاه در یک مثال خاص

حالا من به شما در مورد ویژگی های اضافی و توابع سیستم به شما می گویم. به عنوان مثال، یک سیستم ساده را جمع آوری کردم، که شامل موارد زیر بود:

  • Arduino Uno Board؛
  • هیئت مدیره Ethernet Shield در کنترل Wiznet W5100؛
  • سنسور دما DS18B20؛
  • Photororeistor؛
  • ترمیستور؛
  • چند LED؛
  • صفحه نمایش OLED در کنترل کننده SSD1306.

نمودار پایه ای از سنسورهای اتصال و LED ها به Arduino در شکل 5 نشان داده شده است.

اجازه دهید به شما یادآوری کنم که بیشتر سوالات مربوط به اتصال سنسورها و محرک های مختلف، شما می توانید پاسخ ها را در بخش مستندات پیدا کنید.

من فکر می کنم که در مورد اتصال LED ها، یک سنسور دما دیجیتال و صفحه نمایش OLED از سوالات مطرح نخواهد شد. نورپردازی آنالوگ و سنسورهای دما به ورودی های آنالوگ با توجه به طرح تقسیم کننده مقاومتی متصل می شوند. در همان زمان، برای زنجیره ای از ترمیستور، لازم است که مقاومت دقیق مقاومت R6 را بدانیم، این مقدار در کد منبع در محاسبات مورد استفاده قرار می گیرد.

پس از اتصال مقالات مشخص شده در نمودار، Sketch Arduino را بنویسید و سپس ویدجت های مورد نیاز را در داشبورد Cayenne نصب کنید. در حال حاضر، هیئت مدیره Arduino قبلا حداقل طرح را بارگذاری کرده و هیئت مدیره در داشبورد کاین تعیین می شود. همانطور که در بالا گفتم، در این مرحله می توانیم ویدجت ها را برای کنترل LED ها D1، D2، و همچنین دریافت داده های "RAW" از ورودی های آنالوگ که ترمیستور و نورپردازی متصل می شوند، اضافه کنیم (شکل 6، 7).

بدون نوشتن یک خط واحد از کد Arduino، ما قبلا یک سیستم کنترل از راه دور ساده و کنترل دریافت کرده ایم (شکل 8).

برای استفاده از سنسورهای دما دیجیتال، ترمیستور، PWM، برای کنترل LED D2، لازم است که حداقل طرح را اضافه کنید. برای شروع، ما کتابخانه های لازم را تعریف می کنیم.

#عبارتند از.< CayenneEthernet.h> // از هزینه تمدید سپر اترنت استفاده کنید
#عبارتند از.< CayenneTemperature.h> // توابع تبدیل داده ها با ترمیستور
#عبارتند از.< OneWire.h> // توابع برای کار با اتوبوس 1 سیم
#عبارتند از.< DallasTemperature.h> // توابع برای کار با سنسورهای دما دیجیتال
#عبارتند از.< Arduino.h> // ثابت های استاندارد و متغیرها Arduino
#عبارتند از.< U8x8lib.h> // کتابخانه برای کار با صفحه نمایش OLED در حالت متن
#عبارتند از.< Wire.h> // پشتیبانی از رابط سخت افزاری I 2 C

#define virtual_pin_1 v0 // کانال مجازی برای سنسور DS18B20
#define virtual_pin_2 v1 // - برای ترمیستور
#define virtual_pin_3 v2 // - برای D2 LED، ما داده ها را در مورد مقدار PWM دریافت خواهیم کرد
#define LED2_PWM 6 // پورت واقعی Arduino که به رهبری D2 متصل است

کانال های مجازی دیجیتال نیستند و پورت های ورودی / خروجی آنالوگ نیستند. هنگام خواندن ورودی های آنالوگ، کاربر داده ها را از ADC میکروکنترلر 10 بیتی دریافت می کند. مقادیر بازگشتی توسط ADC در محدوده 0 ... 1023 و متناسب با ولتاژ در این ورودی است. به عبارت دیگر، اگر سنسور دما را به ورودی آنالوگ Arduino وصل کنید، مقدار درجه حرارت را دریافت نخواهید کرد، تغییرات اضافی و محاسبات ریاضی برای تبدیل ولتاژ درجه حرارت لازم است.

برای ساده سازی تبدیل، قالب بندی و پردازش داده ها، کانال های مجازی طراحی شده اند. این یک ابزار نسبتا قدرتمند است که برای تبادل بین Arduino و Cayenne، و همچنین برای قالب بندی داده های آسان به منظور تجسم قابل فهم خود در داشبورد استفاده می شود. به یاد داشته باشید، کانال های مجازی پارامترهای فیزیکی ندارند.

Cayenne.VirtualWrite (V1، 123) // انتقال ارزش عدد صحیح کانال مجازی V1
Cayenne.VirtualWrite (v2، 12.34) // انتقال مقادیر شناور-کاما کانال V2

به عنوان مثال، با خواندن سنسور دمای آنالوگ، ما قادر خواهیم بود مقدار را به درجه سانتیگراد تبدیل کنیم و این مقدار را به داشبورد انتقال دهیم. علاوه بر این، کانال های مجازی به شما این امکان را می دهند که کنترل هر پیروی از هر پیشین متصل به بنادر آنالوگ یا دیجیتال Arduino را بدون نیاز به نوشتن هر کد اضافی اجرا کنید. در حال حاضر، دو نوع داده پشتیبانی می شوند که کانال های مجازی عامل هستند: عدد صحیح (عدد صحیح) و نقطه شناور (شناور). در آینده، برنامه ریزی شده برای حمایت از انواع نمادین و آرایه ها برنامه ریزی شده است. در داشبورد در کانال مجازی شما می توانید نوع داده های گرفته شده توسط ویجت کاربر را برای تجسم استفاده کنید و پیکربندی کنید.

// پورت دیجیتال که سنسور DS18B20 متصل خواهد شد. از پورت های Arduino 0 و 1 (RX / TX) استفاده نکنید.
Const DS18B20_PIN \u003d 2؛
// پورت آنالوگ که ترمیستور متصل است.
Const thermistorpin \u003d 0؛
// مقاومت به مقاومت دائمی (9 COM)، شامل سری با ترمیستور به زمین است.
مقاومت در برابر شناور Const \u003d 9000؛
// کلید تأیید Cayenne. شما می توانید آن را در رابط وب Cayenne در برگه تنظیمات دستگاه پیدا کنید.
Char Token \u003d "640C9ODI4"؛
OneWire Onewire (DS18B20_PIN)؛
سنسورهای Dallastemperature (& Onewire)؛
ترمیستور ترمیستور (ترمیمستروپین، مقاومت)؛

در اختیار خود، تقریبا در هر مرحله، شما می توانید انتخاب اطلاعات اشکال زدایی را به کد منبع به پورت پیوسته اضافه کنید.

در بخش اولیه، ما توابع زیر را نشان خواهیم داد:

تنظیم void ()
{
Cayenne.begin (نشانه)؛ // اتصال به Cayenne با کلید مجوز مشخص شده
سنسورها.برگ ()؛ // مقداردهی اولیه سنسورهای دما دیجیتال
u8x8.begin ()؛ // مقداردهی اولیه و نمایش اطلاعات متن در صفحه نمایش OLED

u8x8.setpowersave (0)؛
u8x8.setfont (u8x8_font_torusssbold8_r)؛
U8x8.DrawString (2.0، "آزمون کاین")؛
u8x8.drawstring (1،2، "سیستم در حال اجرا)؛
}

در چرخه برنامه اصلی، ما تنها یک تابع داریم:

حلقه خالی ()
{
Cayenne.Run ()؛
}

تمام تبادل اطلاعات با داشبورد Cayenne با استفاده از چندین توابع انجام می شود:

cayenne_in (virtual_pin) - تابع را مشخص می کند که پس از دریافت توسط دستگاه از داده های به روز شده از طریق کانال مجازی از سرور Cayenne نامیده می شود.

cayenne_out (virtual_pin) - تابع را تعیین می کند که زمانی که می خواهید داده های به روز شده را از دستگاه به سرور Cayenne ارسال کنید، تعیین می شود.

cayenne_connected () - عملکرد هر بار که دستگاه به سرور Cayenne متصل است انجام می شود. به طور کلی، این ویژگی برای همگام سازی استفاده می شود.

cayenne.syncall () - یک تابع که یک درخواست را به سرور Cayenne برای همگام سازی تمام ویدجت ها تولید می کند. وضعیت پورت های Arduino آنالوگ و دیجیتال بازسازی خواهد شد و هر کانال مجازی رویداد Cayenne_in را تولید می کند.

cayenne.syncvirtual (virtual_pin) - هماهنگ سازی توسط کانال مجازی مشخص شده. به عنوان یک نتیجه از اعدام، Cayenne_in Handler مربوطه نامیده می شود.

در نمودار من، LED D2 به پورت دیجیتال Arduino D6 متصل است. این بندر دارای یک تابع جایگزین - خروجی PWM است. برای پیاده سازی کنترل از راه دور این LED ها در حالت PWM، ما باید داده ها را از داشبورد دریافت کنیم. برای انجام این کار، یک تابع را بنویسید که هنگام به روز رسانی داده ها از طریق کانال مجازی V2 اجرا می شود:

cayenne_in (v2)
{
// اطلاعات مربوط به مقدار PWM را از داشبورد (نوار لغزنده) دریافت کنید
int pwmvalue \u003d getValue.ASINT ()؛ // ارزش در محدوده 0 - 1023
Analogwrite (LED2_PWM، PWMValue / 4)؛ // برای PWM، ارزش باید در محدوده 0 تا 255 باشد
}

در حال حاضر ما ویجت "لغزنده" را در داشبورد با نام LED_2 PWM (PWM) و در تنظیمات آن اضافه خواهیم کرد، مشخص می کنیم که از طریق یک کانال مجازی 2 (شکل 9) کار می کند.

پس از دانلود طرح در هیئت مدیره، می توانید از نوار لغزنده در کنترل داشبورد Cayenne استفاده کنید. روشنایی LED D2. همه چیز بسیار سریع و آسان است ...

cayenne_out (v0)
{
سنسورها. requesttemperatures ()؛ // دریافت داده ها از سنسورهای دما دیجیتال.
// تبدیل داده ها از ترمیستور، آنها را فرمت کنید و آنها را از طریق کانال مجازی V1 به سرور ارسال کنید
cayenne.celsiuswrite (v1، thermistor.getcelsius ())؛
// داده های فرمت از یک سنسور دما دیجیتال و ارسال آنها به کانال مجازی سرور V0
cayenne.celsiuswrite (v0، sensors.gettempcbyindex (0))؛
}

از طریق استفاده از کانال های مجازی، کل کد تابع برای انتقال داده های کاملا متفاوت شامل دو خط است. در داشبورد، ابزارک را برای سنسور دمای DS18B20 و ترمیستور اضافه کنید (آنها در پانل کنترل آماده می شوند). سفارشی کردن ویدجت، بارگذاری طرح در هزینه، و ... آماده (شکل 10A، 10b)!


شکل 10 نمایش داشبورد کاین برای کنترل Arduino (سنسورهای دما،
نور، کنترل LED D1، PWM کنترل LED D2):

فراموش نکنید که عملکردهای کنترل و کنترل مشابه در دسترس هستند برنامه موبایل. تمام ویدجت های نصب شده در رابط وب در یک برنامه تلفن همراه مشاهده می شود (شکل 10b).

ظاهر دستگاه هایی با لوازم جانبی متصل شده در شکل 11 نشان داده شده است.

توانایی توسعه دستگاه های بی سیم IOT

شما می توانید متوجه شوید که در برخی از تصاویر، پنل کنترل من قابل مشاهده است، جایی که علاوه بر Arduino Uno و Raspberry Pi، یک دستگاه به نام ESP8266-1 وجود دارد. خیلی خوب دستگاه اضافی در ماژول ESP-12 شناخته شده (ESP8266)، که توسط Wi-Fi به سرور Cayenne متصل می شود و داشبورد جداگانه خود را دارد (شکل 12a، 12b). چنین دستگاهی یک گره کنترل و کنترل بی سیم است. دو LED به ماژول متصل می شوند (یکی به خروجی ESP8266 PWM متصل می شود) و سنسور دمای دیجیتال DS18B20.


شکل 12 داشبورد برای دستگاه بی سیم در ماژول ESP-12:
الف) رابط وب، ب) برنامه موبایل.

با تشکر از پشتیبانی از هسته ESP8266، محیط IDE Arduino، اجرای دستگاه های بی سیم IOT با کاین از توسعه در Arduino متفاوت نیست. به عبارت دیگر، هر ماژول در تراشه ESP8266 یک هیئت مدیره Arduino با رابط Wi-Fi است. برای این ماژول Wi-Fi، ما یک طرح مشابه بنویسیم، ما از کتابخانه های مشابه برای کار با سنسورها استفاده می کنیم، پورت های ورودی / خروجی دیجیتال و آنالوگ برای ما در دسترس ما هستند. این ماژول مقدار زیادی اطلاعات، مستندات و تحولات مختلف را انباشته کرده است.

نمودار اتصال ارتفاعی به ماژول ESP8266 در شکل 13 نشان داده شده است. من یک ماژول ESP-12 جداگانه را بدون یک هیئت مدیره انتقال با یک مدار برق یکپارچه و رابط برنامه نویسی استفاده کردم که کار را در مرحله دانلود طرح به شدت پیچیده کرد. گزینه بهینه استفاده از یک ماژول نوع Nodemcu V3 ساخته شده است که در فاکتور فرم Arduino ساخته شده است و دارای یک طرح تطبیق رابط است. (بسیار لحظه مهم هنگام برنامه نویسی ماژول) ظاهر ماژول با LED های متصل و سنسور دما در شکل 14 نشان داده شده است.

همانطور که برای اتصال به سرور Cayenne و تبادل اطلاعات، همه چیز برای Arduino است. تمام مفاهیم مربوط به کانال های مجازی ذخیره می شوند، همان توابع استفاده می شود، کلید مجوز منحصر به فرد نیز استفاده می شود. تفاوت فقط در مرحله اتصال ماژول به اینترنت.

برای اتصال دستگاه در ماژول ESP8266، ما در مقایسه با هر هیئت مدیره Arduino به طور مشابه عمل می کنیم و به حالت آماده به کار برای اتصال دستگاه به Cayenne واکنش نشان می دهیم، جایی که حداقل طرح تولید می شود.

ما باید این طرح را تغییر دهیم. ما کتابخانه های زیر را متصل می کنیم:

#include "cayennedefines.h" // ثابت ها و متغیرهای Cayenne
#include "blynksimpleesp8266.h" // توابع برای کار با ESP8266
#include "cayennewifylient.h" // توابع برای پیاده سازی مشتری Wi-Fi

char Token \u003d "3YJ62U9OGI"؛
char ssid \u003d "network_ssid"؛ // SSID و رمز عبور برای شبکه Wi-Fi شما.
char password \u003d "network_password"؛

در بخش اولیه سازی، یک رشته اضافه کنید:

Cayenne.begin (نشانه، SSID، رمز عبور)؛

کامپایل با بارگیری به ماژول (طول می کشد بیش از بارگیری به تخته Arduino)، ما مشتاقانه منتظر اتصال و فعال کردن دستگاه جدید در داشبورد Cayenne. بعد، همه به عنوان Arduino: اضافه کردن توابع برای کار با سنسورها و پورت های I / O، اضافه کردن ویدجت به داشبورد. فقط لذت بخش، آیا این نیست؟!

نتیجه

با توجه به نتایج کار با Cayenne در Raspberry PI و Arduino، قطعا می توانم بگویم که Raspberry Pi نباید مورد استفاده قرار گیرد برای توسعه دستگاه های اینترنت از چیزها، حتی با Cayenne. آنچه در مورد Arduino نمی گوید - علیرغم منابع محدود، فقدان چند وظیفه ای، قدرت محاسباتی کم (هرچند، این یک لحظه متضاد است، با توجه به ویژگی های تابلوهای جدید آردوینو در پردازنده های ARM)، ایده آل برای توسعه IOT ساده است دستگاه ها و سیستم های اتوماسیون خانگی.

علاوه بر این، در این زمینه، مزیت اصلی Arduino، همانطور که در بالا متوجه شدم، توانایی به طور مستقل توسعه یک دستگاه، مطالعه مدار، نوشتن کد، توسعه مهارت های برنامه نویسی، با وجود استدلال برنامه نویسان حرفه ای، که نمی تواند از Arduino یاد بگیرد. شاید، اما ... در رابطه با Arduino، پلت فرم کاین تنها گرافیک را فراهم می کند رابط کاربر و برخی از پردازش داده های ساده شده. تمام بقیه شما باید خودتان را توسعه دهید، از جمله پردازش داده های اولیه از سنسورها، زیرسیستم پردازش رویداد، و همچنین الگوریتم های اتوماسیون. در حال حاضر به راحتی Arduino به راحتی توسعه دستگاه های بی سیم IOT به ماژول Wi-Fi ESP8266 اضافه کنید و در حال حاضر پشتیبانی رسمی (Albeit کامل نیست) آخرین تراشه ESP32، که دارای حاشیه غنی در هیئت مدیره است، و شما فرصت های بزرگی برای توسعه دستگاه های اساسا جدید و جذب این فرایند نه تنها دوستداران بلکه حرفه ای ها است.

در زمان آماده سازی، کاین در حمایت رسمی ماژول ها در تراشه ESP8266 گزارش نشده است. در ابتدا، این شایستگی جامعه است - آماتورها و مهندسان که کار می کنند یا از Arduino IDE کار می کنند و از پشتیبانی ESP8266 می دانند، با استفاده از کتابخانه های Cayenne قادر به اتصال و استفاده از ESP8266 بود. اما حتی در آن زمان، انجمن های جامعه Cayenne قبلا می توانستند با آن آشنا شوند مقدار زیاد پروژه های مختلف دستگاه های بی سیم IOT.

پس از آزمایش طولانی دستگاه های خود در Arduino و ESP8266، می توانم بگویم که دومی بسیار پایدار کار می کند. چندین قابلیت اطمینان کم Arduino با سپر اترنت به دلیل مشکل مشهور با این حال، کنترل کننده W5100 قطع می شود، راه های متعددی برای حل آن وجود دارد، هر دو سخت افزار و نرم افزار. من می توانم فرض کنم که این امر به هیئت مدیره Arduino با اترنت یکپارچه یا Wi-Fi مربوط نیست.

از لحظه آماده سازی مقاله در مورد تمشک PI و Cayenne، زمان زیادی نبود، اما ویژگی های جدید و حاشیه های پشتیبانی شده بسیار بزرگتر شد. علاوه بر داشتن انتخاب عظیمی از هیئت مدیره های مختلف، سنسورها و دستگاه های اجرایی، کتابخانه های مربوطه، پروژه ها و نمونه هایی برای Arduino، در حال حاضر در کاربران Cayenne دستگاه های موجود، شبکه ها و خدمات Lora، پشتیبانی از کتابخانه ها هستند پروتکل شبکه MQTT برای Arduino، C، C ++، MBED، کتابخانه ها برای کار با MQTT Broker Mosquito. قطعا، برای توسعه دستگاه های اینترنت و سیستم های اتوماسیون خانگی در Arduino، من خدمات Cayenne را توصیه می کنم.

پیش از این، من یک دوچرخه برای ایجاد یک دستگاه Arduino برای نظارت داشتم.

جالب بود.

/ * - پروژه جدید - این کد منبع از رابط کاربر گرافیکی به طور خودکار توسط ویرایشگر Remotexy تولید شده است. برای کامپایل این کد با استفاده از کتابخانه RemotExy 2.3.5 یا بالاتر نسخه دانلود توسط لینک http://remotexy.com/en/library/ برای اتصال با استفاده از RemotExy Mobile App توسط لینک http://remotexy.com/en/download/ - برای آندروید 4.3.1 یا بعد نسخه؛ - برای iOS 1.3.5 یا بالاتر نسخه؛ این کد منبع نرم افزار رایگان است؛ شما می توانید آن را مجددا توزیع کنید و / یا آن را تحت شرایط GNU Lesser General Public Public Public License به عنوان منتشر شده توسط بنیاد نرم افزار رایگان منتشر کنید؛ هر نسخه 2.1 مجوز، یا (در گزینه شما) هر نسخه بعد. * ///////-///-//// ///////////////////////////////// // remotexy عبارتند از: ///// //// ///// ////// //// ///// /////////////////////////////// // تعریف اتصال حالت و اتصال RemotExy #Define RemotExy_Mode__Sp8266_mode__Sp8266_Mode__Sp8266_Hardservial_Cloud #include // تنظیمات اتصال #define remotexy_serial serial #define remotexy_serial_speed 9600 #define remotexy_wifi_ssid "***********" #define remotexy_wifi_password "*********" #define remotexy_cloud_server "ابر". RemotExy .com "#define RemotExy_Cloud_Port 6376 #define RemotExy_Cloud_Token" ************************** "#include // اضافه کردن DHT11 DHT11 DHT کتابخانه؛ // اعلام متغیر کلاس DHT11 #define DHT11_Pin 7 // سنسور DHT11 به شماره کاج دیجیتال متصل شده است 4 Const Int Analogsignal \u003d A3؛ // اتصال یک سیگنالینگ آنالوگ پین Const DigitalSignal \u003d 8؛ // اتصال یک سیگنال دیجیتال Pina Boolean Nogas؛ // متغیر برای ذخیره سازی ارزش حضور گاز int gas \u003d 0؛ // متغیر برای ذخیره مقدار گاز شناور انسان \u003d 0؛ // متغیر برای ذخیره سازی رطوبت شناور temp \u003d 0؛ // متغیر برای ذخیره دما int chk؛ // متغیر برای ذخیره خطای Msgbuffer DHT؛ // رابط پیکربندی #Pragma Pack (Push، 1) uint8_t remotexy_conf \u003d (255،1،0،24،0،74،0،38،13،2،12،38،44،22،11،7، 81،22،11، 2،26،31،31،79،78،79.70،70، 0.66،132،10،13،31،24،7،10،27، 21،2،24، 66،132،56، 13،31،24،4، 41،31،24،2،24،67،4،26،5،20، 5.38،23،20،52،26،11،67، 4، 63،6،6،20، 5،39،52،20،5،26، 11)؛ // ساختار همه متغیرهای رابط کنترل کنترل خود را تعیین می کند (/// متغیر ورودی uint8_t switch_1؛ // \u003d 1 اگر سوئیچ روشن شود و \u003d 0 اگر Disabled // متغیر خروجی int8_t Level_1؛ // \u003d 0..100) int8_t Level_2 موقعیت سطح؛ / / \u003d 0..100 سطح سطح متن char text_1؛ // \u003d ردیف UTF8 پایان دادن به صفر char text_2؛ // \u003d ردیف UTF8 پایان دادن به صفر // دیگر متغیر uint8_t connect_flag؛ // \u003d 1 اگر سیم متصل، else \u003d 1 0) RemotExy؛ #PRAGMA PACK (POP) ///////-t////-///// ///////////////////////////////// / end remotexy //////-///-///-////-///////////////////////////////// /// /// #define pin_switch_1 13 VOID SETUP () (REMOTEXY_INIT ()؛ PINMODE (PIN_SWITCH_1، خروجی)؛ // TODO شما کد را راه اندازی کنید) Void Loop () (RemotExy_Handler ()؛ DigitalWrite (Pin_switch_1، (RemotExy.switch_1 \u003d\u003d 0)؟ پایین: بالا)؟ nogas \u003d digitalread (digitalsignal)؛ // خواندن حضور گاز \u003d Analogread (Analogsignal)؛ // و در مورد تعداد آن chk \u003d dht.read (dht11_pin)؛ hum \u003d dht.humity؛ temp \u003d dht.temperature \u003d hum؛ remotexy.level_2 \u003d temp؛ dtostrf (hum، 6، 2، remotexy.text_1)؛ dtostrf (temp، 6، 2، remotexy.text_2)؛ // todo شما کد حلقه / / استفاده از ساختار remotexy برای انتقال داده )

ما از یک ساندویچ از تخته استفاده می کنیم.

ناگهان، همه چیز بلافاصله به دست آورد:

از لحظه ای از کشف سرویس ابری، از طریق عکس بالاتر از یک ساعت گذشت.

ویژگی های کار با RemotExy.

1. همه چیز بسیار ساده است. به شیوه خود خوب است. به عنوان مثال، با Blynk و Cayenne، به عنوان مثال، به سختی از ابتدا در یک ساعت به نظر می رسد به درک. برای استفاده، به عنوان مثال، "Cloud Kascada Cloud" شما نیاز به خرید خاص دارید.

2. هیچ پردازش و ذخیره سازی داده ها در سمت سرور وجود ندارد: هیچ ارتباطی با هیئت مدیره وجود ندارد - برنامه "بدون اتصال" نیست.

3. فقط 5 عنصر طراحی را آزاد کنید، اما نرم افزار Pro گران تر از نصف روز زمان نیست.

4. یک فرصت از یک برنامه برای برقراری ارتباط با یک هیئت مدیره از طریق یک سرور ابر و مستقیم وجود دارد. درست است، نه در همان زمان. البته. و به سرعت غیر ممکن است - شما باید طرح را در هیئت مدیره تغییر دهید. همچنین توانایی برقراری ارتباط یک گوشی هوشمند با بلوتوث و هیئت مدیره USB وجود دارد.