contact@makermate.com +94 77 9485724

About Maker Mate Project

Maker Space is the new buiding of the Department of Computer Engineeering of University Peradeniya. To make the Maker Space more convenient for it's user the department had below given requirements. Our goal is to satisfy them.Therfore, our product is a client based, customized product.

Need analysis

Inventory Management
A System to manage the Maker Space inventory online is required. The tools and equipments in the labotary need to be managed and monitored in a convenient and efficient way.
Apply online
An online platform is required where, the students have the ability to apply for the inventory that they need for their project work. Also they should be able to submit their designs and get the approval from the department.
A navigator
The navigator is to guide the users in the maker space. This must help them to save their time and work efficiently. And also it should show the route to their pickup locker for specific users.
Online reservation
The users must be able to reserve a place in maker space for project and experiment work in order to use the resources in the maker space. This should prevent the clashes and should inform the users about their time allocations.

Product architecture

A simple animation to describe our product control flow

Conceptual Schema

Project Components

Raspberry Pi 4B
Raspberry Pi 4B
15" touch screen
15" touch screen
Solenoid Lock
Solenoid Lock
ESP 01S WiFi Relay
ESP 01S WiFi Relay
Ultrasonic sensor
Ultrasonic sensor
Metallic keypad
ESP8266 ESP-01S WiFi Module

Hardware Interfacing

How our hardware components interconnected and data transmitted

Frontend Implementations

User Interface implementations and functions available for maker space users.


Students' UI

Home Page

Display account details


Functions available for Students

  • Get details on components and equipments available in the laboratory
  • View their user details
  • Change the necessary account details like password, email, etc.
  • Checkout items that can borrow from laboratory
  • Create a cart including items that you wish to borrow with required quantities
  • Place a order with the selected items

Administrators' UI

Functions available for Administrators

  • View their user details
  • Change the necessary account details like password, email, etc.
  • Manage inventory
  • Add new components and equipments to the system
  • Check the orders applied by students
  • Accepting orders and allowing students to pick them up

Backend Implementations

API calls are implemented to accessed by external origins like mobile app and information console
Click here to view documentation

Communication Architecture

The below given diagram depicts the communication architecture behind the different nodes in our application. The HTTPs and MQTT was mainly used for that.


Communication architecture between different nodes


What is MQTT?
MQTT (MQ Telemetry Transport) is a lightweight open messaging protocol that provides resource-constrained network clients with a simple way to distribute telemetry information in low-bandwidth environments. The protocol, which employs a publish/subscribe communication pattern, is used for machine-to-machine (M2M) communication.


What is QoS?
Quality of Service (QoS) in MQTT messaging is an agreement between sender and receiver on the guarantee of delivering a message. There are three levels of QoS :

  • 0 - at most once
  • 1 - at least once
  • 2- exactly once


When a client (e.g. a remote IoT device) is publishing to a broker, the client determines the QoS level for that message. When the broker sends the message to a subscribing client, the QoS set by the first client for that message is used again.So effectively the original publisher of any message determines the QoS of the message all the way to the final recipients.


QoS is a key feature of the MQTT protocol. QoS gives the client the power to choose a level of service that matches its network reliability and application logic. Because MQTT manages the re-transmission of messages and guarantees delivery (even when the underlying transport is not reliable), QoS makes communication in unreliable networks a lot easier.


For our application we need to receive all messages exactly once and the duplicate delivery can harm the functioning of application. Therefore, we used QoS = 2, as it is the highest level of service in MQTT and it ensure the property that messages are received only once by the intended recipients. Eventhough it is the safest, QoS 2 interaction takes more time to complete. The guarantee is provided by at least two request/response flows (a four-part handshake) between the sender and the receiver. The sender and receiver use the packet identifier of the original PUBLISH message to coordinate delivery of the message.


Therefore, with the integration of HTTPS and MQTT the functioning of Information Console was implemented.

Circuit Designs

The product include two main microconrollers: Raspberry Pi and an ESP 01 Wifi Module. The Raspberry Pi is connected to a touch screen. The ESP 01 module is used to control the solenoid lock and its cicuit diagram is shown below.


3d Designs

Software Tools used to sketch and design the below given 3d designs

  • Audodesk Fusion 360
  • SolidWorks


Locker Cabinet


Snow

Cross sectional views


Forest

Front View


Casing for ESP 01 s mounted on locker door

Front View
Front View


Design for Raspberry Pi cables


Front View

Testing

Software Testing

The software testing of our product required, basically two steps,

  • Authentication Testing
  • Functionality Testing
  • In testing the functioning of our product, we need to test both the Information console and Inventory Management system. This will ensure the proper functioning of them and it helps us to fix the errors.

Tools and Softwares used in testing

  • This is an application used for API testing. In our application we used it in testing the API calls that required for functioning of Mobile app and Information Console. It was easy to tests HTTP requests, as it is with a graphical user interface, through which we obtain different types of responses that need to be subsequently validated. It also offers many endpoint interaction methods(GET, POST, PUT, DELETE) and it has the possibility to create different testing environments that made our work easy. Futher, it helps us optimize our time when executing tests.


  • Laravel Unit-Testing

    In Laravel, there are two ways to test your application. One is with Unit testing while other is with Feature testing. Unit testing allows us to test classes models, controllers etc, while Feature testing enables to test the code base. This testing ensures that each and every component of the application passes from the standard testing process and application doesn’t go broken for deployment. Also this is really fast and easy to handle.


Budget

We have estimated a budget according to the Sri Lankan market and with dollar to lkr conversion

# Component Unit Price (LKR) Quantity Amount (LKR)
1 Raspberry Pi 4B 2GB/4GB 9,250.00 - 14,650.00 1 9,250.00 - 14,650.00
2 7"-15" Capacitive Touch Screen 11,700.00 - 60,000.00 1 11,700.00 - 60,000.00
3 Ultrasonic Sensor 250.00 1 250.00
4 ESP-01S WiFi Relay Module 365.00 1 365.00
5 Solenoid Lock 12V 890.00 1 890.00
6 ASP8266 ESP-01s WiFi Module 380.00 1 380.00
7 Raspberry PI 4 Power Supply AC 100-240V DC 5V 3A 675.00 1 675.00
8 Power Supply Adapter 3 PIN AC/DC 12V 2A 420.00 1 420.00
9 Others * - - 5000.00 *
# Total - - 28,930.00 - 82,630.00
* This includes the circuitry requirements like wires, serial cables, LEDs and mostly depends on our purchase of other items.
Cost for the key pad has been removed as we use randomized keyboard inputs onscreen.