From fce6d143c5317fcddc75dd91cf5145f36adc5967 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Wed, 11 Apr 2018 20:11:44 +0200 Subject: [PATCH] Added screenshot --- README.md | 6 +++++- screenshot.png | Bin 0 -> 18349 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 screenshot.png diff --git a/README.md b/README.md index 685b826..e94ea26 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # WifiLamp -I have a lamp in my room where I intercepted the powerline using a relais and ESP2866 to control it from my phone/amazon dash button +I have a lamp in my room where I intercepted the powerline using a relais and ESP2866 to control it from my phone/amazon dash button. + +The micro controller connects to my home WiFi and starts a webserver to control it. APIs exist to simplify control from other software components like [android app](https://github.com/Waboodoo/HTTP-Shortcuts). + +![Screenshot](/screenshot.png) ## Parts 1. [Wemos D1 Mini](https://wiki.wemos.cc/products:d1:d1_mini) diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d4cd051a9d413ec07e40352ef2f369331f0fedb4 GIT binary patch literal 18349 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 literal 0 HcmV?d00001