Bluetooth Smart Switch 3CH কিভাবে ব্যবহার করবো?

প্রোডাক্ট পরিচিতিঃ

প্রযুক্তির ছোঁয়ায় দৈনন্দিন ব্যবহারের অনেক কিছুই স্মার্ট হয়ে উঠেছে। নিত্যনতুন প্রযুক্তিপণ্যের দিকে ঝুঁকে পড়া এখন আর বিলাসিতা নয়। বরং জীবনযাপনের মান উন্নয়নের ক্ষেত্রে বেশ সহায়ক। সেই প্রযুক্তি পণ্যটি যদি নিজের হাতের ছোয়ায় ব্যবহার করা যায় তাহলেতো মন্দ নয়। তেমনি একটি প্রযুক্তি পণ্য Bluetooth Smart Switch 3CH. এতে রয়েছে দুটি লাইট ও একটি ফ্যান নিয়ন্ত্রণ করার সুবিধা। শুধু তাই নয়, ফ্যানকে ভিন্ন ভিন্ন কয়েকটি স্পিডে কন্ট্রোল করা যাবে। তবে এই সকল কাজই করা যাবে আপনার হাতের স্মার্ট ফোন দিয়ে। শুধুমাত্র আপনার ফোনে থাকতে হবে একটি অ্যাপ। যেখানে থাকবে চারটি অন বাটন চারটি অফ বাটন। এই সম্পূর্ণ নিয়ন্ত্রণ প্রক্রিয়াটি হবে ব্লুটুথ দিয়ে।

 

কি কি রয়েছেঃ

  • 3 Device Control Output (2 On/Off + 1 FAN Speed Control)
  • 220V AC INPUT Terminal: AC INPUT
  • Output Terminal Block: FAN, LIGHT1 and LIGHT2
  • Power Indication: Red LED
  • Output Status: Red LED (Dimmer, RLY1, RLY2)
  • Relay output capacity: 2000W
  • Triac output capacity: 16A
  • Independently Controlled Relay and Triac (Dimmer)
  • Back EMF protection

প্রয়োজনীয় কম্পোনেন্টঃ

ক্রমিক নং  কম্পোনেন্টের নাম মডেল পরিমাণ লিংক
Bluetooth Smart Switch 3CH WIR-00104 ১টি কম্পোনেন্ট লিংক
Arduino Uno R3 (China)                     OR ARD-00028 ১টি কম্পোনেন্ট লিংক
FTDI USB to Serial Converter 3V3-5V MOD-00207 ১টি কম্পোনেন্ট লিংক

Programming with Arduino Uno

আরডুইনো দিয়ে কোড আপলোড করার পূর্বে আরডুইনো উনোর ATmega328 খুলে নিতে হবে। তারপর নিচের কানেকশন অনুযায়ী কানেকশন সম্পন্ন করতে হবে।

Programming with USB to Serial Converter (FTDI)

 

কোডঃ

