diff --git a/garage/Garage.ino b/garage/Garage.ino index 7bffa7d..fa4823d 100644 --- a/garage/Garage.ino +++ b/garage/Garage.ino @@ -1,33 +1,74 @@ +#include "ESP8266WiFi.h" +#include "ESP8266WebServer.h + +// https://techtutorialsx.com/2016/10/03/esp8266-setting-a-simple-http-webserver/ +ESP8266WebServer server(80); + const int remotePin = D1; const int buttonPin = D2; const int motorPin = D3; void setup() { - Serial.begin(9600); - Serial.println("Start"); - pinMode(BUILTIN_LED, OUTPUT); - pinMode(remotePin, OUTPUT); - pinMode(buttonPin, INPUT); - pinMode(motorPin, OUTPUT); + Serial.begin(115200); + connectWifi(); + + server.on("/", handleRootPath); + server.begin(); + Serial.println("Server listening"); + + pinMode(BUILTIN_LED, OUTPUT); + pinMode(remotePin, OUTPUT); + pinMode(buttonPin, INPUT); + pinMode(motorPin, OUTPUT); } int buttonState = 0; void loop() { - buttonState = digitalRead(buttonPin); - //Serial.println(buttonState); + if ((WiFi.status() == WL_CONNECTED)) { + server.handleClient(); + } + else { + Serial.println("WiFi not connected!"); + connectWifi(); + } + + buttonState = digitalRead(buttonPin); + + if (buttonState == HIGH) { + Serial.println("Button pressed"); + digitalWrite(remotePin, HIGH); + digitalWrite(motorPin, HIGH); + digitalWrite(BUILTIN_LED, LOW); + delay(500); + } + else { + digitalWrite(remotePin, LOW); + digitalWrite(motorPin, LOW); + digitalWrite(BUILTIN_LED, HIGH); + } + + delay(10); +} + +void handleRootPath() { + server.send(200, "text/plain", "Hello world"); +} + +void connectWifi() { + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println("WiFi connected."); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); +} + + - if (buttonState == HIGH) { - Serial.println("Button pressed"); - digitalWrite(remotePin, HIGH); - digitalWrite(motorPin, HIGH); - digitalWrite(BUILTIN_LED, LOW); - delay(500); - } else { - digitalWrite(remotePin, LOW); - digitalWrite(motorPin, LOW); - digitalWrite(BUILTIN_LED, HIGH); - } - delay(10); -} \ No newline at end of file