If it has a power switch, it can report in
I build the hardware as well as the software: homemade 3D printers, Raspberry Pi robots programmed in Python, and GPS trackers on expensive machinery that report power-on, run hours and exactly where each machine is, over a cellular shield. Wired into AWS, the same pattern can track, measure and watch almost anything, and AI can read it back to you in plain English.
A machine reporting in
A simulated excavator running in your browser, sending the same kind of messages a Raspberry Pi tracker sends: power, hours and a GPS position in every message. Turn the key, drive it off site or load it on a trailer with the engine off, and watch the map, the messages and the rules that react to them. Nothing here is a real machine.
EX-07 simulated
Mini excavator on a rental, Pi tracker with an LTE-M and GPS shield
- Power
- off
- Run hours
- 1,284.0
- Where
- on site
- Coolant
- 14 °C
- Battery
- 12.6 V
- Signal
- LTE-M, good
MQTT messages to AWS IoT Core, and the rules that fire
GPS on every machine, recorded in AWS
Location is the reading that matters most. A cellular shield with a GPS receiver tells you where a machine is from anywhere it has signal, and every fix is kept, so you know where it has been too. GPS tracking, Amazon Location Service.
Where it is now
Each message carries latitude, longitude, speed and the quality of the fix. The latest position of every machine is kept in DynamoDB, so the map on the dashboard is one lookup.
Where it has been
Every fix is written to S3, so any machine’s trail can be replayed for a day, a rental or a dispute: when it left the yard, when it reached the site, and when it came back.
Geofences
Each rental gets a boundary around its job site. Amazon Location Service can check positions against geofences and raise an event the moment a machine leaves, which a rule turns into an alert.
Theft and after-hours movement
A machine moving with the key off, or after hours, is the pattern of a trailer theft. The tracker reports more often while it moves, and the alert carries a live map link.
Smart reporting
The tracker reports every few seconds while moving, every few minutes while working and rarely while parked, which keeps the cellular data plan small without losing the trail.
Distance and time on site
From the recorded trail: kilometres travelled, hours inside each geofence and time between sites, ready for billing, delivery charges or a fuel check.
What I build with my hands
Software that bills for machines should know what the machines are doing. When it needs something only the physical world knows, I build the thing that goes and gets it.
Homemade 3D printers
I build the printers, not just run them: frame, motion, electronics and firmware. A printer you built yourself is one you can fix, and it turns a discontinued bracket or a sensor enclosure into an afternoon job.
- FDM, built from parts
- Enclosures and mounts for my own sensors
- Parts nobody stocks anymore
Raspberry Pi robots in Python
Experiments where code meets motors: a Raspberry Pi reading sensors and driving outputs through its GPIO pins, programmed in Python. The same skills put a Pi on a machine and make it report.
- Python on the GPIO pins
- Motors, switches and sensors
- Prototype on the bench, then the field
Trackers on expensive machinery
Rented machines are out in the world, not in a database. A Pi and a handful of cheap sensors on the machine report when it powers on, how long it runs and where it is, straight into the system that bills for it.
- Power-on and run hours
- Location and status
- Cellular, so no Wi-Fi needed
From a sensor to AWS, step by step
The path a reading takes from a machine in a yard to an alert on your phone and an answer from AI. Every step is a managed AWS service billed by use, not by the hour, with no server of my own to keep running.
Sense
A Raspberry Pi reads what the machine is doing: a current or voltage sensor for power-on, a vibration sensor for running, GPS for where it is, a temperature or fuel sender if it matters. Python on the Pi turns readings into small messages.
Connect
A cellular shield (LTE-M or NB-IoT) with a GPS receiver adds the position and gets those messages out from a yard, a job site or a ditch, with no Wi-Fi. Each device has its own certificate, so it proves who it is on every connection.
Ingest
Messages travel over MQTT, encrypted with TLS, to AWS IoT Core. Its rules engine reads each message as it arrives and decides where it goes.
Store
The latest state and GPS position of each machine land in DynamoDB for instant lookups; every reading and every fix is kept in S3 for trails, reports and audits.
Act
Lambda functions and Amazon Location Service geofences apply the rules that matter to the business: ran past its rental hours, left the site, moved with the key off, idled all day, ran hot. Alerts go to a phone; commands can go back down to the device.
See
A dashboard in the software you already use shows every machine, live, with hours, location and history, the same way Rental Pilot shows a yard.
Ask
Claude on Amazon Bedrock reads the same data and answers questions in plain English, with the readings it used.
Track, measure and watch almost anything
The pattern does not care what is on the other end of the wire. A few of the things it can watch, what does the measuring, and what you get out of it.
Machine power-on and hours
Measured by current clamp or ignition sense
You get bill for real run time, service on schedule
Where a unit is, and where it has been
Measured by GPS on the cellular shield
You get a live map, a replayable trail and geofence alerts
Trailer theft
Measured by GPS movement with the key off
You get an alert while it is still on the road
Idle versus working
Measured by vibration or engine load
You get catch machines paid for and not used
Generator and heater fuel
Measured by tank level sender
You get refuel before it runs dry, bill fuel exactly
Site trailer and shop temperature
Measured by temperature sensor
You get frozen pipes and hot server rooms caught early
Freezers and coolers
Measured by temperature probe
You get a phone alert before the stock spoils
Gates, doors and lids
Measured by reed switch
You get who opened what, and when
Battery health
Measured by voltage sense
You get swap the battery before the machine will not start
Water and leaks
Measured by float or moisture sensor
You get a pump or a leak flagged in minutes
Air on a job site
Measured by dust and gas sensors
You get readings logged for safety records
Cycles and counts
Measured by switch or optical counter
You get compressor starts, presses, parts made
Gauges that have no data port
Measured by Pi camera plus AI
You get an old dial read and logged like a modern sensor
Where AI comes in
Sensor data is a firehose of numbers. AI turns it into answers. Claude runs on Amazon Bedrock inside the same AWS account as the data, the same way this site's own assistant does.
Ask the fleet in plain English
"Which machines ran more than ten hours yesterday?" "What has the excavator on the Langley job done this week?" The answer comes back with the readings behind it.
Spot the odd one out
A machine that suddenly runs hotter, idles longer or vibrates differently from its twins is flagged for a look before it fails.
Read what has no data port
A Pi camera photographs an old analog gauge or hour meter, and a vision model reads the number off it, so legacy equipment joins the dashboard.
Write the summary
A weekly note for the owner: what ran, what sat, what needs service, and what earned its keep, written from the data rather than from memory.
Questions
What does it cost to run?
The AWS side is small: AWS IoT Core charges per message and per connected minute, so a device reporting every few minutes costs very little in the cloud. The real per-device costs are the hardware and the cellular data plan, and I will price those for your fleet before anything is bought.
Do the devices need Wi-Fi?
No. A cellular shield on the Raspberry Pi uses LTE-M or NB-IoT, low-power networks built for small, infrequent messages, so devices report from yards, job sites and trucks.
Is the data secure?
Each device gets its own X.509 certificate and talks to AWS IoT Core over TLS; a device can only publish to its own topics. A lost or stolen device is cut off by revoking its certificate, without touching the rest.
What happens when there is no signal?
The device keeps its readings and sends them when it reconnects, so a machine in a dead zone still has a full history once it comes back into range.
Can it plug into the software we already have?
Yes. The rules that read each message can write to your existing database or call your API. On Rental Pilot, the yard trackers report straight into the system that bills, so the invoice matches what is actually in the field.
Is this running in production today?
The Raspberry Pi trackers on rented equipment report into Rental Pilot today. The AWS IoT Core pattern on this page is how I wire new builds; the simulated machine above shows the shape of the messages, not a real one.
What do you want to know about your equipment?
Tell me what you own, where it lives and what you wish you knew about it. Email me, or see the Raspberry Pi, AWS IoT Core and MQTT pages.