This project is to author a firmware for the ESP32 chip that will allow the device to act as an ethernet data coprocessor to an existing system, interfaced via AT commands over UART.
This project must be built on the ESP-IDF, not the Arduino framework.
Correct RTOS threaded design is expected.
Implementation should be in plain C, no C++.
(fully self-contained C++ modules are acceptable, but interworking support must be provided)
Firmware must provide these features:
1) Settable CA root certificate, via AT command
2) Initiate MQTT+TLS connection with settable port, username, password, and peer-cn, via AT command
3) Check and control MQTT status via AT command
4) Publish over MQTT, via an AT command
5) Queue incoming MQTT messages and provide AT commands to check queue length and request & transmit received messages to the AT master.
6) Do HTTPS transaction and return the parsed result, via AT command. Specifics and extent of needed support (PUT, POST, etc) will be discussed.
7) Must be able to download a file over HTTPS to internal SPIFFS
8) OTA from file ELF or BIN file stored in SPIFFS
9) Set standard ethernet link params (DHCP on/off, IP, netmask, gateway), via AT command
10) Report on ethernet link status and control link up/down, via AT command
11) Standard AT commands (reboot, etc)