DZone
IoT Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > IoT Zone > From Farmers to Programmers

From Farmers to Programmers

Here's a look at a proof of concept that allows non-programmers, in this case farmers, to connect their devices and machines, pull data, and set up simple commands.

Anton Popov user avatar by
Anton Popov
·
Dec. 07, 16 · IoT Zone · Tutorial
Like (14)
Save
Tweet
12.05K Views

Join the DZone community and get the full member experience.

Join For Free

Imagine a farmer working daily somewhere in the fields of Oregon. Every hour, he wants to know what is going on with his tractor in the field, control tractors and seeding machines remotely from the farm, and keep an eye on irrigation machines. The farmer purchased a device to both receive sensor-based feedback from the field machines and control various types of vehicles remotely from the farm. But now, anytime the farmer wants to adjust the processes on the machines or add new machines, he needs a programmer.

But what if he doesn’t? What if we enable the farmer to program the device without a programmer? It might sound surreal, but it's a reality.

Making a Farmer's Life Easier

Ciklum’s R&D Engineering team had to create a product for the end-user (Farmer) to easily program tasks for different hardware platforms, namely the field machines. We decided to do this via a “drag and drop” concept — connecting functional blocks in a web-based IDE environment. The farmer would have access to the data from all hardware modules via web interface or mobile application.

In the market, there are several industrial automation solutions providing a number of possibilities for using IDE and universal PLCs (programmable logic controllers). However, significant problems occur when flexible integration with a web-based UI and telematics capabilities are needed. In addition, the field of industrial automation requires highly qualified developers who, unfortunately, are often unavailable to support farmers.

Prerequisites:

  1. The app interface must be like child’s play: Small blocks linked to the corresponding functions. Simply connect as a chain and let it all work.

  2. UI to manage the work of all field machines, allowing the farmer control machines remotely, track location, collect data, and generate reports and notifications for unexpected use or faults, etc.

  3. Proof of concept: Is this idea feasible without the need for an army of programmers and full-cycle manufacturing?  

  4. The solution: As much OS, hardware, and platform independence as possible.

Our team's PoC was developed by one embedded system architect, three embedded/data processing engineers, one C++ developer, and one UI designer.

Our Own Metalanguage and Workflow

Our own metalanguage (Visual Programming Language) was developed based on the JSON standard with the ability to integrate into three environments: engine control unit (ECU), mobile, and web. This language also works on multiple ECUs, vehicles, mobile apps and web applications simultaneously, allowing the end-user to control them as part of a single project.

In practice, the farmer can program machines in the field to work together regardless of the machine size, type, or manufacturer without professional developers. The workflow would go as follows:

  • The end-user opens the program’s interface.

  • Each machine function is a block (or blocks) at the screen.

  • The user drags and drops functional blocks, like controlling a machine’s scoop remotely, tracking the tractor’s location, receiving data on the harvest, getting notifications about necessary maintenance, hours of operation, etc.

  • The user connects blocks into the program architecture to manage the work of machines.

Development Process

As a Proof-of-Concept, two Reference Carrier Boards with SoM on i.MX6 were used, communicating with each other via a CAN bus and ethernet, and a Raspberry Pi. This enabled sending data to an Internet server by HTTP protocol via 3G modem connection. Users were able to collect data from various sensors, send it to other boards and servers, and control any actuators using digital, analog and PWM outputs. The application ran successfully on Windows systems, Yocto Linux, Raspbian Linux, and other Unix-based operating systems.

Farmers' System Components

PoC consists of the following:

  • ECUs with ECU Application: The main components needed to implement user logic in the system, to handle and process the sensor’s data, control actuators, etc.).

  • Internet Server(s): These connect the end-user to all components, such as ECUs, data and metadata storage, web-based UI frontend application hosting, and web-based IDE hosting.

  • Web-based UI: For telemetry and remote control of the system, interaction with the user interface for system data monitoring according to metadata, a customized UI layout, and any other visual experiences by the end-user(s).

  • Android Mobile Application: For telemetry and remote control of the system.

  • Metadata visual editor: Web-based IDE draft.

What Does This Mean?

This PoC illustrates the main approach to the unified development environment — to design, develop, test, and integrate a full telematics solutions and management software for agriculture and construction machines with both web and mobile application.

The unified visual programming language combined three different environments in a unique IDE and empowered it with the diagnostics tool needed to provide the farmer with feedback. The interface of the system is based on connected and configured functional blocks, working in an autonomous mode in case there is no Internet.

Farmers are the ones who know these machines better than anyone else. And they are enabled to create a system to control the tractors or seeding machines in a simple, yet flexible way without on-site technical support.

Programmer (hardware) Machine mobile app End user Data (computing)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Understanding OAuth 2.0
  • Are All Kubernetes Ingresses the Same?
  • Is DataOps the Future of the Modern Data Stack?
  • No Code Expectations vs Reality

Comments

IoT Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo