Product Scanner! ESE516 TEAM5

Team Number: 5

Team Name: Pruduct Scanner

Team Members: Tianshu Wang & Jin Qian

Github Repository URL: https://github.com/ese5160/a14g-final-submission-t05-product-scanner

Description of test hardware: SAMW25 Microcontroller, SHTC3-TR-10KS Sensor, 1.8" Color TFT LCD with SPI Interface, Tiny Code Reader from Useful Sensors, ADA1201 Vibrating Motor, 3.7V Li-Ion Battery

1. Video Presentation


Video Thumbnail

2. Project Summary


Device Description

Our device serves as a supermarket product scanner, allowing customers to scan QR codes to access item information such as location, name, and stock quantity displayed on an LCD screen. Supermarket staff can monitor the products scanned by customers and their respective locations via the terminal web page. Moreover, employees can also track the temperature and humidity within the supermarket to assess if environmental adjustments are necessary.

Inspiration

The inspiration for this product mainly came from what we saw in supermarkets with large indoor areas (such as Costco and Walmart). When we shop in these supermarkets, we often encounter the situation where we want to buy a small product, but it is difficult to find the product because the supermarket is too large. Therefore, our team wants to design a device that can scan the product's QR code. After scanning the QR code, the specific location of the item you are looking for, as well as the price and remaining quantity information can be displayed. Additionally, this product has a built-in temperature and humidity sensor. This information will be sent back to the computers of supermarket staff, allowing them to monitor the environment in the supermarket and adjust the air conditioning temperature in time to ensure that the products are fresh enough to prevent deterioration. Therefore, the target customers of this product are the operators of these large supermarkets. It can be installed on supermarket shopping carts for customers to use.

Device Functionality

We have designed a device capable of scanning QR codes to retrieve product information while simultaneously monitoring indoor temperature and humidity. The data collected by this device can be transmitted over the network and displayed on the terminal web page using Node-RED. Our device consists of two sensors and two actuators. The sensors include an SHTC3 temperature and humidity sensor and a QR code scanner, while the actuators comprise a vibrating motor and a color LCD screen.

The overall workflow of our product is as follows:

  1. When a customer uses the device to scan a QR code, the QR code scanner identifies the scanned QR code and provides vibration feedback to the customer using the vibrating motor.
  2. The information retrieved from the scan is displayed on the LCD screen, showing the product's location, name, and inventory quantity.
  3. The location information of the scanned items is also uploaded to the Node-RED UI interface, allowing access to this information via devices such as computers or smartphones.
  4. Finally, the SHTC3 sensor installed within our device continuously monitors the temperature and humidity of the supermarket. This information is uploaded to the Node-RED UI interface for display. Additionally, if the temperature exceeds a certain threshold or the humidity reaches a high level, a pop-up warning will appear on the page, alerting staff to adjust the air conditioning settings in that area.

Challenges

In general, we faced four challenges and partly solved them in the right way.

1. LCD Configuration

Our initial challenge stemmed from the SPI configuration for the LCD screen. Upon configuring the LCD, we encountered difficulty as the designated pin ports of the MCU couldn't be configured with SPI. This oversight likely occurred due to not verifying the configuration in Atmel Start during PCB design. Instead, we relied on the SPI line indicated on the MCU in the Altium schematic.

Prototype Learnings

Reflecting on the process of building and testing our prototype, where we created and utilized our own PCB, several critical lessons emerged. First, the utility of test points was evident; they greatly facilitated troubleshooting and functional verification at various stages. When selecting pins, it is essential to ensure they align with the intended use and hardware compatibility, which is the most significant part of implementing PCB in the real project.

Next Steps

In terms of hardware, our next step is to re-modify our own PCBA board and solve the previous wiring and connector problems so that the board will no longer have any physical errors and will be more convenient for subsequent use. At the same time, a module for communicating with the Internet is installed on the PCBA to improve the functionality of this product.

Takeaways from ESE5160

What did you learn in ESE5160 through the lectures, assignments, and this course-long prototyping project?

  1. The first and most important thing is to learn how to design PCBA boards through Altium, and know how to place components and correctly connect circuits.
  2. Learned how to test and debug hardware through oscilloscopes and other instruments, find circuit faults and find ways to solve them.
  3. Learned how to design a UI interface for your own product through node-red. Through node-red, I can try to think from the customer's perspective on how to design the UI interface to be more concise and easy to use.
  4. Learn how to write code correctly to ensure that various components have enough heap space to allow them to run in an orderly and continuous manner.

Project Codebase Links

3. Hardware & Software Requirements


Hardware Requirements

Software Requirements

4. Project Photos & Screenshots


Project Overview

Project Whole View

Description: Image of the complete final project setup, showcasing all external components like 3D prints, screens, and buttons.

Standalone PCBA - Top View

Top View of the Project

Description: Top view of the standalone printed circuit board assembly (PCBA).

Standalone PCBA - Bottom View

Bottom View of the Project

Description: Bottom view of the standalone printed circuit board assembly (PCBA).

Thermal Camera Images

Thermal Image of the Project

Description: Thermal camera image showing the board while running under load. Useful for assessing thermal performance and hot spots.

Altium Board Design - 2D View

Altium 2D Design View

Description: Screenshot of the 2D view of the Altium board design, highlighting the layout and component placement.

Altium Board Design - 3D View

Altium 3D Design View

Description: Screenshot of the 3D view of the Altium board design, providing a realistic visualization of the assembled board.

Node-RED Dashboard

Description: Screenshots of the Node-RED dashboard, displaying the user interface and data visualization components.

Node-RED Backend

Description: Screenshots of the Node-RED backend, illustrating the flow and logic used to process data.

System Block Diagram

System Diagram

Description: Updated block diagram of the system, reflecting changes and integration details from the semester.

5. Project Codebase Links