mirror of
https://github.com/0x1d/esp8266-laser.git
synced 2025-12-17 02:46:39 +01:00
105 lines
3.0 KiB
Markdown
105 lines
3.0 KiB
Markdown
# Esp8266-Laser
|
|
Wifi Host for the Arduino-Laser-Spirograph
|
|
|
|
# HTTP endpoints:
|
|
* /spirograph
|
|
* **GET** returns laser and motor values (0 at startup)
|
|
* **POST** sets new value(s)
|
|
* laser=1-128 (1:permanent, 2-127 pulse, 128 off)
|
|
* motor1=1-128
|
|
* motor2=1-128
|
|
* motor3=1-128
|
|
|
|
* /wificonfig ->
|
|
* **GET** returns wifi settings
|
|
* **POST** sets new wifi setting{s}
|
|
* apMode=0: will try to connect to SSID first, 1: will directly start the AP
|
|
* SSID=ssid
|
|
* password=password
|
|
* save=true will save config to spiffs, false will only change RAM variable (useful for onetime ap joins)
|
|
* apply=true will reset wifi and try to connect with new param (buggy atm)
|
|
* /saveconf ->
|
|
* **POST** write wificonfig to file (similar to wificonfig->save=true)
|
|
* /resetwifi ->
|
|
* **POST** reconnect wifi (similar to wificonfig->apply=true)
|
|
* /heap ->
|
|
* **GET** returns free heap of the ESP8266
|
|
* /files ->
|
|
* **GET** returns list of files
|
|
* /presetMode ->
|
|
* **GET** returns current mode
|
|
* **POST** sets mode 0: presetsOff 1: cycle (not completed feature)
|
|
* /presets ->
|
|
* **GET** returns /presets.json
|
|
|
|
|
|
# Install
|
|
- install arduino ide (1.8.5) or PlatformIO (see Development section for further instructions)
|
|
|
|
- follow this instruction
|
|
https://github.com/esp8266/Arduino#installing-with-boards-manager
|
|
|
|
- clone/exctract repo to sketchbook
|
|
|
|
- install this libaries
|
|
https://github.com/plerup/espsoftwareserial
|
|
https://github.com/bblanchon/ArduinoJson/
|
|
|
|
- follow this instruction:
|
|
set wifi parameters in data/wifi.json before upload
|
|
http://esp8266.github.io/Arduino/versions/2.0.0/doc/filesystem.html#uploading-files-to-file-system
|
|
|
|
You may also need to:
|
|
- get and install driver for nodemcu
|
|
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
|
|
|
|
# Development
|
|
PlatformIO
|
|
----------
|
|
The project is intended to run on PlatformIO and the build environment is configured for NodeMCU 0.9 (ESP-12 Module).
|
|
More informations: http://docs.platformio.org/en/latest/platforms/espressif8266.html
|
|
|
|
Following libraries need to be installed via PIO Home / Libraries:
|
|
- SoftwareSerial
|
|
- ArduinoJson
|
|
|
|
Use following commands to build and upload the firmware and filesystem:
|
|
```
|
|
# clean the build directory
|
|
pio run -t clean
|
|
|
|
# run default build job / build the formware
|
|
pio run
|
|
|
|
# upload the firmware
|
|
pio run -e nodemcu -t upload
|
|
|
|
# build the filesystem
|
|
pio run -t buildfs
|
|
|
|
# upload the filesystem
|
|
pio run -t uploadfs
|
|
|
|
```
|
|
|
|
PlatformIO tasks can also be triggered with following npm run commands (pio / platformio executable needs to be in $PATH):
|
|
```
|
|
build:fs
|
|
upload:fs
|
|
build:firmware
|
|
upload:firmware
|
|
```
|
|
|
|
Frontend
|
|
--------
|
|
Frontend development requires NodeJS / npm.
|
|
The development server watches all files in the frontend directory and automatically builds and copies the frontend code to the data folder.
|
|
|
|
```
|
|
# run development server on port 8080
|
|
npm run dev
|
|
|
|
# build distribution source to data folder
|
|
npm run build
|
|
```
|
|
|