ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

การใช้งาน ESP8266 และ ESP32

thunyanat
1. ผมใช้ ESP8266 และ ESP32 ในการเปิดปิดไปต้องแรกก็ใช้ได้ปรกติ แต่ 2-3 วันต่อมาไม่สารารถติดต่อผ่านเว็บไม่เลย แต่โปรแกรมก็ยังทำได้ปรกติ เพราะตั้งให้เปิดปั๊กทุก 7:00น และ ปิด 7:30น เปิดปิดไฟ ทุก 2 ชม ต่อกลางคืน
2. ถ้าผมต่อรีเลย์ แล้วเปิด Esp8266 จะทำงานไม่ได้ แต่ถ้าใช้สวิตซ์ ทำงานได้ปรกติ
ไม่ทราบจะแก้ปัญหาได้อย่างไรครับ
QUOTE 
ความคิดเห็นที่ #1
thunyanat
Code ครับ
#include <ESP8266WiFi.h>
#include <time.h>

const char* ssid = "t-lek2G";
const char* password = "tlek5393";

int timezone = 7 * 3600; //ตั้งค่า TimeZone ตามเวลาประเทศไทย
int dst = 0; //กำหนดค่า Date Swing Time

#define Relay1 D3
#define Relay2 D4

WiFiServer server(80);

void setup() {
Serial.begin(115200);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay1,LOW);
digitalWrite(Relay2,LOW);
Serial.println();
Serial.print("Connecting to ");
Serial.setDebugOutput(true);
WiFi.mode(WIFI_STA); //เชื่อมต่อ Wifi
//Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
configTime(timezone, dst, "pool.ntp.org", "time.nist.gov"); //ดึงเวลาจาก Server
Serial.println("\nLoading time");
while (!time(nullptr)) {
Serial.print("*");
delay(1000);
}

IPAddress local_ip = {192, 168, 1, 60}; //ฟิกค่า IP
IPAddress gateway = {192, 168, 1, 1}; //ตั้งค่า IP Gateway
IPAddress subnet = {255, 255, 255, 0}; //ตั้งค่า Subnet
WiFi.config(local_ip, gateway, subnet); //setค่าไปยังโมดูล
Serial.println("");
Serial.println("WiFi connected");
server.begin();
Serial.println(WiFi.localIP());
Serial.println("Server started");
}

String sta_1 = "1 off";
String sta_2 = "2 off";
int open_time, mod_time;

void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println("new client");
String req = client.readStringUntil('\r');
time_t now = time(nullptr);
struct tm* p_tm = localtime(&now);
client.flush();
/*** Procress Open time ***/
open_time = ((p_tm->tm_hour)*60) + (p_tm->tm_min);
//7:00 AM, 18:30 PM on 15 min
if ((open_time >= 420 && open_time < 435) || (open_time >= 1110 && open_time < 1125)) {
sta_2 = "2 on";
digitalWrite(Relay2,HIGH);
}else{
sta_2 = "2 off";
digitalWrite(Relay2,LOW);
}
mod_time = open_time % 60;
if (mod_time <= 10) {
sta_1 = "1 on";
digitalWrite(Relay1, HIGH);
}else{
sta_1 = "1 off";
digitalWrite(Relay1, LOW);
}
/*** End Open Time ***/

