This project is created in context of the lecture “Internet of Things Ecosystems” at the University of Applied Science Esslingen. It covers the invention of an own IoT Idea and Application from the scratch solving a real-world problem. In the design sprints the students learn about design, implementation (full-stack) and business aspects of Internet of Things applications.
This project was created in the 2022 winter semester.
ContactsIdea and application: Aaron Müller and Maxim Becht. (noticemeiot@gmail.com)
Lecture and IoTPF: dionysios.satikidis@gmail.com.
University of applied Sciences Esslingen 2023.
MotivationToday, the online status is a ever-present tool necessary for efficient communication on the web. It shows friends and colleagues that you are available on your computer, and makes connecting easier.
But it is not perfect:
- Is the used application closed, the user is not shown as online, even though he may be available
- Users that have not closed the application are shown as online, even though they may be unavailable
These situations can be frustrating and annoying, and reduce efficiency.
IdeaTo remove the disparencies between the shown online status and the actual availability, the NoticeMe System was created.
The system consists of three components:
- The Embedded device recognizes sound waves of keystrokes and mouse clicks, and determines the true availability status.
- This information is then shared with the Particle cloud and distributed to all subscribed applications.
- Those applications display the results in user friendly ways, and enable a variety of use-cases: availability status, current typing speed, leaderboards, rage detection,...
EmbeddedDevice
The NoticeMe Device records the surrounding with the microphone in 1 second windows. The activity status is determined by detecting keystrokes/mouse clicks in the recordings.
To protect the privacy of the users, the recordings are only analyzed on the device and discarded afterwards. Our algorithm detects individual keystrokes and accumulates them to calculate the current typing speed. The used formula is:
words per minute = (keystrokes in window) * (60 seconds/minute) / (5 keystrokes/word)
The results are then sent over WLAN to the Particle Cloud.
Because the positioning of the device and the keyboard, as well as environment greatly influences the recorded audio, the device comes with a calibration function, that is activated by pressing the switch. In this state, the audio levels are measured first of only the surroundings (noise) and later of the user typing.
Backend (Particle cloud)
The Backend sorts all incoming data by sender device, and stores these messages for a defined time. The data is accessible via the Particle cloud REST API. It is also used for authenticating the apps, by issuing certificates for the NoticeMe apps. These certificates are needed to access the data from the cloud.
Application
The NoticeMe application uses polling (with HTTP requests) to always get the newest status of connected devices. The data is then presented to the user, and used for other features like statistics or leaderboards. If no new data for a device is present, the application uses the passed time between the last message to display the time the user was last active. The app also comes with many customization options, e.g. user names, profile pictures or status messages.
The App was created using the Uno platform, and runs on Windows, Android, iOS, macOS.
Comparison with conventional online statusNoticeMe offers benefits compared with the conventional online status in almost all situations:
The NoticeMe Device has notable improvements in 2 situations, else the functionaility is at least equal to that of the online status:
- If the device is set up properly, it will detect activity the moment the user turns on the PC. This is done by connection the device's power supply to the PC, so that the device gets the needed power the moment the PC activates the USB ports. This situation is especially useful, if the user forgets to start the social platform (with the online status), e.g. after a system restart.
- The moment a user stops actively using the keyboard/mouse, the status in the NoticeMe app changes to "away", and displays the last time the user was active. The information that the user is away is therefore notably faster, by comparison the online status only changes after a set time.
Our brand design is simple and modern, with a black, white and bright green colorway. Because our Devices are always present on the user's desk, we do not want the branding to distract the user, and instead aim for a simple design language, that should convey a premium feeling. For this look we also chose the Univers typeface, which features bold, yet simple characters.
Our logo is inspired by the functionality, that the NoticeMe system aims to provide: To discover activity of users. It features simple lines in a circle-like shape, that scales well from a small app icon to a large screen. The design combines the pictogram of a radar and the standby symbol (IEC 60417-5009), which is commonly conceived as the on/off symbol.
It is also important that our Brand does not rely on colors too much, instead it should be possible to produce our branding in boolean formats (e.g. for engravings or silkscreen printing on PCBs).
Usage instructionsTo set up the NoticeMe system, you first need to create a particle.io account. Every device and app used in the network needs to be registered to this account. Create an account here: https://www.particle.io/.
Next set up the Particel Photon. Please refer to the official quickstart guide: https://docs.particle.io/quickstart/photon/. When done, open the Particle Web IDE, and flash the NoticeMe device software. You can then connect the rest of the components as seen in the schematic below.
Download the NoticeMe application on the device of your choice, and authenticate it by creating the required certificates. Now find out ID of your device, and add it to the app. You should see all connected devices in the home tab of the app.
To complete the setup, you should plug in the device (optimally into your PC), and position the device on your desk. Calibrate the device by pressing the button: For five seconds the device records the surrounding noise, afterwards type for five seconds until the LED on the photon starts blinking. To achieve the optimal performace, try different positions and orientations of the microphone.
Comments
Please log in or sign up to comment.