Senior Project: BPRTHS

Hello again, its Alex and AJ from Bristol Plymouth Regional Technical High School. We’ve been working on our project but we’ve run into a couple of issues that’ve halted our progress. We’re still looking for an API that would be compatible with the IOT hardware and setting up the borons with how we want them to run. We don’t know what options to choose when configuring them on the Particle App. Thank you for any help you offer! @Joe

1 Like

Hey, guys, this sounds like you’ve got something ambitious going and that’s awesome. I think the first bit of advice we can give you is how to frame a help question so that you get results.

Right now, you’re pretty familiar with your problem and what you’d like to do. We’re brand new to the problem, though, and all we have to go on is what you tell us. It might help to put yourself in the perspective of being asked for help.

Imagine if we were your grandparents texting because our “phone doesn’t work”, how would you go about helping us? You’d first want to know what we’re trying to do-- call a friend, pair to a bluetooth speaker, log onto TikTok, maybe browse imgur? Then after that, you’d want to know what phone we’re using: iPhone, Android, or perhaps even an old 20th century Nokia? No point in telling me how to access Apple settings if I’m using a 20 year old brick!

You might even run out of patience when the people you’re helping sort of expect you to fix everything for them-- online communities can be the same. Members here are super glad to help, but because we’re busy IRL we have limited bandwidth to dig into anyone’s problem here on particle.io.

So now imagine that each day you only have time to answer one forum post. If today you have two posts to choose from, one which outlined the problem with such detail that you knew exactly what to do, and the other which was going to take a lot of time to even discover if you have anything relevant to say on the topic, which will you choose? I’m betting you’d go for the slam dunk solution!

This isn’t to say that you won’t find help here. A kind and courteous post is absolutely the way to start. But you won’t find the quality of help you want/need/deserve until you have finished articulating your problem.

I’m sure others will chime in, but in the meantime give a quick read to this thread, https://twitter.com/davecheney/status/953573395488063488. It roughly outlines what you want to do with bug reports and gives some good insight into how people approach the problem. Once you feel you’ve got a handle on this, give us an update on your vision and your problem. Specifics help tons here, because if you’re doing something people have done before they can get you on our way without delay. Win!

4 Likes

Thank you, kubark42. They are doing a write-up now to present their situation and problem. They will also link to the visual work they’ve done so far. Stay tuned!

3 Likes

Hello everyone! We are Alex and AJ of Bristol Plymouth Regional Technical High School. We are currently working on a school project to create an application that will allow students to log in and locate there their bus with a live map of their route and where all of their stops are. We have been provided with 3 Boron LTE Kits along with some GPS Featherwings and some Featherwing doublers.

Below is a link to an API that we have been developing.

https://studio.code.org/projects/applab/geEVfn2WlBPi5fwnLDpWcwbYYeRd8sbUoORNccGJWGk

We currently have a makeshift API made in the Applab in Code.org. The way we want the application to work is on the first page the student would log in with their username and password and then input their own unique bus code. Once they are signed in, and they’ve been assigned to their bus, the user will be redirected to a map on the next page. Icons will be displayed to indicate where the users home is, where their school is located, a stop sign to represent the stop closest to the user (their stop), and a bus to indicate where the bus is located along the route.

The way we want the hardware to be setup is to have a boron device on a bus that will be able to transmit a live GPS signal to the app and let the user see it’s location. What we are currently stuck on is not the design of the app but programming the Boron devices. We don’t know where to start when it comes to coding the borons or making them work with an API to display what we want.

Any assistance you can provide to help us link the boron devices to an API would be greatly appreciated! Thank you! @Joe

1 Like

It’s a great idea. In fact, it’s so great, it’s hard to believe you are the first people to do it. That’s okay, you get to put your own spin on the project! But the upshot is that you can probably find some good project blogs that explain the various problems and solutions people have already tried. Good engineers and developers spend their time learning from other people’s mistakes so that they don’t have to repeat them.

(BTW, it really is a great idea, I wish I would have had that when I was waiting for the bus. Would have saved me a lot of frozen fingers!)

IMO, you’ll want to break this project down into its subcomponents (and track your progress [1]). The way I think about your problem, you have:

  1. A data source (a GPS in this case, which goes to…
  2. A data conduit (Boron), which goes to…
  3. A data lake (online database?), which goes to…
  4. A data view (Phone app)

With this in mind, it sounds like you’re saying that #4 is already done. #3 is going to take a bit of thought, but will ultimately be easy with the various webhooks and google maps integration.

So basically, we can boil this down to a question about how to source and ingest the GPS data into the Boron, and then emit it to the cloud, right? It turns out this is easy, and you’ll find a very detailed blog post on this: https://blog.particle.io/2019/05/17/learn-how-to-build-this-cellular-asset-tracker-with-a-particle-boron/. Conceptually it does the same thing you want to do, which is periodically read GPS data and publish it to the cloud.

The way I would approach this problem is to get exactly the hardware in the blog post, and implement it verbatim. Once it works, then you simply modify the parts that you need to be a little different. For instance, if you’d like to send a slightly different data packet to the cloud, you only have to find where the existing code is publishing data and modify the content of the message.

It’s much easier to adapt something that already works than build it all from scratch. Enjoy!


[1] Ideally, use something like trello.com to make a list of tasks which need to be completed. Try to keep individual tasks to actionable items which can be done in 4 hours. If a task will take more than 4 hours, then break it down into two sub-tasks.

3 Likes