Wifi doorlock using ESP8266 (ওয়াইফাই ডোরলক)
বাইরে বের হলেই এক গোছা চাবি সাথে নেওয়া বেশ ঝমেলার। সদর দরজার চাবি, বেডরুমের চাবি, আলমারির চাবি—- আরও কতগুলো! গোছাসহ কখনও হারিয়ে গেলে তো সর্বনাশ। তাই, এই তালাচাবিও ইলেকট্রনিক করে ফেলতে পারা কিন্তু অনেক সুবিধাজনক। এই টিউটোরিয়ালে আমরা দেখব কিভাবে একটি ওয়াইফাই ডোরলক তৈরী করা যায়। এই ডোরলকটি একটি ওয়াইফাই নেটওয়ার্কের আওতায় থাকবে। একই নেটওয়ার্কের আওতায় থাকা কম্পিউটার বা মোবাইল দিয়ে একে অন-অফ করা যাবে। ডোরলক তৈরী করতে আমরা বেছে নিয়েছি ESP8266 NodeMCU Lua WiFi with CP2102। এটি একটি স্ট্যান্ডঅ্যালোন ওয়াইফাই মডিউল।
প্রয়োজনীয় যন্ত্রপাতিঃ
প্রয়োজনীয় যন্ত্রপাতি | পরিমান | প্রডাক্ট লিংক |
ESP8266 NodeMCU Lua WiFi with CP2102 | 1 | এখানে ক্লিক করুন |
12V Door Lock Driver | 1 | এখানে ক্লিক করুন |
DC 12V Solenoid Electric Door Lock | 1 | এখানে ক্লিক করুন |
Breadboard | 1 | এখানে ক্লিক করুন |
12V 700mA Power Adapter | 1 | এখানে ক্লিক করুন |
Male to female jumpers | 3 | এখানে ক্লিক করুন |
Female to female jumpers | 1 | এখানে ক্লিক করুন |
DC socket breakout board | 1 | এখানে ক্লিক করুন |
MicroUSB cable | 1 | এখানে ক্লিক করুন |
সার্কিট কানেকশনঃ
নিম্নলিখিত উপায়ে ESP8266 এর সাথে ডোর লক ড্রাইভারের কানেকশন সম্পন্ন করুন।
ESP8266 NodeMCU Lua WiFi with CP2102 | 12V Door Lock Driver |
D2 | SIg |
GND | GND |
DC socket breakout board এবং ডোরলক ড্রাইভারের মধ্যে নিম্নলিখিত কানেকশনগুলো সম্পন্ন করুন।
DC socket breakout board | 12V Door Lock Driver |
VCC | 12V |
GND | GND |
ডিসি অ্যাডাপটারের জ্যাকটি ডিসি সকেট ব্রেকআউট বোর্ডের সকেটে প্রবেশ করান। অ্যাডাপটারটিকে যেকোনো এসি সকেট থেকে পাওয়ার দিন।
লকটিকে ড্রাইভারের সাথে কানেক্ট করুন।
ESP8266 NodeMCU মডিউলকে কম্পিউটারের এউএসবি পোর্ট বা যেকোনো ইউএসবি চার্জার দিয়ে পাওয়ার দিন।
ড্রাইভার ইন্সটলেশনঃ এই লিংক থেকে CP2102 ড্রাইভার ইন্সটল করুন।
বোর্ড ইন্সটলেশনঃ ESP8266 NodeMCU Lua WiFi with CP2102 কে আরডুইনো আইডিই দিয়েই প্রোগ্রাম করা যায়। এইজন্য নিচের ধাপগুলো অনুসরন করতে হবে।
১)আরডুইনো আইডিই ওপেন করে ‘preferances’ এ ক্লিক করুন। এরপর Additional Board Manager URLs এ নিচের লিংকটি কপি-পেস্ট করুন।
http://arduino.esp8266.com/stable/package_esp8266com_index.json
২)এবার Tools->Boards->Board Manager এ গিয়ে ESP8266 সার্চ করুন এবং install ক্লিক করুন।
৩)ইন্সটল শেষ হলে বোর্ডের লিস্টে ESP8266 এর বিভিন্ন ভার্শনের নাম দেখাবে। সেখান থেকে নিচের ছবিতে চিহ্নিত বোর্ডটি সিলেক্ট করুন।
কোডঃ
নিচের কোডটি আরডুইনো আইডিইতে কপি পেস্ট করুন এবং আপনার ESP8266 এ আপলোড করুন।
#include <ESP8266WiFi.h> const char* ssid = "Your wifi network name";//Write your wifi network's name here const char* password = "Your passowrd";//Write your password here int LOCK = 4; // GPIO4 WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); pinMode(LOCK, OUTPUT); digitalWrite(LOCK, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); Serial.println(""); Serial.println("************WiFi doorlock******************"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Match the request int value=LOW ; if (request.indexOf("/LOCK=ON") != -1) { digitalWrite(LOCK, HIGH); value = HIGH; } if (request.indexOf("/LOCK=OFF") != -1) { digitalWrite(LOCK, LOW); value = LOW; } // Set LOCK according to the request //digitalWrite(LOCK, value); // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.print("Door is now: "); if(value == HIGH) { client.print("Open"); } else { client.print("Closed"); } client.println("<br><br>"); client.println("<a href=\"/LOCK=ON\"\"><button>Turn On </button></a>"); client.println("<a href=\"/LOCK=OFF\"\"><button>Turn Off </button></a><br />"); client.println("</html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); }
সিরিয়াল মনিটর ওপেন করুন। নিচের মেসেজগুলো দেখতে পাবেন।সিরিয়াল মনিটরে প্রদর্শিত আইপি অ্যাড্রেসটি কপি করে আপনার ওয়েব ব্রাউজারে পেস্ট করে Enter চাপুন।
নিচের উইন্ডোটি ওপেন হবে। এবার এইখানে দেখানো দুটি বাটনের মাধ্যমেই আপনার তৈরী ডোর লক খুলবে এবং বন্ধ হবে।