কোড আপলোড করার পূর্বে TimerOne.h ফাইলটি কাঙ্খিত লিঙ্ক থেকে ডাউনলোড করে নিতে হবে। অন্যথায় কোড কম্পাইল হবে না। http://www.arduino.cc/playground/Code/Timer1

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <TimerOne.h> // Avaiable from http://www.arduino.cc/playground/Code/Timer1
volatile int i=0; // Variable to use as a counter
volatile boolean zero_cross=0; // Boolean to store a "switch" to tell us if we have crossed zero
int FAN = 3; // Output to Opto Triac
int LIGHT1 = 7; // Relay-1
int LIGHT2 = 8; // Relay-2
int dim = 128; // Dimming level (0-128) 0 = on, 128 = 0ff
int pas = 14; // step for count;
int freqStep = 75; // This is the delay-per-brightness step in microseconds.
char BTData; // incoming data from serial Bluetooth)
void setup() { // Begin setup
Serial.begin(115200); // initialization
pinMode(FAN, OUTPUT); // Set the Triac pin as output
pinMode(LIGHT1, OUTPUT); // Set the Relay pin as output
pinMode(LIGHT2, OUTPUT); // Set the Relay pin as output
attachInterrupt(0, zero_cross_detect, RISING); // Attach an Interupt to Pin 2 (interupt 0) for Zero Cross Detection
Timer1.initialize(freqStep); // Initialize TimerOne library for the freq we need
Timer1.attachInterrupt(dim_check, freqStep);
// Use the TimerOne Library to attach an interrupt
}
void zero_cross_detect() {
zero_cross = true; // set the boolean to true to tell our dimming function that a zero cross has occured
i=0;
digitalWrite(FAN, LOW);
}
// Turn on the TRIAC at the appropriate time
void dim_check() {
if(zero_cross == true) {
if(i>=dim) {
digitalWrite(FAN, HIGH); // turn on light
i=0; // reset time step counter
zero_cross=false; // reset zero cross detection
}
else {
i++; // increment time step counter
}
}
}
void Wireless()
{
BTData = Serial.read(); // read byte
if(BTData == 'a') {if(dim<127){dim = dim + pas; if(dim>127) {dim=128;}}} // Step DOWN
if(BTData == 'A') {if(dim>5){dim = dim - pas; if(dim<0) {dim=0;}}} // Step UP
if(BTData == 'B') {dim=0;} // power is 100% (on)
if(BTData == 'b') {dim=128;} // power is 0% (off)
if(BTData == 'C') {digitalWrite(LIGHT1, HIGH); } // LIGHT1 ON
if(BTData == 'c') {digitalWrite(LIGHT1, LOW); } // LIGHT1 OFF
if(BTData == 'D') {digitalWrite(LIGHT2, HIGH); } // LIGHT2 ON
if(BTData == 'd') {digitalWrite(LIGHT2, LOW); } // LIGHT2 OFF
}
void loop() {
delay (100);
Wireless();
}
#include <TimerOne.h> // Avaiable from http://www.arduino.cc/playground/Code/Timer1 volatile int i=0; // Variable to use as a counter volatile boolean zero_cross=0; // Boolean to store a "switch" to tell us if we have crossed zero int FAN = 3; // Output to Opto Triac int LIGHT1 = 7; // Relay-1 int LIGHT2 = 8; // Relay-2 int dim = 128; // Dimming level (0-128) 0 = on, 128 = 0ff int pas = 14; // step for count; int freqStep = 75; // This is the delay-per-brightness step in microseconds. char BTData; // incoming data from serial Bluetooth) void setup() { // Begin setup Serial.begin(115200); // initialization pinMode(FAN, OUTPUT); // Set the Triac pin as output pinMode(LIGHT1, OUTPUT); // Set the Relay pin as output pinMode(LIGHT2, OUTPUT); // Set the Relay pin as output attachInterrupt(0, zero_cross_detect, RISING); // Attach an Interupt to Pin 2 (interupt 0) for Zero Cross Detection Timer1.initialize(freqStep); // Initialize TimerOne library for the freq we need Timer1.attachInterrupt(dim_check, freqStep); // Use the TimerOne Library to attach an interrupt } void zero_cross_detect() { zero_cross = true; // set the boolean to true to tell our dimming function that a zero cross has occured i=0; digitalWrite(FAN, LOW); } // Turn on the TRIAC at the appropriate time void dim_check() { if(zero_cross == true) { if(i>=dim) { digitalWrite(FAN, HIGH); // turn on light i=0; // reset time step counter zero_cross=false; // reset zero cross detection } else { i++; // increment time step counter } } } void Wireless() { BTData = Serial.read(); // read byte if(BTData == 'a') {if(dim<127){dim = dim + pas; if(dim>127) {dim=128;}}} // Step DOWN if(BTData == 'A') {if(dim>5){dim = dim - pas; if(dim<0) {dim=0;}}} // Step UP if(BTData == 'B') {dim=0;} // power is 100% (on) if(BTData == 'b') {dim=128;} // power is 0% (off) if(BTData == 'C') {digitalWrite(LIGHT1, HIGH); } // LIGHT1 ON if(BTData == 'c') {digitalWrite(LIGHT1, LOW); } // LIGHT1 OFF if(BTData == 'D') {digitalWrite(LIGHT2, HIGH); } // LIGHT2 ON if(BTData == 'd') {digitalWrite(LIGHT2, LOW); } // LIGHT2 OFF } void loop() { delay (100); Wireless(); }
#include <TimerOne.h>  // Avaiable from http://www.arduino.cc/playground/Code/Timer1
volatile int i=0;               // Variable to use as a counter
volatile boolean zero_cross=0;  // Boolean to store a "switch" to tell us if we have crossed zero
int FAN = 3;   // Output to Opto Triac
int LIGHT1 = 7; // Relay-1
int LIGHT2 = 8; // Relay-2
int dim = 128;  // Dimming level (0-128)  0 = on, 128 = 0ff
int pas = 14;   // step for count;
int freqStep = 75;   // This is the delay-per-brightness step in microseconds.
char BTData; // incoming data from serial Bluetooth)

