diff --git a/README.md b/README.md index 742446c..b03e225 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,54 @@ A (very) simple web server written in Lua for the ESP8266 firmware NodeMCU. Look at the included example scripts for more ideas. +### Example: Garage door opener + +#### Purpose + + This is a bundled example that shows how to use nodemcu-httpserver + together with server-side scripting to control something with the + ESP8266. In this example, we will pretend to open a garage door. + This is a very simple example that doesn't even use arguments passed + in the request (see example args.lua for that). + + Your typical [garage door opener](http://en.wikipedia.org/wiki/Garage_door_opener) + has a wired remote with a single button. The button simply connects to + two terminals on the electric motor and when pushed, the terminals are + shorted. This causes the motor to open or close. + +#### Hardware description + + This example assumes that GPIO2 on the ESP8266 is connected to a relay + that can be controlled. How to wire such thing is outside of the scope + of this document [but information is easily found online] + (https://www.google.com/search?q=opening+a+garage+door+with+a+microcontroller). + The relay is controlled by the microcontroller and acts as the button, + and can actually be connected in parallel with the existing mechanical button. + +#### Software description + + This example consists of the following files: + + * **garage_door_opener.html**: Static HTML displays a button with a link + to the garage_door_opener.lua script. That's it! + * **garage_door_opener.css**: Provides styling for garage_door_opener.html + just so it looks pretty. + * **garage_door_opener.lua**: Does the actual work. The script first sends + a little javascript snippet to redirect the client back to garage_door_opener.html + and then toggles the GPIO2 line for a short amount of time (roughly equivalent to + the typical button press for opening a garage door) and then toggles it back. + * **apple-touch-icon.png**: This is optional. Provides an icon that + will be used if you "Add to Home Screen" the demo. Now it looks like an app!` + +#### Security implications + + Be careful permanently installing something like this in your home. The + scripts use no authentication and no encryption. Your only layer of + security is your wifi network and anyone with access to it could open + or close your garage, enter your home, and steal your flatscreen TV. + + This script is provided simply as an educational example and you should + treat accordingly. ## Not supported