IoT Software Services

Microservice architecture experts

IoT and Microservices

The Internet of Things (IoT) is a network of physical devices like sensors, industrial computers, or embedded systems that are integrated using software, and communication protocols to collect and exchange data.

Industrial applications can require significant “deployment ecosystems” with multiple servers running a range of specialized services. At the same time, software written for industrial IoT must be scalable. Even for a simple system, this could mean handling 1000s of requests coming into the system per second from 100s of devices. Evergreen Innovations has successfully provided a range of IoT consulting services to some large industrial applications. 

Our successful IoT strategy is based on loosely coupled, highly specialized applications that communicate over standard protocols. This approach is often referred to as a “microservice architecture” and has been deployed for a wide range of large-scale distributed systems, a prominent example being Netflix.

The microservice approach contrasts with more traditional “monolithic” (single application) systems to provide greater reliability, scalability, and development pace. Examples of benefits include updating individual system components without interrupting others and adaptively scaling particular services to deal with their demand.

We are highly experienced in creating secure, scalable, agile, and resilient industrial IoT software. We love experimenting with different software solutions to ensure that your product is streamlined, effective, and reliable, yielding the quality data you are ultimately after.

See some of our example IoT software platforms below, and just give us a call if you have any questions. Get in touch with us for our IoT services!

iot consulting services

IoT Software

IoT software written by our experts for your industrial project

Thingsboard IoT Platform

Most Internet of Things (IoT) devices such as sensors, GPS receivers, or power meters generate highly granular data, often at least once per second. An IoT platform helps maintain relationships between customer assets on site. Thingsboard can integrate data from multiple devices, process them, and take action on a set event. Our IoT experts have used Thingsboard to create real-time dashboards and fault alerting for our customers. A simple example application is described in one of our tech blogs.

Elasticsearch, Logstash, Kibana

Elasticsearch, Logstash, and Kibana are three open-source projects that are well suited for server/log search and analytics applications. Using the ELK stack enables searching gigabytes of unstructured log data generated by IoT deployments to locate e.g. a sensor connection issue. Check out this blog on how to do this.

C/C++ for IoT software

Writing custom IoT device interfaces (RS232, RS485, USB, I2C…) is often best achieved in C/C++. We have been programming in C/C++ for over 20 years, including applications ranging from generating massive water waves in the laboratory to battery storage simulation & control. Other C/C++ applications include LabVIEW .so file development (shared C/C++ library on a Linux real time target) or Micro-controller coding.

Matlab & Python

We have been using MATLAB and Python for almost two decades. MATLAB applications range from numerical modeling to hardware-in-the-loop (custom embedded or via Simulink coder). Python is our language of choice for more focused IoT data processing. We love its simplicity for data wrangling, great visualization capabilities and powerful machine learning libraries.

WEB & Cloud​

We have supported and guided our clients in their transition to the cloud and have experience with the main cloud providers. Docker has become our good friend to make cloud deployment tidy. We have worked with Docker Swarm and other orchestration tools to provide the flexibility, scalability and resilience that our clients seek.

Go

Go has become our latest favorite language. Many of our cloud applications are written in Go and benefit from its concurrency and performance. We have applied Go to control and embedded system prototyping. Go has delivered excellent results in this space, mainly due to its cross-compilation, simplicity, and the reliability that comes with strongly typed languages. The ease of multi-threading, excellent JSON parsing, and strength of the communication (say HTTP or MQTT) libraries in Go make it very easy to implement a microservice architecture.

Industrial control development

Industrial control development is what we are experts at. We provide real-time control consulting services and implementation from edge to cloud. We design, build and test. We get enormous satisfaction when (not if!) we get things working.

Instrumentation

Any industrial control system needs sensors. Pressure gauges, load cells, inertial measurement units (IMU) or EnDat encoders are just a few examples of the hundreds of sensors we have interfaced to control systems.

Embedded Control

We have worked with real-time control systems ranging from NI cRIO using LabVIEW real-time to MathWork's favorite Speedgoat with Simulink real-time. We make embedded control work on any industrial system.

IoT Software

Docker and Docker Swarm are our key tools for cloud deployment and microservice orchestration. We have provided consulting services for IoT stacks ranging from Elasticsearch, Logstash and Kibana (ELK) to Thingsboard.