A 50+ year manufacturing and supply chain company
They wanted to manage any device anywhere, and we built for them a complete, fully-integrated Internet of Things (IoT) platform solution that allows for rapid deployment of applications across all devices for their current and future manufacturing customers.
Up and Running is part of the team that is building an application that is used for creating fully-integrated Internet of Things (IoT) solutions for a leading private manufacturing company. This is a client that specializes in the creation of electrical and mechanical devices throughout the whole process (from design to sourcing to assembly to supply chain management), and has been in business for over 50 years. The platform allows hardware devices to have remote monitoring, control, and alert messaging, permitting end customers to interact with their products anywhere in the world on any connected device. The platform is flexible, meaning it’s built to support different hardware platforms to accommodate different client needs, which is crucial for the client to be able to serve its many clients in a maintainable and scalable manner on the same platform. Once adopted, this system will support millions of devices.
What follows is a simple case study regarding how this solution could be used. A company that makes window blinds would be a possible customer of our client. Our client would manage as much of the manufacturing and supply chain management aspects for creating the window blind hardware as their customer wanted. Our client could also add the ability for the end consumers to download an application to interact with the window blinds anywhere in the world, perhaps to open and shut them per some defined schedule. Our client would also help their client push updates to the local controller, and interact with the consumers who purchased their products at the level they want to. The platform that was created would not only serve this client with every type of window blind they make, but the same software can be used to drive any such functionality for any device that they create for any customer. Its scale is large, and it will manage millions of devices as it’s adopted by our clients’ customers.
Web user interface and mobile applications exist to interact with and access every level of functionality, such as:
- Configurable device dashboard, which is fully customizable using a robust API
- Flexible data collection and user-level access
- Over-the-air firmware updates for product enhancements
- Engineering and server management team communications
- Monitoring and control
- Alert notifications
- Device configuration
- Standard firmware downloads
- End-to-end security
- User and device authentication
- Encryption
- User-level permissions
- Cloud management
- Simple user interface creation
- Technical Product Support
As one technical example of what we did presented at a greater level of detail, the project made heavy use of Apache Cordova. This is a mobile development platform that allows access to native functions on iOS or Android devices (more information ). We used this to help the client create a solution that they could customize for their end customers.
- The project is a mobile application that basically uses a remote API to set or retrieve content to and from the site’s database. Every operation is managed with this API and the app contains the logic to process and display the information received from the API. It also contains the forms required to send information to the API, which contains all required validation. We could easily use the same HTML templates, CSS styles, and JavaScript logic to build different platform versions (iOS or Android).
- This app is used to control a number of devices stored in the main database (accessed by an API). The user logs into the app and then they can choose a device from a list of available devices. Selecting a device displays all the associated parameters with a form, allowing the user to modify some of those parameters. The modified fields are then sent to the API to be validated and saved into the database.
- The basic elements in the mobile application are: 1) HTML to create the templates. 2) CSS to style the templates. 3) jQuery to provide extra functionality. 4) Additional JavaScript libraries as required by the application.
- All the AJAX requests are made by jQuery usually by sending a form’s content. The request is then processed by the API, and then a JSON response is sent back to the app. The responses use common fields: status (it can be "success" or "error"), message (related to the operation and error details), and data (in case of requesting a list of items, this field will contain the list items encoded). Some JavaScript then processes the response and the content is displayed by the mobile app.
- Once the app structure is ready and the templates created, Apache Cordova is used to generate the specific version. A new directory is generated with all of the required content of a regular native application for each platform. At this point we can generate all the icons and images to use as splash screens for the app. At the final stage, the IPA (iOS) or APK (Android) files are created using specific tools for each platform.
The scale of this project made it a very interesting one, and we look forward to putting the platform to work for our client as it’s adopted by its current and future customers. Ubiquitous computing has been around for some time, but it’s safe to say that it’s going or has gone mainstream thanks to companies like Ring.com and Nest.com (owned by Google). Consumers want to interact with many of their devices remotely, or they simply want to be alerted when they need to do something in an efficient manner. Our platform enables all of this in a scalable manner for any device-focused company who works with our customer.