Inspiration
It is difficult to know if there is an empty seat in the library.
It is hard to know the exact location of the empty seat.
When you plan to leave for a while, your belongings would be unsafe in the library.
The camera is illegal to use in the library according to the law.
To solve these problems, our group is aimed to provide a simple, cheap and efficient method.
What it does
A load cell with HX711 is used to sense if the seat is occupied.
The ultrasonic sensor is used to trigger red light to alarm stealing.
The WiFi module is used to send data to the server and show the result on the front-end dashboard.
Overall, the situation of the seats of the library will be shown on the screen in real-time.
How we built it
Hardware: First, according to our functions, we design that we have power module, sensor module, MCU module, FTDI module, and memory module. we used the Altium Designer to draw the schematic and layout for those parts. Then we generated the BOM for the schematic. What's more, the PCB needs to be placed. We do the DRC and the rule check for PCB: NG to help it be much more correct.
Software: We use the C programming language and the Atmel studio tool to build this project. The main function of the software part is to update the firmware from the cloud and realize the use of sensors. Moreover, the node-red is used in the case to show the result of this project on the screen dashboard. More details
- Command line function
- Update the firmware and save it in the SD card
- Data transfer from SD card and NVM of the board, also compare CRC32 of two parts
- Weight and ultrasonic sensors use the ADC protocol.
- Connect the board and server by MQTT and design and complete the dashboard on
Mechanical: We build a small model for the library desk and chair to help us simulate the situation and sense the data using laser cutting.
Challenges we ran into
The board which we build is unstable and has some problems at the beginning, such as there is an open circuit on board. Luckily, we fixed them finally.
Another challenge is to update firmware and exchange the data between server and board. The logic that controls when to jump into application code and determine when to update. And also, how to set the flag to connect the bootloader and applications code is also need to be careful, it should be set at the place which is always empty and will not be influenced by the other memory.
The sensors that we use in this case, their protocol is ADC, this is our first time to use this kind of sensor. By checking datasheet, they are built with robust performance.
Accomplishments that we're proud of
MCU board is finished!
Weight sensor can sense people.
The ultrasonic sensor can sense people’s movement.
Transfer data between cloud and board by WiFi.
Show the data on the dashboard in real time.
Build a small model for the demo.
What we learned
Overall, we have learned how to design a product and make it into a project to realize this product in both hardware and software parts.
- We have learned how to draw a PCB board via Altium designer step by step
- Using Atmel studio to build and debug the program, we learned how to design a bootloader
- Learned different kinds of protocols and checksum rule for transmission, we have put theory into practice
- We learned the Node-Red is a new tool to build our own UI connected with MQTT server which is perfect
- How to fix some hardware bugs is very important and meaningful.
What's next for Library seat monitoring system
- Make front-end much fancier and enable more functions
- Connect the front-end Node-Red to Database
- Try to promote this product to the dining hall/restaurant/hospitals
- Develop an app which is much easier to look for instead of browsing the web page
Built With
- altium-designer
- atmel-studio
- c
- nodered
- solidworks


Log in or sign up for Devpost to join the conversation.