Inspiration

As we had differing skillsets, we wanted to combine what we knew into a single project. From hardware, to the backend, to our website, all of our members had skills they could use to work with and others they wanted to learn. Through our past experiences, we designed a system that could help us build and learn at the same time!

Taking a look through the tech EngHack had available and the tech we had ourselves, we knew we could hack together a project that showed all of our experiences.

We thought of the Real-Time System Monitor (RTSM) as something that could be applied to practical workspace settings such as in manufacturing plants to capture data for businesses.

What Is It

The Real-Time System Monitor visualizes real-time data onto a web page and notifies operators of the system status via Slack messaging. We display a number of sensors showcasing the flexibility of our setup.

The RTSM also enables two-way communication to control device inputs through our web UI. For example, an operator could enter a desired value on the web UI to control our motor's RPM.

How We Built It

Hardware: Designed a breadboard circuit that establishes connections between the raspberry-pi and our experimental sensors. The components we used included an ultrasonic sensor, a temperature/humidity sensor, a DC motor, and a motor controller. We would collect experimental data from our sensors to be transmitted to our Firebase database for presentation on the client-side.

Software: To connect directly with our sensors on the Raspberry Pi, we used Python and its IDLE to code outputs for relevant ports.

Firebase was used as our database to store and call our data from. Using StdLib's build workflow tool, we set up a SlackBot that sends a system update every minute and connected it to our Firebase storage. It reports on whether the system is online.

Our website shows the visualized data in real-time for up-to-date values on how the system and sensors are doing. We used React to code the front-end, and Recharts to graph our data.

Challenges and Issues

Hardware: One of the biggest challenges was figuring out appropriate pin mappings to determine the correct pin connections for each type of component/sensor. While working we were confused due to the sensors not working, or giving large errors in the data.

We also had troubles getting our motor to run; our Python code would throw fatal SegFaults that we struggled to get to the bottom of, and thus had problems getting our motor to run.

Software: We had some troubles with Firebase's Cloud Firestore and understanding how it would capture and store our data, as well as how we would access it from our React webpage and SlackBot StdLib implementation.

We also had trouble with the SlackBot itself and authorizing the HTTP requests.

One of the challenges we faced was setting up sensors and motors to connect and communicate with the database and the website. This required integration of Firebase, Javascript-React, Slack, Std.lib and hardware to effective monitor and adjust the performance of any given device.

What We Learned

  • React
  • Embedded systems with Python
  • Interconnection between hardware (raspberry-pi) and software (firebase, std.lib)
  • Pin mapping/connection for various sensors
Share this project:

Updates