فهرست مطالب:

IoT Moon Lamp: 5 مرحله
IoT Moon Lamp: 5 مرحله

تصویری: IoT Moon Lamp: 5 مرحله

تصویری: IoT Moon Lamp: 5 مرحله
تصویری: Red Ball 4 - Gameplay Walkthrough Part 5 - Levels 61-75 (iOS, Android) 2024, نوامبر
Anonim
لامپ ماه اینترنت اشیا
لامپ ماه اینترنت اشیا

در این مقاله آموزشی نحوه تبدیل یک لامپ LED ساده با باتری به یک دستگاه اینترنت اشیا را نشان می دهم.

این پروژه شامل موارد زیر است:

  • لحیم کاری ؛
  • برنامه نویسی ESP8266 با Arduino IDE ؛
  • ساخت برنامه اندروید با MIT App Inventor.

موضوع مورد علاقه این لامپ به شکل ماه است که من از gearbest خریدم. اما واقعاً این آموزش را می توان با هر دستگاه ولتاژ DC پایین سازگار کرد (دستگاه های تغذیه AC به مدارهای اضافی نیاز دارند).

تدارکات

  1. تلفن هوشمند آندروید (نسخه های اندروید 7-9 تست شده است).
  2. ابزار لحیم کاری.
  3. نمونه سازی PCB (protoboard).
  4. برد ESP-12E (یا دیگر تخته با میکروکنترلر ESP8266).
  5. مبدل سریال USB برای برنامه نویسی
  6. چندین مقدار مختلف از اجزای غیرفعال (مقاومت و خازن).

(اختیاری. به بخش "نمودار بلوک" مراجعه کنید)

  1. 3.3V@500mA IC LDO.
  2. برد مبدل سطح منطقی 3.3V-5V.
  3. منبع تغذیه 5 ولت DC

مرحله 1: ایده

اندیشه
اندیشه

لامپ ماه از یک سلول Li-ION 18650 تغذیه می کند و دارای 3 حالت عملکرد است:

  • خاموش
  • کتابچه راهنمای؛
  • خودکار.

در حالت دستی لامپ با دکمه فشاری کنترل می شود ، هر فشار وضعیت نور LED را تغییر می دهد (آبی روشن ، نارنجی روشن ، هر دو روشن ، خاموش) ، شدت نور در حالی که دکمه را فشار داده اید تغییر می کند. در حالت خودکار ، چراغ LED با ضربه زدن یا لرزش خود لامپ تغییر می کند.

من تصمیم گرفتم ESP8266 را اضافه کنم تا به عنوان یک سرور وب عمل کند که به درخواست ها گوش می دهد و بر این اساس فشار دکمه ها را شبیه سازی می کند. من نمی خواستم عملکرد لامپ اصلی را خراب کنم ، فقط می خواستم ویژگی های کنترل اضافی را روی WiFi اضافه کنم ، بنابراین ESP را برای شبیه سازی فشار دکمه ها به جای کنترل مستقیم LED ها انتخاب کردم. همچنین این به من اجازه داد که حداقل با مدار اصلی ارتباط برقرار کنم.

هنگامی که نمونه اولیه انجام شد ، 80 میلی آمپر پوند به طور مداوم از باتری در حالت خاموش (400 میلی آمپر پوند در روشنایی کامل) بیرون می رفت. جریان آماده به کار زیاد است زیرا ESP8266 به عنوان سرور کار می کند و همیشه به WiFi متصل است و به درخواست ها گوش می دهد. باتری بعد از یک روز و نیم تنها در حالت خالی تمام شد ، بنابراین بعداً تصمیم گرفتم از پورت های شارژ USB لامپ ها برای تغذیه تمام قطعات الکترونیکی از منبع تغذیه خارجی 5 ولت و باتری جدا شده استفاده کنم (اما این اختیاری نیست).

مرحله 2: بلوک نمودار

نمودار بلوکی
نمودار بلوکی

