১। প্রোডাক্ট পরিচিতি
ESP8266 WiFi 4 Channel IoT Smart Switch একটি ইন্টারনেট কন্ট্রোল রিলে বোর্ড। অর্থাৎ ব্যবহারকারী ইন্টারনেটের মাধ্যমে এই বোর্ডের সাথে সংযুক্ত রিলে গুলোকে নিয়ন্ত্রণ করতে পারবেন। ESP8266 WiFi 4 Channel IoT Smart Switch এর কারেন্ট রেটিং অনুযায়ী লোড সংযোগ করে Mobile দিয়ে নিয়ন্ত্রণ করতে পারবেন।
Blynk এই App টি ডাউনলোড করে নিতে হবে। অতপর, রেজিস্ট্রেশন করতে হবে। রেজিস্ট্রেশন হলে App এর মধ্যে একটি প্রজেক্ট তৈরি করতে হবে। প্রজেক্ট তৈরি হলে মেইলে একটি authentication Token দেওয়া হবে। এই Token টি প্রোগ্রামের মধ্যে দিয়ে প্রোগ্রামটি NodeNCU তে আপলোড দিতে হবে।

যা যা রয়েছেঃ
- Supports Wifi Board: ESP8266 NodeMCU Lua WiFi with CP2012
- DHT11 Temperature and Humidity Sensor (Not Included)
- AC 220V Supported
- 4 Independently Controlled Relays
- Operating Voltage: 5V (From AC 220V / USB 5V)
- Power Indication: Red LED
- Relay Output Status: Green LED CH1, CH2, CH3, CH4
- Each relay output capacity: 220VAC / 10A
- Three Terminal Output AC-DC Control (NO COM NC)
- Single Pole Double Throw Relay Output (SPDT)
- Relay current consumption at 5V is 72mA each when switched on
- Back EMF protection
- Mounting Holes: 2.65 Inch
ধাপ-১ঃ কম্পোনেন্ট সংগ্রহ
প্রয়োজনীয় কম্পোনেন্ট গুলো তালিকা থেকে সংগ্রহ করতে হবে।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | Link |
ESP8266 WiFi 4 Channel IoT Smart Switch | ১ টি | https://bit.ly/2NXKiDt |
Micro USB Cable | ১ টি | |
Power Cable 2 Pin | ১ টি | https://bit.ly/2Ma0Xlx |
ধাপ-২ঃ সার্কিট কানেকশন
Relay | NodeMCU |
R1 (Relay-1) | D5 |
R2 (Relay-2) | D6 |
R3 (Relay-3) | D7 |
R4 (Relay-4) | D8 |

টেম্পারেচার দেখতে চাইলে DHT11 কানেক্টরের সাথে এই সেন্সর মডিউলটি সংযোগ করতে হবে। সেই অনুপাতে প্রোগ্রাম করতে হবে।
Temperature Sensor | NodeMCU |
DHT11 | D4 |
ধাপ-৩ঃ প্রোগ্রামিং
১। ইন্টারনেটের মাধ্যমে নিয়ন্ত্রণ।
ইন্টারনেটের মাধ্যমে কন্ট্রোল করতে হলে এই প্রোগ্রামটি ব্যবহার করতে হবে। প্রোগ্রামে তিন যায়গায় পরিবর্তন করতে হবে। token, SSID ও Password এই তিনটি দিয়ে প্রোগ্রাম NodeMCU তে আপলোড করে দিতে হবে। token: Blynk এ রেজিস্ট্রেশন করে প্রজেক্ট তৈরির পর আপনাকে একটি auth token মেইল করে দিবে। SSID & Password: এটি আপনার রাউটারের নাম ও পাসওয়ার্ড।
একটি বিষয় লক্ষণীয় যে, যদি ইন্টারনেট না থাকে থাহলে এই ডিভাইস কে নিয়ন্ত্রণ করা যাবে না।
How to Install the ESP8266 Board in Arduino IDE
Open the preferences window from the Arduino IDE. Go to File > Preferences

Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into the “Additional Board Manager URLs” field as shown in the figure below. Then, click the “OK” button.

Open Boards manager. Go to Tools > Board > Boards Manager…

Enter esp8266 into the filter your search… field as shown in the figure below. Then, click the “Install” button.

