jonny_ji7 a80502f95b Utilize SPIFFS for serving the app with web-server
With this commit the webserver of the controller can serve a folder (/react-app/build/), when the ip is accessed in a web-browser.

Currently the react app is successfully served and the armchair can be controlled when in HTTP mode and connected via AP.

- CMakeLists: Add command that creates and flashes the spiffs partition when running
  idf.py flash
- main.cpp: Add function to initialize spiffs
- http.cpp: uncomment handler for default URL (accesses spiffs)
- Add partitions.csv: needed for the creation of spiffs.bin during
  compilation
- Add sdkconfig: It was necessary to change the FLASH_SIZE from 2MB to
  4MB. To avoid having the same trouble on other devices the sdkconfig
  is now added to the repository
2022-06-17 22:33:29 +02:00
2022-06-17 21:39:35 +02:00
2022-06-04 18:17:15 +02:00

Firmware for a homemade automated electric armchair.
More details about this project: https://pfusch.zone/electric-armchair

Installation

Install esp-idf

For this project ESP-IDF v4.4.1 is required (with other versions it might not compile)

#download esp-idf
yay -S esp-idf #alternatively clone the esp-idf repository from github
#run installation script in installed folder
/opt/esp-idf/install.sh

Clone this repo

git clone git@github.com:Jonny999999/armchair_fw

Compilation

Set up environment

source /opt/esp-idf/export.sh

(run once in terminal)

Compile

idf.py build

Upload

  • connect FTDI programmer to board (VCC to VCC; TX to RX; RX to TX)
  • press REST and BOOT button
  • release RESET button (keep pressing boot)
  • run flash command:
idf.py flash
  • once "connecting...' successfully, BOOT button can be released

Monitor

  • connect FTDI programmer to board (VCC to VCC; TX to RX; RX to TX)
  • press REST and BOOT button
  • release RESET button (keep pressing boot)
  • run monitor command:
idf.py monitor
  • once connected release BOOT button
  • press RESET button once for restart

Hardware setup

pcb

Used pcb developed in this project: https://pfusch.zone/project-work-2020

connection plan

A diagram which shows what components are connected to which terminals of the pcb exists here:
connection-plan.drawio.pdf

Planned Features

  • More sensors:
    • Accelerometer
    • Lidar sensor
    • GPS receiver
  • Anti slip regulation
  • Self driving algorithm
  • Lights

Usage

Switch functions

previous functions - not implemented yet

Count Action
1 define joystick center
2 toggle motors
3 toggle log-level (WARN, DEBUG, INFO)
4 define max duty
5 toggle mode MQTT/JOYSTICK
6 toggle mode SHAKE/JOYSTICK
7 toggle testing-mode (dry-run)
Description
Firmware for a homemade automated electric armchair using an esp32 controller on a custom pcb
Readme 34 MiB
Languages
C++ 83.8%
C 15.3%
CMake 0.7%
HTML 0.2%