Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/matigumma/esp8266


https://github.com/matigumma/esp8266

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

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