Difference between revisions of "ESP-2"
m (Removed featured tag, project hasn't changed for a while) |
(added Arduino programming of the ESP, mentioned ESP^2 revision 1.1) |
||
Line 4: | Line 4: | ||
|Description=Playing around with cheap wifi modules | |Description=Playing around with cheap wifi modules | ||
}} | }} | ||
+ | |||
+ | == synopsis == | ||
To make the ESP8266 more accessible to everyone I have created a "programmer" which allows for easy firmware uploading and communication with the module. | To make the ESP8266 more accessible to everyone I have created a "programmer" which allows for easy firmware uploading and communication with the module. | ||
Line 13: | Line 15: | ||
More info to follow soon.. | More info to follow soon.. | ||
+ | |||
+ | === Revision 1.1 === | ||
+ | [[User:Xopr|xopr]] Modified the ESP^2 a bit: | ||
+ | * Added three wires (VCC, GND and GPIO2) for Dallas temperature sensor debugging (wire ends are insulated) | ||
+ | * Added pullup resistor was added so GPIO0 can be used after the device has been booted | ||
+ | * Added resistor to the 5V ESP^2 TX signal (should be two diodes I guess, the resistor divider didn't work) | ||
+ | |||
+ | == Using Arduino 1.6.4 to program the ESP8266 == | ||
+ | Taken from https://github.com/esp8266/arduino | ||
+ | |||
+ | * Install Arduino 1.6.4 from the [http://www.arduino.cc/en/main/software Arduino website]. | ||
+ | * Start Arduino and open Perferences window. | ||
+ | * Enter ''http://arduino.esp8266.com/package_esp8266com_index.json'' into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas. | ||
+ | * Open Boards Manager from Tools > Board menu and install ESP8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation). | ||
+ | * For the ESP^2, the device name (under Linux) is /dev/ttyACM3 | ||
+ | * Change the programmer from ''AVRISP mkII'' to ''ArduinoISP'' | ||
+ | * poweroff ESP (either unplug the USB or pull the device from the socket | ||
+ | * set the switch to ''prog'' | ||
+ | * poweron the ESP | ||
+ | * You can now upload your sketch | ||
+ | |||
+ | === Webserver serving JSON === | ||
+ | |||
+ | This sketch provides a webserver-like interface and provides a json file (somewhat compatible with [[SpaceAPI]]) | ||
+ | There is a version running in the space in a 'hot' zone, and accessible on [http://192.168.1.132 http://192.168.1.132] | ||
+ | |||
+ | You can find the code [[ESP8166-DS18S20|here]] | ||
+ | |||
+ | === SpaceState === | ||
+ | |||
+ | This sketch is a web client and will update the SpaceState | ||
+ | |||
+ | You can find the code [[ESP8166-SpaceState|here]] | ||
== loading scripts from a webserver == | == loading scripts from a webserver == | ||
Line 29: | Line 64: | ||
end | end | ||
</pre> | </pre> | ||
− | Future plans | + | === Future plans === |
*Send mac address of the wifi module in get so the web server can return device specific firmwares | *Send mac address of the wifi module in get so the web server can return device specific firmwares | ||
*Put the script between specific tags so there won't be any problems with headers that are added by the web server + gives the possibility to add meta data (e.g. version of script or a signature) | *Put the script between specific tags so there won't be any problems with headers that are added by the web server + gives the possibility to add meta data (e.g. version of script or a signature) | ||
*Create a nice php/mysql webapp to easily manage the scripts per module | *Create a nice php/mysql webapp to easily manage the scripts per module |
Revision as of 22:52, 5 July 2015
Project: ESP-2 | |
---|---|
Featured: | |
State | Active |
Members | Prodigity, Da Syntax |
GitHub | No GitHub project defined. Add your project here. |
Description | Playing around with cheap wifi modules |
Picture | |
No project picture! Fill in form Picture or Upload a jpeg here |
Contents
synopsis
To make the ESP8266 more accessible to everyone I have created a "programmer" which allows for easy firmware uploading and communication with the module.
Behold, the ESP^2 (esp egg salad programmer).
More info to follow soon..
Revision 1.1
xopr Modified the ESP^2 a bit:
- Added three wires (VCC, GND and GPIO2) for Dallas temperature sensor debugging (wire ends are insulated)
- Added pullup resistor was added so GPIO0 can be used after the device has been booted
- Added resistor to the 5V ESP^2 TX signal (should be two diodes I guess, the resistor divider didn't work)
Using Arduino 1.6.4 to program the ESP8266
Taken from https://github.com/esp8266/arduino
- Install Arduino 1.6.4 from the Arduino website.
- Start Arduino and open Perferences window.
- Enter http://arduino.esp8266.com/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
- Open Boards Manager from Tools > Board menu and install ESP8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
- For the ESP^2, the device name (under Linux) is /dev/ttyACM3
- Change the programmer from AVRISP mkII to ArduinoISP
- poweroff ESP (either unplug the USB or pull the device from the socket
- set the switch to prog
- poweron the ESP
- You can now upload your sketch
Webserver serving JSON
This sketch provides a webserver-like interface and provides a json file (somewhat compatible with SpaceAPI) There is a version running in the space in a 'hot' zone, and accessible on http://192.168.1.132
You can find the code here
SpaceState
This sketch is a web client and will update the SpaceState
You can find the code here
loading scripts from a webserver
I (Da Syntax) got tired from typing the scripts line for line into the lua console of the nodeMCU firmware. I wrote a little function to load the scripts from a webserver running on my laptop. This way I can just save the script on my laptop and load it to my ESP8266 calling 2 functions ( netload() and dofile("netloaded.lua") )
function netload() conn=net.createConnection(net.TCP, 0) conn:on("receive", function(conn, payload) print(payload) file.open("netloaded.lua", "w") file.write(payload) file.close() end) conn:connect(8080,"192.168.1.193") conn:send("GET /test.lua HTTP/1.1\r\nHost: www.example.com\r\n" .."Connection: keep-alive\r\nAccept: */*\r\n\r\n") end
Future plans
- Send mac address of the wifi module in get so the web server can return device specific firmwares
- Put the script between specific tags so there won't be any problems with headers that are added by the web server + gives the possibility to add meta data (e.g. version of script or a signature)
- Create a nice php/mysql webapp to easily manage the scripts per module