void setup() {  // Begin setup
  Serial.begin(115200); // initialization
  pinMode(FAN, OUTPUT);  // Set the Triac pin as output
  pinMode(LIGHT1, OUTPUT); // Set the Relay pin as output
  pinMode(LIGHT2, OUTPUT); // Set the Relay pin as output

  attachInterrupt(0, zero_cross_detect, RISING);    // Attach an Interupt to Pin 2 (interupt 0) for Zero Cross Detection
  Timer1.initialize(freqStep);                      // Initialize TimerOne library for the freq we need
  Timer1.attachInterrupt(dim_check, freqStep);
  // Use the TimerOne Library to attach an interrupt
}

void zero_cross_detect() {
  zero_cross = true;     // set the boolean to true to tell our dimming function that a zero cross has occured
  i=0;
  digitalWrite(FAN, LOW);
}

// Turn on the TRIAC at the appropriate time
void dim_check() {
  if(zero_cross == true) {
    if(i>=dim) {
      digitalWrite(FAN, HIGH);  // turn on light
      i=0;  // reset time step counter
      zero_cross=false;    // reset zero cross detection
    }
    else {
      i++;  // increment time step counter
    }
  }
}

void Wireless()
{
    BTData = Serial.read(); // read byte
    if(BTData == 'a') {if(dim<127){dim = dim + pas; if(dim>127) {dim=128;}}} // Step DOWN
    if(BTData == 'A') {if(dim>5){dim = dim - pas;   if(dim<0)   {dim=0;}}}   // Step UP
    if(BTData == 'B') {dim=0;}   // power is 100% (on)
    if(BTData == 'b') {dim=128;} // power is 0% (off)
    if(BTData == 'C') {digitalWrite(LIGHT1, HIGH); } // LIGHT1 ON
    if(BTData == 'c') {digitalWrite(LIGHT1, LOW); }  // LIGHT1 OFF
    if(BTData == 'D') {digitalWrite(LIGHT2, HIGH); } // LIGHT2 ON
    if(BTData == 'd') {digitalWrite(LIGHT2, LOW); }  // LIGHT2 OFF
}

void loop() {

delay (100);
 Wireless();
}

সার্কিট কানেকশনঃ

Smart Switch 3CH AC Load Connection

ব্যবহারবিধিঃ

উপরে দেয়া সম্পূর্ণ কোডটি দিয়ে প্রথমেই ডিভাসটিকে প্রোগ্রাম করে নিতে হবে। প্রোগ্রাম করার জন্য দুইটি প্রক্রিয়া দেওয়া আছে। আরডুইনো দিয়ে অন্যটি সিরিয়াল কনভার্টার ব্যবহারের মাধ্যামে। কোড লোড সম্পন্ন হলে Bluetooth 4 Relays Control Pro অ্যাপটি ডিভাইসের সাথে কানেক্ট করে নিতে হবে। এই অ্যাপটি গুগল প্লে স্টোরে ফ্রী পাওয়া যাবে। উক্ত অ্যাপটির Device 1এর দুইটি বাটন (ON OFF) যা দ্বারা যথাক্রমে ফ্যানের স্পিড কমানো এবং বাড়ানো যাবে। তারপরের Device ২ এর দুইটি বাটন (ON OFF) যা দ্বারা যথাক্রমে ফ্যান অন ও অফ করা যাবে। এবং শেষের Device ৩ ও Device ৪ এর চারটি বাটন (ON OFF) দিয়ে লাইট-১ ও লাইট-২ (L1 and L2) যথাক্রমে অন ও অফ করা যাবে।

সতর্কতাঃ

টিউটোরিয়ালটি এসি ২২০ ভোল্ট ভিত্তিক। সুতরাং পূর্ব অভিজ্ঞতা থাকা অতি জরুরী।

]]>
Nur Mohammad
Nur Mohammad

Senior Research Engineer |
Techshop Bangladesh |
E-mail: nur@techshopbd.com

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.