در این پروژه، قصد داریم تا با کمک ماژول وای فای ESP8266، یک قفل در هوشمند بسازیم. به این صورت که فرد برای ورود به اتاق، باید با موبایل خود QR-CODE نصب شده بر روی در را اسکن کرده تا صفحه ورود بر روی موبایل او ظاهر شود! سپس با وارد کردن رمز عبور یا شماره پرسنلی، درب برای او باز میشود.
با این آموزش همراه باشید!
توضیحاتی درباره پروژه
ایده اصلی این پروژه، از قسمت پروژههای وبسایت آردوینو گرفته شد. در پروژه اصلی، شما میبایست ابتدا ماژول وای فای ESP8266 را به یک مودم وای فای متصل میکردید تا توسط مودم، یک آی پی آدرس محلی (Local IP Address) به آن اختصاص مییافت. این آی پی آدرس توسط ماژول در پنجره سریال مانیتور چاپ میشد. سپس باید موبایل خود را نیز به همان شبکه (مودم وای فای) متصل میکردید تا بتوانید به ماژول ESP8266 متصل بشوید. اگر آی پی ماژول را در مرورگر تلفن همراه خود وارد میکردید، صفحه ورود را مشاهده میکردید و میتوانستید از طریق آن، رمز را وارد کنید. پس از اینکه کاربر رمز عبور (یا شماره پرسنلی) را وارد کرد، خود ماژول ESP8266 کنترل رله یا سرو موتور را مستقیماً در اختیار نداشت و تنها آن را از طریق پورت سریال برای یک برد آردوینو ارسال میکرد تا برد آردوینو آن را بررسی و عملیات کنترل درب را به عهده بگیرد.
تغییرات پروژه!
ما در این پروژه، سعی کردیم که تا حد امکان قطعات کمتری استفاده کنیم. برای مثال، نیازی به برد آردوینو دیگری نبود، و از پایههای GPIO خود ESP8266 برای کنترل رله استفاده میکنیم و نیازی به استفاده بیهوده از یک آردوینو دیگر، درون پروژه نیست! پایه ESP8266 که به LED متصل بود را برای این کار انتخاب کردیم تا در صورتی که رمز درست وارد شد، توسط علامت چراغ مشخص گردد. همچنین ایراد دیگری که در این پروژه وجود داشت، این بود که فرد برای وارد کردن رمز عبور، حتماً میبایست به وای فای شما نیز متصل شود! یکی از قابلیتهای ماژول ESP8266، ایجاد یک نقطه اتصال (Access point) است! بنابراین، حتی نیازی به مودم وای فای نیز نخواهید داشت! در مورد صفحه ورود نیز، یکی از ایراداتی که وجود داشت این بود که پس از وارد کردن رمز، نتیجه را به شما نمایش نمیداد. همچنین برای اجرا حتماً باید موبایل شما از طریق اینترنت فایل j-query را دانلود میکرد. که وابستگی جی-کوئری را نیز حذف کردیم. همچنین صفحه ورود نیز فارسی شده است. همیشه سعی کنید پروژه هاتون رو بهبود بدید.
پروژه رایگان مشابه همین پروژه!
البته دقت داشته باشید که قبلاً نیز در سیسوگ، پروژهای مشابه به همین پروژه با عنوان ساخت درب بازکن RFID مجهز به وای فای و پنل مدیریت حرفهایمنتشر کردیم، توصیه میکنیم آن را نیز از دست ندهید!
سخت افزار
برای راه اندازی این پروژه، حداقل به موارد زیر احتیاج دارید:
- ماژول وای فای ESP8266 یا NodeMcu
- گوشی هوشمند
و برای راه اندازی درب هوشمند، قطعات و موارد زیر را نیز احتمالا نیاز خواهید داشت:
- ترانزیستور پرقدرت دارلینگتون
- باتری 9 ولت
- یک عدد مقاومت یک کیلو اهم
- سرو موتور
- تعدادی سیم
- برد بورد
- نرم افزار بارکد خوان (QR_CODE)
راه اندازی پروژه
گام اول – آماده سازی نرم افزار آردوینو
خوب، برای اینکه بتوانید برای ماژول ESP8266 برنامه بنویسید و کامپایل بگیرید، ابتدا باید آن را به عنوان یک برد به نرم افزار آردوینو معرفی کنید و ابزار های آن را نیز اضافه کنید. این آموزش قبلا درسایت تحت عنوان “نصب ماژول ESP8266 و ESP32 در ویرایشگر آردینو” منتشر شده است. لطفا این مطلب را مطالعه کنید. اما به طور خلاصه، وارد منو زیر شده:
File->preferences
سپس در کادر Additional Boards Manager URLs، آدرس زیر را وارد کرده و OK می کنیم.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
سپس، مجددا از طریق منوی
Tools -> Board -> Boards Manager
عبارت ESP8266 را جستجو کرده و آن را نصب می کنیم. در انتها نیز آردوینو را یک بار باز و بسته می کنیم.
گام دوم – ریختن برنامه
خوب، در این مرحله، شما کافی است یک اسکچ جدید در آردوینو باز کرده و کد های زیر را به آن منتقل کنید.
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #ifndef APSSID #define APSSID "belec" #define APPSK "" #endif /* Set these to your desired credentials. */ const char *ssid = APSSID; const char *password = APPSK; String html = "<!DOCTYPE html>\ <html lang=\"en\">\ <head>\ <style>\ body {background-color: rgb(160, 0, 53);}\ h3 {color: white;text-align:center;}\ p {color: white; text-align:center;}\ div {color: white; text-align:center;}\ ID {text-align:center;}\ input {text-align:center;}\ </style>\ <meta charset=\"utf-8\">\ <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\ </head>\ <body dir='rtl'>\ <h3>\<canter>سیستم ورود هوشمند</canter>\</h3>\ <p>\<canter>لطفا شماره پرسنلی خود را وارد کنید</canter>\</p>\ <form method='post' action=''><div>شماره پرسنلی: <input type='text' name='pass_word' id='pass_word' align='center' size=10 autofocus></div> \ <div>\ <br><input type='submit' value='ورود' />\ </div></form>"; ESP8266WebServer server ( 80 ); void handleRoot() { String htmlResponse = html; if (server.method() == HTTP_POST){ Serial.println("INPUT: "+ server.arg(0)); if(server.arg(0) == "1234") {htmlResponse +="<p><canter>در باز شد!</canter></p>"; openDoor();} else htmlResponse +="<p><canter>اشتباه است!</canter></p>"; } htmlResponse += "</body></html>"; server.send ( 200, "text/html", htmlResponse ); } void openDoor(){ // but actually the LED is on; this is because // it is active low on the ESP-01) digitalWrite(LED_BUILTIN, LOW); // Turn the LED off by making the voltage HIGH delay(1000); digitalWrite(LED_BUILTIN, HIGH); // Turn the LED on (Note that LOW is the voltage level } void setup() { pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH // Start serial Serial.begin(115200); delay(10); // Connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Configuring access point..."); /* You can remove the password parameter if you want the AP to be open. */ WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); server.on ( "/", handleRoot ); server.onNotFound(handleRoot); server.begin(); Serial.println ( "HTTP server started" ); } void loop() { server.handleClient(); }
در کد بالا، همچنین، میتوانید نام وای فای ایجاد شده توسط ماژول را به دلخواه خودتان تغییر بدهید و برای آن، رمز نیز در نظر بگیرید. در حال حاضر، یک شبکه با نام sisoog و بدون رمز ایجاد میشود. میتوانید شبکه خودتان را نیز با یک تصویر بارکد QR-CODE با کمک این لینک (یا دیگر سایت ها و نرم افزار های مشابه) به اشتراک بگذارید!
تنها کافی است تا گذرواژه و نام کاربری وای فای خود در کد زیر جای گذاری (خطوط ابتدایی برنامه بالا) کنید:
#ifndef APSSID #define APSSID "belec" #define APPSK "" #endif
رمز عبور فعلی نیز 1234 است که میتوانید در خط 43 کد بالا، آن را تغییر دهید:
if(server.arg(0) == "1234") {htmlResponse +="<p><canter>در باز شد!</canter></p>"; openDoor();}
گام سوم – بستن مدار
شما می توانید خروجی ESP8266 را که در حال حاضر به پایه شماره 2، یعنی ال ای دی داخلی ESP8266 متصل است را، به یک رله و سرو موتور متصل کنید. مدار پیشنهادی را در شکل زیر میبینید. دقت داشته باشید که ESP8266 با 3.3 ولت کار میکند!
گام چهارم – چاپ کردن بارکد
پس از اینکه برنامه را بر روی برد آپلود کردید، در پنجره سریال آردوینو، آی پی لوکال ماژول به نمایش در می آید. شما میتوانید این آی پی را با نرم افزار یا با سرویس های مختلف به تصویر QR-CODE تبدیل کنید. یکی از این سرویس های آنلاین را میتوانید ازینجااستفاده کنید. به احتمال خیلی زیاد، آی پی شما همیشه 192.168.4.1 خواهد بود. ( هر چند این آی پی را نیز می توان با تنظیمات DHCP، هم در مودم (اگر ماژول را به مودم متصل می کنید) و هم به صورت کد در ESP8266 تنظیم کرد.)
گام پنجم (نهایی) – تست مدار!
خوب! تقریباً همه چیز تمام است! حالا وقتی شما درون شبکههای وای فای جستجو میکنید، باید وای فای با نام(belec) مورد نظر را مشاهده کنید! به این شبکه متصل شوید و با اسکن کردن بارکد، وارد صفحه ورود شوید! رمز را وارد کنید و وارد اتاق شوید! اگر رمز درست باشد، هم نتیجه در این صفحه به شما نمایش داده میشود، هم ال ای دی ماژول روشن میشود!
منبع:سیسوگ