ESP8266 Board Installation Complete. Then, click the “Close” button.

How to Install Blynk Library in Arduino IDE
Open Manage Libraries… Go to Sketch > Include Library > Manage Libraries…

Enter Blynk into the filter your search… field as shown in the figure below. Then, click the “Install” button.

Blynk Library Installation Complete. Then, click the “Close” button.

Download the Adafruit_Sensor & DHT Library.
Add ZIP Library. Goto Sketch > Include Library > Add .ZIP Library…

Now Select your library file DHT (it should be .ZIP), Then select your Adafruit_Sensor library file

Choose your ESP8266 board from Tools > Board > NodeMCU 1.0 (ESP-12E Module)

Check your Com Port from Device Manager.

Choose your Com Port from Tools > Port > COM3

Now Click the Upload

Done Uploading.

1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
<strong>Code for Blynk App (ON/OFF Relay, DHT11 & Switch)</strong> #define BLYNK_PRINT <strong>Serial</strong> #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <<strong>DHT</strong>.h> char auth[] = "token"; //Auth Token from Blynk Project char ssid[] = "SSID"; //Router Name char pass[] = "Password"; //Router Password #define DHTPIN 2 // D4-GPIO 02 // What digital pin we're connected to #define DHTTYPE DHT11 // DHT 11 <strong>DHT</strong> dht(DHTPIN, DHTTYPE); <strong>BlynkTimer</strong> timer; const int relay1 = 14; // D5-GPIO 14 const int relay2 = 12; // D6-GPIO 12 const int relay3 = 13; // D7-GPIO 13 const int relay4 = 15; // D8-GPIO 15 const int button1Pin = 5; // D1-GPIO 05 const int button2Pin = 4; // D2-GPIO 04 const int button3Pin = 0; // D3-GPIO 00 const int button4Pin = 10; // SD3-GPIO 10 int relay1State = LOW; int relay2State = LOW; int relay3State = LOW; int relay4State = LOW; int button1State = HIGH; int button2State = HIGH; int button3State = HIGH; int button4State = HIGH; void checkPhysicalButton(); // Every time we connect to the cloud... BLYNK_CONNECTED() { // Request the latest state from the server <strong>Blynk</strong>.syncVirtual(V1); <strong>Blynk</strong>.syncVirtual(V2); <strong>Blynk</strong>.syncVirtual(V3); <strong>Blynk</strong>.syncVirtual(V4); } //********************************************* // When App button is pushed - switch the state BLYNK_WRITE(V1) { relay1State = param.asInt(); digitalWrite(relay1, relay1State); } // When App button is pushed - switch the state BLYNK_WRITE(V2) { relay2State = param.asInt(); digitalWrite(relay2, relay2State); } // When App button is pushed - switch the state BLYNK_WRITE(V3) { relay3State = param.asInt(); digitalWrite(relay3, relay3State); } // When App button is pushed - switch the state BLYNK_WRITE(V4) { relay4State = param.asInt(); digitalWrite(relay4, relay4State); } //********************************************* // This function sends Arduino's up time every second to Virtual Pin (5). // In the app, Widget's reading frequency should be set to PUSH. This means // that you define how often to send data to Blynk App. void sendSensor() { float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { <strong>Serial</strong>.println("Failed to read from DHT sensor!"); return; } // You can send any value at any time. // Please don't send more that 10 values per second. <strong>Blynk</strong>.virtualWrite(V5, h); <strong>Blynk</strong>.virtualWrite(V6, t); //button1 if (digitalRead(button1Pin) == LOW) { // btnState is used to avoid sequential toggles if (button1State != LOW) { // Toggle LED state relay1State = !relay1State; digitalWrite(relay1, relay1State); // Update Button Widget <strong>Blynk</strong>.virtualWrite(V1, relay1State); } button1State = LOW; } else { button1State = HIGH; } //button2 if (digitalRead(button2Pin) == LOW) { // btnState is used to avoid sequential toggles if (button2State != LOW) { // Toggle LED state relay2State = !relay2State; digitalWrite(relay2, relay2State); // Update Button Widget <strong>Blynk</strong>.virtualWrite(V2, relay2State); } button2State = LOW; } else { button2State = HIGH; } //button3 if (digitalRead(button3Pin) == LOW) { // btnState is used to avoid sequential toggles if (button3State != LOW) { // Toggle LED state relay3State = !relay3State; digitalWrite(relay3, relay3State); // Update Button Widget <strong>Blynk</strong>.virtualWrite(V3, relay3State); } button3State = LOW; } else { button3State = HIGH; } //button4 if (digitalRead(button4Pin) == LOW) { // btnState is used to avoid sequential toggles if (button4State != LOW) { // Toggle LED state relay4State = !relay4State; digitalWrite(relay4, relay4State); // Update Button Widget <strong>Blynk</strong>.virtualWrite(V4, relay4State); } button4State = LOW; } else { button4State = HIGH; } } void setup() { // Debug console <strong>Serial</strong>.begin(9600); <strong>Blynk</strong>.begin(auth, ssid, pass); pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4, OUTPUT); pinMode(button1Pin, INPUT_PULLUP); pinMode(button2Pin, INPUT_PULLUP); pinMode(button3Pin, INPUT_PULLUP); pinMode(button4Pin, INPUT_PULLUP); digitalWrite(relay1, relay1State); digitalWrite(relay2, relay2State); digitalWrite(relay3, relay3State); digitalWrite(relay4, relay4State); dht.begin(); // Setup a function to be called every 100 ms timer.setInterval(100L, sendSensor); } void loop() { <strong>Blynk</strong>.run(); timer.run(); } |
সংযোগ প্রক্রিয়াঃ
- শুরুতেই Micro USB Cable দিয়ে ESP8266 WiFi 4 Channel IoT Smart Switch কে কম্পিউটারের সাথে কানেক্ট করতে হবে।
- অতপর, Arduino IDE ব্যবহার করে নিচে দেওয়া প্রোগ্রামটি আপলোড দিতে হবে।
- Blynk App এ গিয়ে প্রজেক্ট তৈরি করতে হবে। Blynk App দিয়ে নিয়ন্ত্রণ প্রক্রিয়াঃ
- লাইট-ফ্যান ইত্যাদি সংযোগ করুন।
- AC 220 INPUT কানেক্টরে পাওয়ার ক্যাবল ব্যবহার করে লাইন দিতে হবে।
সাবধানতাঃ ২২০ ভোল্ট নিয়ে পূর্বে কাজের অভিজ্ঞতা না থাকলে ESP8266 WiFi 4 Channel IoT Smart Switch টি ব্যবহার না করাই উচিৎ
ESP8266 WiFi 4 Channel IoT Smart Switch টি ৩”/৩” বক্স সাইজের উপযুক্ত। এই বক্সটি যে কোন ইলেকট্রিক্যাল দোকানে পাওয়া যায়।
আউটপুটঃ

