زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت مطالب تازه مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

Espeshniki - به صفوف چشم پوشی بپیوندید!
امروز در 5 دقیقه کنترل ESP8266 را از تلفن هوشمند شما (IOS یا Android) با استفاده از سرویس جدید Blink cloud تنظیم خواهیم کرد. فیلم و جزئیات زیر برش.


برنامه Blynk را در تلفن هوشمند خود نصب کنید

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

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

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

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

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

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

او قبلاً برای ایجاد دستگاه Arduino برای نظارت ، یک دوچرخه اختراع می کرد.

جالب بود.

/ * - پروژه جدید - این کد منبع رابط کاربری گرافیکی توسط ویرایشگر RemoteXY بطور خودکار تولید شده است. برای تهیه این کد با استفاده از کتابخانه RemoteXY 2.3.5 یا نسخه بعدی بارگیری توسط لینک http://remotexy.com/en/library/ برای اتصال با استفاده از برنامه موبایل RemoteXY از طریق لینک http://remotexy.com/fa/download/ - برای ANDROID 4.3.1 یا نسخه بعدی؛ - برای نسخه 1.3.5 یا بالاتر در iOS؛ این کد منبع نرم افزار رایگان است. شما می توانید مجدداً آن را مجدداً توزیع کرده و یا طبق شرایطی که توسط بنیاد نرم افزار آزاد منتشر شده است ، آن را طبق شرایط مجوز عمومی عمومی کمتر GNU اصلاح کنید. یا نسخه 2.1 از مجوز ، یا (در گزینه شما) نسخه بعدی. * / /////////////////////////////////////////////////// // RemoteXY شامل كتابخانه // /////////////////////////////////////////////////// / // حالت اتصال را تعیین کنید و کتابخانه RemoteXY #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD را وصل کنید # شامل // تنظیمات اتصال #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 9600 #define REMOTEXY_WIFI_SSID "***********" #define REMOTEXY_WIFI_PASSWORD "***********" .com "#define REMOTEXY_CLOUD_PORT 6376 #define REMOTEXY_CLOUD_TOKEN" **************************** "#includ // اضافه کردن کتابخانه DHT11 dht11 DHT؛ // اعلام متغیر کلاس dht11 #define DHT11_PIN 7 // سنسور DHT11 به پین \u200b\u200bدیجیتال شماره 4 const int analogSignal \u003d A3 وصل شده است. // اتصال یک پین سیگنال آنالوگ const int digitalSignal \u003d 8؛ // اتصال یک پین سیگنال دیجیتال boGol noGas؛ // متغیر برای ذخیره مقدار حضور گاز داخلی \u003d 0؛ // متغیر برای ذخیره مقدار شناور گاز hum \u003d 0؛ // متغیر برای ذخیره رطوبت شناور دما \u003d 0؛ // متغیر برای ذخیره دما chk؛ // متغیر برای ذخیره خطای DHT char msgBuffer؛ // پیکربندی رابط # بسته پراگما (فشار ، 1) uint8_t RemoteXY_CONF \u003d (255،1،0،24،0،74،0،8،13،2 ، 2،0،38،44،22،11،7 ، 81،22،11،2،26،31،31،79،78،0،79،70،70،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،16،5،20 ، 5،38،23،20،5،2،26،11،67 ، 4 ، 63،6،20،5،39،52،20،5،2،26،11)؛ // ساختار تمام متغیرهای ساختار رابط کنترلی شما را تعریف می کند (// متغیر ورودی uint8_t switch_1؛ // \u003d 1 اگر سوئیچ روشن باشد و \u003d 0 اگر غیرفعال باشد // متغیر خروجی int8_t سطح_1؛ // \u003d 0..100 موقعیت سطح int8_t سطح_2؛ / / \u003d 0..100 سطح موضع char char text_1؛ // \u003d رشته UTF8 با انتهای صفر متن_2؛ // \u003d رشته UTF8 که با صفر // انتهای متغیر uint8_t connect_flag ختم می شود ؛ // \u003d 1 اگر سیم متصل است ، دیگری \u003d 0) RemoteXY؛ #pragma pack (پاپ) //////////////////////////////////////////////////// / // END RemoteXY شامل // ////////////////////////////////////////////////// /// #define PIN_SWITCH_1 13 setup void () (RemoteXY_Init ()؛ pinMode (PIN_SWITCH_1 ، OUTPUT) ؛ // // TODO شما کد را تنظیم می کنید) حلقه بطلان () (RemoteXY_Handler () ؛ DigitalWrite (PIN_SWITCH_1. ) LOW: HIGH) ؛ noGas \u003d digitalRead (digitalSignal) ؛ // مقدار حضور گاز بنزین \u003d analogRead (analogSignal) را بخوانید ؛ // و مقدار آن chk \u003d DHT.read (DHT11_PIN) ؛ هوم \u003d DHT.humidity ؛ دما \u003d DHT.temperature؛ RemoteXY.level_1 \u003d hum؛ RemoteXY.level_2 \u003d temp؛ dtostrf (هوم ، 6 ، 2 ، RemoteXY.text_1)؛ dtostrf (دما ، 6 ، 2 ، RemoteXY.text_2) ؛ // TODO شما کد حلقه می کنید / / از ساختار RemoteXY برای انتقال داده استفاده کنید)

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

