Wifi voltage dimmer with ESP8266 | ওয়াইফাই ভোল্টেজ ডিমার
ইতোমধ্যে আমরা Sonoff IOT switch এবং ESP8266 মডিউল ব্যবহার করে বিভিন্ন আইওটি প্রজেক্ট করেছি। প্রজেক্টগুলোতে আমরা বাতি কিংবা দরজার লকের মতো লোড ইন্টারনেটের মাধ্যমে অন-অফ করেছি তবে স্পিড কন্ট্রোলের কোনো ব্যবস্থা ছিল না। এই এক্সপেরিমেন্টে আমরা একটি ওয়াইফাই ভোল্টেজ ডিমার তৈরী করব যা দিয়ে বাল্বের উজ্জ্বলতা কিংবা ফ্যানের স্পিড বাড়ানো কমানো যাবে।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | প্রডাক্ট লিংক |
ESP8266 NodeMCU Lua WiFi with CP2102 | 1 | এখানে ক্লিক করুন |
Digital AC voltage dimmer | 1 | এখানে ক্লিক করুন |
AC Cable | 1 | এখানে ক্লিক করুন |
Light bulb | 1 | |
Bulb holder | 1 |
সার্কিটঃ
১) এসি ডিমারের Load চিহ্নিত কানেকটরে বাল্ব যুক্ত করুন।
২)এসি কেবলটিকে ডিমারের 220V AC চিহ্নিত কানেকটরে সংযুক্ত করুন।
৩)ESP8266 এবং ডিমারের মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
ESP8266 NodeMCU Lua WiFi with CP2102 | Digital AC voltage dimmer |
3.3V | 5V |
GND | GND |
D6 | + |
D7 | – |
পুরো সেটআপটি ছিল এরকম।
কোডঃ যদি ESP8266 NodeMCU Lua WiFi with CP2102 এর জন্য আরডুইনো আইডিইতে এটিই আপনার প্রথম কোড হয় তাহলে প্রথমে এই টিউটোরিয়ালে প্রদর্শিত নিয়ম অনুযায়ী বোর্ড ইন্সটল এবং সিলেক্ট করুন।
যদি বোর্ড অলরেডি ইন্সটল করা থাকে তাহলে নিচের ছবিগুলো অনুযায়ী সিলেক্ট করুন।
এবার নিচের কোডটি কম্পাইল ও আপলোড করুন।
#include <ESP8266WiFi.h>
#include <SoftwareSerial.h>
const char* ssid = "Techshop 2.4G";//type your ssid
const char* password = "og-wl-2012";//type your password
int plus = 12;
int minus = 13;
WiFiServer server(80);//Service Port
void setup() {
Serial.begin(115200);
delay(10);
pinMode(plus, OUTPUT);
pinMode(minus, OUTPUT);
// 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 dimmer******************");
// 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
if (request.indexOf("/speed=MAX") != -1) {
digitalWrite(plus,LOW);
digitalWrite(minus,HIGH);
delay(100);
// digitalWrite(plus,HIGH);
//digitalWrite(minus,LOW);
}
else if (request.indexOf("/speed=+") != -1) {
digitalWrite(plus,LOW);
digitalWrite(minus,HIGH);
delay(100);
digitalWrite(plus,HIGH);
}
else if (request.indexOf("/speed=-") != -1){
digitalWrite(plus,HIGH);
digitalWrite(minus,LOW);
delay(350);
digitalWrite(minus,HIGH);
}
else if (request.indexOf("/speed=OFF") != -1){
digitalWrite(plus,HIGH);
digitalWrite(minus,LOW);
delay(100);
// digitalWrite(minus,HIGH);
digitalWrite(plus,LOW);
}
//Set ledPin according to the request
//digitalWrite(ledPin, 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.println("<br><br>");
client.println("Click <a href=\"/speed=MAX\">here</a> for maximum speed <br>");
client.println("Click <a href=\"/speed=+\">here</a> to increase the speed/brightness <br>");
client.println("Click <a href=\"/speed=-\">here</a> to decrase the speed/brightness <br>");
client.println("Click <a href=\"/speed=OFF\">here</a> to OFF <br>");
client.println("</html>");
delay(1);
Serial.println("Client disconnected");
Serial.println("");
}
সিরিয়াল মনিটরে প্রদর্শিত আইপি অ্যাড্রেসটি আপনার ব্রাউজারের অ্যাড্রেস বারে কপি-পেস্ট করে Enter চাপুন।
নিচের উইন্ডোটি খুলবে।
এবার ক্লিকের মাধ্যমেই কমান বাড়ান বাল্বের উজ্জ্বলতা, একইভাবে ফ্যানের স্পিডও।