Skip to content

hmitev/esp8266

 
 

Repository files navigation

It's a fork from http://git.spritesserver.nl/esphttpd.git 

esp-httpd README

This is a small but powerful webserver for ESP8266(EX) chips. Included is an example of how
to make a module that can have the AP it connects to configured over a webbrowser.

ABOUT THE WEBSERVER

The Good (aka: what's awesome)
 - Supports multiple connections, for eg simultaneous html/css/js/images downloading
 - Static files stored in flash, in an (optionally compressed) RO filesystem
 - Pluggable using external cgi routines
 - Simple template engine for mixed c and html things

The Bad (aka: what can be improved)
 - Not built for speediness, although it's reasonable fast.
 - Built according to what I remember of the HTTP protocol, not according to the
   RFCs. Should work with most modern browsers, though.
 - No support for https.

The Ugly (aka: bugs, misbehaviour)
- Possible buffer overflows (usually not remotely exploitable) due to no os_snprintf
  This can be theoretically remedied by either Espressif including an os_snprintf in 
  their libs or by using some alternate printf lib, like elm-chans xprintf

ABOUT THE EXAMPLE

When you flash the example into an ESP8266(EX) module, you get a small webserver with a few example
pages. If you've already connected your module to your WLAN before, it'll keep those settings. The 
module will reboot into its STA+AP mode. Connect a computer to the newly formed access point and
browse to http://192.168.4.1/wifi in order to connect the module to your WiFi network. The example 
also allows you to control 2 module relay using GPIO0 & GPIO2. 

BUILDING EVERYTHING

For Linux: https://github.com/esp8266/esp8266-wiki/wiki
For mac (tested with Yosemite): http://tuanpm.net/post/109019196894/esp8266-development-kit-on-mac-os-yosemite-and

This project makes use of heatshrink, which is a git submodule. To fetch the code:
cd esphttpd
git submodule init
git submodule update

Now, build the code:
make


Flashing: 
- make flash
- make htmlflash

Changes according to original source code:
1. use esptool.py instead of esptool for image building
2. disable reset on GPIO0 (GPIO is used for second relay)
3. new html layout supporting smartphone resolution (tested with iphone5)
4. addition Makefile.mac to build app directly on mac os x
5. project configuration for eclipse cdt

About

ESP8266 control firmware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 89.4%
  • Makefile 3.6%
  • Smarty 3.4%
  • CSS 2.4%
  • C++ 0.5%
  • Shell 0.4%
  • Other 0.3%