• شش راه آسان برای اتصال آردوینو به اندروید. آردوینو را از طریق گوشی خود کنترل کنید

    از نو شروع کن

    تراشه ESP 8266

    تراشه ESP8266 به طور خاص برای اینترنت اشیا طراحی شده است. دو گزینه برای استفاده از این تراشه وجود دارد. اولین مورد به عنوان یک پل UART-WIFI برای اتصال به میکروکنترلر و کنترل دستورات AT است. گزینه دوم - تراشه خود نقش یک کنترل کننده را بازی می کند. طبق برآورد من، در بین دوستداران الکترونیک، تراشه بیشتر به عنوان یک کنترل کننده استفاده می شود.

    ویژگی های تراشه:

    • پشتیبانی از 802.11b/g/n
    • MCU یکپارچه 32 بیتی کم مصرف
    • ADC 10 بیتی یکپارچه
    • پشته TCP/IP تعبیه شده
    • تقویت کننده سیگنال RF داخلی
    • پشتیبانی از تنوع آنتن
    • WiFi 2.4 گیگاهرتز، پشتیبانی از WPA/WPA2
    • از حالت های STA/AP/STA+AP پشتیبانی کنید
    • SDIO 2.0، (H) SPI، UART، I2C، I2S، کنترل از راه دور IR، PWM، GPIO
    • STBC، 1x1 MIMO، 2x1 MIMO
    • A-MPDU & A-MSDU تجمع و فاصله نگهبانی 0.4 ثانیه
    • توان خروجی+20 dBm در حالت 802.11b

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

    عکس برای مقایسه تعداد اجزای راه حل های مشابه.

    بر اساس برخی گزارش ها، تمام این زیبایی توسط هسته پردازنده 32 بیتی Xtensa LX106 کنترل می شود، به گفته برخی دیگر - الماس L106 Tensilica. در زیر میکروسکوپ، تراشه مانند یک شهر کامل از عناصر متصل به نظر می رسد.

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

    • 215 میلی آمپر در حالت انتقال پیوسته.
    • 1 میلی آمپر در حالت حفظ ارتباط با نقطه دسترسی
    • 10uA در حالت خواب عمیق با ساعت در حال اجرا
    • 0.5uA اینچ حالت قدرتخاموش

    زمان لازم برای بیدار شدن و شروع ارسال یک بسته کمتر از 2 میلی ثانیه است. به عنوان مثال، هنگام اندازه گیری دما هر 100 ثانیه و اتصال به یک نقطه دسترسی و انتقال داده های انباشته شده در هر 300 ثانیه (بقیه زمان خواب تراشه)، جریان متوسط ​​حدود 1 میلی آمپر خواهد بود. این بیش از سه ماه کار از سه باتری انگشتی با ظرفیت 2600 میلی آمپر ساعت است.

    درباره ماژول ها ESP

    در حال حاضر، محبوب ترین ماژول های مبتنی بر ESP8266 عبارتند از ESP-01، ESP-02، ESP-03، ESP-04، ESP-05، ESP-06، ESP-07، ESP-08، ESP-09، ESP-10، ESP. -11، ESP-12، ESP-12E. آنها از نظر تعداد پین های جدا شده، وجود کانکتور برای اتصال آنتن خارجی و اندازه متفاوت هستند.

    اکنون می توانید برادر بزرگتر ESP8266 را در فروش پیدا کنید - این ماژول ESP-32 است. در Aliexpress، تاکنون تنها دو فروشنده این ماژول ها را دارند. قیمت حدود 250 روبل در برابر 110 روبل برای ESP-12E است. در ماژول جدید چیزهای بیشتری وجود خواهد داشت.

    ویژگی های اصلی ESP-32. (برای مشاهده کلیک کنید)

    وای فای
    - 802.11b/g/n/e/i
    - 802.11n (2.4 گیگاهرتز)، تا 150 مگابیت بر ثانیه
    - ویژگی های امنیتی 802.11i: پیش احراز هویت و TSN
    - 802.11e: مدیریت صف های متعدد برای استفاده کامل از اولویت بندی ترافیک QoS
    - دسترسی محافظت شده از Wi-Fi (WPA)/WPA2
    - راه اندازی محافظت شده از Wi-Fi (WPS)
    - سازگار و دارای گواهینامه UMA
    - تنوع و انتخاب آنتن
    - تجمع A-MPDU و A-MSDU
    - قدرت WMM و U-APSD
    - تکه تکه شدن و یکپارچه سازی
    - Wi-Fi Direct (P2P)، P2P Discovery، حالت مالک گروه P2P و مدیریت انرژی P2P
    - حالت ایستگاه BSS زیرساخت / حالت Soft AP
    - نظارت / اسکن خودکار چراغ
    - پشته های SSL با شتاب دهنده های سخت افزاری

    بلوتوث
    - رادیو و بیس باند کاملاً یکپارچه تک تراشه CMOS
    - بلوتوث Piconet و Scatternet
    - بلوتوث 4.2 (BR/EDR/BLE)
    - پرش فرکانس تطبیقی ​​(AFH)
    - SMP
    - فرستنده کلاس 1، کلاس 2 و کلاس 3 بدون تقویت کننده قدرت خارجی
    - قدرت تراشی +10dBm
    - گیرنده NZIF با حساسیت -90 dBm
    - حداکثر سرعت 4 مگابیت در ثانیه UART HCI
    - SDIO / SPI HCI
    - CVSD و SBC
    - مصرف برق کم
    - حداقل جزء خارجی

    CPU و حافظه
    - Xtensa® Dual-Core 32 بیتی LX6 میکروفون، تا 400MIPS
    - رام 128 کیلوبایت
    - QSPI Flash/SRAM، تا 4 x 16 مگابایت
    - منبع تغذیه: 2.5 ولت تا 3.6 ولت
    - 416 کیلوبایت SRAM

    ساعت و تایمر
    - نوسانگر کریستالی 2 مگاهرتز تا 40 مگاهرتز
    - نوسان ساز داخلی 8 مگاهرتز با کالیبراسیون
    - نوسان ساز خارجی 32 کیلوهرتز برای RTC با کالیبراسیون
    - نوسان ساز داخلی RC با کالیبراسیون
    - دو گروه تایمر شامل 3 تایمر 64 بیتی و 1 x نگهبان در هر گروه
    - تایمر RTC با دقت زیر ثانیه
    - نگهبان RTC

    رابط های جانبی پیشرفته
    - 12 بیت SAR ADC تا 16 کانال
    - 2 مبدل D/A 10 بیتی
    - 10 سنسور لمسی
    - سنسور دما (-40 + 125 درجه سانتیگراد)
    - 4 x SPI
    - 2 x I2S
    - 2 x I2C
    - 2 x UART
    - 1 میزبان (SD/eMMC/SDIO)
    - 1 برده (SDIO/SPI)
    - رابط MAC اترنت با پشتیبانی اختصاصی DMA و IEEE 1588
    - CAN 2.0
    - IR (TX/RX)
    - موتور PWM
    - LED PWM تا 16 کانال

    امنیت
    - ویژگی های امنیتی استاندارد IEEE 802.11 همه پشتیبانی می شوند، از جمله WFA، WPA/WPA2 و WAPI
    - بوت ایمن
    - رمزگذاری فلش
    - 1024 بیت OTP، تا 768 بیت برای مشتریان
    - شتاب سخت افزار رمزنگاری:
    - AES 128/192/256
    - کتابخانه HASH (SHA-2).
    -RSA
    - مولد اعداد رادم

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

    اما به ESP-12E برگردیم. بر اساس این ماژول، پلتفرم NodeMCU ساخته شده است.

    درباره پلت فرم

    این پلتفرم از قابلیت های ماژول ESP-12 استفاده می کند، میکروکنترلر خود را ندارد. چینی ها کلون های زیادی را با مبدل های رابط مختلف تولید می کنند و خود پلتفرم ها اندازه های مختلفی دارند.

    به طور پیش‌فرض، میان‌افزار NodeMCU با پشتیبانی از مفسر زبان برنامه‌نویسی LUA در پلتفرم بارگذاری می‌شود. اسکریپت ها رفتار هیئت مدیره را تعریف می کنند.

    من برنامه ها را با استفاده از Arduino IDE می نویسم و ​​آپلود می کنم. برای کار با پلتفرم باید کتابخانه ها نصب شوند. همراه با کتابخانه ها تعداد زیادی ازنمونه های برنامه

    نصب کتابخانه بر روی محیط زیست آردوینو IDE برای کار با NodeMCU .

    برای نصب کتابخانه ها، به تنظیمات آردوینو IDE و در قسمت «تابلو اضافی» آدرس http://arduino.esp8266.com/package_esp8266com_index.json را وارد کنید

    لیست را به پایین اسکرول کنید و ESP8266 توسط ESP8266 Community را پیدا کنید و کتابخانه ها را نصب کنید.

    بستن مدیر هیئت ها به "Tools" بروید و برد NodeMCU را مطابق نسخه خود انتخاب کنید.

    برای اینکه بفهمید کدام ماژول را نصب کرده اید و کدام نسخه را انتخاب کنید، به ماژول نگاه کنید. اگر مخاطبین روی آن در سه طرف قرار دارند - این ESP-12E است، اگر فقط در دو طرف باشد - این ESP-12 است.

    پین تخصیص پلتفرم NodeMCU

    توابع پشتیبانی شده توسط کتابخانه ها برای آردوینو IDE .

    توضیحات کامل را می توانید در اینجا https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_ru و به زبان روسی بخوانید. من در مورد توابع اصلی صحبت خواهم کرد.

    GPIO مانند آردوینو کنترل می شود. عملکرد pinMode، digitalRead، digitalWrite، analogWrite طبق معمول. analogRead(A0) مقدار ADC را به ترتیب از ورودی آنالوگ A0 می خواند. analogWrite نرم افزار PWM را فعال می کند. فرکانس PWM حدود 1 کیلوهرتز است. محدوده PWM از 0 تا 1023 است، همانطور که به یاد داریم برای آردوینو تا 255 است. وقفه ها نیز در هر GPIO به جز GPIO16 پشتیبانی می شوند. توابع millis() و micros() میلی ثانیه و میکروثانیه را از زمان شروع ماژول برمی گرداند. تابع delay() NodeMCU متفاوت از آردوینو کار می کند. در اینجا استفاده از تاخیر مورد استقبال و حتی در برنامه های بزرگ ضروری است. هنگامی که یک ماژول اتصال WiFi را حفظ می کند، باید کارهای پس زمینه زیادی غیر از طرح شما انجام دهد. توابع WiFi و TCP/IP کتابخانه‌های SDK این توانایی را دارند که تمام رویدادهای موجود در صف را پس از تکمیل هر چرخه تابع ()loop شما یا در طول اجرای تاخیر (...) پردازش کنند. اگر کد شما دارای قطعاتی است که بیش از 50 میلی ثانیه طول می کشد، باید از تاخیر (...) استفاده کنید تا پشته WiFi به درستی کار کند. اما ()delayMicroseconds سایر وظایف را مسدود می کند و برای تاخیرهای بیشتر از 20 میلی ثانیه توصیه نمی شود. سریال از یک سخت افزار UART0 استفاده می کند که روی PIO1 (TX) و GPIO3 (RX) اجرا می شود.

    برنامه ای برای کنترل چهار رله از یک برنامه تلفن همراه

    پس از نصب کتابخانه ها، یک بلوک از 4 رله را به پلتفرم به پایه های D1، D2، D3، D4 متصل می کنیم که به ترتیب مربوط به GPIO 5، 4، 0، 2 است. سپس برق را به پلت فرم و به واحد رله وصل می کنیم. بلوک رله ای که من دارم یک ویژگی دارد. برای روشن کردن رله، باید پین را روی زمین بکشید. یعنی 0 منطقی رله را روشن می کند و 1 آن را خاموش می کند.

    من سه گزینه را برای برنامه کنترل بلوک رله در نظر خواهم گرفت.

    برنامه اول از کتابخانه محبوب aRest https://github.com/marcoschwartz/aREST استفاده می کند

    این یک کتابخانه کنترل کننده API است که به شما امکان می دهد GPIO را از طریق درخواست های http مانند http://192.168.0.10/digital/6/1 کنترل کنید. قابلیت های آن: GPIO را روی دیجیتال یا آنالوگ (PWM) تنظیم کنید، 0 یا 1 را برای پین کردن در دیجیتال تنظیم کنید. حالت، متغیرها را برگردانید و وضعیت پین ها را بخوانید.

    من برنامه را کامپایل کردم و از نمونه هایی که با کتابخانه ارائه می شود بارگذاری کردم. از نظر استفاده، نمی تواند ساده تر باشد.

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

    حلقه خالی() (

    WiFiClient client = server.available();

    اگر (! مشتری) (

    برگشت؛

    }

    while(!client.available())(

    تاخیر (1);

    }

    دسته استراحت (مشتری)؛

    }

    همه. آنچه در آنجا اتفاق می افتد مشخص نیست. این کار می کند، اما ما در واقع چیزی را برنامه ریزی نمی کنیم. ما فقط برنامه را اجرا می کنیم، کتابخانه بقیه کارها را انجام می دهد. اما جالب تر است که یاد بگیرید چگونه با GPIO کار کنید "با دست". بله اتفاقا برنامه من بعد از مدت نامحدودی از کار افتاد. گاهی بعد از 40 دقیقه، گاهی بعد از 5-6 ساعت. بعد از 8 ساعت کار به خانه آمدم، همیشه متوجه می شدم که این برنامه کار نمی کند. روتر این را نشان می دهد مشتری وای فایمتصل شده و یک آدرس IP داده شده است. من به سرعت علاقه به کتابخانه را از دست دادم. من هیچ شکایتی در مورد مسدود شدن aRest در انجمن های روسی زبان ندیده ام. من قبلاً در NodeMCU یا منبع تغذیه ناپایدار گناه کرده بودم، اما آزمایشات بیشتر ثابت کرد که برنامه در مورد من مقصر بوده است. به احتمال زیاد دارم مورد خاص. من ادعا نمی کنم که کتابخانه کار نمی کند.

    ما aRest را فهمیدیم.

    برنامه دوم خود نوشته، فقط از یک #کتابخانه شامل استفاده می کند . این برنامه ساده است و به صورت بصری نحوه مدیریت پین ها را از طریق درخواست های وب نشان می دهد. این برنامه قادر است تنها حالت های منطقی خروجی های D1-D4 را مدیریت کند و اطلاعات مربوط به زمان اجرای برنامه را به عنوان درخواست تست نمایش دهد. در صورت لزوم، می توانید یک برنامه برای بقیه GPIO ها اضافه کنید، به آن آموزش دهید تا PWM و غیره صادر کند. LED آبی رنگ که روی ماژول ESP-12E قرار دارد به پین ​​D4 متصل می شود. پس از تحمل یخ های aRest، من به طور موقت رله 4 را از D4 جدا کردم و چند خط به برنامه خود اضافه کردم تا این LED چشمک بزند. من بعد از کار به خانه آمدم، نگاه می کنم - چشمک می زند، یعنی کار می کند. من آن را از طریق تلفن همراهم بررسی کردم - قطعاً کار می کند. این برنامه به مدت 8 روز بدون فریز کار کرد، باید بیشتر کار می کرد، اما من فقط یک NodeMCU دارم، بنابراین به مطالعه آن ادامه دادم و برنامه باید متوقف می شد.

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

    برای کنترل واحد رله برای این دو برنامه، اپلیکیشنی برای تلفن همراه با سیستم عامل اندروید ایجاد شد. برنامه بسیار ساده است، در App Inventor 2 ایجاد شده است. در ادامه روند ایجاد برنامه را شرح خواهم داد. اول، گزینه سوم برای حل کنترل رله.

    گزینه سوم مجتمع سیستم عامل پلت فرم و نرم افزار اندروید از یک توسعه دهنده. من از سرویس Blynk استفاده کردم. این یک سرویس ابری برای ایجاد کنترل پنل های گرافیکی است و برای طیف گسترده ای از میکرو کامپیوترها و میکروکنترلرها مناسب است.

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

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

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

    قسمت اول. Blynk را دانلود کنید گوگل پلی. برنامه را نصب و اجرا کنید

    1. روی "ایجاد پروژه جدید" کلیک کنید
    2. نام پروژه را وارد کرده و NodeMCU را در قسمت "مدل سخت افزار" انتخاب کنید. Auth Token را از زبان بیاموزید یا آن را روی یک کاغذ یادداشت کنید، آن را به ایمیل خود ارسال کنید. روی "ایجاد" کلیک کنید.
    3. روی "+" در گوشه کلیک کنید.
    4. "دکمه" را انتخاب کنید. همانطور که قبلاً اشاره کردید، هر عنصر اضافه شده به پروژه هزینه انرژی دارد. به طور پیش فرض، 2000 به شما داده می شود. با اضافه کردن ویجت، انرژی مصرف می شود. اگر نیاز به قرار دادن ویجت های بیشتری دارید، باید انرژی را در ازای پول بخرید.

    1. دکمه ما اینجاست. روی آن کلیک کنید. تنظیمات آن باز خواهد شد.
    2. نام، پینی که روی آن عمل می کند، حالت دکمه یا سوئیچ، نام حالت های "روشن" و "خاموش" را انتخاب کنید. در برنامه، سیگنال از دکمه نمی تواند معکوس شود. برای رله های من: دکمه خاموش است - 0 در خروجی، رله روشن است و بالعکس. با نصب سرور بر روی رایانه محلی می توانید قوانین عملکرد منطق را تجویز کنید.
    3. سپس روی مثلث بالا سمت راست کلیک کنید. برنامه از حالت ویرایش به حالت کار تغییر می کند.
    4. دکمه ها کار می کنند. قابل توجه است، چند لمسی پشتیبانی می شود. من سعی کردم 6 دکمه را همزمان فشار دهم. همه چیز کار می کند (تلفن طبق توضیحات 10 نقطه فشار دارد).

    بخش دوم سیستم عامل NodeMCU است. کتابخانه های Blynk را دانلود و نصب کنید https://github.com/blynkkk/blynk-library. Arduino IDE - File - Samples - Blynk - BoardsAndShields - ESP8266_Standalone را اجرا کنید.

    رمز تأیید را از قسمت مخفی ایمیل در مثال وارد کنید. و همچنین SSID شبکه وای فای و رمز ورود به آن.

    همه. جمع آوری و دوخت. همه چیز برای اولین بار کار کرد. مشمول استفاده سرویس ابریباید به اینترنت دسترسی داشته باشد تلفن همراهو NodeMCU.

    ایجاد یک برنامه کاربردی دربرنامه فهرست.

    App Inventor یک محیط توسعه بصری برای برنامه های اندرویدی است که کاربر را ملزم می کند حداقل دانشبرنامه نويسي. در ابتدا در آزمایشگاه گوگل توسعه داده شد، پس از تعطیلی این آزمایشگاه، به موسسه فناوری ماساچوست منتقل شد. برای برنامه نویسی در App Inventor، استفاده کنید رابط کاربری گرافیکی، یک زبان برنامه نویسی بصری بسیار شبیه به Scratch و StarLogo TNG. فهمیدن نحوه نوشتن برنامه کار چندان سختی نیست. من هیچ سند مفیدی به زبان روسی پیدا نکردم، اما ویدیوهای زیادی در یوتیوب وجود دارد.

    این سرویس دارای دو تب اصلی است. اولین مورد "طراح" است، اینجا در ویرایشگر بصریاجزا قرار داده شده است. سرعت توسعه رابط به دلیل یکی از ویژگی های سرویس App Inventor بسیار بالا است. در یک دستگاه تلفن همراه، باید برنامه MIT App Inventor 2 Companion را نصب کنید. آن را اجرا کنید. در سایت، Connect - AI Companion را انتخاب کنید. یک کد QR تولید و روی صفحه نمایش داده می شود. در برنامه، باید روی "اسکن کد QR" کلیک کنید و کد را اسکن کنید. پس از چند ثانیه، برنامه بر روی صفحه نمایش دستگاه تلفن همراه ظاهر می شود. موارد جدید یا هر داده تغییر یافته فقط در یک ثانیه برای تأیید در دستگاه تلفن همراه در دسترس می‌شوند.

    صفحه شامل: یک فیلد ورودی برای وارد کردن آدرس IP، یک دکمه برای تنظیم آدرس و ارسال درخواست آزمایشی است. در زیر کامپوننت "WebViewer" آمده است، صفحه ارسال شده در پاسخ از NodeMCU را نمایش می دهد. در زیر 4 گروه از دو دکمه وجود دارد که رله را روشن و خاموش می کنند. ما همچنین به کامپوننت TinyDB نیاز داریم، برای ساخت پرس و جو یک متغیر در آن ذخیره می کنیم. من همچنین یک جزء تشخیص صدا را برای آزمایش اضافه کردم تا بتوانید رله را با دستورات صوتی کنترل کنید. من الگوریتم اقدامات برای تشخیص متن را توصیف نمی کنم، زیرا استفاده از این تابع بسیار ناخوشایند است. ابتدا باید دکمه را فشار دهید، سپس پنجره ای از Google با کتیبه "speak" نمایش داده می شود، سپس دستور تلفظ می شود. علاوه بر این، پس از پایان تلفظ دستور، سیستم تشخیص مدتی صبر می کند، سپس متوجه می شود که همه چیز قبلا گفته شده است. سپس تشخیص گفتار و پاسخ متن می آید. باید با عبارات از پیش آماده شده مقایسه شود. و تنها پس از آن دستور اجرا خواهد شد. زدن دکمه راحت تر است.

    تب دوم "Blocks" نام دارد. در اینجا، به صورت بلوک، کل بخش "نرم افزار" برنامه مشخص می شود.

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

    • هنگامی که SET.Click - هنگامی که دکمه "set" فشار داده می شود، تابع IP را فراخوانی کنید
    • بعد خود تابع IP می آید. آدرس IP را از فیلد ورودی در TinyDB با پیشوند "http://" ذخیره می کند. سپس WebViewer.GoToUrl آدرس را از TinyDB می گیرد، "/test" را به انتها اضافه می کند و به این آدرس می رود. من "http://192.168.0.1/test" را دریافت می کنم. در WebViewer اطلاعاتی بر روی صفحه نمایش بارگذاری می شود که تست آن را پشت سر گذاشته است و زمان کار مداوم NodeMCU نمایش داده می شود. اگر آدرس IP اشتباه وارد شده باشد، پیامی مبنی بر عدم امکان باز کردن صفحه دریافت می کنیم.
    • وقتی ON1.Click (ON1 نام دکمه است) عملکرد ON1 را فراخوانی می کند.
    • تابع ON1 آدرس را از TinyDB می گیرد، "/D1/0" را به آن اضافه می کند، "http://192.168.0.1/D1/0" را نشان می دهد و درخواست را ارسال می کند. NodeMCU، با دریافت درخواست داده شده، فکر می کند که پین ​​D1 باید روی 0 تنظیم شود. پاسخ "GPIO set OK" را که در WebViewer می بینیم را اجرا و ارسال می کند.
    • دکمه OFF1 بعدی نیز همین کار را می کند، فقط "/D1/1" را در پایان اضافه می کند. منطق 1 را روی پین D1 قرار می دهد. رله خاموش می شود.

    دکمه های باقیمانده به همین ترتیب عمل می کنند و شماره پین ​​ها و وضعیت مورد نیاز در درخواست را تغییر می دهند.

    بعد از اینکه همه چیز بررسی شد و کار کرد، روی Build - App کلیک کنید (apk. را در رایانه من ذخیره کنید). کامپایل و دانلود فایل apk اپلیکیشن. این باید روی یک دستگاه تلفن همراه نصب شود، که قبلاً اجازه نصب برنامه ها را داده است منابع شخص ثالث. اکنون برنامه به خودی خود شروع می شود. دیگر نیازی به AI Companion و اتصال به اینترنت نیست.

    به این صورت است که می توانید بدون زحمت یک برنامه کاربردی برای دستگاه اندرویدی خود ایجاد کنید تا بار روی شبکه WiFi را مدیریت کنید.

    NodeMCU و تلفن همراه متصل به روتر خانگی. جایی که نقطه ای وجود ندارد دسترسی به وای فای NodeMCU می تواند به عنوان یک نقطه دسترسی برای اتصال مستقیم دستگاه تلفن همراه به ESP8266 عمل کند. به عنوان مثال، کنترل باز شدن درب گاراژ و روشن کردن چراغ در گاراژ.

    P.S. من هنوز نتوانسته ام نقطه دسترسی را روی پلت فرم بالا ببرم. مثالی که با کتابخانه ها ارائه می شود کامپایل نمی شود. Arduino IDE فقط هنگام کامپایل هنگ می کند. من هنوز با این موضوع کنار نیامده ام.

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

    آیا ماشین RC می تواند ماشین وای فای باشد...؟

    ماشین‌های RC خوب هستند، اما ماشین‌های RC ارزان برد محدودی دارند و فقط با ریموت خاصی که با کیت ارائه می‌شود کنترل می‌شوند.

    من یک جیپ 4x4 RC با سیستم تعلیق انعطاف پذیر و لاستیک های خارج از جاده را به قیمت حدود 30 دلار خریدم. پس از بازی با دستگاه، به این نتیجه رسیدم که می توان آن را با Wi-Fi و Android بهبود بخشید. بعد از صرف زمان کمی برد را به طور کامل از دستگاه جدا کردم. من ولتاژهای این برد را اندازه گرفتم و یک سیستم کنترل موتور با آن توسعه دادم کمک آردوینو. سیستم کنترل اصلی از PWM برای کنترل سرعت استفاده نمی کند. این ماشین برای حرکت از روی موانع با دنده بسیار کم و در نتیجه بسیار آهسته طراحی شده است. مدار من از PWM استفاده می کند.

    من چند ماهه که از آردوینو استفاده میکنم. من همچنین Asynclabs WiFi Sheild را برای Duemilanoe Arduino خریداری کردم تا با WiFi آزمایش کنم. با یک کتابخانه نصب شده در Arduino IDE ارائه می شود. من توانستم برنامه ای بسازم که به شما امکان می دهد موتورها و جهت حرکت را با استفاده از WiFi کنترل کنید.

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

    ابزار و عناصر

    این لیست مشترکابزار و عناصری که در این پروژه استفاده شده است. مستندات Eagle دقیق را مشخص می کند مشخصات فنیاجزای مورد استفاده

    مولتی متر
    آهن لحیم کاری
    لحیم کاری
    پیچ گوشتی
    راه حل برای اچینگ برد مدار
    فایبرگلاس فویل
    انبر
    آردوینو
    AsyncLabs WiFi Shield
    کانکتورهای RJ45
    راننده موتور پل H
    خازن ها

    راننده موتور

    با استفاده از Eagle این مدار را طراحی و ساختم تخته مدار چاپیبرای او. این به عنوان یک درایور موتور و تنظیم کننده قدرت برای آردوینو عمل می کند.
    این به شما امکان می دهد از یک باتری استاندارد 7.2 ولتی برای تغذیه موتورهای اصلی و فرمان و آردوینو استفاده کنید.

    این مدار از یک درایور پل H یکپارچه دوگانه SN754410 برای کنترل موتورها استفاده می کند. پین های کنترل درایور به کابل RJ45 متصل می شوند که به AsyncLabs WiFi Sheild متصل می شود.

    سپر آردوینو

    با استفاده از کتابخانه SparkFun در Eagle، من یک آردوینو شیلد طراحی کردم که پین ​​ها را به WiFi Shield منتقل می کند و از طریق یک کانکتور RJ45 و 2 ترمینال پیچ به درایور موتور متصل می شود.

    پین اوت RJ45 بسیار مهم است. یک خطای اتصال می تواند منجر به نتایج غیرقابل پیش بینی شود و شما باید برد را دوباره انجام دهید.

    حکاکی PCB

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

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

    برنامه

    ممکن است کد من به اندازه کافی کارآمد نباشد، اما کار می کند.

    ماشین تحریر

    من توانستم CarServer را بر اساس مثال SocketServer که از Wifi Sheild AsynLabs دریافت کردم بسازم.
    شما باید اطلاعات شبکه بی سیم خود را در کد آردوینو وارد کنید. هنگامی که دستگاه روشن است، 15-45 ثانیه به آن فرصت دهید تا با روتر ارتباط برقرار کند. LED قرمز روی WiFi Shield به معنای برقراری ارتباط است.

    من این برنامه را با سی شارپ و MS Visual Studio 2008 ساختم. یک پنجره زیبا درست کردم و ماشین را می توان با فلش کنترل کرد.

    چرا ماشین را از طریق گوشی خود کنترل نمی کنید؟

    این فکر حدود یک هفته پس از خرید DroidX به ذهنم خطور کرد. من شروع به آزمایش کردم و در نهایت از Android SDK استفاده کردم. من برنامه های مشابهی پیدا کردم که از شتاب سنج برای کنترل استفاده می شود. با نگاه کردن به این برنامه ها، من خودم نوشتم.

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

    با ماشین 4*4 با وای فای در حیاط رانندگی کنید!

    برای ایجاد این پروژه زمان بسیار خوبی داشتم. من دانش و مهارت های جدید زیادی کسب کردم و اکنون یک ماشین 4x4 دارم که می توان آن را از طریق تلفن من کنترل کرد.

    من به یک دوربین برای نصب پشت شیشه جلو نیاز دارم تا بتوانم ببینم کجا می روم. این باید کم قدرت باشد و همچنین ویدئو را به تنهایی انتقال دهد. (من فکر می کنم آردوینو می تواند آن را مدیریت کند).

    فهرست عناصر رادیویی

    تعیین تایپ کنید فرقه تعداد توجه داشته باشیدخرید کنیددفترچه یادداشت من
    راننده موتور
    IC1 تراشهSN7544101 به دفترچه یادداشت
    تنظیم کننده خطی5 V1 به دفترچه یادداشت
    ترانزیستور دوقطبی

    2N3904

    1 به دفترچه یادداشت
    C1، C2 خازن الکترولیتی 2 به دفترچه یادداشت
    رابط2 پین7 به دفترچه یادداشت
    رابط8 پین1 به دفترچه یادداشت
    سپر آردوینو
    U1 برد آردوینو 1 به دفترچه یادداشت
    T1 ترانزیستور دوقطبی

    2N3904

    1 به دفترچه یادداشت
    R1 مقاومت 1 به دفترچه یادداشت
    3 دلار آمریکا مقاومت تریمر 1 به دفترچه یادداشت
    رابط2 پین2

    میخوای بفرستی پیام متنیاز گوشی هوشمند اندرویدی گرفته تا برد آردوینو؟ این مقاله به شما می گوید که چگونه این کار را انجام دهید!

    آنچه مورد نیاز خواهد بود

    • گوشی هوشمند اندرویدی که از حالت میزبان USB پشتیبانی می کند (به عنوان مثال پشتیبانی OTG) - اکثر دستگاه های دارای اندروید 3.1 و بالاتر از این حالت پشتیبانی می کنند. گوشی خود را با از طریق USB Host Diagnostics App از Play Store.
    • آردوینو - هر نسخه. من از Uno R3 استفاده خواهم کرد.
    • کابل یو اس بیبرای آردوینو؛
    • یو اس بی کابل OTG- برای اتصال کابل USB آردوینو به آن نیاز دارید پورت میکرو USBتلفن؛
    • Android Studio - باید آن را نصب کنید. انجام آن بسیار آسان است. استودیو اندرویدتوسعه برنامه را از طریق مفروضات و تولید کد آسان تر می کند. این یکی از بهترین IDE ها است. شما همچنین می توانید از این مقاله به عنوان راهنما استفاده کنید نصب اندروید IDE.

    اجزای اصلی یک برنامه اندروید

    که در برنامه اندرویدسه فایل اصلی وجود دارد:

    MainActivity.java این کد اجرایی جاوا است که نحوه عملکرد برنامه را کنترل می کند. activity_main.xml شامل طرح‌بندی برنامه، به عنوان مثال، اجزای: دکمه‌ها، اجزای نمایش متن و غیره است. AndroidManifest.xml اینجاست که شما تعیین می‌کنید برنامه چه زمانی اجرا شود، به چه مجوزهایی نیاز دارد و به چه سخت‌افزاری دسترسی داشته باشد.

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

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

    چیدمان

    ما از همان چیدمان برنامه USB و برنامه بلوتوث استفاده خواهیم کرد. این ساده است و حاوی حداقل ویجت های مورد نیاز برای بررسی ارتباط بین دستگاه ها است.

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

    در اینجا بخشی از کد XML آمده است. از آنجایی که کد دکمه ها مشابه است، در اینجا نشان داده نمی شود. کد کامل را می توانید از لینک انتهای مقاله دانلود کنید.