Senior Project: BusHop

@Joe
Allow us to introduce ourselves, we are Alex and AJ from Bristol Plymouth Regional Technical High School. We are currently working on a project that allows students to see where their bus is before it gets to their stop. Allowing for students to not have to stand out in the rain or snow and wait for a bus that is late. With our app, students would be able to wake up later and get to the bus stop at the exact time the bus arrives, wasting no time for the student, while being able to utilize the time for other things in the morning.

We were shipped 3 boron devices to help us make a prototype of our app. The only thing is, is that we don’t know where to begin. we would appreciate any help or words of wisdom anyone could give to us!

Thank you for your time!

  • Alex and AJ
1 Like

The first thing you’d need to investigate would be what API (web service) you’d want to use to actually get the information you are looking for.
Once you have a means to pull this data in a machine readable form you’d want to investigate about webhooks and Particle.publish() and Particle.subscribe().

Chances are also that you will find some pointers in similar projects already featured in this forum - just have a search :wink:

@AKelley, by the sounds of it, you are looking to write a phone app, not use IoT, so the Borons would not be useful there. As @ScruffR pointed out, you will need an existing source of data for bus arrivals which is updated in real-time by the provider (ie. doesn’t just show scheduled time). My city (Ottawa, Canada), is supposed to have real time data available on their API but more often then not, the data is inaccurate.

1 Like

That's where the Boron with a GSP GPS module comes in :wink:

1 Like

@Moors7, I assume you mean “GPS” :yum:

The only problem with that is having to use a Boron GPS tracker on EVERY bus, everywhere the phone app is to be used. Not sure that’s the goal here.

If it’s for a PoC, it should be okay, I think. Just thinking out loud. :slight_smile:

1 Like

Given that we don’t entirely know what to do we’re open to suggestions. But the original idea was to have each bus equipped with a Boron GPS tracker, that in itself would allow the data to be more accurate.

1 Like

In my mind, the hardware is the easy part. A Boron + GPS on each bus.
Each update their GPS coordinates while moving in the mornings and afternoon.

Your back-end is where the development time will be spent.
As @ScruffR mentioned, the web service that you select will determine the rest.

If you’d prefer Not to write a Mobile APP, you can present your bus locations on a web page that’s formatted for Mobile Devices.

Maybe a simple dropdown with each Bus Number. Then the selected bus location is shown on a Map that’s generated from your web service’s API.

I use ThingSpeak, but there are many other web services with Mapping Functions that Particle devices can send GPS coordinates to.

However, if you write an app for Android or IOS for the phones, you could also show the Bus Location in reference to the User’s Phone Location at the same time.

Thank you for the amazing idea! We actually didn’t think about that, but thats as I said, an amazing idea. We planned to make the bus and phones locations shown at the same time, by means of a user inputted timer. When the student first downloads the app, they will be prompted to run a timer from when they leave their house to when they arrive at the bus stop. With the collected amount of time that the user gave, we would have it so that you would only have that x amount of seconds to get to the stop before the bus got there, making for the most efficient use of time.

This uses a completely different approach, but I thought you should be aware of it. https://docs.particle.io/tutorials/hardware-projects/maker-kit/#tutorial-2-next-bus-alert

Thank you so much! That will be beyond useful! :grinning:

1 Like

They really just want to put the Boron on one bus at the moment to use as a prototype. After that, we would let Particle partner with the company to figure out the hardware.