در بلوک دیاگرام می توانید ببینید چه مدارهایی اضافه می شوند و چگونه مدارهای موجود اصلاح می شوند. در مورد من ، باتری را به طور کامل حذف کردم و ورودی IC شارژرهای باتری را با خروجی کوتاه کردم (دوباره ، این اختیاری است). بلوک های شفاف در نمودار ، اجزای دور زدن را نشان می دهد (اگرچه دکمه فشاری همچنان همانطور که در نظر گرفته شده کار می کند).

بر اساس مستندات ESP8266 تنها 3.3 ولت را تحمل می کند ، با این حال مثال های زیادی وجود دارد که ESP8266 با 5 ولت کاملاً خوب کار می کند ، بنابراین مبدل سطح منطقی و LDO 3.3 ولت را می توان کنار گذاشت ، با این وجود من بهترین عملکرد را حفظ کردم و آن اجزا را اضافه کردم.

من از 3 پین I/O ESP8266 و پین ADC استفاده کردم. یک پین خروجی دیجیتالی برای شبیه سازی فشار دکمه ها ، دو ورودی دیجیتالی برای تشخیص رنگ LED ها است (از این طریق می توان فهمید که MCU در چه وضعیتی است و بعد از فشار دکمه در کدام حالت قرار دارد). پین ADC ولتاژ ورودی (از طریق تقسیم ولتاژ) را اندازه گیری می کند ، به این ترتیب ما می توانیم سطح شارژ باقی مانده باتری را کنترل کنیم.

من به عنوان منبع تغذیه خارجی از شارژر تلفن قدیمی 5V@1A استفاده می کنم (از شارژرهای سریع استفاده نکنید).

مرحله 3: برنامه نویسی

برنامه نويسي
برنامه نويسي
برنامه نويسي
برنامه نويسي

به طور خلاصه برنامه به این شکل عمل می کند (برای اطلاعات بیشتر به خود کد مراجعه کنید):

ESP8266 به نقطه دسترسی WiFi شما متصل می شود که باید در ابتدای کد برنامه نویسی را وارد کنید ، آدرس IP را از سرور DHCP روترهای شما دریافت می کند ، برای پیدا کردن IP مورد نیاز بعداً ، می توانید تنظیمات DHCP رابط وب روترها را بررسی کرده یا تنظیم کنید اشکال زدایی را در کد به 1 نشان می دهید و خواهید دید که IP ESP در مانیتور سریال چه چیزی دریافت کرده است (باید آن IP را در تنظیمات روترهای خود رزرو کنید تا ESP همیشه در هنگام بوت شدن همان IP را دریافت کند).

هنگام راه اندازی MCU همیشه یک روال یکسان را برای همیشه اجرا می کند:

  1. بررسی کنید که آیا هنوز به AP متصل هستید ، در صورت عدم اتصال مجدد تا موفقیت تلاش کنید.
  2. منتظر بمانید تا مشتری درخواست HTTP را انجام دهد. هنگامی که درخواست اتفاق می افتد:

    1. ولتاژ ورودی را بررسی کنید.
    2. بررسی کنید LED ها در چه وضعیتی هستند.
    3. درخواست HTTP را با حالتهای LED شناخته شده مطابقت دهید (آبی روشن ، نارنجی روشن ، هر دو روشن ، خاموش).
    4. برای رسیدن به حالت درخواست شده ، فشارهای دکمه ای زیادی را در صورت نیاز شبیه سازی کنید.

اگر برای اولین بار برنامه نویسی ESP8266 MCU را دنبال کنید ، دستورالعمل های برنامه نویسی را به طور مختصر توضیح خواهم داد.

شما به Arduino IDE و مبدل رابط سریال USB (به عنوان مثال FT232RL) نیاز دارید. برای تهیه IDE این دستورالعمل ها را دنبال کنید.

