We are looking for someone to write pieces of code to be used later in a program written in C++. The program will be written for an ESP32-MINI-1 microprocessor from Espressif. The ESP32 will have several interfaced components needing code written to control them. There will also be inputs and outputs such as buttons, an encoder, and piezoelectric buzzer. The device will be in deep sleep or light sleep most of the time.
Code for some of the items listed below has already been written for a prototype device. This code can be used/modified as needed and will be provided upon request. Datasheets and part numbers will also be provided for each component upon request as well.
The following is a list of the items we need. The chosen programmer shall provide an estimated time to complete each line item separately:
Control a 1.15” 128x64 graphic LCD Transflective display module over SPI and have the ability to turn the screen off when not in use to save power. Some work has been done on this and the code can be modified or rewritten.
Control a piezoelectric buzzer with different tones or strings of tones as a type of user feedback. The ability to choose which string of tones to play depending on the situation.
Method to convert battery voltage measurements from an onboard ADC to battery capacity.
Method of timing how long a user presses one of the buttons to distinguish between short and long presses. Each button will have multiple functions depending on how long the user presses the button. For special device functions two buttons will need to be pressed at the same time and we will need to monitor for that as well. An ISR will need to be implemented for when a button or pair of buttons is pressed if the device is sleeping.
Monitor signals on specific inputs to wake the device from sleep and perform different tasks depending on which input(s) woke the device.
Method for updating the device over Wi-Fi (OTA). Code for this has been written and works but will need to be reviewed and modified if needed.
Method for sending data over ESP-Now which is a protocol written by Espressif. This will be explained in more detail at a later time. Code has been written for this but needs to be cleaned up or rewritten. Some work has been done on this and the code can be modified or rewritten.
Simple graphics and text on the screen listed below. Until we decide the best placement for each item on the screen, we would like to be able to easily move these items around. Just make it simple enough where we can update a parameter of the X,Y location of the graphics so we can play around with placement. Changing it in code is fine if it isn’t too difficult. Being able to change the size of each text item separately will be needed also.
Display the current time (hh:mm) on the screen and the ability to have a call for updating the time when needed. The ESP32 will be in deep sleep most of the time and we don’t want to wake the device just for updating the time. Therefore, we would like to be able to call a method for updating the time when it is convenient to save power.
Display a battery icon on the screen showing battery level using the voltage measurement mentioned before. Some work has been done on this and the code can be modified or rewritten.
Display two different 2-digit numbers on the screen with a box around each number
For now, place the time and battery icon across the top. Place the two numbers as big as they can be with the boxes below them. Then draw a bold line on the screen to separate the time and battery icon from the two numbers.
We have multiple devices for testing purposes and will work with the chosen programmer to accomplish this task. We will require that testing and verification of each item above works as intended. Therefore, simple test scripts may be needed for each item above.
Applicant must have good written and verbal communication skills in English.
9 freelancers are bidding on average $145 for this job
Hi, I am embedded systems developer with 10+years of experience. I have done several similar projects before. I assure you good quality work. Hope to discuss more.
Hello, I read your elaborate description and I think that I'm able to develop such of project. I have passion for develop different things with IoT boards, like Arduino, ESP8266 or ESP32.
There is a wide experience of development on the basis of any microcontrollers. I will quickly and efficiently finalize your software, and the scheme, if necessary.