วันอังคารที่ 6 เมษายน พ.ศ. 2564

เปลี่ยน Sonoff เป็น remote Relay


 

Sonoff basic เป็น ตัวควบคุม โดยใช้ weLink ใช้ CPU ESP 8266 สามารถโปรแกรม ได้

ใข้ USB serial ต้อง Modify นิดหน่อย เพราะ เป็น 3.3 V แต่ USB Serial ที่ซื้อแบบ TTL จะเป็น 5 V

วิธี แก้ ให้ เอา สาย แดง ในรูป 


ต่อ Diode ด้านตรงข้างกับ แถบดำ ต่อกัน 3 ตัว จะได้ 3.6 V ก็จะ ใช้ program ได้

\
ต่อสาย


เวลาโปรแกรม ให้ถอดสาย แดงออกก่อนโดยใช้ Arduino ide ให้ กด button ค้างใว้ เสียบสาย แล้วปล่อย 

กด Arduino ide upload

ตัวอย่าง Code


#include <ESP8266WiFi.h>

#include <WiFiClient.h>

#include <ESP8266WebServer.h>

#include <ESP8266mDNS.h>


MDNSResponder mdns;


// Replace with your network credentials

const char* ssid = "myhome";

const char* password = "*******";


ESP8266WebServer server(80);

// Set your Static IP address

IPAddress local_IP(192, 168, 10, 123);

// Set your Gateway IP address

IPAddress gateway(192, 168, 10, 1);


IPAddress subnet(255, 255, 255, 0);

IPAddress primaryDNS(192, 168, 10, 1);   //optional

IPAddress secondaryDNS(8, 8, 4, 4); //optional

String webPage = "";


int gpio13Led = 13;

int gpio12Relay = 12;


void setup(void){

  webPage += "<h1>ON OFF BUTTON</h1><p><a href=\"on\"><button>ON Blink</button></a>&nbsp;<a href=\"off\"><button>OFF</button></a></p>";  

  // preparing GPIOs

  pinMode(gpio13Led, OUTPUT);

  digitalWrite(gpio13Led, LOW);

  

  pinMode(gpio12Relay, OUTPUT); 

  digitalWrite(gpio12Relay, LOW);

 

  Serial.begin(115200); 

  delay(5000);

  

if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {

    Serial.println("STA Failed to configure");

  }

  

  WiFi.begin(ssid, password);

  Serial.println("");


  // Wait for connection

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println("");

  Serial.print("Connected to ");

  Serial.println(ssid);

  Serial.print("IP address: ");

  Serial.println(WiFi.localIP());

  

  if (mdns.begin("esp8266", WiFi.localIP())) {

    Serial.println("MDNS responder started");

  }

  

  server.on("/", [](){

    server.send(200, "text/html", webPage);

  });

  server.on("/on", [](){

    server.send(200, "text/html", webPage);

    digitalWrite(gpio13Led, LOW);

    digitalWrite(gpio12Relay, HIGH);

    delay(1000);

     digitalWrite(gpio13Led, HIGH);

    digitalWrite(gpio12Relay, LOW);

    

  });

  server.on("/off", [](){

    server.send(200, "text/html", webPage);

    digitalWrite(gpio13Led, HIGH);

    digitalWrite(gpio12Relay, LOW);

    delay(1000); 

  });

  server.begin();

  Serial.println("HTTP server started");

}

 

void loop(void){

  server.handleClient();

ไม่มีความคิดเห็น:

แสดงความคิดเห็น