چهارشنبه , ۲۵ مهر ۱۳۹۷
خانه » آردوینو » Relay IoT – رله قابل کنترل توسط اینترنت
حمایت مالی از یزد کیت

Relay IoT – رله قابل کنترل توسط اینترنت

دراین پروژه یک نمونه کنترل رله از طریق اینترنت رو مشاهده میکنید که استفاده گسترده ای در اینترنت اشیاء دارد. البته این پروژه به صورت ساده و پایه ای بود و تنها یک رله جهت کنترل در آن تعبیه شده است اما شما میتوانید با کمی تغییرات به تعداد رله های مورد نیاز خودتون افزایش بدین.

در این پروژه توسط برد آردیونو و برد شیلد اترنت ، هر یک ثانیه یکبار وضعیت فعال سازی رله از سایت خوانده شده و متناسب با وضعیت خوانده شده ، رله رو فعال یا غیر فعال میکند به این صورت که در صورتی که وضعیت دریافتی از سایت عبارت “RELAY,ON” و رله غیر فعال باشد ، رله فعال شده و در صورتی که عبارت دریافتی از سایت عبارت “RELAY,OFF” باشد و رله هم در وضعیت فعال باشد، رله غیر فعال میشود.

این پروژه نیز از سری پروژه های سایت ic2cloud  هست که لازمه با پیش نیاز های اون که قبلا در این مطلب و این مطلب ارائه شده آشنایی کامل داشته باشید.همونطور که در پروژه های قبلی سایت ic2cloud  نیز اعلام شده بخش سخت افزاری این پروژه با برد آردوینو  Arduino Uno و برد شیلد شبکه آردوینو Arduino Ethernet Shield انجام میگیره.

همونطور که میدونید در این پروژه یه برد رله قرار داره به این صورت که این برد رله دارای ۳ پایه شامل تغذیه مثبت و زمین و پایه وضعیت به صورتی که تا زمانی که پایه وضعیت فعال باشد ( vcc)  رله فعال بود و با غیر فعال شدن این پایه ، رله غیر فعال میشود. البته شما میتونید برد رله رو بر اساس دلخواه و نیاز خودتون طراحی کنید.

Relay
Pin Description
Gnd Ground
Signal Pin to control the state of the relay.
Vcc ۵V

در این پروژه پایه سینگال برد رله به پین ۸ برد آردوینو شما وصل خواهد شد.

در ادامه سورس آردوینو مورد نیاز برای پروگرم کردن برد آردوینو را براتون آماده کردیم که لازمه طبق اموزش در این پست ، مقادیر device_id و auth رو تغییر بدین.

#include <SPI.h>
#include <Ethernet.h>


// Network settings
byte mac[]     = { 0xDE, 0xED, 0xDD, 0xDD, 0xFE, 0xED };
EthernetClient eth;

char server[]  = "www.ic2pro.com";                          // Wiring Cloud host name
int port       = 80;
String devId   = "111-222-333";                             // Device ID. CREATE YOUR OWN GUID; Use this http://www.guidgenerator.com/
String auth    = "dXNlcjpwYXNzd29yZA==";                    // Authentication credentials Create a string from <email_address>:<API_Password> and encode it base64
                                                            // The sample here "dXNlcjpwYXNzd29yZA==" is the encoding for "user:password"

int lastState;       // last known state of the relay
int relayPin = 8;    // pin used to read the PIR sensor

void setup() {
  Serial.begin(115200);        // start serial monitoring
  pinMode(relayPin, OUTPUT);   // set-up relay pin
  Ethernet.begin(mac);         // start network communication
  delay(1000);
  
  Serial.println("Start...");

  lastState = -۱;              // force relay to take the first command
  digitalWrite(relayPin, lastState);
}

void loop() {
  String state = readRelay();
  Serial.println("[" + state + "]");
  if((state.indexOf("RELAY,ON") > 0) && (lastState != 1)) {        // turn ON relay
    lastState = ۱;
    digitalWrite(relayPin, lastState);
  }
  else if((state.indexOf("RELAY,OFF") > 0) && (lastState != 0)) {  // turn OFF relay
    lastState = ۰;
    digitalWrite(relayPin, lastState);
  }
  delay(1000);
}

String readRelay() {
  if (eth.connect(server, port)) {  // connect to server
    Serial.println("Connected...");
    eth.println("GET http://" + String(server) + ":" + String(port) + "/Wire/connector/get?id=" + devId + "&RELAY HTTP/1.1");  // request state from server
    eth.println("Authorization: Basic " + auth);
    eth.println("Connection: close");
    eth.println();
    Serial.println("Event Sent...");
    return readResponse();
  }
  else {
    Serial.println("Connection Error");
    return "";
  }
}

String readResponse()
{
  while (eth.connected() && !eth.available()) delay(1);          // wait for data

  String buff = "";                                              // read data in the variable buff
  while (eth.connected() || eth.available()) {
    char c = eth.read();
    buff += c;
  }
  eth.stop();
  return buff;
}

مدار نهایی شما به صورت زیر خواهد بود . درصورت نیاز به اطلاعات بیشتر میتونید به مطلب اصلی این پست در سایت ic2cloud  مراجعه کنید.

درآخر سورس آردوینو و سورس اپ موبایل جهت دانلود قرار داده شده است.

Download “Relay-IoT.zip” Relay-IoT.zip – 12 بار دانلود شده است – 364 KB

منبع : فروشگاه آترین

حمایت مالی از یزد کیت

همچنین ببینید

ساخت مینی ایستگاه هواشناسی تحت وب با سنسور BME280 و ماژول esp32

در این پروژه تحت وب ، به کمک ماژول esp32 اطلاعات سنسور BME280  دریافت و نمایش …

دیدگاهتان را بنویسید