ভাই এমন কোন মডিউল আছে কিনা? যা দিয়ে আমার ঘরে মোবাইল ফোনে ভালো নেটওয়ার্ক পাওয়া যায়। উল্লেখ্য আমার ঘরের বাইরে ভালো নেটওয়ার্ক থাকে।
এই ধরনের কোন ডিভাইস নেই।
Could you pleas add a 16 X 2 LCD display for this device working status? I will pay for this.
ডিভাইসে ডিসপ্লে সংযোগ করার মত কোন প্রকার ব্যবস্থা রাখা হয়নি, দুঃখিত স্যার।
এই ডিভাইসটিতে একটি রিলে কমিয়ে একটি ফ্যান স্পিড কন্ট্রলার যুক্ত করলে আরও জনপ্রিয় হতো। আশা করছি ভেবে দেখবেন।
আপনার সুন্দর মতামতের জন্য ধন্যবাদ। পরবর্তী ভার্শনে সংযুক্ত করার চেস্টা করবো।
Do you know if we can make the circuit trigger with Google Assistant using Google Nest devices or Google Home products?
It’s work with Google Assistant. You have to programming for it.
এই রিলে মড্যুলটা ব্যবহারের জন্য কি WiFi- কানেকশন থাকা লাগবে বাসায়?
ডিভাইসটিকে পরিচালনা করতে হলে ইন্টারনেটের আওতায় রাখতে হবে।