Deployed on the Edge…managed from the Cloud
The goal of this project is to demonstrate how Cisco customers and partners can use commercially available materials and Cisco’s IoT platform to develop solutions that require deploying an IR thermal camera on an edge device and managing it remotely from the cloud. You can review my entire project at this repo.
In Part 1 of this series, we were able to successfully construct an IR (Infrared) Thermal Body Temperature Scanner using a Raspberry Pi and a MLX90640 IR Thermal Camera. The main goal of this blog is to extend the range of the thermal data collection by hosting our project software in the Cisco IR829 router’s IOx VM and OS, which will contain and manage the thermal camera and collect data from it.
Mobile gateway with an IOx VM
For the next part of this project, you need physical access, at least initially, to a Cisco IR829 router. The Cisco IR829 is a mobile gateway that provides a solution for a large number of possible fleet applications such as vehicle management, asset tracking, robotics and other industrial modalities. The Cisco IR829 is a Fleet Gateway, which is a ruggedized router, integrating WiFi and Cellular radios. These gateways have an IOx VM, which enables IOx on the platform. All IOx applications run within this IOx VM.
Cisco IOx is an application environment that provides hosting capabilities for Fog applications across the Cisco network infrastructure. This environment brings together Cisco IOS and Linux. This combination provides familiar processes and open source tools with Linux and generates applications that execute on Cisco IoT network infrastructure.
Here’s where you start
Our IR Temperature Scanner is currently running locally on the Raspberry Pi (see the previous Cisco Blog Post). In order to get that application running on IOx in the IR829 router, we need to understand a little bit more about IOx, as well as the Docker container that we’ll enclose it in to make it deployable to our router. Although we’re using a Python version of our project to make this deployment easier, it’s not possible to deploy our app directly onto the IR829 Router through its IOx VM. Docker is a must.
To improve your knowledge of and skills in dealing with IOx, Docker and Python, you can take advantage of some fantastic FREE labs over at Cisco DevNet Learning Lab Tracks – IOT, specifically the module titled IOx – Cisco IoT Application Development: Introduction to IoT Edge computing. Create and deploy robust apps to run the Internet of Things. Pay particular attention to completing these labs:
- Introduction to Cisco IOx – Cisco’s IoT application platform
In this lab you will learn what IOx is and how it is useful to IoT engineers and software developers.
- Docker 101
Use Docker to build and deploy your first container image.
- Building an IOx Application with Docker
Learn to build an IOx Application with Docker using the DevNet Sandbox.
- Debug Mode for IOx Container Applications
Now that you know how to build applications with IOx, it’s now time to learn how to do general debugging.
Now that you’re familiar with deploying a Python app through Docker into the DevNet Sandbox environment, try your hand at deploying our IR Temperature Scanner app onto a physical IR829 Router.
Tutorial for building a sample Docker-type Python app
You can use this tutorial, which provides the following steps to deploy your app on the Cisco IR829 Router:
- Implementing a simple python application
- Creating a docker image with python application
- Testing your application locally using docker tools
- Creating an IOx application package from the docker image
- Deploying and testing on the target platform
I hope you found this blog useful. The Cisco IR829 and Cisco IOx are great tools that allow you to deploy your IoT applications to the network. Please leave me a comment on this blog (below) if you any questions or comments. Good luck with your deployments and stay safe out there!
- IoT on Cisco Solutions: Creating a Portable Temperature Screener – Part 1
- Stevenson, A. Skin Temperature Scanner GitHub repo
- Cisco DevNet Learning Labs / Cisco IoT / IOx – Cisco IoT Application Development
- Tutorial: Build Sample Docker Type Python Simple App
- Cisco Community: Getting Started with Cisco IOx