با عرض سلام مجدد خدمت دوستان عزیز
امروز قسمت سوم کنترل ساخت قفل هوشمند با استفاده از آردوینو رو براتون میزاریم.
آموزش کامل ساخت این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
آموزش ساخت قفل هوشمند از راه دور با استفاده از آردوینو | پروژه آردوینو
گام سوم : راه اندازی قفل در
تا اینجا قسمتی از پروژه که می توان با استفاده از آن قفل در کنترل کرد را ، راه اندازی کردید. در اینجا از یک برد ESP8266 برای اتصال به شبکه وای فای و فعال یا غیرفعال کردن قفل استفاده کنید. همچنین این نشان میدهد که با استفاده از IO، برقراری ارتباط بین دو پلتفرم (آردوینو و ESP8266) با یکدیگر ساده خواهد بود.
در این بخش، قصد استفاده از قفل های از راه دور را نداریم چون ساخت سخت افزار آنها بسیار پیچیده است. در عوض از یک روش ساده استفاده میکنیم و آن اتصال یک LED به پینی است که بعدا روی قفل قرار خواهیم داد. این کار به ما اجازه می دهد که بدون نیاز به پیچیدگی های سخت افزاری ، کد را تست کنیم.
گرد آوردن این قسمت از پروژه واقعا ساده است، فقط باید در ابتدا ESP8266 را روی بردبورد قرار دهید. سپس LED را روی بردبورد قرار دهید به گونه ای که پایه بلندتر LED در ردیف مقاومت ها قرار بگیرد. پس از آن، سمت دیگر مقاومت را به پین 5 بورد ESP8266 و پایه ی دیگر LED را به پین GND بورد ESP8266 متصل کنید.
تصویر زیر، مونتاژ این قسمت را نشان می دهد.
حالا بیایید اسکچی را که برای این بخش از پروژه استفاده خواهد شد را ببینیم. مجددا اسکچ پیچیده است و در این جا فقط قسمت های مهم را نشان داده شده است.
با کتابخانه ها شروع می کنیم:
#include "ESP8266WiFi.h"
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
سپس باید تنظیمات وای فای را قراردهید:
#define WLAN_SSID "your_wifi_ssid"
#define WLAN_PASS "your_wifi_password"
#define WLAN_SECURITY WLAN_SEC_WPA2
و بعد از آن، تنظیمات IO خواهد بود که دقیقا مشابه پروژه های قبلی است:
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "adafruit_io_username"
#define AIO_KEY "adafruit_io_key"
همچنین پینی که به LED (و بعد از آن قفل یا رله به عنوان مثال) متصل خواهد شد را تعریف کنید:
int relayPin = 5;
معمولا یک فید(feed) جدید برای قفل تعریف می شود:
const char LOCK_FEED[] PROGMEM = AIO_USERNAME "/feeds/lock";
Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);
در تابع setup() اسکچ، پین LED را به عنوان خروجی تنظیم کنید:
pinMode(relayPin, OUTPUT);
همچنین فید(feed) قفل را که قبلا تعریف شده بود ، تایید کنید:
mqtt.subscribe(&lock);
در تابع loop() اسکچ، برای اولین بار اتصال به IO را بررسی کنید:
MQTT_connect();
سپس بررسی کنید که از فید قفل چه چیزی را دریافت می کنید. اگر پیام '1' باشد، پین متصل به LED که قبلا تعریف شده بود، فعال کنید و اگر '0' را دریافت کنید، این پین را مجددا در حالت پایین قرار دهید:
Adafruit_MQTT_Subscribe *subscription;
while ((subscription = mqtt.readSubscription(1000))) {
if (subscription == &lock) {
Serial.print(F("Got: "));
Serial.println((char *)lock.lastread);
// Save command to String
String command = String((char *)lock.lastread);
command.trim();
if (command == "0") {
digitalWrite(relayPin, LOW);
}
if (command == "1") {
digitalWrite(relayPin, HIGH);
}
}
}
از مدیریت کتابخانه آردوینو برای دانلود همه ی کتابخانه های مورد نیاز برای این پروژه استفاده کنید.
مطمین شوید که کدتان با تنظیماتی مانند تنظیمات IO و یا شبکه وای فای، اصلاح شده است.
برای برنامه ریزی تراشه ESP8266، از بورد USB-FTDI استفاده کنید. برای اطلاعات بیشتر در مورد برنامه ریزی ESP8266 این آموزش مفید را مطالعه کنید.
در آخر کد را روی بورد آپلود کنید. سپس سریال مانیتور را باز کنید. در این مرحله فقط باید بررسی کنید که آیا پروژه می تواند به IO متصل شود. موارد دیگر در قسمت بعد بررسی خواهند شد.
گام چهارم: تست کردن پروژه
حالا زمان آن رسیده که پروژه خود را تست کنید. در ابتدا به بخش فید(feed) از داشبورد IO بروید. شما باید اثر انگشت و فیدهای قفل را که در اسکچ تان ایجاد کرده اید را بررسی کنید:
در صورتی که چنین نیست، باید آنها را ایجاد کنید. ما هنوز هم به راهی برای لینک کردن فید(feed) اثرانگشت و فید قفل نیاز داریم. می خواهیم فید قفل مقدار 1 را بگیرد زمانی که فید اثر انگشت 1 است و برعکس.
برای اینکار از ویژگی قدرتمند IO استفاده کنید، محرک ها. اساسا محرک ها شرایطی هستند که شما بر روی فید تنظیم کنید، برای مثال اتصال دو فید.
از قسمت محرک های IO، یک محرک واکنشی تعریف کنید که اثرانگشت تان را با فید قفل مرتبط می سازد.
دو محرک در قسمت داشبورد IO به صورت زیر دیده می شوند:
به محض انجام، می توانید پروژه را تست کنید. مطمین شوید که هر دو بخش پروژه به درستی کار می کند. سپس انگشتی که اثر آن را ثبت کرده اید را روی سنسور قرار دهید.
بعد از این کار باید نور ضعیفی روی بورد آردوینو مشاهده کنید، این نور بدان معنی است که اطلاعات به IO منتقل شده اند. پس از مدت کوتاهی باید نور چشمک زنی را روی بورد ESP8266 ببینید، این نور بدان معنی است که اطلاعات توسط MQTT دریافت شده است. LED نیز باید فورا روشن شود.
پس از تاخیری که در کد تنظیم کردید (به عنوان پیش فرض 10 ثانیه)، باید ببینید که LED مجددا خاموش می شود. تبریک ! در حال حاضر شما می توانید LED را از هر نقطه ی دنیا با اثر انگشت خود کنترل کنید.
ادامه آموزش رو هفته یآینده براتون خواهیم گذاشت.
آموزش کامل ساخت پروژه رو می تونید در سایت کافه ربات مشاهده فرمایید.
آموزش ساخت قفل هوشمند از راه دور با استفاده از آردوینو | پروژه آردوینو