Our frustrations with the lack of transparency regarding where a package "in-transit" actually is.

What it does

PackageHound is a device that improves Canada Post's "in-transit" parcel tracking state to show more accurate status as well as allow better delivery time estimates. Our project is a combination WiFi enabled micro-controller (ESP32) and mobile app. Our IoT device will be attached to the outside of packages like a shipping label, and whenever the package reaches a new destination (E.g: Moved from pre-sort to sort) it will connect to a Wireless router and send an message to our server changing it's transit state. On our mobile app users are able to enter the tracking number of their parcels and find them displayed on a map, along with their improved tracking state information

How we built it

Our physical device is an ESP32 micro-controller programmed to connect to Canada Post WiFi nodes and send the node currently connected node to our server, through MQTT to the Solace Message Broker software.

Our server is written in Python and hosted on the Google Cloud. It uses MQTT and the Solace Message Broker to listen for any changes to package states and update the database, as well as handles any requests by our app for a packages state.

Challenges we ran into

Originally our back-end was designed using a REST API and had to be rewritten to use MQTT and the Solace Message Broker. This initially created a large challenge of rewriting our embedded code and our server code. Luckily the sponsors at Solace were very helpful and when we had difficulties using MQTT they walked us through the process of integrating it within our code.

Accomplishments that we're proud of

We had never used an ESP32 or Solace's Message Broker before, so it was quite challenging to develop for them, let alone combine them into a single project, so we are very proud that we were able successfully develop our project using both of them.

What we learned

We learnt lots about the Publish/Subscribe messaging model, as well as lots about programming with the ESP32 and utilizing it's WiFi functionality.

What's next for PackageHound

We hope to develop PackageHound further with InnovaPost and turn our prototype into a reality!

Built With

Share this project: