For more information on ARM’s participation at Bluetooth World 2017 on 28-29 March, please visit ‘ARM at Bluetooth World 2017: A guide’.
So the fun part about working in Technical Marketing in the Wireless Business Unit at ARM is that part of my job is coming up with demos to highlight our Cordio Radio IP products. Recently, I challenged myself to come up with a demo that not only showed ARM’s Cordio Bluetooth low energy technology from my own BU, but would showcase other ARM products including products from our sister IoT Business Unit.
Last year, in August, a colleague of mine was demoing the mbed Cloud solution talking to IBM’s Watson IoT system. I remembered Google’s Scott Jenson talking about a Smart Parking Meter at Bluetooth World 2016 and boom, a kind of flow chart of the entire system popped into my head.
While I ultimately spun the PCB for the second generation of our Smart Parking meter that will be shown at this year’s Bluetooth World 2017, I have to say that 95% of the work to pull this together was done by Doug Anson, Solutions Architect in the IoTBU.
So let’s have some fun and see how this whole system works and learn how Doug quickly built the prototype in a matter of a couple of day. We should also discuss what challenges we came across in trying to make this as “real world” as possible.
First off, I should clarify that we made a single parking space meter that would sit either in front of a parking slot or along a street side parking space. The short answer to how this works is that the parking meter transmits a URL via a Bluetooth low energy beacon that takes you to a payment system in the cloud that comes back down to the parking meter to set the appropriate time.
Surface IoT example
The parking meter uses the Physical Web by transmitting a Bluetooth low energy Eddystone beacon containing the URL of our parking meter payment system.
The beacon is seen on the browser of a smart phone (ARM-based of course) and via the cellular network it connects to an IBM Bluemix web-based mobile payment application which itself is integrated with a Watson IoT Node-RED driven data flow backend (that essentially makes all the decisions on how to control the meter).
This integrates with the IBM Commerce payment system to pay for parking and securely records the payment transaction within the IBM Blockchain service.
The meter’s control commands are passed out of the Watson IoT via an integrated ARM mbed Connector Bridge which provides a secure link to manage and control the parking meter.
The physical parking meter itself is an ARM Cortex-M4 based NXP K64K Arduino platform running mbed OS 5 and ARM’s mbed-client API. It utilizes dTLS-secured CoAP messages from ARM mbed Connector to manage the parking meter device state and its CoAP resources to increase the purchased time on the meter and start its count down timer.
Pretty cool….well maybe, but physically making the parking meter was even more fun.
Doug made the prototype of the parking meter in a hurry as we came up with concept just before a trade show. So how did Doug do this in a matter of just a couple of days? He decided to use mbed OS as it provided seamless connectivity to Cloud and an API-based architecture that allowed provisioning and secure transactions. He went to the mbed.com developers’ forum and selected the NXP K64F Arduino R3 platform as it was one of several that supported mbed OS, was mbed Connector compatible and had Ethernet as a backhaul. He added an Arduino Grove connector shield to be able to add other peripherals and topped it off with an mbed Shield on top of that which contains a LCD display. We of course wanted to use an ARM Cordio Bluetooth low energy radio so we used one of our demo modules and boom; our smart parking meter was born in a matter of a few hours. Our good friends in the Watson IoT group at IBM pulled together all their pieces in the cloud and within a few weeks we had our parking meter on line with an actual real payments system (so we had to use our bosses MasterCard to actually show how the demo worked).
Our functional prototype
But we just couldn’t claim success at that time. We had to evolve our creation to add additional features and solve a few real world problems we came across. The first major issue is how are you going to pick up the correct URL from “your” parking meter while dozen’s if not hundreds or thousands of parking meters are sending out beacons?? One simple solution was that after you paid for time on your meter, it stopped beaconing. We also put the parking meter number in the URL being transmitted so you could select the correct parking meter beacon…put there would still be too many parking meters beaconing away in a real lot, especially if multiple parking spaces were open. We thought about turning down the Transmit power on all the meters to limit their range or even putting directional antennas to allow meters to only transmit their beacon toward their corresponding parking space. These seemed like good ideas but really didn’t put a dent in the problem and also could cause connectivity issues for some other Bluetooth functions we wanted to add to our meter in future revisions. Our final solution was that all parking meters would not beacon until it sensed that a car had pulled into the corresponding parking space. We would turn on the beacon at that time and then turn it off as soon as time was purchased on the meter. Even if time runs out, the beacon does not turn on again until the car pulled away and the meter sensed that the space is empty and a new car had pulled into the parking space. Success!
So we ran to the mbed forum again at mbed.com and looked under development board components and found a simple sonic range finder….and while we were at it, we added a jpeg camera as well.
With our second generation defined, we spun a mother board to produce a much cleaner system that was closer to a real production solution.
The use of our sonic ranger not only helps with too many beacons which essentially eliminates the “wrong meter scenario” but we have learned that a huge loss of revenue by municipalities comes from new vehicles piggy-backing on time still left on the meter. By sensing that the original car has left the parking spot, we can reset the time on the meter for the next car to start at zero…(mean aren’t we).
By adding our jpeg camera, we can now do automatic ticketing upon time expiration. There can also be license plate recognition for repeat offenders, abandoned or stolen cars and potentially automatic payment services. We have also added color LEDs to show the status of the parking meter as transition (car just entering spacing), Paid, expired or available. With these parking space statuses, imagine driving around city blocks looking for an available parking space and opening up your favor mapping app on your smart phone and seeing color coded parking spaces that were available. Now that’s cool. These new features are all demonstrated with our “Gen 2” smart parking meter at Bluetooth World 2017.
So just which Bluetooth low energy enhancement are we using in our smart parking meter? We are using Advertising Length Extensions to be able to transmit longer URLs with specific parking space data. The new 2 Mbps mode helps with the transmission of license plate picture data as well as over-the-air software updates to our meters. Mesh support adds the ability for meters to jump through each other to get to a backhaul for connectivity to the cloud. The new Coded PHY (or Long range) enhancement allows us to wirelessly connect to distant meters. And finally recent IP and security enhancements enables specific addressing of meters and provides secure data transactions to the specific desired parking meter.
Is our fun over yet? Not hardly. We are already working on our next generation which will add mesh support between parking meters so that a backhaul would only have to be provided by a limited amount of meters within a large area. And speaking of backhaul, we will add ARM’s newly announced NarrowBand (NB-IoT) radio to our “routing” meter replacing our initial Ethernet connection. And finally, with ARMs very low power Bluetooth and processor solutions, we plan to add a solar panel to each meter to lower the installation and maintenance cost for our meters in a real world environment. We are still having fun with figuring out what additional enhancements we can add. Let us know in comments if you have any additional ideas. We just might throw them in!