ESP32 WiFi Mesh with ESP IDF and ESP-MDF with AWS MQTT

Job ID: 35057290

Budget: $250 – $750 CAD

The agenda is to create a mesh of more than 100 ESP32 nodes devices each of which is connected to load cell using HX711, the data of these nodes are sent to AWS cloud using MQTT protocol using ESP32 root node using local WIFI router.
You should write the firmware for ESP32 parent node device which communicates with HX711 (24bit ADC convertor) which is further connected to a load cell. This node firmware should include following
1) Auto Calibrate functionality
2) Tare functionality
3) Minimum Threshold value functionality
Each ESP32 parent node device reads the data from HX711 after every “X” (5/10/15/20/30) second and if the difference between the present value and the previous reading value is greater than minimum threshold value then the Data is sent to another ESP32 root node device which then sends the data to cloud using MQTT protocol.
I want you to write code for the ESP32 using ESP-IDF and ESP-MDF. Each ESP32 parent node device will be powered by daisy chain connected with single 5v power source. Your code must be power efficient.
The same firmware will be installed in more than 500 of ESP32 parent node devices. All devices (up to the limit of ESP-MDF design and ESP32 hardware) must communicate with each other using stable and power efficient mesh networking. All these ESP32 device node will be in close proximity (10 cm) to each other. I want to be able to connect via Bluetooth or BLE (using an Android phone) to any one of the identical nodes and be able to control any of the other nodes.
It should be possible to add or remove parent nodes without any changes to the firmware or the code of the Android app. A potential user should not need any programming knowledge. A node is added, or removed, from the mesh by being powered on, or off, within range of an existing node.
Upon start-up, the Android app will display a list of nodes within Bluetooth range. Upon connection to any node, via Bluetooth, it should be possible to control either ANY individual node which is currently on the Mesh network or ALL the nodes simultaneously. It should be possible to Tare, Calibrate any node from the app. The quality of the UI and GUI for Android app does not matter. The main purpose of the Android app is to be able to test the ESP32 firmware. The Android app is not intended to be suitable for commercial use.
At minimum your deliverables must include the source code for both the ESP32 firmware and the Android app as well as any setup and usage instructions.
To demonstrate your knowledge of ESP-IDF, you must include in your bid the correct syntax for using the ESP-IDF function analogWrite() to output a PWM signal with a duty cycle of 75% at 10bit resolution on pin 36. Any bids which do not include a response to this request will not be considered.