Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Raspberry Pi4 model B 4GB+ RAM 
  2. Industrial Soil Moisture & Temperature & EC Sensor MODBUS-RTU RS485 (S-Soil MTEC-02B)
  3. 16+ GB micro SD Card
  4. Power supply for Raspberry Pi 4
  5. SD card reader
  6. x64 PC (laptop or dedicated server(development workstation)
  7. USB to RS485 converter (or similar like USB-RS485-WE-1800-BT)

...

The stack consist of one or more preconfigured and tested software components which are running in isolated containers on the board and managed by Deployment Agent.

To provide more secure board management none IP ports are exposed from the board outside in production (this is configured when initial BSP image for the board is created).

Development tools docker image will help us to:

  • Create initial BSP image
  • Run EdgeServer with Open Horizon services, Grafana, InfluxDB, Loki and onboard the Edge Device
  • Create initial stack for further deployment to Edge Device
  • Deploy stack on Edge Device by using business policy rule (Edge Device name as an example)

A single Edge Server (based on Open Horizon) may manage/update more than 10k of clusters or stand alone IoT devices acting as Edge Nodes.
Each Edge Node may control a hundreds dozens of wired or wireless and limited IoT devices  Edge Devices (Arduino, STM32, ESP32, etc.) or sensors on top of various hardware bussesdirectly.



Also with added AI services, Edge Node may act as distributed AI node with federated learning capabilities.

Here is how the system components are deployed and updated:

  1. Create OS image with BSP installed and create disk image to be used in Edge Node
  2. Deploy and run Edge Server
  3. Update software stack on the Edge Node by building container images, uploading them to private registry server (it can be a public registry as well, i.e. DockerHubAmazon ECR, Google GCRMicrosoft ACR, etc.)

Image RemovedImage Added

An Edge Node software stack can be any set of:

  • Proprietary/open-source containerised services.
  • Integrations with 3rd party PaaS/SaaS (AWS IoT, GCP IoT CoreParticle, etc.)
  • More complex software Complex software frameworks (EdgeX, ORRAFledge, etc.) with own architecture, services stack, software updates and management tools.

...

Build BSP

Run Edge Server

Solder Sensors

Insert sensors

sensor and USB converter, insert sensor

Create new stack, build Build stack to get data from sensors. Deploy, deploy

Configure Grafana, display data

Extend service with new logic. Deploy and view on dashboard



  1. Connect/solder S-Soil MTEC-02B with USB to RS485 converter as shown below



  2. Insert USB to RS485 into RPi4 board as shown below (do not connect power)

  3. Clone GitHub repository with SmartAg-foundation and change directory to SmartAg-foundation/tools
    git clone https://github.com/open-horizon-services/SmartAg-foundation SmartAg-foundation
    cd SmartAg-foundation/tools

  4. Download OS template image rename into target_os.img and put it into SmartAg-foundation/tools

  5. Insert 16Gb+ SD card in drive and create/write initial BSP image by running the following command (example-edge-node should be unique Edge Node for your system):

    sudo ./write_bsp_image example-edge-node

    Enter SSID name, network password and confirm.

  6. After the BSP is written to disk, eject SD card, insert it into RPi4 and connect power.
    After the board is initialised by default it will be running Fledge container from Milestone 2: Outdoor single sensor

  7. Now let's create a custom stack with one containerised service telegraf and exec plugin which runs python script which in turn will read S-Soil MTEC-02B sensor data similar to what we did in fledge plugin in previous milestone

    ./create_new_stack ../new_stack
    By default new stack will contain a workable solution with telegraf and exec plugin for S-Soil MTEC-02B.

  8. Before deploying a stack onto Edge NodeEdge Server needs to be started locally, to start Edge Server run:

    ./start_local_edgeserver
    This script will register new Edge Node capabilities and run Edge Server containers.

  9. To upload new_stack to the example-edge-node run the command, with Edge Node name (example-edge-node) and a new stack directory (new_stack):
    ./build_and_deploy example-edge-node ../new_stack
    First time it will take few minutes to start.

    <Add screenshots of Grafana>

...