ناگهان ، همه چیز بلافاصله کار کرد:

یک ساعت از کشف سرویس cloud RemoteXY به عکس فوق می گذرد.

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

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

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

3. فقط 5 عنصر طراحی رایگان هستند ، اما برنامه PRO بیش از نیمی از روز صرف شده هزینه ندارد.

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

برنامه نویسی انواع میکروکنترلرها و میکرو کامپیوترها مانند Arduino ، Raspberry Pi و موارد مشابه ، یکی از جالب ترین و مرتبط ترین فعالیت ها است. ساخت وسایل در این سیستم عاملها فراتر از سرگرمی حرفهایها و برنامه نویسان حرفه ای است: این تابلوها برای ایجاد روبات ها ، ماشین های ماشین ، کوادکوپترها ، دستگاه های IoT (خانه هوشمند) ، سرورها و حتی رابط های صوتی Hi-Fi استفاده می شوند.

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

Blynk یک سرویس مبتنی بر ابر برای ایجاد پنل های کنترل گرافیکی است و برای طیف گسترده ای از میکرو کامپیوترها و میکروکنترلرها مناسب است. در جایی که قبل از نوشتن یک رابط کامل I / O یا خرید ماژول های اضافی برای جمع آوری اطلاعات از سنسورها لازم بود ، اکنون می توانید با کار پنج دقیقه ای در Blynk کار کنید.

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

کسانی که مایل هستند می توانند سرور را به صورت محلی نصب کنند. در این حالت ، دسترسی به اینترنت لازم نیست.

این برنامه به مهارت های خاصی نیاز دارد. ابتدا باید یک کامپیوتر یا تلفن هوشمند را با یک صفحه قابل برنامه ریزی متصل کنید. این برنامه از اتصال به تابلوها از طریق انبوهی از رابط های مختلف پشتیبانی می کند:

  • USB (سریال) ،
  • Adafruit CC3000 WiFi ،
  • رسمی آردوینو WiFi Shield ،
  • رسمی اترنت سپر (W5100) ،
  • ENC28J60 ،
  • ESP8266 (مودم WiFi) ،
  • SeeedStudio Ethernet Shield V2.0 (W5200) ،
  • RN-XV WiFly ،
  • ESP8266.

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

بنابراین ، این پلتفرم برای مبتدیان و همچنین کاربران پیشرفته تری که مایل به صرف وقت در نوشتن برنامه های کاربردی برای مدیریت پروژه نیستند مناسب است: از خواندن داده ها از یک ایستگاه هواشناسی و کنترل یک خانه هوشمند تا کنترل روبات ها.

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

