Giter Site home page Giter Site logo

skyformat99 / iot-edge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azure/iot-edge-v1

0.0 2.0 0.0 8.65 MB

Azure IoT Edge

Home Page: http://azure.github.io/iot-edge/

License: Other

CMake 2.19% C# 5.20% C 51.14% C++ 37.69% Java 2.90% Shell 0.10% Batchfile 0.03% Objective-C 0.02% JavaScript 0.74%

iot-edge's Introduction

The Azure IoT Gateway SDK was our first step to enabling edge analytics in IoT solutions. We’re doubling down on, and expanding, this vision as explained in Satya’s Keynote at the Build conference and Sam George’s blog post. As part of this evolution, the SDK is becoming an extensible product you can use instead of a set of code you build. To reflect this, we’re changing the name to Azure IoT Edge.

All the important developer concepts are maintained as we continue to improve Azure IoT Edge. Specifically…

  • modules remain units compute which can be written in your programming language of choice.
  • traditional cloud services and 3rd party business logic can run as a module.
  • modules can communicate with each other via declarative message passing.

This similarity means that existing solutions can evolve with the product! There will be some infrastructural changes. For example: modules will run in Docker containers and the broker used to pass messages between module code will move to a lite version of IoT Hub running locally in a module. The vast majority of this is shielded from both a module developer and gateway developer.

Sign up here to be kept up to date about the next generation of Azure IoT Edge features. In the meantime, be sure to check out the great features we just added to Azure IoT Edge, like development packages and an Azure Stream Analytics module.

Azure IoT Edge

IoT scenarios vary drastically between industries and even between customers within the same industry. Azure IoT Edge lets you build IoT solutions tailored to your exact scenario. Connect new or existing devices, regardless of protocol. Process the data in an on-premises gateway using the language of your choice (Java, C#, Node.js, or C), before sending it to the cloud. Deploy the solution on hardware that meets your performance needs and runs the operating system of your choice.

In the image below an existing device has been connected to the cloud using edge intelligence. The on-premises gateway not only performs protocol adaptation which allows the device to send data to the cloud, it also filters the data so that only the most important information is uploaded.

Using existing modules from the Azure IoT Edge ecosystem significantly reduces your development and maintenance costs. Running the gateway on-premises opens up all kinds of scenarios like communicating between devices in real time, operating your IoT solution with an intermittent cloud connection, or enforcing additional security requirements.

Visit https://azure.microsoft.com/campaigns/iot-edge to learn more about Azure IoT Edge.

Azure IoT Edge Modules

The following modules are available in this repository:

Name Description
ble Represents a Bluetooth low energy (BLE) device connected to the gateway
hello_world Sends a "hello world" message periodically
identitymap Maps MAC addresses to IoT Hub device IDs/keys
iothub Sends/receives messages to/from mapped devices and IoT Hub
logger Writes received message content to a file
simulated_device Simulates a gateway-connected BLE device
azure_functions Sends message content to an Azure Function

Create Modules using Packages

The fastest way to setup your development environment to start writing modules is to leverage our packages for Java, C#, and Node.js. Our sample apps repo has quick steps on getting started with these packages:

Featured Modules

Other people are creating modules for Azure IoT Edge too! See the More information link for a module to find out how to get it, who supports it, etc.

Name More information Targets IoT Edge version
OPC Publisher https://github.com/Azure/iot-edge-opc-publisher 2017-04-27
OPC Proxy https://github.com/Azure/iot-edge-opc-proxy 2017-04-27
Modbus https://github.com/Azure/iot-gateway-modbus 2017-01-13
GZip Compression https://github.com/Azure/iot-gateway-compression-gzip-nodejs 2016-12-16
Proficy Historian https://github.com/Azure-Samples/iot-edge-proficy-historian 2017-04-27              
SQLite        https://github.com/Azure/iot-gateway-sqlite 2017-01-13              
Batch/Shred       https://github.com/Azure/iot-gateway-batch-nodejs 2017-01-13              

We'd love to feature your module here! See our Contribution guidelines for more info.

Operating system compatibility

Azure IoT Edge is designed to be used with a broad range of operating system platforms. It has been tested on the following operating systems:

  • Ubuntu 14.04
  • Ubuntu 15.10
  • Yocto Linux 3.0 on Intel Edison
  • Windows 10
  • Wind River 7.0

Hardware compatibility

Azure IoT Edge is designed to be independent from hardware in addition to the operating system. Developers can power their gateways with hardware as constrained as a microcontroller to systems as powerful as a ruggedized server.

Directory structure

/doc

This folder contains general documentation for Azure IoT Edge as well as step by step instructions for building and running the samples:

General documentation

  • Dev box setup contains instructions for configuring your machine to build Azure IoT Edge as well as instructions for configuring your machine to build modules written in Java, Node.js, and .NET.

  • Ubuntu Snap Package Walk-through provides the step-by-step instructions used to create Azure IoT Edge Snap package. The walk-through is a great starting point for anyone trying to integrate Azure IoT Edge into their own snap package.

API documentation can be found here.

/samples

This folder contains all of the samples for Azure IoT Edge. Samples are separated in their own folders. Step by step instructions for building and running each sample can be found in the README.md file in the root of each sample's folder.

Samples include:

  • Hello World - Learn the basic concepts of Azure IoT Edge by creating a simple gateway that logs a hello world message to a file every 5 seconds.
  • Simulated Device Send data to IoTHub from a gateway using a simulated device instead of using a real device.
  • Real Device - Send data to IoTHub from a real device that could not connect to the cloud unless it connected through a gateway. This sample uses a Bluetooth Low Energy Texas Instruments SensorTag as the end device .

/modules

This folder contains all of the modules included with Azure IoT Edge. Each module represents a specific piece of functionality that can be composed into an end to end gateway solution. Details on the implementation of each module can be found in each module's devdoc/ folder.

/core

This folder contains all of the core infrastructure necessary to create a gateway solution. In general, developers only need to use components in the core folder, not modify them. API documentation for core infrastructure can be found here. Details on the implementation of core components can be found in core/devdoc.

/build

This is the default folder that cmake will place the output from our build scripts. The developer always has the final say about the destinaiton of build output by creating a folder, navigating to it, and then running cmake from there. Detailed instructions are contained in each sample doc.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments

iot-edge's People

Contributors

ancaantochi avatar andrew-buckley avatar anhashia avatar anporumb avatar aribeironovaes avatar arturl avatar avranju avatar az-iot-builder-01 avatar bfjelds avatar chipalost avatar damonbarry avatar darobs avatar dcristoloveanu avatar dominicbetts avatar dsajanice avatar formulahendry avatar furqanmm avatar grrttedwards avatar jongio avatar joshualyon avatar kkmsft avatar mrohera avatar ritave avatar srware avatar williamberryiii avatar wodansson avatar yfakariya avatar yuwzho avatar zafields avatar zfields avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.