if (req.indexOf("/r1off.html") != -1) {
sta_1 = "1 off";
digitalWrite(Relay1,LOW);
}
else if (req.indexOf("/r1on.html") != -1) {
sta_1 = "1 on";
digitalWrite(Relay1,HIGH);
}
else if (req.indexOf("/r2on.html") != -1) {
sta_2 = "2 on";
digitalWrite(Relay2,HIGH);
}
else if (req.indexOf("/r2off.html") != -1) {
sta_2 = "2 off";
digitalWrite(Relay2,LOW);
}
else if(req.indexOf("/Temp_.html") != -1) {
client.flush();
String humi = "<h4>Water Open 7:00 - 7:15 and 18:30 - 18:45 \r\n";
humi += "  Open_time = " + String(open_time) + "\r\n";
humi +="</h4><br><br>\r\n";
if (sta_1 == "1 on"){
humi += "<h3>[Relay " + sta_1 + " ]   </h3>\r\n";
}else{
humi += "<h4>[Relay " + sta_1 + " ]   </h4>\r\n";
}
if (sta_2 == "2 on"){
humi += "<h3>[Relay " + sta_2 + " ]   </h3>\r\n";
}else{
humi += "<h4>[Relay " + sta_2 + " ]   </h4>\r\n";
}
humi += "<br>\r\n";
client.print(humi);
}
else if(req.indexOf("/") != -1) {
client.flush();
String web = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
web += "<html>\r\n";
web += "<head>\r\n";
web += "<style>\r\n";
web += ".button-red,.button-blue\r\n";
web += "{color: white;\r\n";
web += "border-radius: 9px;\r\n";
web += "font-family:Arial;\r\n";
web += "font-size:18px;\r\n";
web += "width:120px; height:40px;\r\n";
web += "}\r\n";
web += ".button-red:hover:active,.button-blue:hover:active\r\n";
web += "{position:relative;top:3px;color: yellow;}\r\n";
web += ".button-red {background: rgb(202, 60, 60);}\r\n";
web += ".button-blue {background: rgb(100,116,255);}\r\n";
web += "h1{color:black;font-family:Arial;font-size:30px;text-align:center;}\r\n";
web += "h2{color:blue;font-family:Arial;font-size:18px;text-align:center;}\r\n";
web += "h3{color:red;font-family:Arial;font-size:14px;text-align:left;display:inline;}\r\n";
web += "h4{color:black;font-family:Arial;font-size:14px;text-align:left;display:inline;}\r\n";
web += "</style>\r\n";
web += "<script>\r\n";
web += "var ajax = null;\r\n";
web += "if (window.XMLHttpRequest)\r\n";
web += "{ajax =new XMLHttpRequest();}\r\n";
web += "else\r\n";
web += "{ajax=new ActiveXObject(\"Microsoft.XMLHTTP\");}\r\n";
web += "function ajaxLoad(method ,URL,displayElementId,sendData)\r\n";
web += "{\r\n";
web += "if(!ajax){alert(\"not support\");return;}\r\n";
web += "ajax.open(method,URL,true);\r\n";
web += "ajax.onreadystatechange = function()\r\n";
web += "{\r\n";
web += "if(ajax.readyState == 4 && ajax.status==200)\r\n";
web += "{\r\n";
web += "var ajax_result = ajax.responseText;\r\n";
web += "var el = document.getElementById(displayElementId);\r\n";
web += "el.innerHTML = ajax_result;\r\n";
web += "}\r\n";
web += "}\r\n";
web += "ajax.send(sendData);\r\n";
web += "}\r\n";
web += "function update_temp_humi()\r\n";
web += "{\r\n";
web += "var rand = Math.random();\r\n";
web += "var URL = \"/Temp_.html\";\r\n";
web += "ajaxLoad(\"GET\",URL,\'temp_humi\',null);\r\n";
web += "}\r\n";
web += "</script>\r\n";
web += "</head>";
web += "<body>";
web += "<h1>ESP8266 Web Server Ajax To Line (Irrigation Systems)</h1>";
web += "<div id=\"temp_humi\">";
web += "</div>";
web += "<div><p><input class=\"button-red\" type=\"button\" value=\"Relay 1 On\" onclick=\"Relay(\'r1on\')\">";
web += "<input class=\"button-blue\" type=\"button\" value=\"Relay 1 Off\" onclick=\"Relay(\'r1off\')\"></P>";
web += "<p><input class=\"button-red\" type=\"button\" value=\"Relay 2 On\" onclick=\"Relay(\'r2on\')\">";
web += "<input class=\"button-blue\" type=\"button\" value=\"Relay 2 Off\" onclick=\"Relay(\'r2off\')\"></P>";
web += "<script>";
web += "function Relay(state){ajaxLoad(\"GET\",state+\'.html\',null,null);}";
web += "setInterval(\"update_temp_humi()\",5000);";
web += "</script>";
web += "</body>";
web += "</html>";
client.print(web);
return;
}
}
QUOTE 
ความคิดเห็นที่ #2
เจ้าของร้าน

ตามข้อมูลทำงานได้แสดงว่า โค้ดถูกต้องแล้วครับ

สาเหตุมาจากไฟไม่พอ เปลี่ยนเป็นแหล่งจ่ายไฟที่จ่ายกระแสได้มากกว่านี้ เช่น 5V 3A ครับ

QUOTE 
ความคิดเห็นที่ #3
thunyanat
ขอบคุณครับ
ผมเพิ่ม lcd หรือ oled ใช้ได้ปรกติ
QUOTE 
ความคิดเห็นที่ #4
เจ้าของร้าน

ครับ

แสดงความคิดเห็นที่ 1-4 จากทั้งหมด 4 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม