iData Truck: an Internet of Things lorry

Andy Proctor drives a container delivery truck. He’s embedded a Raspberry Pi in the dashboard and turned the truck into an IoT device – saving time on updating his office on his movements, and learning Python and some electronics at the same time.truckproject

Andy says on his blog:

When we have the container loaded at the customer’s address we have to phone in and when it’s been unloaded do the same.  We also let the office know when we have our shipping container lowered on the trailer or lifted off at the port.  This normally means going through the switchboard to an operator and passing him simple information 4-5 times a day (with 50 trucks).  They then update the software and then book the container with the next location, so I’ve automated it and learned how to use Python Programming.

Andy explains how everything works in this video.

We asked him on Twitter whether code and schematics are available: he said not yet, but he is planning on building a new website soon to host them.

Andy, if you’re ever in Cambridge with your truck, please let us know. We’d love to have a closer look! In the meantime, we’re going to be watching Andy’s truck’s progress via its Twitter feed, which publicly tweets every event that it logs.


George Witherspoon avatar

He doesn’t mention what the Pi is connected to; presumably some sort of phone.

Darrell Mullen avatar

I am sure he connected to his mobile hotspot. I think that would be the easiest way, especially for common folks. There are, of course, many ways to do it…

Darrell Mullen avatar

Yea, that sure looks like a wifi transceiver in one of the USB ports.

GottZ avatar

or presumably a bluetooth stick to communicate wirelessly to a can bus transmitter

Gosub90 avatar

I think he mentions it quite quickly. From what I gather there’s a wifi dongle which connects to a wifi hotspot on his phone

vypuc avatar

yes just here 3.25

brigo avatar

This is great, thanks for sharing it with us Andy!

Dave W avatar

A good idea, that! Worth keeping an eye on history, though… The London Ambulance Service tried a similar system in 1992 for their Computer Aided Dispatch, with disastrous results.

Having four identical buttons with no “undo” feature is asking for trouble, in my opinion, and was one of the design decisions that sank the Ambulance Service system.

It might be worth considering a slight redesign to allow for human error/finger trouble. Maybe a pre-select and confirm?

Peter avatar

I’d agree – if this were to be rolled out accross the fleet, definitely. Maybe a dot matrix display?

Matt avatar

Or use the military-style “fire” buttons – you have to flip a security cap in order to press the button :-)

simon avatar

Good idea in principle, but needs cleaning.

a) LCD display to show what it’s doing. Having physical buttons is good, cos they give better tactile feedback than a featureless touch-screen and can be used with gloves. The buttons can be multi-function, like with older mobile phones.

So it offers the message to send, you press that button, then it offers “Send?”, “go back” before actually sending. This would be even more essential if you were barcoding from your job tickets.

b) the wiring here is a bit of a mess. Put all the wiring on a bit of veroboard and run to a head. Then use an unadulterated ribbon cable to do the joins. Makes assembly/testing/repair much easier.

Gareth avatar

I think this is brilliant – a Pi used for education, and practical benefits as well. And (no offence Andy) not your typical Geek :-)

Bill Stewart avatar

From what Andy has described, he only needs 1 button and a perhaps a reset.

Andy starts with an empty wagon and signals 4 things in order to arrive back at an empty wagon.

The python need only remember where in the process Andy and his container are.

The buttons could be red and green.
The indicators for the process could be LEDs
“press red to reset” I am empty for sure!
“press green to advance” container on board…
“hold red and tap green” to reset to a particular part of the process – if red hit by mistake.
Or simply make RED hard to hit (recessed)

here to invoke thought!

HansH avatar

very nice job… really practical..

I would put all the resistors on a prototypeboard and connect the pushbuttons and leds to that with a separate small connector.
Probably you then can put everything in one panel.

guppster01 avatar

Wonderful example. I’m curious to see what he does with bar code scanning.

We use ServiceMax/Salesforce as a Field Service application for our Technicians. It has with it an iPad app the techs use to clock in and out of Work Orders, apply parts to a job, create Service reports, etc.

The app has its ups and downs. This has inspired me to think about how I could use a Raspberry Pi to have the techs clock in and out, and possible send Rest call to Salesforce to input data (basically bypass the iPad app).

Thanks for the inspiration!

jaypl avatar

If you’re willing to learn some nodejs, a lot of the heavy lifting has already been done through the nforce package:

You’ll need to register an app in Salesforce and get some keys/tokens to connect up. Here are some screenshots of where to make the setup and find keys (you don’t need the Hue lightbulb specific NPM/salesforce package):

You can start out in your own free developer org if you want:

The nforce library will take care of the authentication and you can listen to record changes using the streaming API or issue an upsert to create a record:


Kuruvilla Mathew avatar

This is really impressive. If your primary job is in trucking but you moonlight as a Internet of Things maker. Wow! Tip my hat to you.

Danny S avatar

If your connected to your phone via wifi for your data xfer purposes could you not SSH to the PI to do any programming modifications? I have android phone and use JuiceSSH to get in and sudo nano my python files for editing. Works great!

Nicolas Raoul avatar

Very cool!
I am sure most trucks will soon use such open source-based systems, cheaper and more extensible than existing proprietary blackboxes.

As an improvement over email, I would suggest using CmisSync, my open source tool that syncs directly to your company’s document server (Alfresco/SharePoint/etc).
It runs on Raspberry Pi:
Another advantage of CmisSync is that your data will be sent as soon as network is available, so you don’t have to worry about having no cell coverage right now.

Looking forward to the barcode scanning extension!

Andy Proctor avatar

Hi and thanks for your support, comments and improvements. I am just configuring a new Pi to do the next project. I have already printed the bar code labels for this. I also had the BBC with me for the day Monday and it will be edited before Christmas and I shall publish a link then. Thanks again, I have made a website at @proctorandy

Liz Upton avatar

Brilliant – and congratulations on the BBC thing! Thanks ever so much, Andy; please let us know when you’re done with your next project.

awesome.coder() avatar

What is a lorry? (Sorry, I am a kid from the US.)

Horia avatar

A lorry is a large, heavy motor vehicle for transporting goods or troops; a truck :).

Donald Miller avatar

Andy, Really liked what you did. You might want to use VNC Server so that you can use a VNC client on your laptop to connect to your Pi. That way you won’t need to hook and unhook the keyboard/monitor all the time.

Christopher Surplice avatar

Brilliant Andy – well done.

I program things for a living, PLC’s and other embedded devices and used to work in telematics/M2M. Nice to see someone using their idea to help out in a practical situation.

Keep going i am sure you will soon be selling your system to others that see the benefits.


Comments are closed