Blynk در حال حاضر با تابلوهای زیر کار می کند:

  • Arduino: Uno، Nano، Mini، Pro Mini، Pro Micro، Mega، YÚN (Bridge)، با علت؛
  • تمشک پی؛
  • ذره (هسته اولیه جرقه)؛
  • ESP8266؛
  • TinyDuino (CC3000)؛
  • Wicked WildFire (CC3000).

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

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

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

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

مرحله 1. ایجاد یک پروژه GUI

مرحله 5. ESP8266 را پیکربندی کنید

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

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

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

مرحله 6. ESP8266 را به Arduino Uno وصل کنید

مطابق شکل زیر ESP8266 را به Arduino Uno وصل کنید. توجه داشته باشید که پین \u200b\u200bهای RX-TX توسط یک متقاطع متصل می شوند.

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


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

طرح به روش معمول وارد آردوینو می شود. اما با توجه به اینکه ماژول ESP8266 به پین \u200b\u200b0 و 1 وصل شده است ، برنامه نویسی غیرممکن می شود. کامپایلر خطایی را نشان می دهد.

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

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

مرحله 8. از برنامه تلفن همراه متصل شوید.

قدرت ESP8266 را بررسی کنید

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

وادیم كولسنیك ، تیراسپول

توسعه هیجان انگیز ، ساده و سریع دستگاه های IoT با مشخصات کامل در آردوینو با استفاده از سرویس ابری

اطلاعات کلی

myDevices نرم افزار و برنامه توسعه اینترنت اشیاء (IoT) و بخش Avanquest است. myDevices Cayenne اولین برنامه کشیدن و رها کردن و ابر برای توسعه ساده پروژه های IoT در Raspberry Pi است.

در پرتال Radiolotsman به تازگی منتشر شده است ، که من سعی کردم در هنگام کار بر روی یک کامپیوتر تک تخته Raspberry Pi (RPi) مزایا و قابلیت های اصلی سیستم را فاش کنم. اما پروژه Cayenne به طور مداوم در حال تحول است ، توسعه دهندگان با تکیه بر خواسته های کاربران ، به تدریج ویژگی های جدیدی را اضافه می کنند ، اشکالات و خطاها را از بین می برند.

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

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

رابط کاربری و شروع کار

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

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

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

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

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

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

پس از انجام مراحل مقدماتی ، تنظیم محیط توسعه و اتصال برد توسعه اترنت Shield ، می توانید شروع به توسعه دستگاه IoT کنید.

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

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

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

توسعه دستگاه با استفاده از یک مثال خاص

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

  • صفحه آردوینو اونو
  • صفحه گسترش اترنت سپر در کنترلر WIZnet W5100؛
  • سنسور دما DS18B20؛
  • Photoresistor؛
  • ترمیستور؛
  • چند LED؛
  • نمایشگر OLED در کنترلر SSD1306.

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

بگذارید یادآوری کنم که برای اکثر سؤالات مربوط به اتصال سنسورها و محرکهای مختلف ، می توانید در بخش مستندات پاسخ دهید.

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

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

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

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

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

#define VIRTUAL_PIN_1 V0 // کانال مجازی برای سنسور DS18B20
#define VIRTUAL_PIN_2 V1 // - برای ترمیستور
#define VIRTUAL_PIN_3 V2 // - برای LED D2 ، از طریق این کانال داده های مربوط به مقدار PWM را دریافت خواهیم کرد
#define LED2_PWM 6 // درگاه Arduino واقعی که به آن D2 LED وصل شده است

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

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

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

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

// پورت دیجیتالی که سنسورهای DS18B20 به آنها متصل می شوند. از درگاه های Arduino 0 و 1 (Rx / Tx) استفاده نکنید.
const int ds18b20_Pin \u003d 2؛
// درگاه آنالوگ که ترمیستور به آن وصل شده است.
const int thermistorPin \u003d 0؛
// مقاومت مقاومت ثابت (9 کیلو گرم در ساعت) ، که به صورت سری با ترمیستور به زمین وصل می شود.
مقاومت شناور const \u003d 9000؛
// کلید مجوز کاین. می توانید آن را در رابط وب Cayenne در تب تنظیمات دستگاه بیابید.
char token \u003d "640c9oedi4"؛
OneWire oneWire (ds18b20_Pin)؛
سنسورهای DallasTemperature (& oneWire)؛
ترمیستور ترمیستور (thermistorPin ، مقاومت)؛

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

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

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

u8x8.setPowerSave (0)؛
u8x8.setFont (u8x8_font_torussansbold8_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.sync همه () - تابعی که درخواستی را برای همگام سازی همه ابزارک ها به سرور Cayenne ایجاد می کند. وضعیت درگاههای آنالوگ و دیجیتال آردوینو بازیابی می شود و هر کانال مجازی رویداد CAYENNE_IN را تولید می کند.

Cayenne.syncVirtual (Virtual_Pin) - همگام سازی در کانال مجازی مشخص شده. در نتیجه اجرا ، به مدیر مربوطه CAYENNE_IN فراخوانی می شود.

در مدار من ، D2 LED به درگاه دیجیتال 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 باشد
}

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

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

CAYENNE_OUT (V0)
{
سنسورها. // دریافت اطلاعات از سنسورهای دما دیجیتال.
// تبدیل داده های ترمیستور ، قالب بندی آن و ارسال آن از طریق کانال مجازی V1 به سرور
Cayenne.celsiusWrite (V1، thermistor.getCelsius ())؛
// داده ها را از سنسور دما دیجیتال فرمت کنید و از طریق کانال مجازی V0 آن را به سرور ارسال کنید
Cayenne.celsiusWrite (V0 ، sensors.getTempCByIndex (0))؛
}

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


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

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

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

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

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


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

به لطف پشتیبانی از هسته ESP8266 توسط Arduino IDE ، اجرای دستگاه های IoT بی سیم با Cayenne هیچ تفاوتی با توسعه در Arduino ندارد. به عبارت دیگر ، هر ماژول روی تراشه ESP8266 یک برد Arduino با رابط Wi-Fi است. برای این ماژول Wi-Fi ، یک طرح مشابه را می نویسیم ، از همان کتابخانه ها برای کار با سنسورها استفاده می کنیم ، درگاه I / O دیجیتال و آنالوگ داریم. این ماژول حجم عظیمی از اطلاعات ، مستندات مختلف و تحولات را جمع کرده است.

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

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

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

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

# شامل "CayenneDefines.h" // ثابت ها و متغیرهای کاین
#includ "BlynkSimpleEsp8266.h" // توابع برای کار با ESP8266
#includ "CayenneWiFiClient.h" // عملکردهایی را برای اجرای یک سرویس دهنده Wi-Fi استفاده می کند

char token \u003d "3yj62u9ogi"؛
char ssid \u003d "Network_SSID"؛ // SSID و رمز عبور برای شبکه Wi-Fi خود.
char password \u003d "Network_Password"؛

در قسمت اولیه سازی ، خط اضافه کنید:

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

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

نتیجه

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

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

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

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

از زمان آماده سازی مقاله در مورد تمشک پی و کاین ، زمان زیادی نگذشته است ، اما از نظر امکانات و تجهیزات جانبی بسیار جدید بیشتری وجود دارد. علاوه بر داشتن انتخاب گسترده ای از کارتهای گسترش ، حسگرها و محرکها ، کتابخانه های مربوطه ، پروژه ها و نمونه هایی برای Arduino ، اکنون کاربران Cayenne می توانند از دستگاه ها ، شبکه ها و خدمات LoRa ، کتابخانه های پشتیبانی پروتکل شبکه MQTT برای کتابخانه های Arduino ، C ، C ++ ، mBed ، استفاده کنند. همکاری با پشه کارگزار MQTT. قطعاً ، من خدمات Cayenne را برای توسعه دستگاههای IoT و سیستمهای اتوماسیون خانگی در آردوینو توصیه می کنم.

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت مطالب تازه مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم