Arduino based project running on my custom made board
			
		
		| documentation | ||
| schematic | ||
| sdCard_content/WWW | ||
| src | ||
| .gitignore | ||
| README.md | ||
ESP8266_swiss_army_board
Arduino based project running on my custom made board
The hardware :
Hardware pin mapping :
(This image wasn't done by me)
So we have :
- I2C (for OLED screen and RTC)
- GPIO4 --> SDA
 - GPIO5 --> SCL
 
 - SPI (for µSDCard)
- GPIO13 --> MOSI
 - GPIO12 --> MISO
 - GPIO14 --> CLK
 - GPIO2 --> µSDCard CHIP_SELECT
 
 
Here is a list of the components needed in order to build such a board :
- 1x 1N4001 reverse voltage protection diode
 - 1x AMS1117 5v voltage regulator
 - 1x AMS1117 3.3v voltage regulator
 - 2x 22µf electrolytic capacitors
 - 2x 0.1µf (code 104) tantalum capacitors
 - 1x jumper
 - 1x 2 pins male header
 - 1x On/Off switch
 - 2x push buttons
 - 1x ESP8266 E12
 - 1x 19 pins female header
 - 1x 2 screws terminal
 - 1x micro USB socket
 - 1x 100 ohm resistor
 - 2x 1k ohm resistor
 - 1x 6.8k ohm resistor
 - 1x 3.9k ohm resistor
 - 1x 22k ohm resistor
 - 2x 10k ohm resistor
 - 1x 33k ohm resistor
 - 1x 4.7k ohm resistor
 - 1x 7cmx5cm pcb
 
The software :
I2C Hardware addresses :
- OLED screen : 0x3C
 - RTC DS3231 : 0x68
 
External librairies used :
- Adafruit_SSD1306 (not my work) link
 - Adafruit-GFX (not my work) link
 - RTClib-master (not my work) link
 - AT24CXX-master (not my work) link
 
SD Card structure (subject to changes) :
/
|_CONFIG
|   AP.CFG
|   STA.CFG
|_FTP
|_LOGS
|_WWW
Example of a config file structure (.CFG) :
#This line is a comment and will be ignored
#All comments should be at the top of the file
#The parameter names are case sensitive /!\
this_is_the_parameter_name : this_is_a_numeric_value
'this is the parameter name' : this_is_a_numeric_value
this_is_the_parameter_name : 'this is a string value'
'this is the parameter name' : 'this_is_a_string_value'
For AP.CFG it would be :
#This config file stores the configuration needed to set the AP
#up for the ESP8266SwissArmyBoad
#If this file is not present or if there is an error at parsing time
#default values will be used instead.
#If the password is an empty string aka '', the network will be open
SSID : 'ESP8266SwissArmyBoard'
PASSWORD : 'APassWord'
CHANNEL : 1
SSID_HIDDEN : 'true'
AP_MAX_CONNECTION : 4
For STA.CFG it would be :
#This config file stores the configuration needed to connect the board
#to a wifi hotspot
#If this file is not present or if there is an error at parsing time
#only the AP functionality will be enabled
SSID : 'MyHotspotSSID'
PASSWORD : 'MySuperSecuredPassword'
System WEB api :
Here is a list of the available api calls for the board :
- /sab/web/apitester
- HTTP request method : ALL
 - Description : Test if the api system is available
 - Response format : JSON
- OK : { "status" : "ok", "API" : "available" }
 - FAIL : NOTHING
 
 
 - /sab/view/next
- HTTP request method : GET
 - Description : Display the next view on the screen
 - Response format : JSON
- OK : { "status" : "ok", "ViewUID" : "UID" }
 - FAIL : { "status" : "failed", "message" : "REASON" }
 
 
 - /sab/view?UID=x
- HTTP request method : GET
 - Description : Display the view with the corresponding id
 - Response format : JSON
- OK : { "status" : "ok", "ViewUID" : "UID" }
 - FAIL : { "status" : "failed", "message" : "REASON" }
 
 
 - /sab/rtc/get/datetime
- HTTP request method : GET
 - Description : Get RTC's time
 - Response format : JSON
- OK : { "status" : "ok", "date" : "xx/xx/xxxx", "time" "xx:xx:xx" }
 
 
 - /sab/rtc/set/datetime?datetime=day_month_year_hours_minutes_seconds
- HTTP request method : GET
 - Description : Set RTC's clock
 - Response format : JSON
- OK : { "status" : "ok", "date" : "xx/xx/xxxx", "time" "xx:xx:xx" }
 - FAIL : { "status" : "failed", "message" : "REASON" }
 
 
 - /sab/sdcard/unmount
- HTTP request method : GET
 - Description : Unmount the SD Card in order to remove it
 - Response format : JSON
- OK : { "status" : "ok", "card" : "unmounted" }
 
 
 - /sab/sdcard/mount
- HTTP request method : GET
 - Description : Mount the SD Card
 - Response format : JSON
- OK : { "status" : "ok", "card" : "mounted" }
 - FAIL : { "status" : "failed", "message" : "REASON" }
 
 
 - /esp/restart
- HTTP request method : GET
 - Description : Restart the UC, this one is recommended compared to the reset call
 - Response format : NOTHING
 
 - /esp/reset
- HTTP request method : GET
 - Description : Reset the UC
 - Response format : NOTHING
 
 
Things to do :
- Screen Manager ✓
 - µSDcard File System
- Add a file truncate function ✓
 
 - File Config Parser
- Add save config
 
 - Templated Dictionary Class ✓
 - RTC Manager ✓
 - RTC FLASH Manager
 - FTP Service
 - WEB ServerManager ✓
 - GPIO Util
 


