Inspiration
In recent years, people have become increasingly concerned about their health. Air quality is a major factor that affects health, but it is difficult to detect in everyday life. Therefore, we are considering converting several factors such as temperature, humidity, and gas resistance, into LED light colors to display them, making it easier for people to visually observe air quality.
What it does
The air condition monitor can show the air quality by different LED colors. The light pink and light purple colors shows the air condition is normal, the darker the color, the worse the air quality. We can get the accurate 4 values including temperature, pressure, humidity and gas resistance from the temperature sensor being updated on the Node-Red. 3 parameters are transferred to 3 RGB values and showing different colors in the seesaw.
How we built it
Hardware
After we came up with this idea, we design the power architecture at first. We use USB, battery and Lipo-Charging to get a 6V voltage, and then the voltage is being sent to a LDO to get a 3v3, which is used to charge the microcontroller and as the input voltage to the Buck and Boost Converter. We also use Buck and Boost Converter to get a 1.8v and 5v to charge BME680 and MAX30101. After the architecture design, we draw the schematics and the PCB layout design.
Firmware
During the board being manufactured, we built CLI to help us debug, I2C bus to enable communication between MCU and sensors, drivers for the sensors, drivers for the Seesaw and finish the functions. We implemented Operating System FreeRTOS to design the whole system, using mutex and semaphore to realize synchronization, which makes sure the system can work well.
Cloud
We utilized MQTT to update the latest values from sensor to the could, using Node-Red to build UI so that we can check the updated values.
Challenges we ran into
Hardware
We had trouble doing the PCB routing. Since this was the first time doing a complete a PCB layout design, we had no idea how to make a perfect routing. Fortunately, professor used an entire class to explain the common mistakes we made, we also got help from TAs and got suggestions from peer review. When we were doing the second version, we organized components on the board according to the power distribution, pay attention to the size of via and track, position of bypass capacitor. The second version was perfect! Also, when we got the board, we did the test using multi-meter and oscilloscope, remove the wrong jumper and tried to make the board works right.
Software
Second, we had trouble in building drivers for the two sensors in designing firmware. When we initialize the dev board, it cannot return the chip_id of the register. We looked at the data sheet carefully and noticed that write and read bit command for different sensors are different. After making the correction, the sensor works really well.
Accomplishments that we're proud of
We successfully design the system architecture and realized the function, the Seesaw can light up the LED with different colors. We have built the drivers for two sensor for 3 weeks, even though it's tough, we finally make it. We designed a perfect PCB layout even though this was the first time doing the PCB layout. This was a big project and we were under a lot of pressure when the sensors were not working. We were glad that we didn't give it up and finally made it!
What we learned
We learned the complete process of designing a product, from coming up with an idea, designing the architecture, drawing the schematics and PCB layout, designing the firmware with operating system and realizing the function. We learned the details of doing a PCB layout, building drivers, updating values into cloud by MQTT and Node-Ned. We learned how to use the oscilloscope and multi-meter to test the board after it's being manufactured and help us debug when doing the firmware.
What's next for Air Condition Monitor
We will try to make heart rate sensor work in the next time and realize more functions. Also, we will try to use the PCB board to run all the programs. I am pretty sure we can do a better job next time!
Log in or sign up for Devpost to join the conversation.