-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSimpleESP01httpRelayArduinoOTA.ino
More file actions
61 lines (52 loc) · 1.84 KB
/
SimpleESP01httpRelayArduinoOTA.ino
File metadata and controls
61 lines (52 loc) · 1.84 KB
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
/*
@File : SimpleESP01httpRelayArduinoOTA.ino
@Time : 2023/01/23
@Author : joyel24
@Contributors : joyel24
*/
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>
#include "secrets.h" //Add Your WLAN Credentials in this file
#define RELAY1 0 //Enter your relay1 pin
#define RELAY2 2 //Enter your relay2 pin
#define ON LOW //Define active low or active high for relays
#define OFF HIGH //Define active low or active high for relays
#define NumberOfRelays 2 //Define the number of relays (1 or 2)
ESP8266WebServer server(80); //http port
#include "WebserverRequests.h"
void setup() {
digitalWrite(RELAY1, OFF); //Set default state to OFF
if (NumberOfRelays > 1){
digitalWrite(RELAY2, OFF);
}
pinMode(RELAY1, OUTPUT); //Set pin as output
if (NumberOfRelays > 1){
pinMode(RELAY2, OUTPUT);
}
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Retry...");
delay(1000);
WiFi.begin(ssid, password);
//ESP.restart();
}
#include "OTA.h" //include OTA to handle ARDUINO IDE uploade code capability
//Read the ESP8266WebServer library documentation to understand
server.onNotFound(handleNotFound);
server.on("/", handleRoot);
server.on("/ON1", Relay1_ON);
server.on("/OFF1", Relay1_OFF);
server.on("/ON2", Relay2_ON);
server.on("/OFF2", Relay2_OFF);
server.begin();
}
void loop() {
ArduinoOTA.handle(); //OTA update for Arduino IDE [OTA.h]
server.handleClient(); //Read the ESP8266WebServer library documentation to understand
}