برای اتصال ماژول ESP-12E برای برنامه نویسی ، نمودار مدار را دنبال کنید. تعدادی نکته:

  • از منبع تغذیه خارجی 3.3V@500mA استفاده کنید (در بیشتر موارد منبع تغذیه سریال USB کافی نیست) ؛
  • بررسی کنید که آیا مبدل سریال USB شما با سطح منطقی 3.3 ولت سازگار است یا خیر.
  • بررسی کنید آیا درایورهای مبدل سریال USB با موفقیت نصب شده اند (از مدیر دستگاه Windows) همچنین می توانید بررسی کنید که آیا از IDE درست کار می کند ، فقط پین های کوتاه RX و TX ، از IDE پورت COM را انتخاب کنید ، مانیتور سریال را باز کنید و اگر همه کار می کنند چیزی بنویسید باید متنی را که ارسال می کنید در کنسول ظاهر شود.
  • به دلایلی تنها زمانی می توانم ESP را برنامه ریزی کنم که ابتدا مبدل سریال USB را به کامپیوتر وصل کردم و سپس از منبع 3.3 ولت خارجی ESP را تغذیه کردم.
  • پس از موفقیت برنامه نویسی ، فراموش نکنید که GPIO0 را در بوت بعدی بالا بکشید.

مرحله 4: شماتیک و لحیم کاری

شماتیک و لحیم کاری
شماتیک و لحیم کاری
شماتیک و لحیم کاری
شماتیک و لحیم کاری
شماتیک و لحیم کاری
شماتیک و لحیم کاری

برای لحیم کاری همه اجزا به protoboard ، شماتیک را دنبال کنید. همانطور که قبلاً ذکر شد ، برخی از اجزا اختیاری هستند. من از IC KA78M33 3.3V LDO و این صفحه مبدل سطح منطقی از sparkfun استفاده کردم ، در عوض ، می توانید خودتان همانطور که در شکل نشان داده شده است مبدل را انجام دهید (می توانید به جای BSS138 از هر کانال mosfet N استفاده کنید). در صورت استفاده از باتری Li-ION ، شبکه برق +5V پایانه مثبت باتری خواهد بود. ولتاژ مرجع ESP8266 ADC 1 ولت است ، مقادیر تقسیم کننده مقاومت انتخابی من امکان اندازه گیری ولتاژ ورودی تا 5.7 ولت را فراهم می کند.

باید 5 اتصال به PCB لامپ اصلی وجود داشته باشد: +5V (یا +باتری) ، GND ، دکمه فشاری ، سیگنال PWM از لامپ های MCU برای کنترل LED های آبی و نارنجی. اگر لامپ را از منبع 5 ولت تغذیه می کنید ، مانند من ، می خواهید پین IC VCC را با پین OUTPUT کوتاه کنید ، به این ترتیب تمام وسایل الکترونیکی مستقیماً از +5V تغذیه می شوند و نه از خروجی شارژر باتری.

تصویر دوم را برای همه نقاط لحیم کاری که باید روی لامپ PCB ایجاد کنید دنبال کنید.

یادداشت:

  1. اگر تصمیم گرفته اید که +5 ولت را با خروجی IC شارژر کوتاه کنید ، قبل از انجام این کار ، باتری را کاملاً بردارید ، نمی خواهید +5 ولت را مستقیماً به باتری وصل کنید.
  2. توجه کنید که کدام پین دکمه را خروجی ESP را لحیم می کنید ، زیرا 2 پین یک دکمه به زمین متصل است و نمی خواهید وقتی خروجی ESP بالا می رود اتصال کوتاه کنید ، بهتر است با مولتی متر دوبار بررسی کنید.

مرحله 5: برنامه Android

برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید

برنامه Android با مخترع برنامه MIT ساخته شده است ، برای بارگیری یک برنامه و/یا کلون پروژه برای خود ، به این پیوند بروید (برای دسترسی به آن به حساب Google نیاز دارید).

در اولین راه اندازی باید تنظیمات را باز کرده و آدرس IP ESP8266 خود را وارد کنید. این IP ذخیره می شود بنابراین پس از راه اندازی مجدد برنامه نیازی به وارد کردن مجدد آن نیست.

برنامه با چندین دستگاه Android 9 و android 7 آزمایش شده است.

توصیه شده: