Welcome to installment number thirty-four of the Design Challenge Project Summary series here at Element14. For those of you who are new to my content, in this series I chose a single Design Challenge project from current or past challenges, and write a short summary of the project to date. I am selective about which projects I summarize, as I want to highlight quality content. Unfortunately, projects that stall out, or get abandoned, are not chosen for summaries. Some project creators like to keep their own project summary going, and this series is not meant to overshadow those post, but to highlight each project from an outsider's perspective.
The subject of this installment is project Smart Drive by Sergey Vlasov (vlasov01) which was part of the IoT On Wheels Design Challenge. The project began on September 19, 2017 with Sergey detailing what his project will become over the next ten week. Thinking on a broad scale, project Smart Drive will focus on crowd-sourcing data about road conditions to better alert the operators of all vehicle types about the the obstacles they may face during their commute. “I'd like to build a collaborative system, that will connect different participants on the wheels. They will be able to share data collected during their travels, Especially valuable will be data related to events like emergency breaking, collisions, crashes, this data will be linked to the position, speed and other information collected from the sensors,” he wrote.
Anyone who reads my weekly summaries knows how much I like to see project updates that are educational and full of information, and if Sergey’s second update was any indication, this project would be full of them. This post focused on getting the ST Nucleo board connected to the internet and relaying data to the IBM Watson IoT Cloud Platform via MQTT. “My project requires a secure connection with Internet to exchange information. I've selected MQTT protocol as it is open, lightweight (low power consumption), supports data confidentiality (TLS) and widely adopted (including client for STM32),” he explained.
In the project’s third update, Sergey began working with some of the sensor demos that are included in the mbed cloud environment including fall detection, environmental weather metrics, and data from the motion sensors found on the X-CUBE-MEMS1 board. He also began work on offline data logging, but unfortunately ran into a fairly large obstacle when he realized that the mbed OS 5 does not provide an easy path to accessing the processor’s persistent memory. “I was not able to find examples of standalone data logging for STM32 family on mbed. It seems mbed OS 5 doesn't provide the same easy way to access persistent memory as I've got used to on popular x86 or ARM based Linux boards,” he noted.
Update number four arrived just before Halloween with Sergey detailing how he plans to use the STM32CubeMx to configure the WiFi board and generate code template for the serial communication. “Now it is time to connect my GPS module. But the module that I have only works over UART port. I'm planning to use WiFi and sensor boards and I hope it will help me resolve potential conflicts with pin configuration conflicts as reported earlier by Douglas Wong (dougw) in The Konker Connection - Blog 3,” he explained.
With the STM32CubeMX up and running, Sergey was able to begin working on the GPS portion of this project. Using a VK2828U7G5LF GPS module, and some provided software, called U-Blox U-Center, he was able to test and configure the GPS module for integration into the hardware stack. Update six saw work on the GPS system continuing with Sergey connecting the GPS module to the board and then running test to ensure that things were working properly.
In update number seven Sergey decided to tackle the issue of the STM32CubeMX / Nucleo expansion board roadblock that he encountered in the previous post by returning to using the Mbed Cloud Platform. “I've decided to get back to MBed platform as it provides a reach set of high level libraries. I've used IBM Watson IoT project as my base. I've removed NFC references. Then I've imported IKS01A2 library, replaced all references to Nucleo IKS01A1 with IKS01A2 as they are different boards,” he explained. “I've published this project on MBed https://os.mbed.com/users/vlasov01/code/Watson-IoT-MQTT-WiFi-MEMS/ so you can play with it as well. I'm quite happy with the progress I've achieved with MBed this time and looking forward to start reading GPS receiver data from my MBed based code with data from environment sensors and publish them over WiFI to MQTT broker.“
With the return to the Mbed Cloud Platform, Sergey now needed to re-tackle the GPS portion of the project, and in update number eight he did just that. “In one of my previous blog posts I've described how to connect GPS receiver to the Nucleo board using STM32CubeMX tool and STM32Cube libraries.But I've realized that STM32CubeMX is not aware of Nucleo Expansion Boards,” he wrote. “As result, I switched back to MBed platform. I was not sure if USART3 TX and RX still going to work with my Nucleo board connected to two expansion boards at the same time. I've ported again UBX GPS MultipleMessages code this time to MBed and configured Nucleo STM32L476RG Nucleo Morfio pins PC_10 and PC_11 as USART3 TX and RX ports. At this point all major components are in place, connected and functioning as expected. So I'm very happy about it. But there are still a lot of work left in the few remaining days before the end of the contest on November 13th,”
In update number nine, Sergey tossed out the breadboard and finally connected the hardware stack together in its final configuration, and placed the entire assembly into a weather resistant plastic container in preparation to take it out into the world. Update ten focused on adding speed and heading to the project’s data feed, which was achieved by re-configuring the GPS module’s configuration file. This update also marked the end of the project with Sergey taking home the third place trophy and a Traxxas Slash Radio Controlled Car Pro 2WD Short-Course Truck, QuietComfort 35 wireless headphones, and a Tenma Programmable Bench Power Supply.
That is going to wrap up my coverage of project Smart Drive. This project inspired me to order a GPS module to begin playing around with in some small vehicle projects over the winter, and maybe something more interesting in the spring. I want to congratulate Sergey for his third place win, and to thank him for participating in the IoT On Wheels Challenge. That is going to wrap things up for me, so tune in later this week for another Design Challenge Project Summary here at Element14. Until then, Hack The World, and Make Awesome!